Lección 1
Fundamentos
El diseño de software se define como el proceso donde en el ciclo de vida del desarrollo web se definen los componentes, las interfaces, la arquitectura y otros aspectos necesarios para completar los requerimientos realizados por el cliente en el ciclo de vida de levantamiento de requerimientos. En esta etapa del ciclo de vida se realiza un bosquejo muy aterrizado de todo lo que necesita para alcanzar los requerimientos y como serán las interacciones de los Stakeholders con el software a través de distintos diagramas tales como los diagramas de casos de uso, los diagramas de secuencia y los diagramas de distribución, entre muchos incluidos en los Diagramas UML (Unified Modeling Language), los diagramas UML es un lenguaje creado precisamente para estandarizar la representación gráfica de las distintas formas de plasmar las interacciones de un desarrollo de software.
Un diagrama de caso de uso no es más que una descripción gráfica de un proceso desde su inicio a su fin, tal cual como cuando programamos utilizábamos los diagramas de flujo para describir lo que haría nuestro algoritmo, los diagramas de caso de uso nos permiten describir la forma como los usuarios a través de los requerimientos van a realizar acciones en el software.
Casos de uso
- Un caso de uso es un conjunto de escenarios que tienen una meta de usuario en común. Martin Fowler
- Es una descripción de un proceso fin-a-fin, relativamente largo, que incluye varias etapas o transacciones.
- Es una manera específica de utilizar el sistema, es una historia que describe un uso particular del sistema.
- Es la imagen de una funcionalidad del sistema, desencadenada en respuesta al estímulo de un actor o rol externo.
Dentro de las partes de acciones de caso de uso tenemos:
-
Actor ó actores:
Hace referencia al usuario o usuarios que interactúan con el diagrama de caso de uso. Generalmente se representa con una persona en caso de ser un usuario o en su defecto con el sistema informático que relacione. Por ejemplo un diagrama de caso de uso puede representar la interacción que debe hacer una base de datos para consultar si tienen un dato en su información y esta a su vez es solicitada por un usuario.
-
Caso de uso:
Hace referencia a la acción o a los juegos de acciones que se realizan dentro del requerimiento, supongamos el ejemplo anterior, cuando entramos a Facebook nosotros interactuamos ingresando nuestro usuario y contraseña ( caso de uso de logeo), luego de esto el sistema debe ir a otro caso de uso que denominaremos verificación, el cual realizará la verificación del caso de uso logeo a través de la base de datos que sería otro actor dentro del sistema. Por último el sistema nos daría una respuesta ya sea negativa o positiva que sería el último paso y llamaremos a este caso de uso como inicio.
-
Límite de Sistema:
Muestra el limite del sistema que estamos representando, recordemos que en un requerimiento pueden interactuar distintos agentes y distintos casos de uso.
-
Línea de asociación:
Representa la relación entre un actor y un caso de uso, la relación entre actores y casos de uso puede ser de 1 a 1, de 1 a muchos y de muchos a 1.
-
Extensión:
Hace referencia cuando un caso de uso se extiende a otro caso de uso, en el caso del ejemplo que usábamos en caso de uso haría referencia al extends entre verificación y validación. También conocido como extends.
-
Incluye:
Este proceso hace referencia cuando un caso de uso incluye todos los atributos de otro caso de uso. Por ejemplo cuando nos suscribimos a una revista deportiva, hay un caso de uso que se llamará inscripción revista y este caso de uso incluirá un caso de uso que se llaman revistas deportivas.
Un diagrama de secuencia permite mostrar la forma en que los componentes u objetos del software se comunican entre sí al transcurrir el tiempo.
En un diagrama de secuencia podemos encontrar, los objetos que participan en la interacción y la secuencia de mensajes que se intercambian entre los objetos.
Dentro de las partes de los diagramas de secuencia tenemos:
-
Objetos:
Pueden ser stakeholders o componentes propios del sistema, son los que realizan como tal las peticiones y esperan respuestas de otros objetos.
-
Mensajes:
Son la información que se transportan entre objetos y se representan de forma horizontal, pueden ser de 3 tipos, el mensaje simple, que ocurre cuando se hace la transferencia de control de un objeto a otro, los mensajes síncronos que se utilizan cuando un objeto solicita a otro una información y queda a espera de su respuesta y por último tenemos los mensajes asíncronos, este tipo de mensaje a diferencia del síncrono solicita una respuesta pero mientras llega la respuesta del destinatario va realizando otros procesos.
-
Línea de tiempo:
Se representa de forma vertical e indica el tiempo transcurrido desde que se inicio el objeto, un mensaje que se ubique en la parte superior de la línea de tiempo indica que va antes de un mensaje que se encuentre en la parte inferior de la línea de tiempo.
Los diagramas de Secuencias se usan continuamente como modelos explicativos para los escenarios de los casos de uso. Mediante la creación de un diagrama de secuencias con un actor y los elementos involucrados en el caso de uso, puede modelar la secuencia de pasos que toman el usuario y el sistema para completar las tareas requeridas.
Línea de vida | Actor | Mensaje |
---|---|---|
Representa un participante individual en una interacción. | Representa el papel desempeñado por un usuario. | Define una comunicación particular entre líneas de vida de una interacción. |
El Diagrama de distribución representa la estructura de hardware necesaria para llevar a cabo el desarrollo web. Este diagrama es uno de los más fáciles de manejar ya que solo tiene un componente para representarse y es a través de un Nodo, un nodo es un cubo que representa cualquier estructura de hardware que participe en nuestro sistema y ejecuta o procesa alguna acción, dentro de los nodos se pueden incluir otros diagramas UML, representándolos completos o solo haciendo relación al nombre con el que lo creamos, también hay nodos que participan en nuestro sistema pero no ejecutan ni procesan, tales como impresoras o pantallas de computador.