Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Introduccin
Motivacin
Es probable que trabajes en desarrollo de software? La programacin en s es un reto? (con las herramientas actuales) Como futuro ingeniero/a de software, qu crees que te debera distinguir en el 2 mercado laboral?
PROGRAMA
PROYECTO SOFTWARE
PRODUCTO SOFTWARE + Necesidades y restricciones de los clientes (cambiantes) + Arquitectura del software + Diseo detallado + Patrones + Interfaces e integracin + Seleccin tecnologa + Equipos mltiples + Algoritmos y estructuras de datos + Lneas de productos software +
Carrera profesional
Origen: desconocido
Motivacin
Introducir la ingeniera del software en general, y ms especficamente el anlisis y diseo de software orientado a objetos
7
Complementa
Bases de Datos Tecnologas de Desarrollo de Software Gestin de Proyectos de Desarrollo de Software Intensificacin de ISW Sistemas de Informacin
Despus, en 4 GII
Programa de teora
Bloque I. Introduccin Tema 1. Ingeniera del software Bloque II. Modelado en el desarrollo de software Tema 2. Modelado de requisitos Tema 3. Modelado del dominio Tema 4. Modelado del negocio Tema 5. Modelado del diseo Tema 6. Diseo lgico Bloque III. Modelos de proceso Tema 7. Mtodos de desarrollo Tema 8. Modelos de ciclo de vida
10
Programa de prcticas
Grupos de dos Notas individuales
Prctica 0. Entorno CASE de soporte a UML Prctica 1. Problemas de anlisis y diseo orientados a objetos Prctica 2. Proyecto de desarrollo con UML
11
Bibliografa bsica
Todos en la biblioteca:
Texto bsico:
[Larman 03] Larman, C. UML y Patrones: Una introduccin al anlisis y diseo orientado a objetos y al proceso unificado, Segunda Edicin, Prentice-Hall, 2003 La 3 edicin (en ingls, 2005) es igualmente vlida [Booch et al. 06] Booch, G. et al. "El lenguaje unificado de modelado: gua del usuario", 2 ed., Addison-Wesley, 2006
Evaluacin
Nota final de la asignatura:
Examen escrito (50%) Nota de prcticas (50%)
Para hacer media ser necesario aprobar ambas partes Participacin en clase (y especialmente en clases de problemas):
Hasta dos puntos ms en la nota final
13
15
16
17
1. El software
Programas de computador, procedimientos, y, posiblemente, la documentacin asociada y los datos pertenecientes a las operaciones de un sistema de computacin
Instrucciones que, cuando se ejecutan, proporcionan la funcionalidad deseada Estructuras de datos, que facilitan a las instrucciones manipular adecuadamente la informacin Base de datos, que registra la informacin que maneja el sistema Documentos, que describen el desarrollo, uso, instalacin y mantenimiento de los programas
18
19
Dcada 1990-00
Generalizacin POO Programacin visual Tecnologa de componentes Interoperabilidad (CORBA) Nuevas plataformas (Java, .NET) Anlisis/Diseo OO
Dcada 1970-80
Dcada 1980-90
20
21
Portable
Capaz de integrarse en entornos distintos con el mnimo esfuerzo
Inteligible
Diseo claro, bien estructurado y documentado
Adaptable (extensible)
Modificar alguna funcin sin que afecte a sus actividades
Reutilizable
El software puede ser usado con facilidad en nuevos desarrollos
24
25
100 80 60 40 20 0
60 70 80
aos
Hardware Software
26
Algunos sntomas
The Continuing IT Project Challenge
Late, Over budget, Reduced scope 46%
(Kappelman 2011, http://courses.unt.edu/kappelman/) 19% de los proyectos cancelados rotundo fracaso 46% de los proyectos en costo o plazos sobrepasadosno satisface completamente las necesidades de los clientes Slo el 35% de los proyectos completados a tiempo, en presupuesto, con la funcionalidad prometida A menudo, el rendimiento y la fiabilidad iniciales son menores que lo esperado y necesitado Las cancelaciones se incrementan con el tamao del proyecto: 32% de proyectos grandes cancelados (> 10K FPs) 52% proyectos muy grandes cancelados (> 100K FPs) FPs = Function Points (Carper Jones 2009)
Succesful 35%
Cancelled 19%
28
Algunas causas
Naturaleza no fsica de la programacin
El sw es la parte ms maleable del sistema
Problemas de gestin
29
(Brooks 87)
herramientas 4 gen.
lenguajes no procedimentales para consulta a BDs generadores de pantallas, generadores de cdigo, generadores de informes
30
31
32
33
Ms definiciones de ISW
(Fritz Bauer) La ISW es el establecimiento y uso de principios slidos de ingeniera, orientados a obtener software econmico que sea fiable y trabaje de manera eficiente en mquinas reales (Glosario Estndar de Trminos de Ingeniera del Software de IEEE, 1998) ISW: (1) La aplicacin de un enfoque sistemtico, disciplinado y cuantificable para el desarrollo, la operacin y el mantenimiento del software; es decir, la aplicacin de la ingeniera al software; (2) El estudio de enfoques como en (1) (Sommerville 2002) Disciplina que comprende todos los aspectos de la produccin de software desde las etapas iniciales de la especificacin del sistema, hasta el 34 mantenimiento de ste despus de que se utiliza
Sin embargo, ms all de las tecnologa, si miramos los procesos de ingeniera del software, desgraciadamente muchas cosas permanecen igual 35
El modelo en cascada sigue siendo utilizado por ms del 40% de las empresas (IEEE Software, Dic. 2003), a pesar de que sus serios problemas fueron identificados hace 20 aos La prueba es la tcnica de validacin predominante, a pesar de que otras tcnicas, como la inspeccin de programas, han sido usados ms eficientemente desde los aos 70 Las herramientas CASE son todava simplemente editores de diagramas con algunas funcionalidades de chequeo y generacin de cdigo Todava muchos proyectos terminan tarde, exceden el presupuesto o no entregan el software que esperaban 36 los clientes
37
Hoy da, Existe un consenso en la importancia de la ISW Se ha avanzado mucho, pero queda mucho por hacer Muchos autores comienzan a renegar de la vigencia de la crisis del software, aunque la disciplina todava no es madura
39
40
En 1994, Booch, Rumbaugh (OMT) y Jacobson (Objectory/OOSE) deciden unificar sus mtodos: Unified Modeling Language (UML) Proceso de estandarizacin promovido por el OMG (Object Managemente Group)
41
Extrado de Introduction to the Unified Modeling Language, Terry Quatrani, Staff, IBM, Software Group
42
El consorcio OMG
Atego CA Technologies CSC Eclipse Foundation Energistics ETRI Hewlett-Packard HSBC IBM Lockheed Martin Mayo Clinic Microsoft Corporation MITRE Model Driven Solutions No Magic, Inc. Objective Interface Systems Open Geospatial Consortium PrismTech Progress Software SELEX SI Software Centre of Excellence, Rolls-Royce Sparx Systems THALES The Open Group Unisys W3 Consortium
Fuente: Wikipedia
43
Evolucin de UML
Diciembre04- OMG adopta UML 2.0 Marzo03- OMG adopta UML 1.5
45
Ventajas de la unificacin
Reunir los puntos fuertes de cada mtodo Idear nuevas mejoras Proporcionar estabilidad al mercado
Proyectos basados en un lenguaje maduro Aparicin de potentes herramientas
47
UML y el modelado
UML es un lenguaje para visualizar, especificar, construir y documentar los artefactos (modelos) de un sistema que involucra una gran cantidad de software, desde una perspectiva OO
UML es una notacin, no un proceso Existen muchos procesos para UML, p.ej.
Proceso Unificado (Jacobson, Booch y Rumbaugh) RUP, Rational Unified Process
48
Por qu modelamos?
Un modelo es una simplificacin de la realidad Construimos modelos para comprender mejor el sistema que estamos desarrollando Cuatro utilidades de los modelos:
Visualizar cmo es o queremos que sea el sistema Especificar la estructura y comportamiento del sistema Proporcionan plantillas que guan la construccin del sistema Documentan las decisiones
49
50
51
52
Diagramas de UML
Diagramas de Casos de Uso Diagramas de Clases Diagramas de Objetos Diagramas de Interaccin Diagrama de Secuencia Diagrama de Colaboracin (Comunicacin en UML 2) Diagramas de Estados Diagramas de Actividades Diagramas de Componentes Diagramas de Despliegue Composite Structure Diagram (UML 2) Package Diagram (UML 2.0) Interaction Overview Diagram (UML 2) Timing Diagram (UML 2)
53
Diagramas de UML
Use Case Use Case Diagramas Diagrams de Diagrams Secuencia Use Case Use Case Diagramas Diagrams de Diagrams Casos de Uso State State Diagramas Diagrams de Diagrams Clases State State Diagramas Diagrams de Diagrams Objetos State State Diagramas Diagrams de Diagrams Componentes
Comportamiento
Estructural
Interaccin
Scenario Scenario Diagramas Diagrams de Diagrams Colaboracin
Modelo
Diagramas de Actividad
Implementacin
Despliegue
54
55
Est cobrando ms inters en los ltimos aos Los ingenieros de software tienen responsabilidades frente a la profesin y la sociedad Su responsabilidad no es exclusivamente tcnica Deben comportarse de forma tica y moralmente responsable si quieren ser respetados como profesionales Un ingeniero de software no debera comportarse de manera deshonesta o de una forma que perjudique a la profesin
56
profesional
Es preciso aceptar dicho cdigo para poder ser miembro de estas organizaciones
El Octavo Principio establece como obligacin el aprendizaje continuo a travs de toda la vida profesional
59