CAPITULO CUATRO

Anuncio
CAPITULO CUATRO
METODOLOGIAS PARA EL DISEÑO DE SISTEMAS
James Rumbaugh: Una metodología de ingeniería del software es un proceso para
producir software de forma organizada, emplea una colección de técnicas y
convenciones de notación predefinidas.
Mario Piattini: Define una metodología como un conjunto de procedimientos, técnicas,
herramientas y un soporte documental que ayuda a los desarrolladores a realizar nuevo
software.
Metodologías:
 Diseño estructurado
 Prototipos
 Orientada a objetos (OO)
 Desarrollo rápido de aplicaciones (RAD)
PROCESO UNIFICADO DE DESARROLLO (PUD)
¿Qué es un proceso?
Un proceso define quien esta haciendo que, cuando lo esta haciendo y como se puede
hacer para alcanzar un determinado objetivo. Es necesario un proceso bien definido para
desarrollar sistemas de software de manera repetible y predecible. Esto permite mejorar
en cada nuevo proyecto e incrementar la eficiencia y productividad de la organización.
¿Qué es un proceso unificado de desarrollo?
RUP por sus siglas en inglés (Racional Unified Process)
El PUD es un proceso de desarrollo de sistemas, es un proceso marco, debido a que no
existe un proceso universal que resuelva los problemas de todo tipo de organización.
Por lo tanto, es flexible y extensible ya que permite varias estrategias de desarrollo. El
proceso unificado guía a los equipos de proyecto en como administrar el desarrollo
iterativo de un modo controlado mientras se equilibran los requerimientos del negocio,
el tiempo al mercado y los riesgos del proyecto. El proceso describe que productos
crear, como desarrollarlos y también provee patrones. El proceso unificado es soportado
por herramientas que automatizan, entre otras cosas, el modelado visual, la
administración de cambios y las pruebas.
Elemento
Pregunta a responder
Fase e iteraciones
¿Cuándo se hace?
Flujos de trabajo de procesos (actividades ¿Qué se esta haciendo?
y pasos)
Artefactos
(modelos,
reportes, ¿Qué se produjo?
documentos)
Trabajador: un arquitecto
¿Quién lo hace?
EL CICLO DE VIDA DEL SOFTWARE EN EL PROCESO UNIFICADO
1. CONCEPCION
2. ELABORACIÓN
3. CONSTRUCCIÓN
4. TRANSICION
La concepción es la definición del alcance del proyecto y definir el caso de uso. La
elaboración es la acción de proyectar un plan, definir las características y cimentar la
arquitectura. La construcción es crear el producto y la transición es transferir el
producto a sus usuarios.
Diseño Conceptual:
Se considera como un análisis de actividades y consiste en la solución de negocios para
el usuario y se expresa con los casos de uso.
Diseño Lógico:
Traduce los escenarios de uso creados en el diseño conceptual en un conjunto de objetos
de negocio y sus servicios.
Diseño Físico:
Traduce el diseño lógico en una solución implementable y costo efectivo o económico.
El componente es la unidad de construcción elemental del diseño físico.
CARACTERISTICAS DEL PUD
Dirigido por casos de uso:
Especifica un comportamiento deseado del sistema. Es decir, representa los requisitos
funcionales del sistema. Describen que hace el sistema no como lo hace.
Un diagrama de casos de uso es un documento narrativo que establece una secuencia de
eventos para completar un proceso entre un actor y el sistema.
Un caso de uso especifica una secuencia de acciones, incluye variantes que el sistema
puede ejecutar y que produce un resultado observable útil para un particular actor. Las
instancias de los actores son los usuarios del sistema, ellos llevan a cabo un número de
operaciones con el sistema y desarrollan una secuencia de transacciones en
comunicación con el sistema. A esta secuencia de acciones se llama Caso de uso.
Centrado en la Arquitectura (Limites)
La arquitectura es prioritaria desde el principio hasta el final. La arquitectura es una
vista del diseño completo con las características más importantes resaltadas, dejando los
detalles a un lado.
Iterativo e incremental:
Esta característica se fundamenta en que el usuario no sabe exactamente lo que quiere
del sistema.
ITERACION: Es el esfuerzo de trabajo en un proyecto que recorre varias etapas de
desarrollo (no necesariamente todas) y al final del mismo se ha incrementado el material
disponible sobre el sistema.
INCREMENTO:
Un avance significativo en el grado de especificación, diseño, implementación o prueba
del sistema que tenga lugar durante una iteración. El PUD puede verse como una serie
de desarrollos cortos (mini proyectos de 2 a 6 semanas). Cada iteración reproduce el
ciclo de vida a menor escala. Cada mini proyecto es una iteración (flujo de trabajo) que
resulta en un incremento ya que crece el producto. Cada iteración tiene a su vez una
serie de flujos de trabajo: Requisitos, análisis, diseño, implementación y prueba.
En esta iteración no solo se mejoran los productos sino que el sistema también crece,
por ello se refiere al PUD como un proceso incremental. El resultado de cada iteración
es un sistema ejecutable. Puede ser que el sistema este incompleto y no este listo para
su instalación definitiva. Para lograr un sistema instalable se requiere de varias
iteraciones. Podemos imaginarlo como una evolución de prototipos ejecutables.
Cada iteración comprende:
 Planificación de la iteración (estudio de riesgos)
 Análisis de Casos de uso y escenarios
 Diseño de opciones arquitectónicas
 Codificación y pruebas.
 Evaluación de la entrega ejecutable
 Preparación de la entrega
Vida de un sistema:
La vida de un sistema consiste en una serie de ciclos que incluyen desde su nacimiento,
los ciclos intermedios, hasta su muerto. Cada ciclo tiene varias fases. Al resultado de
las actividades de los flujos de trabajo se le denomina artefactos. Un artefacto es
cualquier tipo de información producida por los desarrolladores de un sistema, ya sean
diagramas UML.
Etapas y fases del ciclo de vida:
Inicio, elaboración, construcción, transición.
Inicio:
En esta etapa se definen el ámbito y los objetivos del proyecto. Al inicio de un proyecto
hay que contestar algunas preguntas como:
¿Cuál es la visión del sistema?
¿Es viable?
¿Se puede comprar o hay que fabricar el sistema?
¿Cuánto va a costar?
Y finalmente ¿se sigue delante o se detiene el proceso?.
Elaboración:
Se define la funcionalidad y una arquitectura básica del sistema.
Construcción:
En esta etapa se desarrolla el producto a través de iteraciones. Cada iteración involucra
análisis, diseño e implementación como se vio anteriormente. La arquitectura básica se
refina de manera incremental conforme se construye.
Transición:
En esta etapa se libera el producto y se entrega al usuario para su uso real. Además, se
incluyen tareas de instalación, configuración, entrenamiento, soporte, mantenimiento,
etc.
RELACION ENTRE PUD Y UML
UML es el lenguaje de modelado seleccionado como estándar por la OMG (Object
Management Group). El proceso unificado es un proceso que sirve de marco para el
desarrollo de un proyecto de software, el cual es adaptable. UML es el lenguaje a
utilizar para plasmar las diferentes vistas del sistema. Sirve para representar la
información recabada y utilizada durante el proceso unificado de desarrollo. UML es
una de las herramientas utilizadas durante el PUD.
INTRODUCCIÒN A OBJETOS
La programación orientada a objetos
(OOP por sus siglas en inglés de Object Oriented Programming) Es un enfoque o
manera de visualizar la realidad.
Fundamentos:
El paradigma OO se basa en el concepto de objeto. Un objeto es aquello que tiene
estado (propiedades mas valores), comportamiento (acciones y reacciones a mensajes) e
identidad (propiedad que lo distingue de los demás objetos).
LENGUAJE UNIFICADO DE MODELADO (UML)
¿Que es modelo? Es una simplificación de la realidad.
¿Por qué se modela? Porque permite visualizar como es o se desea que sea el sistema.
Características que debe llenar un buen modelo:
Exacto, consistente, fácil de comunicar a otros, fácil de cambiar, entendible.
¿Qué es UML?
Proviene de las siglas formadas por la primera letra de Unified Modeling Language, que
traducido Lenguaje Unificado de modelado. UML provee a los analistas y arquitectos
de sistemas que trabajan en el diseño y análisis de objetos de un lenguaje consistente
para especificar, visualizar, construir y documentar los artefactos de un sistema de
software, así también es útil para hacer modelos de negocios.
UML NO ES
Un lenguaje de programación visual, sino un lenguaje de modelado visual.
Una herramienta o depósito de especificación, sino un lenguaje para modelado de
especificación.
Un proceso sino que habilita procesos.
Utilidad de UML
Se enfoca en el corazón de un conjunto de conceptos para adquirir, compartir y utilizar
los conocimientos.
Modelado ampliamente aplicable, puede ser empleado en diferentes tipos de sistemas
(software y no-software)
Modelado soportable por herramientas, las herramientas ya están disponibles para
soportar la aplicación del lenguaje para especificar.
Modelado industrialmente estandarizado, no es un lenguaje cerrado, propiedad de
alguien, sino más bien, un lenguaje abierto y totalmente extensible reconocido por la
industria.
Objetivos en el diseño de UML
Modelar sistemas, desde los requisitos hasta los artefactos ejecutables, al utilizar
técnicas OO.
Cubrir aspectos relacionados con el tamaño propio de los sistemas complejos y críticos.
Lenguaje utilizable por las personas y las maquinas.
Encontrar equilibrio entre expresividad y simplicidad.
UML define nueve tipos de diagramas:
1. Clases
2. objetos
3. casos de usos
4. secuencia
5. colaboración
6. transición de estados
7. actividad
8. componentes
9. distribución.
CUESTIONARIO
1. ¿Cuales son las diversas metodologías de diseño existentes?
Diseño Estructurado, prototipos, orientada a objetos, desarrollo rápido de
aplicaciones.
2. ¿Qué es un proceso?
Describe un conjunto de actividades que deben realizarse en un determinado
orden, qué hacer, como hacerlo, cuándo hacerlo y el motivo por el cual debe
hacerse.
3. ¿Qué significa PUD?
Proceso unificado de desarrollo
4. ¿Qué es el Proceso Unificado de Desarrollo?
Es un proceso de desarrollo de sistemas, es un proceso “marco”, debido a que no
existe un proceso universal que resuelva los problemas de todo tipo de
organización.
5. ¿Cuáles son los ciclos de vida del software en el proceso unificado?
Concepción, elaboración, contracción y transición.
6. ¿Qué es el diseño conceptual?
Se considera como un análisis de actividades y consiste en la solución de
negocios para el usuario y se expresa con los casos de uso.
7. ¿Qué es diseño lógico?
Traduce los escenarios de uso creados en el diseño conceptual en un conjunto de
objetos de negocio y sus servicios. El diseño lógico, se convierte, en parte, en la
especificación funcional que se usa en el diseño físico.
8. ¿Qué es el diseño físico?
El diseño físico traduce el diseño lógico en una solución implementadle y costo
efectiva o económica. El componente es la unidad de construcción elemental del
diseño físico.
9. ¿Cuáles son las características del PUD?
Es dirigido por casos de uso.
Es centrado en la arquitectura
Iterativo e incremental.
10. ¿Qué es el caso de uso?
Especifica un comportamiento deseado del sistema. Es decir, representa los
requisitos funcionales del sistema. Describen que hace el sistema, no como lo
hace.
11. ¿Qué es el centrado en la arquitectura?
La arquitectura es prioritaria desde el principio hasta el final. La arquitectura es
una vista del diseño completo con las características más importantes resaltadas
dejando los detalles a un lado.
12. ¿Qué es el iterativo e incremental?
Esta característica se fundamenta en que el usuario no sabe exactamente lo que
quiere del sistema. Se facilita el proceso al repetir una serie de fases una y otra
vez para ir afinando los requerimientos del sistema y obtener en cada fase un
incremento en la definición.
13. ¿Cuáles son las etapas y fases del ciclo de vida?
Inicio, elaboración, construcción y transición.
14. ¿Cuál es la relación entre PUD y UML?
UML es el lenguaje de modelado seleccionado como estándar por la OMG. PUD
es el lenguaje modelado es la notación que se usan los métodos para expresar un
diseño. El proceso indica los pasos que se deben seguir para llegar a un diseño.
15. ¿Qué es un UML?
Proviene de las siglas formadas por la primera letra de Unified Modeling
Lenguaje, que traducido al español significa Lenguaje Unificado de Modelado.
UML provee a los analistas y arquitectos de sistemas que trabajan en el diseño y
análisis de objetos de un lenguaje consistente para especificar, visualizar,
construir y documentar los artefactos de un sistema de software.
Descargar