Professional Documents
Culture Documents
3 I.T.I.Gestin
Miguel A. Laguna
Comprender los elementos caractersticos de la ingeniera del software Conocer de forma detallada los mtodos y herramientas de especificacin de requisitos Ser capaz de elaborar la especificacin completa de un sistema utilizando las herramientas, mtodos y procedimientos mostrados en el curso
1. Introduccin
Ingeniera del Software I 3 I.T.I.Gestin
Miguel A. Laguna
3
Objetivos
Presentar la disciplina de ingeniera del software y explicar su importancia Preguntas ms frecuentes (FAQs) sobre la ingeniera del software, proceso software, UML y aspectos ticos de la profesin
Qu es el Software?
Hace referencia a los programas y toda la informacin asociada y materiales necesarios para soportar su instalacin, operacin, reparacin y mejora. Para construir un nuevo elemento software se necesita: Detallar las especificaciones Disear la solucin Codificar el algoritmo Probar el programa Documentar Mantener Es lo que se conoce como el ciclo de vida del software.
9
La Ingeniera del Software tiene que ver con el desarrollo de forma que sea econmicamente viable
12
11
El software se deteriora
Incremento de fallos
Definicin
Desarrollo
Tiempo
13 14
15
Cul es la diferencia entre Ingeniera del Software y las Ciencias de la Computacin? Las Ciencias de la Computacin tienen que ver con teoras y fundamentos La Ingeniera del Software tiene que ver con los aspectos prcticos del desarrollo del software
Cul es la diferencia entre Ingeniera del Software e Ingeniera de Sistemas? La Ingeniera de Sistemas tiene que ver con todos los aspectos del desarrollo de sistemas basados en computadoras: hardware, software e Ingeniera de procesos. Ingeniera del Software es una parte de este proceso
20
19
SWEBOK
(c)
(d)
(e)
22
SWEBOK
Gua Gua SWEBOK (II) SWEBOK (II) Gestin de la Gestin de la configuracin configuracin Gestin del proceso de gestin de la configuracin Identificacin de l Id tifi i d la configuracin del software Control de la configuracin del software Registro del estado de la configuracin del software Auditora de la gestin de la configuracin Gestin de la distribucin del software Gestin Gestin de la IS de la IS Gestin de la organizacin Gestin d l G ti del proceso/proyecto Medida de la IS Proceso de Proceso de IS IS Conceptos del proceso de IS Infraestructura del proceso Medida del proceso Definicin del proceso Anlisis cualitativo del proceso Implementacin y cambio del proceso Herramientas y Herramientas y mtodos de la IS mtodos mtodos de la IS Herramientas software Mtodos software Calidad del Calidad del software software Conceptos sobre calidad del software Propsito y planificacin f del SQA y de la V&V Actividades y tcnicas para SQA y V&V Mtricas aplicadas al SQA y a la V&V
(a)
(b)
(c)
(d)
(e)
23
Qu es un sistema?
Un conjunto de elementos (hombres, mquinas, mtodos, reglas) en interaccin, que transforman (mediante un proceso) unos elementos (entradas) en otros (salidas).
Los sistemas no son entidades independientes, existen en un entorno:
El entorno afecta al funcionamiento y rendimiento del sistema. El sistema puede estar diseado para hacer cambios en el entorno.
25
Sistema y subsistemas
Subsistemas:
Sistema fsico: Transforma un flujo fsico de entradas en un flujo fsico de salidas.
nivel operativo de la organizacin.
Sistema de gestin: controla el sistema fsico, decidiendo el comportamiento del mismo en funcin de los objetivos marcados.
26
Sistema y subsistemas
Fijacin de nuevos objetivos SISTEMA DE GESTIN OBJETIVOS Informacin de objetivos
Qu es un sistema de informacin?
Sistema de Informacin: Est encargado de
almacenar y tratar informaciones sobre el sistema fsico para ponerlas a disposicin del sistema de gestin recibir decisiones sobre su propio control interaccionar con el sistema fsico
Decisin de comportamiento
Qu es un sistema de informacin?
SIST. DE GESTION
Objetivos
Qu es un sistema de informacin?
Una empresa tpica cuenta con un SI compuesto por los siguientes subsistemas:
Subsistema de Recursos Humanos: Se ocupa tanto de la gestin del personal como de la nmina. ti d l l d l i Subsistema de Gestin Contable: Tanto para el control interno de la empresa como para hacer frente a las obligaciones legales. Subsistema de Gestin Comercial: Para el control de los clientes y de las ventas. Subsistema de Control de las Existencias: Del almacn y del inventario de bienes. 30
SIST. DE INFORMACION Interaccin Informacin con el sistema fsico Entrada Salida SIST. FISICO
29
Propiedades emergentes
La compleja relacin entre los subsistemas de un sistema significa que ste es ms complejo que la suma de sus partes. Las L propiedades emergentes son i d d consecuencia de las relaciones entre los componentes. Slo pueden asegurarse y observarse cundo el sistema se considera como un todo.
31
32
La usabilidad
Esta propiedad compleja no depende slo del hardware y del software sino que tambin depende de los operadores y del entorno en que se utilice.
33
Qu es un mtodo?
Resulta necesario establecer un enfoque sistemtico y disciplinado para llevar a cabo un desarrollo software Definiciones:
Una metodologa de ingeniera del software es un proceso para producir software de forma organizada, empleando una coleccin de tcnicas y convenciones de notacin predefinidas (James Rumbaugh et al.) Conjunto de procedimientos, tcnicas, herramientas y un soporte documental que ayuda a los desarrolladores a realizar nuevo software (Mario Piattini et al.)
35
Componentes de un mtodo
Together Rose
UML
Proceso: Define el marco de trabajo y permite un desarrollo racional de la IS Tcnicas: Indican cmo construir tcnicamente el software. Incluyen tcnicas de modelado Herramientas: Proporcionan el soporte automtico o semiautomtico para el proceso y para las tcnicas
UP
36
Qu es un proceso software?
Un conjunto estructurado de actividades y resultados asociados que conducen a la creacin de un producto de software: Especificacin de requisitos: Definir la funcionalidad y las restricciones en sus operaciones Diseo e implementacin: Producir software que cumple la especificacin Validacin: Asegurar que hace lo que el cliente desea. Mantenimiento (o Evolucin): Seguir cumpliendo los cambios en las necesidades del usuario.
37
38
Feasibility report
39
40
Diseo e implementacin
Etapa en la que se convierte la especificacin del sistema en un sistema ejecutable Diseo del software
Describir la estructura del software los datos las software, datos, interfaces entre componentes,
Diseo e implementacin
Requirements specification Design activities Architectural design Abstract specification Interface design Component design Data structure design Algorithm design
Implementacin
Transformar la estructura anterior en un programa ejecutable
System architecture Software specification Interface specification Component specification Design products Data structure specification Algorithm specification
42
Tcnicas de diseo
Formas sistemticas de disear el sistema Generalmente se documenta con modelos grficos:
Diagramas de flujo de datos (DFDs) Diagramas Entidad-Relacin Diagramas de estructura Modelos orientados a objetos
43
44
Service
Acceptance test
Prueba de aceptacin
46
Modify systems
Existing systems
New system
48
50
Reengineering tools
Testing tools Debugging tools Program analysis tools Language-processing tools Method support tools
Tools
Workbenches
Environments
Editors
Compilers
File comparators
Integrated environments
Process-centred environments
Programming
Testing
Planning tools
Multi-method workbenches
Single-method workbenches
General-purpose workbenches
Language-specific workbenches
Specification
51
Design
Implementation
1.4.1
Medicin de la Productividad
Se intenta determinar una medida de la cantidad de software y de documentacin asociada que produce un programador individual Hay que tener en cuenta que existen muchas soluciones software con distintas caractersticas: ms eficiente, ms mantenible, Hay varias propuestas de mtricas para medir diversos aspectos del software
Mtricas de la productividad
Mtricas relacionadas con el tamao.
nmero de lneas del cdigo fuente nmero de instrucciones del cdigo objeto g j nmero de pginas de la documentacin...
10
Calidad y productividad
Las mtricas basadas en volumen/unidad de tiempo (lneas/programador-mes) son imperfectas
no ti tienen en cuenta factores como la fiabilidad, el t f t l fi bilid d l mantenimiento,
Tcnicas de estimacin
No hay una forma simple de hacer una estimacin exacta del esfuerzo requerido para desarrollar un sistema de software
Las estimaciones iniciales se basan en informacin poco precisa que aportan los usuarios El software puede tener que ejecutarse en ordenadores no conocidos o utilizar tecnologa nueva El personal del proyecto es desconocido
Tcnicas de estimacin
Modelado algortmico de costes. Se analizan los costes de otros proyectos realizados. Se utiliza una frmula matemtica para predecir los costes del proyecto actual Opinin de expertos. Se S consulta a varios expertos y entre ellos acuerdan una l i ll d estimacin. Estimacin por analoga. Se estima por analoga con otros proyectos completados sobre el mismo dominio de aplicacin. Ley de Parkinson. El trabajo se extiende para llenar el tiempo disponible. El coste se determina segn los recursos disponibles. Precio para ganar. Se acuerda la funcionalidad aceptable para el sistema teniendo en cuenta el coste acordado.
3. Anlisis de riesgos.
Posibles riesgos con su probabilidad y estrategias de reduccin de riesgos propuestas
11
Las notaciones grficas ilustran la planificacin del proyecto Muestran la descomposicin del proyecto en tareas.
Las tareas no deben ser demasiado pequeas.
Los diagramas de redes de actividades muestran las dependencias de las tareas y el camino crtico Los diagramas de barras muestran la planificacin sobre el calendario
Red de actividades
14/7/99 8 days T1 25/7/99 M1 15 days T3 5 days T6 M3 15 days T2 10 days T4 18/7/99 M5 25 days T8 19/9/99 Finish 25/7/99 M2 T7 10 days T5 11/8/99 M7 15 days T10 20 days 7 days T11 5/9/99 M8 10 days T12 4/8/99 M4 15 days T9 25/8/99 M6 4/7/99 start
T1 (M1) T2, T4 (M2) T1, T2 (M3) T1 (M1) T4 (M5) T3, T6 (M4) T5, T7 (M7) T9 (M6) T11 (M8)
Actividades en el calendario
4/7 T4 T1 T2 M1 T7 T3 M5 T8 M3 M2 T6 T5 M4 T9 M7 T10 M6 T11 M8 T12 Finish 11/7 Start 18/7 25/7 1/8 8/8 15/8 22/8 29/8 5/9 12/9 19/9
Asignacin de personal
4/7 Fred T4 T8 Jane T1 T3 T9 Anne T2 T6 Jim Mary T7 T5 T10 T11 T12 11/7 18/7 25/ 1/8 8/8 15/8 22/8 29/8 5/9 12/9 19/9
12
Problemas en la planificacin
Estimar la dificultad de los problemas, y por lo tanto el coste de desarrollar una solucin, es difcil La L productividad no es proporcional al d i id d i l l nmero de personas que trabajan en una tarea Aadir personal al final del proyecto produce ms retraso por la sobrecarga en la comunicacin Lo inesperado siempre ocurre
Tabla de riesgos
Riesgo Probabilidad Impacto Gestin y Mitigacin del Riesgo
Ejemplo:
60%
4(crtico)
Garanta de calidad
Coste de los fallos encontrados en distintas etapas
100 60.00-100.00
Conceptos de calidad
Cmo se aplica al software? Control de calidad: inspecciones, revisiones, pruebas Aseguramiento de la calidad: anlisis, auditora e informes Estndares de calidad: ISO 90003
gua para la aplicacin de la ISO 9001:2000 para la adquisicin, suministro, desarrollo, instalacin y mantenimiento de SOFTWARE y servicios de soporte.
10.00 3.00
Req.
Diseo
13
Resultados
Inicial
Repetible
Definido
-Los procesos son definidos: estandarizados, documentados e institucionalizados. - Los procesos de ingeniera y gerencia son estables y se Productividad y integran en uno slo. - Existe un entendimiento comn de los procesos, calidad media. Riesgo medio. funciones y responsabilidades. - La organizacin mantiene un grupo dedicado a la definicin, mejora y difusin del proceso - Los procesos son medibles o cuantificables - La productividad y la calidad se miden y registran para cada proyecto de la organizacin. Productividad y calidad alta. - Se fijan metas cuantitativas de la calidad del software. -Mediante el uso de mtricas de software, se crea una Riesgo mnimo. base cuantitativa para la evaluacin y estimacin en proyectos futuros. - Los procesos se mejoran continuamente. - La organizacin busca lograr el nivel mximo de capacidad. - Se incorporan nuevas tecnologas y mtodos para mejorar los procesos. Productividad y calidad total. Riesgo nulo.
Gestionado
Optimizado
programas
documentacin
datos
datos
14
Existen herramientas que ayudan al control de las versiones a medida que avanzan (SourceForge)
Software Engineering Body of Knowledge (SWEBOK) Estndares de la Ingeniera del Software E d d l I i d lS f Software Engineering Education Project Software Engineering Code of Ethics and Professional Practice En Espaa: Colegios profesionales
87
88
89
90
15
Qu es UML?
Unified Modeling Language UML no es un mtodo OO UML propone una notacin y una semntica universal. Inicialmente:
Un l U lenguaje para especificar, construir y d j ifi t i documentar t artefactos software, que pretende cubrir los conceptos de Booch, OMT y OOSE con un lenguaje simple, comn y ampliamente utilizable por usuarios de otras metodologas UML es un un lenguaje para representar los modelos de cualquier mtodo OO.
UML- Objetivos
Establecer un lenguaje visual de modelado, expresivo y sencillo (?) en su uso Mantener una independencia (?) de los mtodos y de los lenguajes de programacin Establecer bases formales (?) Imponer un estndar mundial Integrar las mejores prcticas Modelar sistemas, y no nicamente software Establecer las relaciones entre modelos conceptuales y ejecutables Crear un lenguaje de modelado utilizable tanto por mquinas como por hombres
94
UML no fuerza a utilizar un mtodo concreto (distintos tipos de problemas conducen a diferentes mtodos de anlisis y diseo) 93
Participantes en UML
Rational Software (Grady Booch, Jim Rumbaugh y Ivar Jacobson) Digital Equipment Hewlett-Packard i-Logix (David Harel) IBM ICON Computing ( (Desmond DSouza) d ) Intellicorp and James Martin & co. (James Odell) MCI Systemhouse Microsoft ObjecTime Oracle Platinium Technology Sterling Software Taskon Texas Instruments Unisys
Jacobson Meyer
UML
PrePre y Post-condiciones
Harel
State Charts
Embly
Singleton
Wirfs-Brock Fusion
Descripciones de operaciones, Numeracin de mensajes Responsabilidades
95
96
16
UML: Evolucin
septiembre de 2001
UML 1.5
(2003)
Aspectos Novedosos
Definicin semi-formal del Meta-Modelo asociado Incluye stereotypes como mecanismo de stereotypes extensibilidad (usos particulares) Incluye un lenguaje para expresar restricciones, OCL (Object Constraint Language) desarrollado por IBM
Documentos pblicos s
Abril 1999: Publicacin de UML 1.1 Septiembre 1997 Publicacin de UML 1.0 Enero 1997 Junio 96 y Octubre 1996 OOPSLA95
UML 1.0
Unificacin
UML 0.9 & 0.91 Colaboradores y expertos Mtodo Unificado 0.8 OMT-2
Fragmentacin
OMT-1 OOSE
97 98
Perspectivas de UML
UML ya es el lenguaje de modelado predominante Participacin de importantes empresas Aceptacin como notacin estndar OMG Evidencias:
Herramientas UML, libros, Congresos, cursos, camisetas,
Use Case Use Case Diagramas Diagrams de Diagrams Secuencia Scenario Scenario Diagramas Diagrams de Diagrams Colaboracin Scenario Scenario Diagramas Diagrams de Diagrams Estados
State State Diagramas Diagrams de Diagrams Objetos State State Diagramas Diagrams de Diagrams Componentes
Inconvenientes:
Definicin separada del proceso de desarrollo Falta integracin con otras tcnicas tales como patrones de diseo, interfaces de usuario, etc. Monopolio de conceptos, tcnicas y mtodos en torno a UML
99
Modelo
Diagramas de Actividad
Distribucin
17
Arquitectura
Arquitectura de cuatro capas, definida en la especificacin Meta Object Facility del OMG:
Meta-metamodelo: define el lenguaje para especificar metamodelos p Metamodelo: define el lenguaje para especificar modelos Modelo: define el lenguaje para describir un dominio de informacin Objetos de usuario: define un dominio de informacin especfico
103
Jerarqua de modelos
104
Modelado de objetos
Los objetos se relacionan con las clases de las que son creados por la relacin SerInstanciaDe (IsInstanceOf)
...Modelado de objetos
Una situacin parecida ocurre con las relaciones:
105
106
Metamodelado...
Se basa en la idea de modelar los tipos de entidades (clases y relaciones) con que forman los modelos Cuando se ve la clase como un objeto, la clase es d l l b l l una instancia de otra clase (o meta-clase)
Metamodelado...
Pop
Type = Real
UML
Attribute
type
Area
Type = Real HasAttribute
HasAttribute
HasAttribute
Class
NoOfInstances
City
NoOfInstances = 1
Houston
Pop = 2M Area = 40 SM
HasRelationship
HasRelationship IsIn
Relationship
SourceCardinality TargetCardinality
IsIn.Country
SourceCardinality = 0 TargetCardinality = 1
USA
Pop = 250M Area = 200 SM
Pop
Type = Real
Attribute
type
Area
Type = Real HasAttribute
HasAttribute
HasAttribute
Class
NoOfInstances
City
NoOfInstances = 1
Houston
Pop = 2M Area = 40 SM
HasRelationship
HasRelationship IsIn
Relationship
SourceCardinality TargetCardinality
IsIn.Country
SourceCardinality = 0 TargetCardinality = 1
USA
Pop = 250M Area = 200 SM
107
108
18
...Metamodelado
La idea fundamental en el metamodelado es que las entidades del modelo (ej: clases) juegan dos papeles:
el papel de plantilla (cuando se ve como una clase) l l d l till ( d l ) el papel de instancia (cuando se ve como instancia de la meta-clase)
Terminologa de metamodelado...
La idea de ver las clases como objetos puede ser aplicada repetidamente para crear una jerarqua de instanciacin del clases y objetos En principio est jerarqua podra continuar hasta cualquier profundidad arbitraria, pero en la prctica no se extiende ms all de cuatro niveles de profundidad
109
110
Terminologa de metamodelado...
UML se define en cuatro niveles (la gua semntica de UML representa justamente el nivel metamodelo)
...Terminologa de metamodelado
111
112
UML: Notacin
1.6.3 Elementos de modelado en UML
Elementos y Relaciones Diagramas UML Vistas Bloques
Elementos
Estructurales De comportamiento De Agrupacin De anotacin
Relaciones Diagramas
Mecanismos
Mecanismos de Especificacin Divisiones Adornos Mecanismos de extensibilidad
114
19
Bloques y relaciones
Clase Atributos Mtodos Atributos Estado Mtodos Objeto
Paquetes en UML
Son elementos auxiliares de organizacin y pueden contener cualquier elemento de modelado. Pueden anidarse a su vez.
Nodo N d
Interfaz
Paquete
Nota
Componente
Nombre
Dependencia Asociacin Generalizacin Realizacin
Nombre
Nombre
Nombre
115
116
Notas
Una nota es un comentario en el diagrama, que ir unida a l o a uno de sus elementos..
UML- Diagramas
Ejemplo de una
117
118
Diagramas de estructura
Diagramas de comportamiento
119
120
20
UML- Diagramas
Elicitacin de requisitos de usuario
Casos de Uso
Modelado de la estructura esttica/anlisis y diseo Modelado Model do de l estructura e tti /implement in la e t t esttica/implementacin
Diagrama de Componentes Diagrama de Distribucin Diagrama de Clases
Modelado de interaccin
Modelado dinmico
121
122
caso de uso
actor
Bibliotecario
Aunque tambin fueron empleados por Booch, conservan el aspecto de la notacin propuesta por Rumbaugh en OMT Permiten modelar la estructura esttica de los sistemas
Alumno
123
124
Prstamo
nota Fueron utilizados por los tres autores del UML en sus respectivos mtodos previos multiplicidad
125 126
21
No permite observar grficamente la cronologa de los mensajes Facilita la organizacin de los objetos en paquetes
127
128
: Libro
: Ejemplar
2.1: prestado ( )
Los emplearon Rumbaugh en OMT, Booch en su libro de 1994 y Jacobson con la incorporacin de una notacin amplia
129
130
131
132
22
Se S va en su auto
Toma un T taxi
Cambia de marcha
Entra a su trabajo
133
Mecanismos de extensin:
Mecanismos de UML
Tipos de mecanismos
Mecanismos de Especificacin
Completa el aspecto grfico
Estereotipos
Un estereotipo es un nuevo tipo de elemento de modelado. Los estereotipos se representan encerrados en los smbolos o mediante iconos
Divisiones (dicotomas)
Ej: clase y objeto, operacin y mtodo. objeto mtodo
Adornos
Se pueden aadir detalles como la multiplicidad de una relacin
Mecanismos de extensibilidad
Estereotipos Valores etiquetados Restricciones (OCL)
135 136
Mecanismos de extensin:
Mecanismos de extensin:
Valores etiquetados:
Se pueden aadir propiedades a los elementos de UML. Consisten en parejas de etiqueta + valor
Restricciones:
Una restriccin es una relacin semntica entre elementos del modelo que especifican condiciones y proposiciones que deben de ser respetadas o mantenidas como ciertas. Todas las restricciones irn siempre encerradas entre llaves ( { } ). En particular se puede utilizar OCL (Object Constraint Language)
Ventana
137
138
23
Mecanismos de extensin:
Restricciones:
* Persona 1 trabajador jefe 0..1 * Persona
Mecanismos de extensin:
Restricciones: OCL
* Comit * Empleador 0..1 Empresa
UML propone un lenguaje para expresar la navegacin a travs de caminos de clases en el modelo. Estas expresiones se pueden encadenar, de tal forma que el elemento ms a la izquierda sea un objeto o un conjunto de objetos.
vuelo.piloto.horas_de_entrenamiento > horas.avin.horas_min
{Persona.empleador= Persona.jefe.empleador}
139
140
Bibliografa general
Sommerville, I. "Ingeniera del software" Pearson, 2005 (7 ed.) Pressman, Roger S. "Ingeniera del software : un enfoque prctico MacGraw-Hill", 2005 (6 ed) Booch, G., Jacobson, I., Rumbaugh, J. El Lenguaje Unificado de Modelado. Gua del usuario. Addison-Wesley/Diaz de Santos, 1999.
Lecturas complementarias
OMG, OMG Unified Modeling Language Specification. Version 1.5. Object Management Group Inc., 2003.
SWEBOK: http://www.swebok.org Cdigo etico: http://seeri.etsu.edu/SpanishVersionSECode.htm Colegio profesional de ingenieros en informatica de Castilla y Len: http://www.cpiicyl.org/index.html
141
142
Capa de Interfaz
Manejar un catlogo con todos los productos. Registrar los productos a travs del cdigo de barras o tecleando su identificacin. Se debe mostrar el nombre y el precio del producto. Calcular el total de la venta y los descuentos? Si se paga en efectivo, calcular las vueltas Si se paga con tarjeta, capturar los datos del cliente/tarjeta y autorizar el pago... Actualizar automticamente el stock de cada producto El cajero debe identificarse (nombre y contrasea) para utilizar un 143 terminal
144
Capa de objetos del dominio
Venta Pago
Foco principal
Capa de servicios
Registro
Persistencia
24