Post on 27-Oct-2015
Análisis y modelado de sistemas de informaciónI.S.C. Hugo Alberto Torres
Temario
1. El modelo del proceso del software1.1. Conceptualización de tecnología orientada objetos1.2. Metodologías emergentes de desarrollo de software1.3. Métodos de desarrollo de software orientado a
objetos1.4. El proceso de desarrollo unificado – RUP1.5. El lenguaje de modelado unificado – UML
Orientación a Objetos
● Análisis Orientado a Objetos: Comprende el desarrollo de un modelo orientado a objetos del dominio de aplicación.
● Diseño Orientado a Objetos: Comprende el desarrollo de un modelo orientado a objetos de un sistema software para implementar los requerimientos identificados.
● Programación Orientada a Objetos: se refiere a implementar el diseño de software utilizando un lenguaje de programación orientado a objetos.
Objeto
Cualquier cosa o evento del mundo realUna plantilla o patrón que describe una colección de objetos similares
Características de los objetos
● Son componentes potencialmente reutilizables debido a que son encapsulamientos independientes del estado y las operaciones.
● Es una entidad que tiene un estado y un conjunto de operaciones definidas que operan sobre ese estado.
Atributos y valores
Puppy:PerroRaza: “LabradorColor: “Café claro”Altura: 30Peso: 1.5Edad: 3alimentar()vacunar()
Herencia
MuebleMaterialColorAltoAncho
SillaMaterialColorAltoAncho
MesaMaterialColorAltoAncho
Desarrollo ágil de software
● Están diseñados para producir software util de forma rápida.
● Los negocios cambian rápidamente.
● Compañías prefieren sacrificar calidad a cambio de rapidez
Ventajas
● Los desarrollos basados en especificaciones completas (diseño, construcción, pruebas) no se ajustan al desarrollo rápido de aplicaciones.
● Si hay algún fallo, el diseño se tiene que volver a realizar.
● Cuando el software esté disponible, es posible que ya esté obsoleto.
Desventajas
● Problemas de administración
● Problemas contractuales
● Problemas de validación
● Problemas de mantenimiento
Tipo de desarrollo
● Desarrollo incremental● Prototipado desechable
Métodos ágiles
Principios:● Participación del cliente● Entrega incremental● Personas, no procesos● Aceptar el cambio● Mantener simplicidad
Programación extrema
● Planificación incremental● Entregas pequeñas● Diseño sencillo● Desarrollo previamente probado● Refactorización del código● Trabajo en parejas● Propiedad colectiva (todas las áreas del
sistema)● Integración contínua● Ritmo sostenible● Cliente presente
Metodología OOD (Booch)
Diseñado por Grady Booch
Surge debido a los objetivos de la ingeniería de software: Entregar un producto Software que satisfaga las necesidades del usuario, de forma eficiente y predecible.
Está orientado a analizar el modo, los documentos y requisitos del sistema en desarrollo.
Características de ODD
Es secuencial en el sentido que la fase de análisis es completada y posteriormente la fase de diseño también.
Es cíclica en el sentido que cada fase está compuesta de pasos cíclicos más pequeños.
Se enfoca en el análisis y el diseño y no en la implementación o la prueba del resultado de estos.
El modelo OOD según Booch
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
Diagramas usados en la metodología Booch
● Diagrama de Clases. ● Especificación de Clases. ● Diagrama de Categorias. ● Diagramas de transición de estados.● Diagramas de Objetos.● Diagramas de Tiempo. ● Diagramas de módulos. ● Subsistemas. ● Diagramas de procesos.
Fase de análisis
● Análisis de requerimientos: En esta etapa se define qué quiere el usuario del sistema.
● Análisis de dominio: Se definen las clases, sus atributos, la herencia de clases y métodos de éstas.
● Diseño: Es el proceso de determinar una implementación efectiva y eficiente que realice las funciones.
Modelos de la metodología Booch
Modelo de Lógica: está representado en la estructura clase-objeto.
Modelo Estático: es representado por el diagrama de clase, en el que se construye la arquitectura que se definirá para el sistema.
Modelo Dinámico: es representado por el diagrama de objeto que muestra cómo las clases interactúan unas con otras.
Metodología OMT (Rumbaugh)
Desarrollada por James Rumbaugh.
Es una de las metodologías de análisis y diseño de desarrollo de software orientado a objetos más eficiente que existe en la actualidad.
Se extiende del análisis, al diseño, a la implementación durante sus etapas.
Etapas (I)
Análisis: es una abstracción concisa y precisa de qué debe hacer el sistema deseado, no cómo debe ser hecho.
Diseño del Sistema: en esta etapa se deben decidir las características del funcionamiento para optimizar el sistema, así como escoger una estrategia para atacar el problema.
Etapas (II)
Diseño de Objetos: se agregan los detalles de implementación al modelo de diseño y las clases de objetos son reforzadas con las estructuras de datos y algoritmos escogidos.
Implementación: las clases de objetos y las relaciones entre ellas definidas durante el diseño de objetos son trasladadas a un lenguaje de programación, a una base de datos o implementación de hardware.
El proceso de desarrollo unificado (RUP)
El RUP es un modelo en fases que identifica cuatro fases diferentes en el proceso del software.
Las fases en el RUP están mucho más relacionadas con asuntos de negocio más que técnicos.
Fases
1. Inicio2. Elaboración3. Construcción4. Transición
Fases - Inicio
● Inicio: establecer un caso de negocio para el sistema. Esta información se utiliza para evaluar la aportación que el sistema hace al negocio. Si esta aportación es de poca importancia, se puede cancelar el proyecto después de esta fase.
Fases - Elaboración
Elaboración: ● Desarrollar una comprensión del dominio del
problema.● Establecer un marco de trabajo
arquitectónico para el sistema.● Desarrollar el plan del proyecto e identificar
los riesgos clave del proyecto.
Fases - Elaboración
Al terminar esta fase, se debe tener:● Un modelo de los requerimientos del
sistema.● Una descripción arquitectónica.● Un plan de desarrollo del software.
Fases - Construcción
Comprende el diseño del sistema, la programación y las pruebas.
Durante esta fase se desarrollan e integran las partes del sistema.
Al terminar esta fase, debe tener un sistema de información operativo y la documentación correspondiente lista para entregarla a los usuarios.
Fases - Transición
Se ocupa de mover el sistema desde la comunidad de desarrollo a la comunidad del usuario y hacerlo trabajar en un entorno real.
Al terminar esta fase, se debe tener un sistema software documentado que funciona correctamente en su entorno operativo.
Buenas prácticas
● Desarrolle el software de forma iterativa.● Gestione los requerimientos. ● Utilice arquitecturas basadas en
componentes.● Modele el software visualmente.● Verifique la calidad del software.● Controle los cambios del software.
RUP y UML
El RUP se ha diseñado conjuntamente con el UML, por lo que la descripción del flujo de trabajo se orienta alrededor de los modelos UML asociados.
Lenguaje unificado de modelado (UML)
Es un lenguaje como Pascal, C#, el español o el inglés.
En el UML se usan símbolos para transmitir significado.
El UML es una definición oficial de un lenguaje pictórico con símbolos y relaciones comunes que tienen un significado común.
Lenguaje unificado de modelado (UML)
Si todos los participantes hablan UML, entonces las imágenes tienen el mismo significado para todos aquellos que las observen.
“Una imagen vale más que mil palabras”
¿Por qué usar UML?
Es más fácil dibujar algunas imágenes sencillas que escribir código.
Es más barato, rápido y fácil cambiar modelos que cambiar código.
Si cada uno usa imágenes diferentes para dar a entender lo mismo, entonces las imágenes se agregan a la confusión.
Diagrama de casos de uso
Diagrama de actividades
Diagrama de clases
Diagrama de secuencia
Diagrama de colaboración
Diagrama de estados