24
1 Ingeniería del Software I 3º I.T.I.Gestión Miguel A. Laguna Objetivos del curso Comprender los elementos característicos de la ingeniería del software Conocer de forma detallada los métodos y herramientas de especificación de requisitos 2 herramientas de especificación de requisitos Ser capaz de elaborar la especificación completa de un sistema utilizando las herramientas, métodos y procedimientos mostrados en el curso Ingeniería del Software I Introducción a la Ingeniería del Software Producto y Proceso Aspectos de Gestión 3 Elicitación, análisis y especificación de Requisitos Modelado de actividades y casos de uso Modelado estático (diagramas de clases) Modelado dinámico (diagramas de secuencia) 1. Introducción Ingeniería del Software I 3º I.T.I.Gestión Miguel A. Laguna Objetivos Presentar la disciplina de ingeniería del software y explicar su importancia Preguntas más frecuentes (FAQs) sobre 5 Preguntas más frecuentes (FAQs) sobre la ingeniería del software, proceso software, UML y aspectos éticos de la profesión Desarrollo del tema 1.1. El software y la Ingeniería del software 1.2. Sistema de Información 6 1.3. Método y Proceso 1.4.Disciplinas de gestión de proyectos 1.5. Aspectos profesionales y éticos de la Ingeniería del Software 1.6. Lenguaje Unificado de Modelado (UML)

Objetivos del curso Ingeniería del Software I - infor.uva.esmlaguna/is1/apuntes/1-intro.pdf · 1 Ingeniería del Software I 3º I.T.I.Gestión Miguel A. Laguna Objetivos del curso

Embed Size (px)

Citation preview

Page 1: Objetivos del curso Ingeniería del Software I - infor.uva.esmlaguna/is1/apuntes/1-intro.pdf · 1 Ingeniería del Software I 3º I.T.I.Gestión Miguel A. Laguna Objetivos del curso

1

Ingeniería del Software I

3º I.T.I.Gestión

Miguel A. Laguna

Objetivos del cursoComprender los elementos característicos de la ingeniería del software

Conocer de forma detallada los métodos y herramientas de especificación de requisitos

2

herramientas de especificación de requisitos

Ser capaz de elaborar la especificación completa de un sistema utilizando las herramientas, métodos y procedimientos mostrados en el curso

Ingeniería del Software IIntroducción a la Ingeniería del Software

Producto y ProcesoAspectos de Gestión

3

Elicitación, análisis y especificación de Requisitos

Modelado de actividades y casos de usoModelado estático (diagramas de clases)Modelado dinámico (diagramas de secuencia)

1. Introducción

Ingeniería del Software I3º I.T.I.Gestión

Miguel A. Laguna

Objetivos

Presentar la disciplina de ingeniería del software y explicar su importanciaPreguntas más frecuentes (FAQs) sobre

5

Preguntas más frecuentes (FAQs) sobre la ingeniería del software, proceso software, UML y aspectos éticos de la profesión

Desarrollo del tema

1.1. El software y la Ingeniería del software 1.2. Sistema de Información

6

1.3. Método y Proceso1.4.Disciplinas de gestión de proyectos1.5. Aspectos profesionales y éticos de la Ingeniería del Software1.6. Lenguaje Unificado de Modelado (UML)

Page 2: Objetivos del curso Ingeniería del Software I - infor.uva.esmlaguna/is1/apuntes/1-intro.pdf · 1 Ingeniería del Software I 3º I.T.I.Gestión Miguel A. Laguna Objetivos del curso

2

FAQs: Preguntas frecuentes sobre Ingeniería del Software¿Qué es el Software? ¿Cuál es la importancia y coste del Software?¿Qué es la Ingeniería del Software?¿Cuál es la diferencia entre Ingeniería del Software e Ingeniería de Sistemas?

7

Ingeniería de Sistemas? ¿Qué es un sistema y un sistema de información?¿Qué es un proceso software y un método de desarrollo? ¿Cómo se gestiona el proceso?¿Qué es CASE (Computer-Aided Software Engineering)?¿Cuáles son las responsabilidades de un Ingeniero Software? ¿Qué es el Lenguaje Unificado de Modelado (UML)?

1.1. El software y la Ingeniería del software

Hace referencia a los programas y toda la información asociada y materiales necesarios para soportar su instalación, operación, reparación y mejora.

Para construir un nuevo elemento software se necesita:

¿Qué es el Software?

9

Detallar las especificacionesDiseñar la soluciónCodificar el algoritmoProbar el programaDocumentarMantener

Es lo que se conoce como el ciclo de vida del software.

Las economías de todos las paises son cada vez más y más dependientes del software

Importancia del Software

10

Cada vez más y más sistemas están controlados por softwareEl gasto en desarrollo de software está aumentando su porcentaje en el PIB de todos las paises

Crisis del Software

Crecimiento espectacular de los costes del software.Incumplimiento de los plazos de

11

Incumplimiento de los plazos de entrega.Muchas dudas sobre la calidad del software construido.

Los costes que representa el Software son a menudo mayores que el hardware

El mantenimiento resulta más caro que el

Costes del Software

12

a e e o esu a ás a o que edesarrollo:

En sistemas de vida larga puede ser varias veces más caro

La Ingeniería del Software tiene que ver con el desarrollo de forma que sea económicamente viable

Page 3: Objetivos del curso Ingeniería del Software I - infor.uva.esmlaguna/is1/apuntes/1-intro.pdf · 1 Ingeniería del Software I 3º I.T.I.Gestión Miguel A. Laguna Objetivos del curso

3

Costes de los cambios

60-100x

13

Definición Desarrollo

1x

1.5-6x

Después de entregado

El software se deteriora

Tasa de fallos

Incremento de fallos

14

curva ideal

Tiempo

cambio

curva real

Disciplina que se ocupa del desarrollo del software.

Se enfrenta al software como un producto de

¿Qué es la Ingeniería del software?

15

Se enfrenta al software como un producto de ingeniería que requiere: planificación, análisis, diseño, implementación, pruebas y mantenimiento.

Trata de las teorías, métodos y herramientas que los profesionales del desarrollo del software deben utilizar.

No sólo comprende los procesos técnicos del desarrollo.También, los principios más relevantes

Ingeniería del software

16

También, los principios más relevantes de dirección y control de este proceso.También, el desarrollo de nuevas teorías, métodos y herramientas de apoyo a la producción del software.

Objetivos de la Ingeniería del software

Mejorar la calidad del softwareAcortar los tiempos de desarrolloAumentar la productividad

17

Aumentar la productividadNecesidad:

Incrementar la reutilización del software

Ingeniería del software

Los ingenieros de software deben adoptar un enfoque sistemático y organizado en su trabajo y

18

organizado en su trabajo y utilizar las herramientas y técnicas más apropiadas dependiendo

del problema a resolver, las restricciones del desarrollo y los recursos disponibles.

Page 4: Objetivos del curso Ingeniería del Software I - infor.uva.esmlaguna/is1/apuntes/1-intro.pdf · 1 Ingeniería del Software I 3º I.T.I.Gestión Miguel A. Laguna Objetivos del curso

4

¿Cuál es la diferencia entre Ingeniería del Software y las Ciencias de la Computación?

Las Ciencias de la Computación tienen que ver con teorías y fundamentos

19

La Ingeniería del Software tiene que ver con los aspectos prácticos del desarrollo del software

¿Cuál es la diferencia entre Ingeniería del Software e Ingeniería de Sistemas?

La Ingeniería de Sistemas tiene que ver con todos los aspectos del desarrollo de sistemas basados en computadoras:

20

hardware, software e Ingeniería de procesos.

Ingeniería del Software es una parte de este proceso

Disciplinas integradas en la Ingeniería del SoftwareSoftware Engineering Body of Knowledge (SWEBOK)

Requisitos del softwareDiseño del softwareConstrucción del softwareP b d l S ft

21

Prueba del SoftwareMantenimiento del software

Gestión de la configuración del softwareGestión de la Ingeniería del SoftwareProceso de Ingeniería del SoftwareHerramientas y métodos de la Ingeniería del SoftwareCalidad del software

SWEBOK GuíaSWEBOK (I)

GuíaSWEBOK (I)

Requisitos delsoftware

Requisitos delsoftware

Proceso deIngeniería de Requisitos

Diseñodel software

Diseñodel software

Conceptos y principios básicos

Diseñodel software

Diseñodel software

Conceptos y principios básicos

Construccióndel software

Construccióndel software

Reducción de lacomplejidad

Construccióndel software

Construccióndel software

Reducción de lacomplejidad

Prueba delsoftware

Prueba delsoftware

Conceptos básicosy definiciones

Mantenimientodel software

Mantenimientodel software

Conceptos básicos

22(a)(a) (b)(b) (c)(c) (d)(d) (e)(e)

Obtención derequisitos

Análisis derequisitos

Especificaciónde requisitos

Validación derequisitos

Gestión derequisitos

Elementos clave en eldiseño del software

Estructura y arquitectura del software

Análisis y evaluación dela calidad del diseño

Notaciones de diseño

Estrategias y métodosde diseño

Elementos clave en eldiseño del software

Estructura y arquitectura del software

Análisis y evaluación dela calidad del diseño

Notaciones de diseño

Estrategias y métodosde diseño

Anticipación de ladiversidad

Estructuración para la validación

Uso de estándaresexternos

Anticipación de ladiversidad

Estructuración para la validación

Uso de estándaresexternos

Niveles depruebas

Técnicas de prueba

Métricasrelacionadas conlas pruebas

Gestión del procesode prueba

Proceso de mantenimiento

Principales problemasdel mantenimiento

Técnicas parael mantenimiento

SWEBOKGuía

SWEBOK (II)Guía

SWEBOK (II)

Gestión de laconfiguraciónGestión de laconfiguración

Gestión del proceso de gestión de la configuración

Id tifi ió d l

Gestiónde la ISGestiónde la IS

Gestión dela organización

G tió d l

Proceso deIS

Proceso deIS

Conceptos delproceso de IS

Herramientas ymétodos de la ISHerramientas y

métodos de la IS

Herramientassoftware

é

Calidad delsoftware

Calidad delsoftware

Conceptos sobrecalidad del software

ó f ó

GuíaSWEBOK (II)

GuíaSWEBOK (II)

Gestión de laconfiguraciónGestión de laconfiguración

Gestión del proceso de gestión de la configuración

Id tifi ió d l

Gestión de laconfiguraciónGestión de laconfiguración

Gestión del proceso de gestión de la configuración

Id tifi ió d l

Gestiónde la ISGestiónde la IS

Gestión dela organización

G tió d l

Gestiónde la ISGestiónde la IS

Gestión dela organización

G tió d l

Proceso deIS

Proceso deIS

Conceptos delproceso de IS

Proceso deIS

Proceso deIS

Conceptos delproceso de IS

Herramientas ymétodos de la ISHerramientas y

métodos de la IS

Herramientassoftware

é

Herramientas ymétodos de la ISHerramientas y

métodos

Herramientassoftware

é

Calidad delsoftware

Calidad delsoftware

Conceptos sobrecalidad del software

ó f ó

Calidad delsoftware

Calidad delsoftware

Conceptos sobrecalidad del software

ó f ó

23(a)(a) (b)(b) (c)(c) (d)(d) (e)(e)

Identificación de la configuración del software

Control de la configuracióndel software

Registro del estado de laconfiguración del software

Auditoríade la gestiónde la configuración

Gestión de la distribucióndel software

Gestión delproceso/proyecto

Medida de laIS

Infraestructura delproceso

Medida delproceso

Definición delproceso

Análisis cualitativo del proceso

Implementación ycambio del proceso

Métodos software

Propósito y planificacióndel SQA y de la V&V

Actividades y técnicas paraSQA y V&V

Métricas aplicadas al SQAy a la V&V

(a)(a) (b)(b) (c)(c) (d)(d) (e)(e)

Identificación de la configuración del software

Control de la configuracióndel software

Registro del estado de laconfiguración del software

Auditoríade la gestiónde la configuración

Gestión de la distribucióndel software

Identificación de la configuración del software

Control de la configuracióndel software

Registro del estado de laconfiguración del software

Auditoríade la gestiónde la configuración

Gestión de la distribucióndel software

Gestión delproceso/proyecto

Medida de laIS

Gestión delproceso/proyecto

Medida de laIS

Infraestructura delproceso

Medida delproceso

Definición delproceso

Análisis cualitativo del proceso

Implementación ycambio del proceso

Infraestructura delproceso

Medida delproceso

Definición delproceso

Análisis cualitativo del proceso

Implementación ycambio del proceso

Métodos softwareMétodos software

Propósito y planificacióndel SQA y de la V&V

Actividades y técnicas paraSQA y V&V

Métricas aplicadas al SQAy a la V&V

Propósito y planificacióndel SQA y de la V&V

Actividades y técnicas paraSQA y V&V

Métricas aplicadas al SQAy a la V&V

1.2. Sistemas de Información

Page 5: Objetivos del curso Ingeniería del Software I - infor.uva.esmlaguna/is1/apuntes/1-intro.pdf · 1 Ingeniería del Software I 3º I.T.I.Gestión Miguel A. Laguna Objetivos del curso

5

¿Qué es un sistema?

Un conjunto de elementos (hombres, máquinas, métodos, reglas) en interacción, que transforman (mediante un proceso) unos elementos (entradas) en otros

25

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 diseñado para hacer cambios en el entorno.

Sistema y subsistemasSubsistemas:

Sistema físico: Transforma un flujo físico de entradas en un flujo físico de salidas.

26

nivel operativo de la organización.

Sistema de gestión: controla el sistema físico, decidiendo el comportamiento del mismo en función de los objetivos marcados.

Sistema y subsistemas

SISTEMA DE GESTIÓN

OBJETIVOS

Información de objetivos

Fijación de nuevos objetivos

27

GESTIÓN

SISTEMA FÍSICO

Decisión de comportamientoInformación de funcionamiento

Entrada Salida

¿Qué es un sistema de información?

Sistema de Información: Está encargado dealmacenar y tratar informaciones sobre el sistema físico para ponerlas a disposición del sistema de gestión

28

recibir decisiones sobre su propio controlinteraccionar con el sistema físico

¿Qué es un sistema de información?

SIST. DEGESTION

Decisión para

Objetivos

29

SIST. DE INFORMACION

SIST. FISICOEntrada Salida

InformaciónInteracción con el sistema físico

Decisión para su propio control

Inf. del sist. físico

Decisión de comportamiento

¿Qué es un sistema de información?

Una empresa típica cuenta con un SI compuesto por los siguientes subsistemas:

Subsistema de Recursos Humanos: Se ocupa tanto de la tió d l l d l ó i

30

gestión del personal como de la nómina.

Subsistema de Gestión Contable: Tanto para el control interno de la empresa como para hacer frente a las obligaciones legales.

Subsistema de Gestión Comercial: Para el control de los clientes y de las ventas.

Subsistema de Control de las Existencias: Del almacén y del inventario de bienes.

Page 6: Objetivos del curso Ingeniería del Software I - infor.uva.esmlaguna/is1/apuntes/1-intro.pdf · 1 Ingeniería del Software I 3º I.T.I.Gestión Miguel A. Laguna Objetivos del curso

6

¿Qué es un sistema de información automatizado?

Si todas las transformaciones significativasson efectuadas por máquinas

31

Las tareas fundamentales de un SIA son:Memorización del modelo y de la base de información.Tratamiento automático (control, actualización, búsquedas, cálculos).Captura de la informaciónSalida de la información.

Propiedades emergentes

La compleja relación entre los subsistemas de un sistema significa que éste es más complejo que la suma de sus partes.L i d d

32

Las propiedades emergentes son consecuencia de las relaciones entre los componentes. Sólo pueden asegurarse y observarse cuándo el sistema se considera como un todo.

Ejemplos de prop. emergentesEl peso total del sistema

Se puede calcular a partir de las propiedades delos componentes individuales.

La fiabilidad del sistema

33

La fiabilidad del sistemaDepende de la fiabilidad de los componentes y suinterrelación.

La usabilidadEsta propiedad compleja no depende sólo delhardware y del software sino que tambiéndepende de los operadores y del entorno en quese utilice.

1.3. Método y Proceso

¿Qué es un método?Resulta necesario establecer un enfoque sistemático y disciplinado para llevar a cabo un desarrollo software

Definiciones:

35

Definiciones:Una metodología de ingeniería del software es un proceso para producir software de forma organizada, empleando una colección de técnicas y convenciones de notación predefinidas

(James Rumbaugh et al.)

Conjunto de procedimientos, técnicas, herramientas y un soporte documental que ayuda a los desarrolladores a realizar nuevo software

(Mario Piattini et al.)

Componentes de un método

PROCESO

TECNICAS

HERRAMIENTASUML

TogetherRose

36

PROCESO

Proceso: Define el marco de trabajo y permite un desarrollo racional de la IS

Técnicas: Indican cómo construir técnicamente el software. Incluyen técnicas de modelado

Herramientas: Proporcionan el soporte automático o semiautomático para el proceso y para las técnicas

UP

Page 7: Objetivos del curso Ingeniería del Software I - infor.uva.esmlaguna/is1/apuntes/1-intro.pdf · 1 Ingeniería del Software I 3º I.T.I.Gestión Miguel A. Laguna Objetivos del curso

7

¿Qué es un proceso software?Un conjunto estructurado de actividades y resultados asociados que conducen a la creación de un producto de software:

37

Especificación de requisitos: Definir la funcio-nalidad y las restricciones en sus operacionesDiseño e implementación: Producir software que cumple la especificaciónValidación: Asegurar que hace lo que el cliente desea.Mantenimiento (o Evolución): Seguir cumpliendo los cambios en las necesidades del usuario.

Actividades complementarias de gestión

Organizar, planificar y programar los proyectos de software:

Estimación del coste del proyecto

38

p yPlanificación y calendarización del proyectoGestión de la configuración del softwareCalidad del software....

Especificación de requisitos del softwareEtapa en que se establece qué servicios se requieren del sistema y cuáles son las restricciones de operación y desarrollo del mismo.Se obtiene un documento de requisitos, con la

ifi ió d l i t

39

especificación del sistema.

Fases de la Ingeniería de Requisitos:Estudio de viabilidadElicitación y análisis de requisitosEspecificación de requisitos: los del usuario y los del sistemaValidación de requisitos

Especificación del softwareFeasibility

study

Requirementselicitation and

analysisRequirementsspecification

Requirementsvalidation

Feasibilityreport

40

validationreport

Systemmodels

User and systemrequirements

Requirementsdocument

Diseño e implementación

Etapa en la que se convierte la especificación del sistema en un sistema ejecutableDiseño del software

Describir la estructura del software los datos las

41

Describir la estructura del software, los datos, las interfaces entre componentes, …

ImplementaciónTransformar la estructura anterior en un programa ejecutable

Las actividades de estas etapas están muy relacionadas y pueden interpolarse.

Diseño e implementación

Architectural Abstract Interface Component Data Algorithm

Requirementsspecification

Design activities

42

Architecturaldesign

Abstractspecification

Interfacedesign

Componentdesign

Datastructuredesign

Algorithmdesign

Systemarchitecture

Softwarespecification

Interfacespecification

Componentspecification

Datastructure

specification

Algorithmspecification

Design products

Page 8: Objetivos del curso Ingeniería del Software I - infor.uva.esmlaguna/is1/apuntes/1-intro.pdf · 1 Ingeniería del Software I 3º I.T.I.Gestión Miguel A. Laguna Objetivos del curso

8

Técnicas de diseño

Formas sistemáticas de diseñar el sistema Generalmente se documenta con

43

Generalmente se documenta con modelos gráficos:

Diagramas de flujo de datos (DFDs)Diagramas Entidad-RelaciónDiagramas de estructuraModelos orientados a objetos

Validación del Software

La verificación y la validación pretenden demostrar que un sistema es conforme con su especificación y que resuelve los

44

requisitos del clienteLa prueba del sistema implica ejecutar el sistema con los casos de prueba que se obtuvieron en la especificación.

Etapas en el proceso de pruebas

Prueba de unidadesSe comprueban los componentes individuales

Prueba de módulosSe prueban colecciones de componentes dependientes

45

Se prueban colecciones de componentes dependientesPrueba de subsistemas

Los módulos se integran en subsistemas y se prueban. Sobre todo se prueba el acoplamiento de las interfaces.

Prueba del sistemaSe prueban las interacciones entre los subsistemas y las propiedades emergentes.

Prueba de aceptaciónSe prueba con datos reales para comprobar que el sistema es aceptable por el cliente.

Etapas en el proceso de pruebas

Requirementsspecification

Systemspecification

Systemdesign

Detaileddesign

Module andSub-systemSystem

46

Module andunit codeand tess

Sub-systemintegrationtest plan

Systemintegrationtest plan

Acceptancetest plan

Service Acceptancetest

Systemintegration test

Sub-systemintegration test

Mantenimiento del softwareEl software es intrínsecamente flexible y puede cambiar.

De la misma forma que los requisitos cambian según cambian las circunstancias del negocio el software

47

cambian las circunstancias del negocio, el software que da soporte al negocio debe también desarrollarse y cambiar.

Aunque históricamente ha existido una separación entre el desarrollo y la mantenimiento (o evolución) esto es cada vez más irrelevante, puesto que apenas hay sistemas completamente nuevos.

Mantenimiento del software

Assess existingsystems

Define systemrequirements

Propose systemchanges

Modifysystems

48

systemsrequirements changes systems

Newsystem

Existingsystems

Page 9: Objetivos del curso Ingeniería del Software I - infor.uva.esmlaguna/is1/apuntes/1-intro.pdf · 1 Ingeniería del Software I 3º I.T.I.Gestión Miguel A. Laguna Objetivos del curso

9

Ayuda automatizada al proceso (CASE)

La Ingeniería de Software asistida por Ordenador (CASE) es el software que se utiliza para ayudar a las actividades de desarrollo y evolución del software.

49

Automatización de actividadesEditores gráficos para el desarrollo del modelo de sistemaDiccionario de datos para gestionar las entidades del diseñoGeneradores de GUI para la construcción del interfaz de usuarioDepuradores para encontrar los fallos de los programasTraductores automatizados para generar nuevas versiones de un programa

Tipos de herramientas CASETool type ExamplesPlanning tools PERT tools, estimation tools,

spreadsheetsEditing tools Text editors, diagram editors, word

processorsChange management tools Requirements traceability tools, change

control systems

50

Configuration management tools Version management systems, systembuilding tools

Prototyping tools Very high-level languages,user interface generators

Method-support tools Design editors, data dictionaries, codegenerators

Language-processing tools Compilers, interpretersProgram analysis tools Cross reference generators, static

analysers, dynamic analysersTesting tools Test data generators, file comparatorsDebugging tools Interactive debugging systemsDocumentation tools Page layout programs, image editorsRe-engineering tools Cross-reference systems, program re-

structuring systems

Tipos de herramientas CASE

EnvironmentsWorkbenchesTools

CASEtechnology

51

Single-methodworkbenches

General-purposeworkbenches

Multi-methodworkbenches

Language-specificworkbenches

Programming TestingAnalysis anddesign

Integratedenvironments

Process-centredenvironments

FilecomparatorsCompilersEditors

Reengineering tools

Testing tools

Debugging tools

Program analysis tools

Language-processingtools

Method support tools

Prototyping tools

Configuration

52

Configurationmanagement tools

Change management tools

Documentation tools

Editing tools

Planning tools

Specification Design Implementation Verificationand

Validation

1.4.Disciplinas de gestión de proyectos

Objetivos de la gestión de proyectos

Organizar, planificar y programar los proyectos de softwareDisciplinas y técnicas:Disciplinas y técnicas:

Planificación y estimación de costesGarantía de calidadGestión de la ConfiguraciónGestión de personal…

Page 10: Objetivos del curso Ingeniería del Software I - infor.uva.esmlaguna/is1/apuntes/1-intro.pdf · 1 Ingeniería del Software I 3º I.T.I.Gestión Miguel A. Laguna Objetivos del curso

10

(competencias de un jefe de proyecto)Planificación del proyecto• Tareas a realizar y plan de trabajo

ó d l d l

Tareas de gestión de proyectos

Estimación del coste del proyectoSupervisión y revisión del proyecto• Para comparar los progresos y costes

reales con los planeados y hacer ajustesSelección y evaluación del personalRedacción y presentación de informes

1.4.1Planificación del proyecto

MediciónEstimaciónEl plan de proyectoHerramientas gráficas

Planificación del proyecto

Es la actividad que más tiempo consume en la administración de un proyectoEs un proceso iterativo que se completa cuando el proyecto mismo termina. El plan del proyecto debe ser revisado regularmente a la vista de la evolución del mismo

Es imposible planificar sin estimar o estimar sin medir…

Estimación del coste del software

Predecir los recursos necesarios para un determinado proceso de desarrollo de software

Preguntas:¿Cuánto esfuerzo se requiere para completar una actividad?¿Cuánto tiempo de calendario se necesita para terminar una actividad?¿Cuál es el coste total de una actividad?

Se intenta determinar una medida de la cantidad de software y de documentación asociada que produce un programador individual

Medición de la Productividad

Hay que tener en cuenta que existen muchas soluciones software con distintas características: más eficiente, más mantenible, …Hay varias propuestas de métricas para medir diversos aspectos del software

Métricas relacionadas con el tamaño. número de líneas del código fuentenúmero de instrucciones del código objeto

Métricas de la productividad

g jnúmero de páginas de la documentación...

Métricas relacionadas con la función.Basadas en una estimación de la funcionalidad del software entregado: los puntos de función.

Page 11: Objetivos del curso Ingeniería del Software I - infor.uva.esmlaguna/is1/apuntes/1-intro.pdf · 1 Ingeniería del Software I 3º I.T.I.Gestión Miguel A. Laguna Objetivos del curso

11

Métricas de Puntos de función

number of user inputs number of user outputs

measurement parameter

3 4

countweighting factor

simple avg. complex

4 5

6 7

= =

X X

complexity multiplier

function points

number of user outputs number of user inquiries number of files number of ext.interfaces

4 3 7 5

5 4 10 7

7 6 15 10

= = =

count-total

X X X X

Las métricas basadas en volumen/unidad de tiempo (líneas/programador-mes) son imperfectas

ti t f t l fi bilid d l

Calidad y productividad

no tienen en cuenta factores como la fiabilidad, el mantenimiento, …

La productividad se puede aumentar generalmente a costa de la calidad

Técnicas de estimaciónNo hay una forma simple de hacer una estimación exacta del esfuerzo requerido para desarrollar un sistema de software

Las estimaciones iniciales se basan en información poco precisa que aportan los usuariospoco precisa que aportan los usuariosEl software puede tener que ejecutarse en ordenadores no conocidos o utilizar tecnología nuevaEl personal del proyecto es desconocido

Las estimaciones de los costes del proyecto tienden a “autorealizarse”

La estimación determina el presupuesto y el producto se ajusta para cumplir el presupuesto

Técnicas de estimaciónModelado algorítmico de costes.

Se analizan los costes de otros proyectos realizados. Se utiliza una fórmula matemática para predecir los costes del proyecto actual

Opinión de expertos.S l i ll dSe consulta a varios expertos y entre ellos acuerdan una estimación.

Estimación por analogía.Se estima por analogía con otros proyectos completados sobre el mismo dominio de aplicación.

Ley de Parkinson.El trabajo se extiende para llenar el tiempo disponible.El coste se determina según los recursos disponibles.

Precio para ganar.Se acuerda la funcionalidad aceptable para el sistema teniendo en cuenta el coste acordado.

Estructura de un plan de proyecto

Se fijan los recursos disponibles, se divide el trabajo y se crea un calendario de trabajo.

1. Introducción. Objetivos del proyecto y restricciones económicas y temporales

2. Organización del proyecto.Organización del equipo, personas involucradas y sus tareas

3. Análisis de riesgos.Posibles riesgos con su probabilidad y estrategias de reducciónde riesgos propuestas

Estructura de un plan de proyecto

4. Requisitos de recursos de hardware y de software.Precios de lo que hay que comprar y fechas de entrega

5. División del trabajo.División del proyecto en actividades, marca hitos yDivisión del proyecto en actividades, marca hitos y productos a entregar

6. Calendario del proyecto.Dependencias entre actividades, tiempo estimado requerido y asignación de personal

7. Mecanismos de supervisión e informe.Cuándo y qué tipo de informe debe producirse

Page 12: Objetivos del curso Ingeniería del Software I - infor.uva.esmlaguna/is1/apuntes/1-intro.pdf · 1 Ingeniería del Software I 3º I.T.I.Gestión Miguel A. Laguna Objetivos del curso

12

Calendario del proyectoPartir el proyecto en tareas y estimar el tiempo y los recursos necesarios para terminar cada tareaOrganizar las tareas concurrentemente para hacer un uso óptimo de la mano de obrauso óptimo de la mano de obraMinimizar las dependencias entre tareas para evitar retrasos producidos cuando una tarea espera a otra para terminarDepende de la intuición y la experiencia de los administradores del proyecto

Diagramas para la gestión de proyectos

Las notaciones gráficas ilustran la planificación del proyectoMuestran la descomposición del proyecto en tareas.

Las tareas no deben ser demasiado pequeñas.Las tareas no deben ser demasiado pequeñas.

Los diagramas de redes de actividades muestran las dependencias de las tareas y el camino crítico

Los diagramas de barras muestran la planificación sobre el calendario

Duración de las tareas y dependenciasTarea Duración (días) Dependencias

T1 8 T2 15 T3 15 T1 (M1) T4 10 T5 10 T2, T4 (M2) T6 5 T1, T2 (M3) T7 20 T1 (M1) T8 25 T4 (M5) T9 15 T3, T6 (M4)

T10 15 T5, T7 (M7) T11 7 T9 (M6) T12 10 T11 (M8)

Red de actividades

start

M3T6

4/7/99

8 days

14/7/99 15 days

4/8/99

15 days

25/8/99

7 days20 days

5 days25/7/99

15 days

T1

M1 T3T9

M6M4

T2

Finish

T10

M7T5

T7

M2T4

M5

T8

5/9/99

10 days

19/9/99

15 days

11/8/99

25 days

10 days

15 days

25/7/99

18/7/99

10 days

T11

M8

T12

Actividades en el calendario4/7 11/7 18/7 25/7 1/8 8/8 15/8 22/8 29/8 5/9 12/9 19/9

T4

T1T2

M1

T7T3

M5

Start

M5

T8

M3

M2

T6

T5

M4

T9

M7

T10

M6

T11M8

T12

Finish

Asignación de personal4/7 11/7 18/7 25/ 1/8 8/8 15/8 22/8 29/8 5/9 12/9 19/9

T4

T8 T11

T12

T1

Fred

Jane T1

T3

T9

T2

T6 T10

T7

T5

Jane

Anne

Mary

Jim

Page 13: Objetivos del curso Ingeniería del Software I - infor.uva.esmlaguna/is1/apuntes/1-intro.pdf · 1 Ingeniería del Software I 3º I.T.I.Gestión Miguel A. Laguna Objetivos del curso

13

Problemas en la planificación

Estimar la dificultad de los problemas, y por lo tanto el coste de desarrollar una solución, es difícilL d i id d i l lLa productividad no es proporcional al número de personas que trabajan en una tareaAñadir personal al final del proyecto produce más retraso por la sobrecarga en la comunicaciónLo inesperado siempre ocurre

1.4.2Otras actividades de gestión

Gestión de riesgosGarantía de calidadGestión de la configuración

Gestión del riesgo

El análisis de riesgos consiste en evaluar el proyecto, la tecnología y los recursos con el fin determinar y comprender la naturaleza y el origen de los riesgosel origen de los riesgos

Posibles riesgos:Comerciales (competencia, etc.)Financieros (económicos, etc.)Técnicos (¿base tecnológica sólida y probada?)De desarrollo (¿equipo experimentado?)

Tabla de riesgos

Escala 1..5

Riesgo Probabilidad Impacto Gestión y Mitigación del

Riesgo

Escala 1..51=impacto

bajo 5=catástrofe

Ejemplo: Software empotrado depende de hardware no disponible 60% 4(crítico)

Ajustar pruebas a la disponiblilidad del HW

Utilizar simulación

Garantía de calidad

Coste de los fallos encontrados en distintas etapas

100 60.00-100.00

10

1

Req.Diseño

Prog.Pruebas En uso

0.75 1.001.50

3.00

10.00

Pruebadel sistema

Conceptos de calidad

¿Cómo se aplica al software?Control de calidad: inspecciones, revisiones, pruebasAseguramiento de la calidad: análisis, auditoría e informes

Estándares de calidad: ISO 90003guía para la aplicación de la ISO 9001:2000 para la adquisición, suministro, desarrollo, instalación y mantenimiento de SOFTWARE y servicios de soporte.

Page 14: Objetivos del curso Ingeniería del Software I - infor.uva.esmlaguna/is1/apuntes/1-intro.pdf · 1 Ingeniería del Software I 3º I.T.I.Gestión Miguel A. Laguna Objetivos del curso

14

Garantía de calidad

Revisionesformales

Proceso y

Estandares

Planifica-ción de laspruebas

Métricas

Análisis&

Informes

Nivel Características Resultados

Inicial

- Ausencia de gestión de proyectos. - El proceso de software es cambiante e irregular:- Los planes, estimaciones y calidad son impredecibles.- El rendimiento depende de la capacidad individual de los miembros del grupo.

S t bl d f ió d l

Productividad y calidad escasa.Riesgo máximo

MODELO DE MADUREZ DE LA CAPACIDAD

- Se establecen programas de formación del personal de desarrollo y mantenimiento.

Repetible

- Los procesos de software son estables y repetibles. - La organización establece políticas de gerencia de proyectos y procesos.- La planificación se basa en proyectos similares.- Existen estándares definidos y exigidos.- El proceso se enmarca en un sistema de gestión de proyectos basado en experiencias pasadas.

Productividad y calidad baja.Riesgo alto.

MODELO DE MADUREZ DE LA CAPACIDAD

Nivel Características Resultados

Definido

-Los procesos son definidos:estandarizados, documentados e institucionalizados.- Los procesos de ingeniería y gerencia son estables y seintegran en uno sólo.- Existe un entendimiento común de los procesos,funciones y responsabilidades.- La organización mantiene un grupo dedicado a la

Productividad y calidad media.Riesgo medio.

definición, mejora y difusión del proceso

Gestionado

- Los procesos son medibles o cuantificables- La productividad y la calidad se miden y registran paracada proyecto de la organización.- Se fijan metas cuantitativas de la calidad del software.-Mediante el uso de métricas de software, se crea unabase cuantitativa para la evaluación y estimación enproyectos futuros.

Productividad y calidad alta.Riesgo mínimo.

Optimizado

- Los procesos se mejoran continuamente.- La organización busca lograr el nivel máximo decapacidad.- Se incorporan nuevas tecnologías y métodos paramejorar los procesos.

Productividad y calidad total.Riesgo nulo.

SITUACIÓN DE CMM EN ESPAÑA. 5/2006

Gestión de la configuración del software

Requisitos técnicos

Cambios en Requisitos de negocio

C bi

Cambios en

datos

otros

códigoPruebas

Plan

modelos de software

Cambios en Requisitos de usuario

Gestión de la configuración del software

programas documentación

datosHay cambiosen muchas piezas

Page 15: Objetivos del curso Ingeniería del Software I - infor.uva.esmlaguna/is1/apuntes/1-intro.pdf · 1 Ingeniería del Software I 3º I.T.I.Gestión Miguel A. Laguna Objetivos del curso

15

Gestión de la configuración del software

PROCESO

TECNICAS

HERRAMIENTAS• identificación• control de versiones• control de cambios• auditoría• informes

Existen herramientas que ayudan al control de las versiones a medida que avanzan (SourceForge)

informes• construcción

1.5. Aspectos profesionales y éticos de la Ingeniería del Software

Recomendaciones de IEEE-CS y ACMObjetivos:

Cuerpo de conocimientos de la disciplina, criterio de acreditación de los titulados, mantener un código ético

Software Engineering Body of Knowledge (SWEBOK) E á d d l I i í d l S f

87

Estándares de la Ingeniería del SoftwareSoftware Engineering Education Project Software Engineering Code of Ethics and Professional Practice

En España: Colegios profesionales

Responsabilidad del Ingeniero de Software

La Ingeniería del Software implica una serie de responsabilidades más alla de las habilidades técnicas

88

Los Ingenieros de Software deben comportarse de modo honesto y ético si quieren lograr respeto como profesionales

Es algo más que cumplir la ley

ACM/IEEE-CS: código éticoSociedad: Los ingenieros de software actuarán de manera coherente con el interés general.Cliente y empresario: Los ingenieros de software deberán actuar de tal modo que se sirvan los mejores intereses para sus clientes y empresarios,

89

mejores intereses para sus clientes y empresarios, Producto: Los ingenieros del software deberán garantizar que sus productos y las modificaciones relacionadas con ellos cumplen los estándares profesionales de mayor nivel que sea posible.Juicio: Los ingenieros del software deberán mantener integridad e independencia en su valoración profesional.

ACM/IEEE-CS: código éticoGestión: Los gestores y líderes en Ingeniería del Software suscribirán y promoverán un enfoque ético a la gestión del desarrollo y el mantenimiento del software.Profesión: Los ingenieros del software deberán

90

Profesión: Los ingenieros del software deberán progresar en la integridad y la reputación de la profesión, de forma coherente con el interés público.Compañeros: Los ingenieros del software serán justos y apoyarán a sus compañeros.Persona: Los ingenieros del software deberán participar en el aprendizaje continuo de la práctica de su profesión y promoverán un enfoque ético en ella.

Page 16: Objetivos del curso Ingeniería del Software I - infor.uva.esmlaguna/is1/apuntes/1-intro.pdf · 1 Ingeniería del Software I 3º I.T.I.Gestión Miguel A. Laguna Objetivos del curso

16

1.6.Lenguaje Unificado de Modelado (UML)

1.6.1 ¿Qué es UML? 1.6.2 Arquitectura 1.6.3 Elementos de Modelado 1.6.4 Mecanismos de extensión

¿Por qué se necesita un lenguaje de modelado?

Los sistemas complejos son difíciles de entender si no se cuenta con un modelo que los describa

92

Disponer de un lenguaje capaz de modelarcualquier sistema software es esencial

El lenguaje de modelado tiene un valor añadido si dicho lenguaje es estándar.

¿Qué es UML?

“Unified Modeling Language”UML no es un método OOUML propone una notación y una semántica universal.Inicialmente:

“U l j ifi t i d t

93

“Un lenguaje para especificar, construir y documentar artefactos software, que pretende cubrir los conceptos de Booch, OMT y OOSE con un lenguaje simple, común y ampliamente utilizable por usuarios de otras metodologías”

UML es un un lenguaje para representar los modelos de cualquier método OO.

UML no fuerza a utilizar un método concreto (distintos tipos de problemas conducen a diferentes métodos de análisis y diseño)

UML- ObjetivosEstablecer un lenguaje visual de modelado, expresivo y sencillo (?) en su usoMantener una independencia (?) de los métodos y de los lenguajes de programación Establecer bases formales (?)

94

Establecer bases formales (?)Imponer un estándar mundial

Integrar las mejores prácticasModelar sistemas, y no únicamente softwareEstablecer las relaciones entre modelos conceptuales y ejecutablesCrear un lenguaje de modelado utilizable tanto por máquinas como por hombres

UML aglutina múltiples enfoques

RumbaughJacobson

Odell

Booch

MeyerPre y

95

UML

Embly

Gamma et. al.

Pre- yPost-condiciones

Singleton

Frameworks, patrones

Harel

Wirfs-BrockFusion

Shlaer-Mellor

State Charts

Responsabilidades

Descripciones de operaciones, Numeración de mensajes

Ciclo de vida de los objetos

Participantes en UML

Rational Software (Grady Booch, Jim Rumbaugh y Ivar Jacobson)Digital Equipment Hewlett-Packard i-Logix (David Harel)IBM

( d ’ )

96

ICON Computing (Desmond D’Souza)Intellicorp and James Martin & co. (James Odell)MCI SystemhouseMicrosoft ObjecTimeOracle Platinium TechnologySterling SoftwareTaskonTexas Instruments Unisys

Page 17: Objetivos del curso Ingeniería del Software I - infor.uva.esmlaguna/is1/apuntes/1-intro.pdf · 1 Ingeniería del Software I 3º I.T.I.Gestión Miguel A. Laguna Objetivos del curso

17

UML: Evolución

UML 1.1Publicación de UML 1.1Septiembre 1997

s pú

blic

os

Estandarización

UML 1.3Abril 1999:

UML 1.4

UML 2.x (08/2005)

septiembre de 2001

UML 1.5 (2003)

97Otros métodos Booch’91 OMT-1 OOSE

Booch’93 OMT-2

OOPSLA’95 Método Unificado 0.8

Junio 96 y Octubre 1996 UML 0.9 & 0.91

UML 1.0Publicación de UML 1.0Enero 1997

Colaboradores yexpertosD

ocu

men

tos

Fragmentación

Unificación

Aspectos Novedosos

Definición semi-formal del Meta-Modeloasociado

Incluye “stereotypes” como mecanismo de

98

Incluye stereotypes como mecanismo de extensibilidad (usos particulares)

Incluye un lenguaje para expresar restricciones, OCL (Object Constraint Language) desarrollado por IBM

Perspectivas de UML

UML ya es el lenguaje de modelado predominante Participación de importantes empresasAceptación como notación estándar OMG Evidencias:

99

Herramientas UML, libros, Congresos, cursos, camisetas,

Inconvenientes:Definición separada del proceso de desarrollo Falta integración con otras técnicas tales como patrones de diseño, interfaces de usuario, etc. Monopolio de conceptos, técnicas y métodos en torno a UML

Modelado con UML

Use CaseDiagramsUse Case

DiagramsDiagramas de Casos de Uso

StateDiagramsState

DiagramsDiagramas de Objetos

Use CaseDiagramsUse Case

DiagramsDiagramas deSecuencia

StateDiagramsState

DiagramsDiagramas deClases

100

ScenarioDiagramsScenario

DiagramsDiagramas deColaboración

StateDiagramsState

DiagramsDiagramas deComponentes

ComponentDiagramsComponent

DiagramsDiagramas deDistribución

ScenarioDiagramsScenario

DiagramsDiagramas deEstados Diagramas de

Actividad

Modelo

“Un modelo es una descripción completa de un sistema desde una perspectiva concreta”

¿Qué debe aportar un lenguaje de modelado?

Elementos de modelado Conceptos + SemánticaNotación Representación visual de los elementosRecomendaciones Cómo usarlo

101

Un metamodelo y una semántica

Una notación gráfica

Un conjunto de recomendaciones

Principales elementos de UML:

1.6.2. Arquitectura de UML

Page 18: Objetivos del curso Ingeniería del Software I - infor.uva.esmlaguna/is1/apuntes/1-intro.pdf · 1 Ingeniería del Software I 3º I.T.I.Gestión Miguel A. Laguna Objetivos del curso

18

Arquitectura

Arquitectura de cuatro capas, definida en la especificación Meta Object Facility del OMG:

•Meta-metamodelo: define el lenguaje para especificar metamodelos

103

p

• Metamodelo: define el lenguaje para especificar modelos

• Modelo: define el lenguaje para describir un dominio de información

• Objetos de usuario: define un dominio de información específico

Jerarquía de modelos

104

Los objetos se relacionan con las clases de las que son creados por la relación “SerInstanciaDe” (“IsInstanceOf”)

Modelado de objetos

105

Una situación parecida ocurre con las relaciones:

...Modelado de objetos

106

Metamodelado...Se basa en la idea de modelar los tipos de entidades (clases y relaciones) con que forman los modelos

d l l b l l

107

Cuando se ve la clase como un objeto, la clase es una instancia de otra clase (o meta-clase)

Metamodelado...

CityClass

NoOfInstances

Attribute

type

NoOfInstances = 1

Area

Type = Real

HasAttribute

Pop

Type = Real

Relationship

SourceCardinality TargetCardinality

IsIn.Country

SourceCardinality = 0 TargetCardinality = 1

Houston

Pop = 2M Area = 40 SM

USA

Pop = 250M Area = 200 SM

IsInHasRelationship

HasAttribute

HasRelationship

HasAttributeUML

108

CityClass

NoOfInstances

Attribute

type

NoOfInstances = 1

Area

Type = Real

HasAttribute

Pop

Type = Real

Relationship

SourceCardinality TargetCardinality

IsIn.Country

SourceCardinality = 0 TargetCardinality = 1

Houston

Pop = 2M Area = 40 SM

USA

Pop = 250M Area = 200 SM

IsInHasRelationship

HasAttribute

HasRelationship

HasAttribute

Page 19: Objetivos del curso Ingeniería del Software I - infor.uva.esmlaguna/is1/apuntes/1-intro.pdf · 1 Ingeniería del Software I 3º I.T.I.Gestión Miguel A. Laguna Objetivos del curso

19

...Metamodelado

La idea fundamental en el metamodelado es que las entidades del modelo (ej: clases) juegan dos papeles:

l l d l till ( d l )

109

el papel de plantilla (cuando se ve como una clase) el papel de instancia (cuando se ve como instancia de la meta-clase)

La idea de ver las clases como objetos puede ser aplicada repetidamente para crear una jerarquía de instanciación del clases y objetos

Terminología de metamodelado...

110

En principio está jerarquía podría continuar hasta cualquier profundidad arbitraria, pero en la práctica no se extiende más allá de cuatro niveles de profundidad

UML se define en cuatro niveles (la guía semántica de UML representa justamente el nivel meta-modelo)

Terminología de metamodelado...

111

...Terminología de metamodelado

112

1.6.3 Elementos de modelado en UML

Elementos y RelacionesDiagramas UMLVistas

UML: NotaciónBloques

ElementosEstructuralesDe comportamientoDe Agrupación

114

De AgrupaciónDe anotación

RelacionesDiagramas

Mecanismos Mecanismos de EspecificaciónDivisionesAdornosMecanismos de extensibilidad

Page 20: Objetivos del curso Ingeniería del Software I - infor.uva.esmlaguna/is1/apuntes/1-intro.pdf · 1 Ingeniería del Software I 3º I.T.I.Gestión Miguel A. Laguna Objetivos del curso

20

Bloques y relaciones

Métodos

AtributosClase

Métodos

AtributosObjeto

Estado

Caso de N d

115

InterfazCaso de

Uso

Actor

Nodo

Paquete Nota Componente

Dependencia Generalización

Asociación Realización

Paquetes en UML

Son elementos auxiliares de organización y pueden contener cualquier elemento de modelado.

Pueden anidarse a su vez.

116

Nombre

NombreNombre Nombre

Su utilidad final es ganar claridad

Notas

Una nota es un comentario en el diagrama, que irá unida a él o a uno de sus elementos..

117

Ejemplo de una

nota asociada a una clase

Métodos

AtributosClase

UML- Diagramas

118

Diagramas de estructura

119

Diagramas de comportamiento

120

Page 21: Objetivos del curso Ingeniería del Software I - infor.uva.esmlaguna/is1/apuntes/1-intro.pdf · 1 Ingeniería del Software I 3º I.T.I.Gestión Miguel A. Laguna Objetivos del curso

21

UML- DiagramasElicitación de requisitos de usuario

Casos de Uso

Modelado de la estructura estática/análisis y diseñoDiagrama de Clases

Model do de l e t t e táti /implement ión

121

Modelado de la estructura estática/implementaciónDiagrama de ComponentesDiagrama de Distribución

Modelado de interacciónDiagrama de secuenciaDiagrama de comunicación

Modelado dinámicoDiagrama de EstadosDiagrama de Actividades

UML- Casos de usoIntroducido formalmente por Ivar Jacobson

De empleo en la etapa de elicitación para captar los requisitos de los usuarios

122

De fácil comprensión por parte de los usuarios de los sistemas

Precisa otras técnicas complementarias para ser utilizada en procesos de modelado OO

UML- Casos de uso

incorporarlibros«include»

«extend»

caso de uso

123

realizarpréstamoAlumno

Bibliotecarioconsultar

libro

«include»

crear nuevocódigoactor

UML- Diagrama de ClasesProviene de los diagramas de entidad-relación de Chen (‘70s)

Fueron extendidos con conceptos de AOO, como generalización y agregación (‘80s)

124

Aunque también fueron empleados por Booch, conservan el aspecto de la notación propuesta por Rumbaugh en OMT

Permiten modelar la estructura estática de los sistemas

UML- Diagrama de Clases

PersonaAutor

1..*1

generalización

asociación

navegabilidadsolicita

125

Alumno Libro

Préstamo

0..* 0..*

notaclase

multiplicidad

clase asociación

solicita

UML- Diagrama de SecuenciaDescribe la forma en la que colaboran entre sí los objetos para llevar a cabo sus respectivas responsabilidades

Cada diagrama representa la funcionalidad (parcial) de un único caso de uso

126

Permite ver cómo se suceden cronológicamente los mensajes entre los objetos

Proviene de los diagramas POSA de Buschmann

Fueron utilizados por los tres autores del UML en sus respectivos métodos previos

Page 22: Objetivos del curso Ingeniería del Software I - infor.uva.esmlaguna/is1/apuntes/1-intro.pdf · 1 Ingeniería del Software I 3º I.T.I.Gestión Miguel A. Laguna Objetivos del curso

22

UML- Diagrama de Secuencia

objeto 1 objeto 2 objeto 3

inicio de un método

127

auto-delegación

destrucción de un objeto

retorno

activación

UML- Diagrama de Comunicación

Es otro de los diagramas de interacción que se incluye en el UML

No permite observar gráficamente la cronología de

128

No permite observar gráficamente la cronología de los mensajes

Facilita la organización de los objetos en paquetes

Destaca la conexión estática entre los objetos

UML- Diagrama de Comunicación

: Usuario1: maximo_alcanzado ( )

129

2: ejemplares disponibles ( ): bibliotecario

: Libro

: Ejemplar2.1: prestado ( )

UML- Diagrama de estadosDescribe cómo cambian de estado los objetos a medida que ocurren eventos

Cada diagrama se utiliza para representar el ciclo de vida de los objetos de una única clase (estados posibles en la vida de los

130

objetos de una única clase (estados posibles en la vida de los objetos)

Provienen de los diagramas de estado de David Harel

Los emplearon Rumbaugh en OMT, Booch en su libro de 1994 y Jacobson con la incorporación de una notación amplia

UML- Diagrama de estados

131

UML- Diagrama de Actividad

Sin antecedentes claros

Permite destacar y sincronizar las operaciones concurrentes y establecer caminos alternativos

132

concurrentes y establecer caminos alternativos

Muestra el comportamiento combinado de varias clases

Se emplea para describir comportamientos complejos

Page 23: Objetivos del curso Ingeniería del Software I - infor.uva.esmlaguna/is1/apuntes/1-intro.pdf · 1 Ingeniería del Software I 3º I.T.I.Gestión Miguel A. Laguna Objetivos del curso

23

UML- Diagrama de ActividadBuscar

transporte

TS

133

Entra a sutrabajo

Cambia demarcha

Mira por elespejo

Toma untaxi

Se va ensu auto

1.6.4 Mecanismos generales de extensión de UML

Estereotipos. Restricciones.Valores etiquetados.

Mecanismos de UMLTipos de mecanismos

Mecanismos de EspecificaciónCompleta el aspecto gráfico

Divisiones (dicotomías)Ej: clase y objeto operación y método

135

Ej: clase y objeto, operación y método.Adornos

Se pueden añadir detalles como la multiplicidad de una relación

Mecanismos de extensibilidadEstereotipos Valores etiquetadosRestricciones (OCL)

Mecanismos de extensión:

Estereotipos

Un estereotipo es un nuevo tipo de elemento de modelado.Los estereotipos se representan encerrados en los símbolos « » o mediante iconos

136

Mecanismos de extensión:

Valores etiquetados:

Se pueden añadir propiedades a los elementos de UML. Consisten en parejas de etiqueta + valor

137

Ventana{abstract,autor=José Z.,estado=comprobada}

Mecanismos de extensión:

Restricciones:

Una restricción es una relación semántica entre elementos del modelo que especifican condiciones y proposiciones que deben de ser respetadas o mantenidas como ciertas.

138

Todas las restricciones irán siempre encerradas entre llaves ( { } ).

En particular se puede utilizar OCL (Object Constraint Language)

Page 24: Objetivos del curso Ingeniería del Software I - infor.uva.esmlaguna/is1/apuntes/1-intro.pdf · 1 Ingeniería del Software I 3º I.T.I.Gestión Miguel A. Laguna Objetivos del curso

24

Persona Comité

Miembro de

Preside

{Subconjunto}

*

*

*

1

Mecanismos de extensión:

Restricciones:

139

{Persona.empleador=Persona.jefe.empleador}

Persona EmpresaEmpleado Empleador* 0..1

trabajador

jefe

*

0..1

Mecanismos de extensión:

Restricciones: OCLUML propone un lenguaje para expresar la navegación a través de caminos de clases en el modelo.Estas expresiones se pueden encadenar, de

140

Estas expresiones se pueden encadenar, de tal forma que el elemento más a la izquierda sea un objeto o un conjunto de objetos.

vuelo.piloto.horas_de_entrenamiento > horas.avión.horas_min

empresa.empleado[cargo=“Gerente” and Count(Subordinados)>10].

Bibliografía general

Sommerville, I. "Ingeniería del software" Pearson, 2005 (7ª ed.)Pressman, Roger S. "Ingeniería del software : un enfoque práctico MacGraw-Hill", 2005 (6ª ed) Booch, G., Jacobson, I., Rumbaugh, J. “El Lenguaje Unificado de Modelado. Guía del usuario”. Addison-Wesley/Diaz de Santos, 1999.

141

Lecturas complementarias

OMG, “OMG Unified Modeling Language Specification. Version 1.5”. Object Management Group Inc., 2003.SWEBOK: http://www.swebok.orgCódigo etico: http://seeri.etsu.edu/SpanishVersionSECode.htmColegio profesional de ingenieros en informatica de Castilla y León: http://www.cpiicyl.org/index.html

Caso de estudio: Punto de venta

142Referencia: libro de Larman

Registrar las ventas, incluyendo el detalle de los productos y su

cantidad.

Manejar un catálogo con todos los productos.

é ó

Las ventas se registran a través de un terminal punto-de-venta (TPDV)

143

Registrar los productos a través del código de barras o tecleando su identificación. 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 automáticamente el stock de cada producto

El cajero debe identificarse (nombre y contraseña) para utilizar un terminal

Enfoque: Se pretende independizar las capas del sistema:

Capa de Interfaz

144

Venta Pago

Registro Persistencia

Capa de objetosdel dominio

Capa de servicios

Foco principal