1.5.4 Apuntes Análisis y Diseño de Software
1.5.4 Apuntes Análisis y Diseño de Software
Software
Importancia del
Análisis y Diseño
01 Modelado de
Software
Elementos usados en Desarrollo de
Software Notación
p.e. UML, DFDs, ER,
etc.
Herramientas Proceso
p.e. Rational Rose p.e. Rational Unified
StarUML, Poseidon, Process
etc. Métrica 3.0, XP, etc.
Modelos y Diagramas
Analizar y Diseñar conlleva modelar, es decir, NO estamos escribiendo código …
pero debe existir alguna conexión entre los modelos y el código ¿no?
Un modelo captura una vista de un sistema del mundo real. Es una abstracción de
dicho sistema, considerando un cierto propósito. Así, el modelo describe
completamente aquellos aspectos del sistema que son relevantes al propósito del
modelo, y a un apropiado nivel de detalle
Diagrama: una representación gráfica de una colección de elementos de
modelado, a menudo dibujada como un grafo con vértices conectados por arcos
Un modelo se representa a través de 1 o más diagramas
Modelos y Diagramas
Un proceso de desarrollo de software debe ofrecer un conjunto de modelos que
permitan expresar el producto desde cada una de las perspectivas de interés
El código fuente del sistema es el modelo más detallado del sistema (y además es
ejecutable!!). Sin embargo, se requieren otros modelos ...
El modelado facilita:
• Comunicación de ideas
• Evaluar alternativas
• Aproximación gradual al producto
• “Visualizar” el producto
Construcción de
una casa familiar
• Construida eficientemente y en un
tiempo razonable por un equipo
• Requiere:
Modelado
Proceso bien definido
Herramientas más sofisticadas
Grado de modelado
Según envergadura/complejidad del producto
Sin
comentarios
Grado de modelado: Según su
explotación
Generar parcial o totalmente una
Nivel de aprovechamiento
3 implementación a partir de los modelos
de los modelos
2 Tomar decisiones de análisis/diseño
que condicionen la implementación
0 “Documentar” (a posteriori)
¿Qué es Análisis y Diseño?
“Una especificación de análisis es independiente de la plataforma de
implementación”
Otras frases usuales: “Análisis es establecer el qué, mientras que diseño es
establecer el cómo”
El análisis “clásico” actualmente se divide en Requisitos y Análisis.
En un enfoque OO normalmente se encadenan Análisis y Diseño sin enfatizar
sus diferencias
MDA (Model-Driven Architecture) establece CIM (Computer Independent
Model),
PIM (Platform Independent Model) y PSM (Platform Specific Model)
Enfoques para
especificación/modelado de
software
Especificación / Modelado Implementación
Fron t-End
?
IU
App (nativa o mixta),
Web, o Deskstop
Bac k-End
Servicios
BD
Presentación / IU & UX
+
Software = Lógica / Procesos / Comportamiento
+
Datos / BD / Estructura
Enfoques para
especificación/modelado de
software Especificación / Modelado Implementación
Diagramas de
IU
Diagramas de Flujo App (nativa o mixta),
Estructura
de Datos Web, o Deskstop
Enfoque
Estructurado
Modelo
Diagramas E-R
Relacional
Back-End
Servicios
Enfoque
Orientado a Diagramas de UML
Objetos
Modelo BD
Relacional !!
Presentación / IU & UX
+
Software = Lógica / Procesos / Comportamiento
+
Datos / BD / Estructura
¿Qué rescato o creo que es
¡1 Cosa! importante recordar el modelado
¿Qué recuerdas? de software?
02 Enfoque
Estructurado
Modelado de
Procesos
Diagrama de Flujo de Datos (DFD)
Libros
Editores
pedido
Cliente detalle libro
dirección
2.1 2.2
Verificar si Armar
el pedido requisición
es válido a editores
Estado de crédito
orden de compra
pedido valido
pedido por lote
Editor
Clientes
Pedidos Pendientes
Procesos BPMN
Modelado de
Datos
Diagramas Entidad-Relación –
Ejemplo 1
Diagramas Entidad-Relación –
Ejemplo 2
¿Qué rescato o creo que es
¡1 Cosa! importante recordar sobre los
¿Qué recuerdas? modelos estructurados?
Micro Break
03
Enfoque
Orientado a
Objetos
Ventajas del Enfoque Orientado a
Objetos
Proximidad de los conceptos de modelado respecto de las entidades del mundo
real
• Mejora captura y validación de requisitos
• Acerca el “espacio del problema” y el “espacio de la solución”
Consultar Medidas
Ciudadano Administrador
Gestionar Bandas
Editlocation al publicar o ClearLocation al
no publicar una ubicación
Servicio Web GIS
Gestionar Asignaciones
Terminar Automáticamente
Gestionar Incidencias Descargar a Fichero Asignaciones
Cuadro de Mandos Autoimport
Email Email
SMS
Reusabilida
d El modulo de exportación de reportes en formato XML deberá poder
(Reusability ser reusado en todas las aplicaciones para retail.
)
Testeabilida
d La complejidad ciclomática de un modulo no deberá exceder de 20.
(Testability)
Modelo de
Análisis y Diseño
Diagrama de Clases
El Diagrama de Clases es el diagrama principal para
el análisis y diseño del sistema
Un diagrama de clases presenta las clases del
sistema con sus relaciones estructurales y de
herencia
La definición de clase incluye definiciones para
atributos y operaciones
empleador trabajadores
Empresa Empleado
* 1..*
Cargo
superior
nomb
re 0..1
sueldo
subordinado 1..*
Ejemplos - Generalización
Trabajador
{ disjunta, completa }
1..4 1..2 1
1 n
n
1 n 1 n
Avión Vuelo Reserva
n
{ disjunta, completa }
{ disjunta, completa }
* 0..
1 1
* Be
d Presenc
NotificationDefiniti +name: e Needed only when NO
on String -state:
+event: PresenceState control record is stored
0..
EventType 0..
1
+message: 1 *
String
+tono: Int 1 *
ControlRecor 0..
Reside d 1 Employe
nt +controlName: String e
+name: +controlTableName: String 1 +name:
1 *
<<enumeration>> String * String
EventType +recordType: Int[0..1]
<<enumeration>>
<<newWF>>+call PresenceState Persistence of classes
<<enumeration> controlTableName and recordType
+presence > coloured
+called must be included in this class only if
+cancel DeviceType in ligth red is provided by
+presence
+timeOutDismissed +PC ResiPlus Database. Their the solution
+cancelled
+timeOutCancelled +PP includes ResiPlus. Furthermore, only if tableName is
+finished data should be stored in DE
+dismiss +TB "ResiRegistros", recordType indicates the "IDTipoRegistro"
+dismissed Database in case of ResiPlus
+control
wasn't included in the used as a
+finish
solution foreign key to the ResiPlus table "TiposRegistros"
Diagrama de Clases como Modelo
de Análisis
if the place has already an open presence.
cal cal Record new calls if they came from a
l l different addresses and with 1 value, else
timeOutDismiss ignore them
Dismiss ed Called
ed
presenc
e call:
canc cal
Events It is the reception of NotiFyEvent
el l
timeOutDissmissed, with one address of type PC o TB
timeOutCancelled, and Presenc associated
cancel generate e to the place, and with value 1.0. In case of
deactivation of devices Cancelled repeated reception on this notification it will
(sending '0' to the timeOutCancell be recorded
correspondings addresses). ed but the presence will stay in the same state.
presence:
Events It is the reception of NotiFyEvent
control(Employee,ControlRecor with one address of type PP
ds) and finish(Employee) associated
control(Employee,
generate the same action ControlRecords) to the place, and with value 1.0
only when they came from the control(Employee, cancel:
Presence state ControlRecords) It is the reception of NotiFyEvent
finish(Employe finish(Employe with one address of type PP
e) e) associated
Finishe to the place, and with value 0.0
d
Any reception of NotiFyEvent that does not
accomplish these conditions will be ignored.
Acceso a BD
R
u
t
i
n
a
s
d
e
C
o Terminal de Consulta
n Interfaz de Terminal
e Rutinas de Coneccion
c
c
i
Punto de Venta o
Rutinas de Coneccion
n
Despliegue
Operations:
- NotifyEvent(EIBAddesses: string[ ], Value: float, Ack: string)
with the list of EIBAddress and 0.0 as the value indicating deactivation of such
Operation:
addresses
- NotifyEvent(EIBAddesses: string, Value: float, Ack:string) with the list of EIBAddress and 1.0
-SendMessageDECT(DECTNumbers: string(3)[ ], Message: string(25), Tono: int,
as value, indicating activation of such addresses, or 0.0 in case of the event "cancel"
Ack: string) with the list of DECT numbers and the message
asociated to a PP device
- CheckAddresses(EIBAddresses: string[], Value: bit[], Ack: string)
- ImportAddresses(EIBAAddresses: string[], Ack: string)
<<ResiPlus TE
UCPersonal Module>>
UCRegistrar
ResiPlus ResiPlus DE
Server Coordinator
DE_EventNotifier <<WCF DE_Monitorin
Service>> <<ResiPlus TE
g Module>>
DE_Services
UCControles
BD ResiPlus
DE <<ResiPlus TE
Historical Module>>
UCEResidentes
WorkFlowManag
BD DE er
Souza, R. G. M., & Stadzisz, P. C. (2016). PROBLEM-BASED SOFTWARE REQUIREMENTS SPECIFICATION. Revista Eletrônica de Sistemas
de Informação, 15(2), 2. https://doi.org/10.21529/RESI.2016.1502002
Qué es un “Problema”
• Tenemos una nueva oportunidad de negocios para llegar a este nuevo mercado digital
• Hemos crecido, pero los costos en nuestra bodega son muy altos debido a la falta de
control en nuestro inventario
• Tenemos multas que pagar al SII por no llevar una contabilidad ordenada.
• Sabemos que el negocio va bien, pero no tenemos datos que nos permitan entender bien
qué es lo que les gusta a nuestros clientes
• Tenemos fuga de clientes y la competencia está quitándonos los clientes. Creemos que
puede ser su nueva tecnología
• Tenemos una visión para los próximos 5 años y tenemos que realizar un cambio
corporativo. Es importante realizar una transformación digital para responder al mercado.
Necesidades del Cliente
• Mientras exista un problema, existe una necesidad
no satisfecha, por lo tanto resolver la necesidad es
el resultado de la solución al problema.
• La necesidad está definida por clientes reales y
son parte del alcance del problema.
• Las necesidades tendrán, en general, un lenguaje
no técnico y simple para expresar lo que resuelve
el problema. Pero no son una descripción de una
funcionalidad.
Necesidades del Cliente
• Tenemos una nueva oportunidad de negocios para llegar a este nuevo mercado digital
• Necesitamos un Ecommerce para atender a estos nuevos clientes
• Hemos crecido, pero los costos en nuestra bodega son muy altos debido a la falta de control en
nuestro inventario
• Necesitamos un sistema que nos ayude a gestionar nuestra bodega, un WMS podría
servirnos
• Tenemos multas que pagar al SII por no llevar una contabilidad ordenada.
• Tenemos que implementar un ERP para mejorar la contabilidad de la empresa
• Sabemos que el negocio va bien, pero no tenemos datos que nos permitan entender bien qué
es lo que les gusta a nuestros clientes
• Podría ser que un CRM sea lo mejor para obtener información de nuestros clientes
• Tenemos fuga de clientes y la competencia está quitándonos los clientes. Creemos que puede
ser su nueva tecnología
• Tenemos que desarrollar una nueva plataforma para entregar un servicio distinto
Conceptos Claves
• Problema del cliente: Aquello
relativo a una dificultad que
requiere de una solución y que
representa un dolor o riesgo
• Concepto de software: Es la
referencia de la necesidad de
software que tiene el cliente.
• Visión de Software: Es una
mirada macro del tipo de
solución o software al que se
quiere llegar. Dependencia causal entre problemas, necesidades y requisitos
Concepto de Software (elemplo)
Una empresa tiene fuertes dificultades para entablar relaciones de manera eficaz con sus
clientes y está convencida de que un sistema de información como CRM puede contribuir a
reducir estas dificultades.
Visión del Software (ejemplo)
Una empresa tiene fuertes dificultades para entablar relaciones de manera eficaz con sus
clientes y está convencida de que un sistema de información como CRM puede contribuir a
reducir estas dificultades.
Cómo listamos los problemas
• Sustantivo: Indica quien está sufriendo el problema
• Verbo: Indica la severidad y la forma en que afecta al sujeto
• Objeto: El problema en sí que está
• Penalidad: El costo o dolor o dificultad, que es la consecuencia
Producto/Servicio
Proceso Iterativo e Incremental
Vs1 Vs2 Vs3
Backlog
Especificación y modelado Ágil
Especificación y modelado realizados de forma iterativa e incremental.