Análisis y Diseño de Sistemas


Análisis y Diseño Estructurado

Análisis Estructurado: Se concentra en especificar lo que se requiere que haga el sistema o aplicación bien sea nuevo o ya existente. Permite que las personas observen los elementos lógicos (lo que hará el sistema) separados de los componentes físicos (computadora, terminales, sistemas de almacenamiento, etc.) sin omitir ningún detalle. Después de esto se puede desarrollar un diseño físico eficiente para la situación donde será utilizado.

Diseño Estructurado: Es otro elemento del Método de Desarrollo por Análisis Estructurado que emplea la descripción gráfica, se enfoca en el desarrollo de especificaciones del software. El objetivo del Diseño Estructurado es programas formados por módulos independientes unos de otros desde el punto de vista funcional. La herramienta fundamental del Diseño Estructurado es el diagrama estructurado que es de naturaleza gráfica y evitan cualquier referencia relacionada con el hardware o detalles físicos. Su finalidad no es mostrar la lógica de los programas (que es la tarea de los diagramas de flujo). Los Diagramas Estructurados describen la interacción entre módulos independientes junto con los datos que un módulo pasa a otro cuando interacciona con él.

Elementos

Diagramas de Flujo de Datos (DFD): Herramienta que nos permite mostrar el sistema como una red de sistemas conectados entre sí por los datos. Representa el flujo de la información y las transformaciones que se aplican a los datos al moverse desde la entrada hasta la salida.

Diagramas de Flujo de Control (DFC): Estas ampliaciones permiten al analista reflejar el flujo de control y el procesamiento de control; muestran como fluyen los sucesos entre los distintos procesos e ilustran como los sucesos externos hacen que se activen los procesos. El DFC contiene los mismos procesos que el DFD, pero muestra el flujo de control en lugar de datos. Esta ampliación se centra menos en la creación de símbolos gráficos adicionales y más en la representación y especificación de los aspectos del software orientados al control.

Diccionario de Datos: Es un listado organizado de todos los elementos de datos que son pertinentes para el sistema, con definiciones precisas y rigurosas que permiten que el usuario y el analista tengan una misma comprensión de las entradas, salidas, almacenes de datos y cálculos intermedios. Contiene definiciones de todos los objetos de datos consumidos y producidos por el software.

Diagrama Entidad-Relación: Representa las relaciones entre entidades de datos. Los atributos de cada entidad se pueden describir mediante la Descripción de datos.

Diagrama de Flujo de Datos (DFD): Sirve para dos propósitos, indica como se transforman los datos a medida que se avanza en el sistema; y representa las funciones que transforman el flujo de datos. En la Especificación de proceso se encuentra un descripción de cada función representada en el DFD.

Diagrama de Transición de Estados (DTE): Indica como se comporta el sistema como consecuencia de sucesos externos. La Especificación de control detalla mas información sobre los aspectos de control del software.

Características

Los productos de análisis han de ser de mantenimiento muy sencillo. Esto concierne concretamente al documento final (Especificación de requisitos del software).

  • Se deben tratar los problemas de gran tamaño mediante algún método efectivo de partición.
  • Siempre que sea posible, se deben utilizar gráficos.
  • Se deben diferenciar las consideraciones lógicas (esenciales) y las físicas (de implementación).

Subir


Análisis y Diseño orientado a objeto

Análisis Orientado a Objetos (AOO): Se define como "un método de análisis que examina los requisitos desde la perspectiva de las clases y objetos que se encuentran en el vocabulario del dominio del problema", los objetos son entidades tangibles que muestran un comportamiento bien definido. Todo esto quiere decir que el análisis orientado a objetos parte de entidades tangibles halladas en el problema, tales entidades varían dependiendo de los diversos casos prácticos, pero en todos los casos son elementos reales que toman parte del problema de forma directa.


Diseño Orientado a Objetos (DOO): "Es el método que lleva a una descomposición Orientado a Objetos. Aplicando DOO, se crea software resistente al cambio y escrito con economía de expresión. Se logra un mayor nivel de confianza en la corrección del software a través de la división inteligente de su espacio de estados. En última instancia, se reducen los riesgos inherentes al desarrollo de sistemas.
Los modelos del diseño orientado a objetos reflejan la importancia de plasmar explícitamente las jerarquías de clases y objetos del sistema que se diseña. Estos modelos cubren también el espectro de las decisiones de diseño relevantes que hay que considerar en el desarrollo de un sistema complejo, y así animan a construir implantaciones que posean los atributos de los sistemas complejos bien formados.

UML: Es un lenguaje de propósito general para el modelado orientado a objetos. Impulsado por el Object Management Group (OMG). UML define una notación que se expresa como diagramas sirven para representar modelos/subsistemas o partes de ellos

Diagramas de UML: Los diagramas expresan gráficamente partes de un modelo.

Diagrama de clases: Es el diagrama principal para el análisis y diseño del sistema, presenta las clases del sistema con sus relaciones estructurales y de herencia. La definición de clase incluye definiciones para atributos y operaciones. Muestra el conjunto de clases y objetos importantes que hacen parte de un sistema, junto con las relaciones existentes entre estas clases y objetos. Muestra de una manera estática la estructura de información del sistema y la visibilidad que tiene cada una de las clases,dada por sus relaciones con las demás en el modelo.

Clase Usuario (Generalización)

Diagrama de Casos de Uso: Es una técnica para capturar información respecto de los servicios que un sistema proporciona a su entorno. Muestra las distintas operaciones que se esperan de una aplicación o sistema y cómo se relaciona con su entorno (usuarios u otras aplicaciones).


 

Diagrama de Secuencia: Muestra la interacción de un conjunto de objetos en una aplicación a través del tiempo. Esta descripción es importante porque puede dar detalle a los casos de uso, aclarándolos al nivel de mensajes de los objetos existentes, como también muestra el uso de los mensajes de las clases diseñadas en el contexto de una operación.

Diagrama de Colaboración: Es una forma de representar interacción entre objetos, alterna al diagrama de secuencia. A diferencia de los diagramas de secuencia, pueden mostrar el contexto de la operación y ciclos en la ejecución.

Diagrama de Estados: Modela el comportamiento de una parte del sistema, Típicamente se elabora un diagrama de Estados para cada clase que tenga un comportamiento significativo, El comportamiento es modelado en términos del estado en el cual se encuentra el objeto, qué acciones se ejecutan en cada estado y cuál es el estado al que transita después de un determinado evento. Muestra el conjunto de estados por los cuales pasa un objeto durante su vida en una aplicación, junto con los cambios que permiten pasar de un estado a otro.

Diagrama de Actividades: Es un caso especial de un diagrama de estados en el cual casi todos los estados son estados de acción (identifican que acción se ejecuta al estar en él) y casi todas las transiciones son enviadas al terminar la acción ejecutada en el estado anterior. Puede dar detalle a un caso de uso, un objeto o un mensaje en un objeto. Sirven para representar transiciones internas, sin hacer mucho énfasis en transiciones o eventos externos. Generalmente modelan los pasos de un algoritmo.

Diagrama de Implementación: Muestra la estructura del código (diagrama de componentes) y la estructura del sistema en ejecución (diagrama de ejecución).

  • Diagrama de Componentes: Describen los elementos físicos del sistema y sus relaciones permitiendo modelar la estructura del software y la dependencia entre componente. Muestra las dependencias lógicas entre componentes software.
  • Diagrama de Ejecución: Muestra la configuración de los elementos de procesamiento en tiempo de ejecución y los componentes software, procesos y objetos que se ejecutan en ellos.

Etapas y actividades en el desarrollo orientado a objeto basado en UML

Análisis de Requerimientos (Modelo Conceptual): Se logra claridad sobre lo que desea el usuario y la forma en la cual se le va a presentar la solución que está buscando.

1.- Identificar los casos de uso del sistema (representar la información en un diagrama de casos de uso).

2.- Dar detalle a los casos de uso descritos.

3.- Definir una interfaz inicial del sistema (si es aplicable).

4.- Desarrollar el modelo del mundo (representa la información en un diagrama de clases).

  • Identificar clases
  • Atributos
  • Operaciones
  • Relaciones ( asociación, herencia, composición y uso )
  • Cardinalidad

5.- Validar los modelos ( con el cliente : clases, atributos, operaciones y crear diagrama de secuencia o de colaboración ) .

Diseño del Sistema (Diagramas de Clases): Se define una subdivisión en aplicaciones del sistema (si es lo suficientemente grande) y la forma de comunicación con los sistemas ya existentes con los cuales debe interactuar.

1.- Identificar la arquitectura del sistema (definir los componentres del sistema).

2.- Refinar los casos de usos ( expandidos) aplicados al software.(Textualmente y en diagrama ).

Diseño Detallado: Se adecua el análisis a las características específicas del ambiente de implementación y se completan las distintas aplicaciones del sistema con los modelos de control, interfaz o comunicaciones, según sea el caso.

1.- Agregar detalles de implementación al modelo del mundo.

  • Completar los detalles de la clase ( diagrama de clases )
  • Subdividir en paquetes ( diagrama de paquetes )

2.- Desarrollar el modelo de interfaz.

  • Conocer el ambiente de base
  • Enlazar las clases de interfaz con el modelo del mundo
  • Crear diagrama de interacción( procesos )
  • Crear diagrama de estados de procesos

3.- Desarrollar los modelos de control, persistencia y comunicaciones relacionado con redes, ambientes WEB, etc. .

Implementación y Pruebas: Se desarrolla el código de una manera certificada.

1.- Definir estándares de programación ( lenguajes y directorios).

2.- Codificación y pruebas unitarias.

3.- Pruebas de módulos y de sistema.

Características

  • Abstracción: Denotación de características fundamentales.
  • Ocultación: Encapsulamiento de la implementación.
  • Modularidad: Fragmentación en componentes individuales.
  • Jerarquía: Clasificación de las abstracciones.
  • Tipificación:Caracterización de propiedades de una serie de entidades.
  • Concurrencia: Existencia de objetos activos.
  • Persistencia: Trascendencia en tiempo y/o espacio

Ventajas

Las principales ventajas del método orientado a objetos descansan en su posibilidad de hacer frente a dos temas esenciales: Gestión de la complejidad y Mejora de la Productividad en el proceso de desarrollo del software, los cuales son gestionadas a través de las siguientes estrategias:

  • Escribir código reutilizable
  • Escribir código posible de mantener
  • Depurar módulos de código existentes
  • Compartir código con otros

La complejidad se reduce y la productividad se mejora cuando se pueden volver a utilizar un código de alta calidad. Los mecanismos orientados a objetos en particular la herencia fomentan la reutilización así como el mantenimiento de sistemas.


Caso Práctico

El desarrollo de una página web para el Control de Actividades del personal que labora en la Coordinación de Estudios Dirigidos (EDi) de la Universidad Experimental Nacional "Francisco de Miranda", el cual permite al Administrador del Sistema (Jefe de dicha Coordinación) dar seguimiento al progreso de cada una de las actividades asignadas al personal administrativo y academico en dicha dependencia.

El sistema funciona mediante sesiones, su alcance es restringido a dos tipos de usarios ( personal académico y administrativo ) y un responsable o administrador del sistema, el cual se encarga de registrar a los usuarios, tiene el módulo de seguridad implementado.

El administrador puede realizar las siguientes opciones:

- Registro básico

  • Carrera
  • Unidad Curricular

- Registro usuario

  • Agregar Usuario (personal academico o administrativo)
  • Editar Usuario (por numero de cedula)
  • Eliminar usuario (por numero de cedula)

- Ver reportes

  • Listado de Usuario
  • Listado por Tipo de Personal (Administrativo, Academico)
  • Listado por Fecha de las actividades

- Salir del Sistema

 

El académico puede realizar las siguientes opciones:

- Editar datos

- Registro de Actividades

- Registro de Capacitación

  • Eventos Recibidos
  • Eventos Impartidos

- Generar reportes

  • Imprimir Informe
  • Listado de Actividades
  • Listado de Adiestramiento

- Salir del Sistema

El administrativo puede realizar las siguientes opciones:

- Editar datos

- Actividades de Docencia

  • Actividades Teóricas y Prácticas
  • Tutorias y Asesorías de trabajos especiales de grado

- Actividades de Investigación

  • Proyectos de investigación
  • Asistencia a eventos cientificos

- Actividades de Extensión

  • Proyectos de extensión
  • Charlas, Conferencias y foros
  • Asesorias y asistencia técnica a productores, empresarios, otras instituciones asistenciales, educativas o cientificas y a comunidades en general

- Actividades Administrativas

  • Reuniones
  • Comisiones

- Actividades de Adiestramiento

- Generar reportes

  • Imprimir Informe
  • Listado de Actividades de Docencia
  • Listado de Actividades de Investigacion
  • Listado de Actividades de Extension
  • Listado de Actividades Administrativas
  • Listado de Actividades de Adiestramiento

- Salir del Sistema