Escolar Documentos
Profissional Documentos
Cultura Documentos
Análisis de Software
Introducción
• Durante esta disciplina analizamos los
requisitos que se describieron en la
captura de requisitos refinándolos y
estructurándolos
• El objetivo de hacerlo es:
– Conseguir una comprensión mas precisa de
los requisitos y
– Una descripción de los mismos que sea fácil
de mantener y que nos ayude a estructurar el
sistema entero, incluyendo la arquitectura
Clases de Interfaz
• Se utilizan para modelar la interacción
entre el sistema y sus actores.
• Esta interacción a menudo implica recibir (y
presentar) información y peticiones de (y
hacia) los usuarios y los sistemas
externos
• Las clases interfaz modelan las partes del
sistema que dependen de sus actores
Clases de Entidad
• Se utilizan para modelar información que
posee una vida larga y que es a menudo
persistente
• Las clases de entidad modelan la
información y el comportamiento asociado
de algún fenómeno o concepto
• En la mayoría de los casos las clases de
entidad se derivan directamente de una
clase de entidad del negocio tomado del
modelo de objetos del negocio
Pide
Busca / Registra
Copia
(from BEntities)
Verifica / Actualiza Estado / Registra / Ubica
Busca Video
Utiliza
Genero
Operario
(from BEnt ities)
(from B Workers)
Copia
Estante
(from BEntities)
Genero
Estante
Clases de Control
• Representan coordinación, secuencia,
transacciones y control de otros objetos y se
usan con frecuencia para
encapsular el control de un UC
en concreto
• También se usan para representar
algoritmia y cálculos complejos,
como la lógica del negocio, que
no pueden asociarse con ninguna
información concreta, de larga
duración almacenada por el sistema
Roles en el Análisis
• En el análisis tenemos tres roles
principales:
– Arquitecto
– Ingeniero de Casos
de Uso
– Ingeniero de
Componentes
Trabajador: Ingeniero
de casos de uso Ingeniero de
Casos de Uso
10
Ing. De Software I Universidad Nacional de Cajamarca
Trabajador: Ingeniero
de Componentes Ingeniero de
Componentes
• Define y mantiene las responsabilidades,
atributos, relaciones y requisitos especiales de
una o varias clases del análisis.
• Asegura que cada clase del análisis cumple con
los requisitos que se esperan de ella de acuerdo
a las realizaciones de caso de uso en las que
participa
• Mantiene la integridad de los paquetes
– Garantiza que sus contenidos son correctos
– Es responsable de las clases contenidas en los
mismos
11
Ing. De Software I Universidad Nacional de Cajamarca
1 * *
Modelo Sistema Paquetedel
del del Análisis
Análisis Análisis
* *
* *
Realización de
Clase del casos de uso -
Análisis Análisis
<<trace>>
12
Ing. De Software I Universidad Nacional de Cajamarca
¿Cómo especificamos la
realización?
• Diagramas de Clases
– Adjuntamos diagramas de clases a las realizaciones de casos
de uso, mostrando sus clases participantes y sus relaciones
• Diagramas de Interacción
– Se prefiere mostrar esta parte dinámica con diagramas de
colaboración ya que el objetivo es identificar requisitos y
responsabilidades
• Flujos de sucesos – análisis
– Texto explicativo para especialmente los diagramas de
colaboración
• Requisitos especiales
– Descripciones que recogen los requisitos no funcionales sobre
una realización de casos de uso
13
Ing. De Software I Universidad Nacional de Cajamarca
• Identificación
– ¿Qué subdivisiones lógicas pueden tener las clases
identificadas?
– ¿Qué subconjunto de clases y casos de uso pueden
ser reutilizados en otros dominios?
• Cada paquete de análisis debe contener:
– Los casos de uso necesarios para poder especificar
un proceso de negocio
– Los casos de uso necesarios para poder especificar
un actor del sistema
– Los casos de uso que son descritos en las relaciones
de generalización y extensión
– Combinar clases que tienen que ver con los mismos
casos de uso en un paquete
Flujo de Trabajo
Análisis de la
Arquitecto arquitectura
Ingeniero de Analizar un
caso de uso
Casos de Uso
14
Ing. De Software I Universidad Nacional de Cajamarca
Actividad: Análisis de la
Análisis de la
arquitectura arquitectura
15
Ing. De Software I Universidad Nacional de Cajamarca
Actividad: Analizar un
caso de uso Analizar un
caso de uso
16
Ing. De Software I Universidad Nacional de Cajamarca
17
Ing. De Software I Universidad Nacional de Cajamarca
Actividad: Analizar
una clase Analizar una
clase
– Identificar responsabilidades
• Las responsabilidades de una clase pueden
recopilarse combinando todos los roles que
cumple en diferentes realizaciones de caso de uso
• Para identificar todas las realizaciones de caso de
uso en las que participa nos apoyamos en el
estudio de diagramas de clase y de interacción y
también en la documentación
• Una técnica simple es extraer responsabilidades
de cada rol en una realización de caso de uso tras
otra
18
Ing. De Software I Universidad Nacional de Cajamarca
– Identificación de atributos
• El nombre debería ser un sustantivo
• En el análisis, deben ser de tipo conceptual
• Reutilizar tipos ya existentes
• Tratar de no compartir atributos en varias clases
• Las clases entidad se pueden basar en las clases
entidad del negocio de la cual tiene traza
• En las clase interfaz: Hacen referencia a
elementos de información manipulada como
textboxes
• En las clases control los atributos son poco
frecuentes por tener muy poco tiempo de vida
– Identificación de asociaciones y
agregaciones
• Los objetos del análisis interactúan unos con otros
mediante enlaces en los diagramas de
colaboración
• Estos enlaces suelen ser instancias de
asociaciones entre sus correspondientes clases
• Debemos estudiar los enlaces empleados en las
colaboraciones para determinar que asociaciones
son necesarias.
• NO son las relaciones del mundo real lo que
deberíamos modelar como agregaciones o
asociaciones, si no las relaciones que deben
existir en respuesta a las demandas de las
diferentes realizaciones de caso de uso
19
Ing. De Software I Universidad Nacional de Cajamarca
– Identificación de generalizaciones
• Las generalizaciones deberían utilizarse durante el
análisis para extraer comportamiento compartido y
común entre varias clases del análisis diferentes
• Las generalizaciones deberían mantenerse en un
nivel alto y conceptual
• Su objetivo debería ser hacer el modelo de
análisis más fácil de comprender
• Es durante el diseño donde ajustaremos las
generalizaciones para que encajen mejor con el
entorno de implementación elegido (plataforma de
desarrollo y lenguaje de programación)
Actividad: Analizar
un paquete Analizar un
paquete
20