SlideShare una empresa de Scribd logo
1 de 54
Ingeniería de
Software
MARTIN DIAZ.
Objetivo del curso
Comprender el proceso de desarrollo de software a partir de la
conceptualización de un modelo de desarrollo de software estandarizado
tipo RUP (Rational Unified Process) donde el estudiante aprenda a
construir y mantener Sistemas de Información, basado en los principios
que brinda la Ingeniería de Software, como marco de referencia en el
proceso de construcción durante las fases de planeación, análisis, diseño y
desarrollo de Proyectos de software de calidad.
Textos Guías
• Ingeniería del Software: Un enfoque práctico. Roger S. Pressman . Quinta Edición. 2001
• Proceso Unificado de Modelado Ed. Pearson.Software Engineering, Shari Lawrence Pfleeger
• El lenguaje Unificado de Modelado versión 2.3
 11.2 OTRAS REFERENCIAS
• Ingeniería de Software. Ian Sommerville. Sexta Edición. 2001.
• Software Engineering: theory and Prectice. Pfleeger, Shari Lawrence. 1998.
• Software Engineering and testing, BB. Agarval, S.P. Tayal, M. Gupta, series Computer
Science, 2009
 DIRECCIONES DE INTERES
 www.uml.org
 www.omg.org
 www.sparsystems.com
 http://www.sei.cmu.edu
Evaluación
 Todas las evaluaciones son en pareja:
 Parcial 1: Examen en papel
 Parcial 2: Proyecto, Sustentación
 Parcial Final: Proyecto, Sustentación
 Notas Formativas:
 2 talleres
 1 exposición
Herramientas de trabajo
 Gestión proyecto:
 dotproject, Microsoft project, pert-cpm, formulación de proyectos,
pmbook, pmi, estándares
 Ingeniería de Software (desarrollo)
 Herramienta case (EA. http://www.sparxsystems.com/
 Lenguaje Unificado de Modelado UML
 Entorno de desarrollo preferiblemente JAVA, JSP, PHP
 Base de Datos MYSQL, ORACLE, SQL SERVER-2008 (EXPRESS)
 Documentación importante, generada por la herramienta
 Objeto de estudio (sistemas de información organizacional)
Ingeniería de Software: Definición
 La Ingeniería del software es una disciplina que permite la aplicación de un enfoque
sistemático, ordenado y cuantificable para el desarrollo, operación y mantenimiento de
software.
 La ingeniería del software es la aplicación de métodos y conocimiento científico para crear
soluciones prácticas para el diseño, construcción, operación y mantenimiento de software.
 La ingeniería del software es una disciplina que tiene por objetivo la producción de
software libre de defectos que satisfacen las necesidades de usuarios y que son
entregados a tiempo y dentro de un presupuesto.
 La calidad del producto es clave.(objetivos, tiempo, presupuesto, satisface cliente)
La naturaleza del software
 El software se desarrolla o modifica con intelecto; no se manufactura en el
sentido clásico.
 El software no se “desgasta”
 Aunque la industria se mueve hacia la construcción basada en
componentes, la mayor parte del software se construye para un uso
individualizado.
La naturaleza del software
1. ¿Por qué se requiere tanto tiempo para terminar el software?
2. ¿Por qué son tan altos los costos de desarrollo?
3. ¿Por qué no podemos detectar todos los errores antes de entregar el
software a nuestros clientes?
4. ¿Por qué dedicamos tanto tiempo y esfuerzo a mantener los programas
existentes?
5. ¿Por qué seguimos con dificultades para medir el avance mientras se
desarrolla y mantiene el software?
Aplicaciones de Software
 Software de Sistemas: compiladores, editores y herramientas para administrar archivos.
 Software de aplicación: programas aislados que resuelven una necesidad específica de
negocios.
 Software de ingeniería y ciencias: Algoritmos para resolver problemas matemáticos
también llamados devoradores de números.
 Software incrustado: Software diseñado para un hardware especifico-
 Aplicaciones web.
 Software de inteligencia artificial: hace uso de algoritmos no numéricos para resolver
problemas complejos que no son fáciles de tratar computacionalmente o con el análisis
directo
Software Heredados
 ¿Qué hago si encuentro un sistema heredado de mala calidad?
 ¿Qué tipos de cambios se hacen a los sistemas heredados?
 El software debe adaptarse para que cumpla las necesidades de los nuevos
ambientes del cómputo y de la tecnología.
 El software debe ser mejorado para implementar nuevos requerimientos del
negocio.
 El software debe ampliarse para que sea operable con otros sistemas o bases
de datos modernos.
 La arquitectura del software debe rediseñarse para hacerla viable dentro de un
ambiente de redes
La practica del software
 Entender el problema.
 ¿Quiénes tienen que ver con la solución del problema? Es decir, ¿quiénes son los
participantes?
 ¿Cuáles son las incógnitas? ¿Cuáles datos, funciones y características se requieren para
resolver el problema en forma apropiada?
 ¿Puede fraccionarse el problema? ¿Es posible representarlo con problemas más pequeños
que sean más fáciles de entender?
 ¿Es posible representar gráficamente el problema? ¿Puede crearse un modelo de análisis?
La practica del software
 Planear la solución.
 ¿Ha visto antes problemas similares? ¿Hay patrones reconocibles en una solución potencial?
 ¿Hay algún software existente que implemente los datos, funciones y características que se
requieren?
 ¿Ha resuelto un problema similar? Si es así, ¿son reutilizables los elementos de la solución?
 ¿Pueden definirse problemas más pequeños? Si así fuera, ¿hay soluciones evidentes para
éstos?
La practica del software
 Ejecutar el plan
 ¿Se ajusta la solución al plan? ¿El código fuente puede apegarse al modelo del diseño?
 ¿Es probable que cada parte componente de la solución sea correcta? ¿El diseño y código se
han revisado o, mejor aún, se han hecho pruebas respecto de la corrección del algoritmo?
La practica del software
 Examinar el resultado
 ¿Puede probarse cada parte componente de la solución? ¿Se ha implementado una estrategia
razonable para hacer pruebas?
 ¿La solución produce resultados que se apegan a los datos, funciones y características que se
requieren? ¿El software se ha validado contra todos los requerimientos de los participantes?
Principios generales
 Primer principio: La razón de que exista todo.
 Segundo principio: MSE (Mantenlo sencillo, estúpido…)
 Tercer principio: Mantener la visión
 Cuarto principio: Otros consumirán lo que usted produce
 Quinto principio: Ábrase al futuro.
 Sexto principio: Planee por anticipado la reutilización.
 Séptimo principio: ¡Piense!
MITOS DEL SOFTWARE
 Tenemos un libro lleno de estándares y procedimientos para elaborar software.
¿No le dará a mi personal todo lo que necesita saber?
 Si nos atrasamos, podemos agregar más programadores y ponernos al
corriente
 Si decido subcontratar el proyecto de software a un tercero, puedo descansar y
dejar que esa compañía lo elabore.
 Para comenzar a escribir programas, es suficiente el enunciado general de los
objetivos —podremos entrar en detalles más adelante.
 Los requerimientos del software cambian continuamente, pero el cambio se
asimila con facilidad debido a que el software es flexible.
 Una vez que escribimos el programa y hacemos que funcione, nuestro
trabajo ha terminado.
 Hasta que no se haga “correr” el programa, no hay manera de evaluar su
calidad.
 El único producto del trabajo que se entrega en un proyecto exitoso es el
programa que funciona.
 La ingeniería de software hará que generemos documentación voluminosa
e innecesaria, e invariablemente nos retrasará.
MITOS DEL SOFTWARE
Modelos de proceso de software
 La Ingeniería de Software como disciplina
 Un modelo de proceso de software es una representación simplificada de un
proceso de software que conlleva una estrategia global para abordar el desarrollo
de software
 Modelos de proceso de software:
 Codificar y corregir (code-and-fix)
 Desarrollo en cascada
 Desarrollo evolutivo
 Desarrollo formal de sistemas
 Desarrollo basado en reutilización
 Desarrollo incremental
 Desarrollo en espiral
Modelos de proceso de software:
Codificar y corregir (code-and-fix)
Modelos de proceso de software: Desarrollo en
Cascada
[Ingeniería de Software. Sommerville I.., 2002]
Modelos de proceso de software: Desarrollo
evolutivo
[Ingeniería de Software. Sommerville I.., 2002]
[Balzer R. A 15 Year Perspective on Automatic Programming. IEEE Transactions on Software Engineering,
vol.11, núm.11, páginas 1257-1268, Noviembre 1985 ]
Modelos de proceso de software: Desarrollo formal
de sistemas
Especificación
Tranformación
Interactiva
Transformación
Automática
Optimización
Validación de
Especificación
Mantenimiento
Especificación
de alto nivel
(prototipo)
Desarrollo
FormalDesiciones
Especificación
de bajo nivel
Código
Fuente
Especificación
Informal
Modelos de proceso de software: Desarrollo
basado en reutilización
[Ingeniería de Software. Sommerville I.., 2002]
Modelos de proceso de software: Desarrollo
incremental
[Ingeniería de Software. Sommerville I.., 2002]
22/05/2017
DiseñodeSoftwareI
Modelo de Proceso de Espiral
Determine objetivos
alternativas y
restricciones
Evalúe alternativas,
identifique y resuelva
riesgos
Análisis de
Riesgos
Análisis de
Riesgos
Análisis de
Riesgos
Análisis
de
Riesgos
Planea la
siguiente fase
Desarrolla y verifica
el siguiente nivel
del producto
Prototipo
OperacionalPrototipo
3Prototipo
2Proto
tipo 3
Plan de requerimientos
Plan del ciclo de vida
REVISIÓN
Plan de
Desarrollo
Plan de Integración
y Prueba
Concepto de
Operación
Simulaciones, modelos y benchmarks
Requeri
mientos de
SW
Validación de
Requerimientos
Diseño
V &V
Servicio
Prueba de
Aceptación
Prueba de
Integración
Prueba de
Unidades
Codificación
Diseño
Detallado
Diseño
del
Producto
Modelos de proceso de software ¿Cuál es el más
adecuado?
Modelo de
proceso
Desempeño con
requisitos y
arquitectura no
predefinidos
Produce software
altamente fiable Gestión de
riesgos
Permite
correcciones
sobre la marcha
Visión del
progreso por el
Cliente y el Jefe
del proyecto
Codificar y
corregir
Bajo Bajo Bajo Alto Medio
Desarrollo
En cascada
Bajo Alto Bajo Bajo Bajo
Desarrollo
Evolutivo
Alto Medio Medio Alto Alto
Desarrollo formal
de sistemas Bajo Alto Bajo a Medio Bajo Bajo
Desarrollo basado
en reutilización Medio Bajo a Medio Bajo a Medio Alto Alto
Desarrollo
Incremental
Bajo Alto Medio Bajo Bajo
Desarrollo
Espiral
Alto Alto Alto Medio Medio
Introducción a
Rational Unified Process (RUP)
Dos Dimensiones
III. Proceso de Desarrollo de SW basado en UML
Fases e Hitos (Milestones)
tiempo
Objetivos
(Vision)
Arquitectura Capacidad
Operacional
Inicial
Release
del Producto
Inception Elaboration Construction Transition
III. Proceso de Desarrollo de SW basado en UML
Elementos en RUP
 Workflows (Disciplinas)
Workflows Primarios
• Business Modeling (Modado del Negocio)
• Requirements (Requisitos)
• Analysis & Design (Análisis y Diseño)
• Implementation (Implementación)
• Test (Pruebas)
• Deployment (Despliegue)
Workflows de Apoyo
• Environment (Entorno)
• Project Management (Gestión del Proyecto)
• Configuration & Change Management (Gestión de Configuración y
Cambios)
III. Proceso de Desarrollo de SW basado en UML
... Elementos en RUP
Workflow, Workflow Detail , Workers, Actividades y Artefactos
Ejemplo
Workflow Detail:Analyse the ProblemWorkflow: Requirements
Actividades
Workers Artefactos
III. Proceso de Desarrollo de SW basado en UML
... Elementos en RUP
Workers
Analyst workers
 Business-Process Analyst
 Business Designer
 Business-Model Reviewer
 Requirements Reviewer
 System Analyst
 Use-Case Specifier
 User-Interface Designer
Developer workers
 Architect
 Architecture Reviewer
 Capsule Designer
 Code Reviewer
 Database Designer
 Design Reviewer
 Designer
 Implementer
 Integrator
Testing professional workers
 Test Designer
 Tester
Manager workers
 Change Control Manager
 Configuration Manager
 Deployment Manager
 Process Engineer
 Project Manager
 Project Reviewer
Other workers
 Any Worker
 Course Developer
 Graphic Artist
 Stakeholder
 System Administrator
 Technical Writer
 Tool Specialist
III. Proceso de Desarrollo de SW basado en UML
... Elementos en RUP
Workers, Actividades, Artefactos
Ejemplo: System Analyst Worker
III. Proceso de Desarrollo de SW basado en UML
... Elementos en RUP
Artefactos
 Resultado parcial o final que es producido y usado
durante el proyecto. Son las entradas y salidas de
las actividades
 Un artefacto puede ser un documento, un modelo o
un elemento de modelo
 Conjuntos de Artefactos Deployment Set
 Project Management Set
 Configuration & Change Management Set
 Environment Set
 Business Modeling Set
 Requirements Set
 Analysis & Design Set
 Implementation Set
 Test Set
III. Proceso de Desarrollo de SW basado en UML
... Elementos en RUP
Artefactos, Workers, Actividades
Ejemplo:Business Modeling Artifact Set
III. Proceso de Desarrollo de SW basado en UML
Características Esenciales de RUP
 Proceso Dirigido por los Casos de Uso
 Proceso Iterativo e Incremental
 Proceso Centrado en la Arquitectura
III. Proceso de Desarrollo de SW basado en UML
Requisitos
Capturar, definir y
validar los casos de uso
Realizar los
casos de uso
Verificar que se
satisfacen los casos
de uso
Proceso dirigido por los Casos de Uso
Análisis & Diseño
Implementación
Pruebas
Casos de Uso
integran el
trabajo
III. Proceso de Desarrollo de SW basado en UML
Caso de Uso Realización de Análisis Realización de Diseño
Caso de Prueba
X
«trace» «trace»
«trace»
«trace»
Pruebas Funcionales
Pruebas
Unitarias
... Proceso dirigido por los Casos de Uso
[The Unified Software Development Process. I. Jacobson, G. Booch and J. Rumbaugh. Addison-Wesley, 1999]
III. Proceso de Desarrollo de SW basado en UML
... Proceso dirigido por los Casos de Uso
III. Proceso de Desarrollo de SW basado en UML
 El ciclo de vida iterativo se basa en la evolución de prototipos
ejecutables que se muestran a los usuarios y clientes
 En el ciclo de vida iterativo a cada iteración se reproduce el
ciclo de vida en cascada a menor escala
 Los objetivos de una iteración se establecen en función de la
evaluación de las iteraciones precedentes
Proceso Iterativo e Incremental
III. Proceso de Desarrollo de SW basado en UML
 Las actividades se encadenan en una mini-
cascada con un alcance limitado por los
objetivos de la iteración
Análisis
Diseño
Codific.
Pruebas e
Integración
n veces
... Proceso Iterativo e Incremental
III. Proceso de Desarrollo de SW basado en UML
 Cada iteración comprende:
 Planificar la iteración (estudio de riesgos)
 Análisis de los Casos de Uso y escenarios
 Diseño de opciones arquitectónicas
 Codificación y pruebas. La integración del nuevo código con
el existente de iteraciones anteriores se hace gradualmente
durante la construcción
 Evaluación de la entrega ejecutable (evaluación del prototipo
en función de las pruebas y de los criterios definidos)
 Preparación de la entrega (documentación e instalación del
prototipo)
... Proceso Iterativo e Incremental
III. Proceso de Desarrollo de SW basado en UML
Proceso Iterativo e Incremental
Enfoque
Secuencial
Enfoque
Iterativo e
Incremental
III. Proceso de Desarrollo de SW basado en UML
Grado de Finalización de Artefactos
... Proceso Iterativo e Incremental
III. Proceso de Desarrollo de SW basado en UML
Proceso Centrado en la Arquitectura
 Arquitectura de un sistema es la organización o estructura de sus partes más
relevantes
 Un arquitectura ejecutable es una implementación parcial del sistema,
construida para demostrar algunas funciones y propiedades
 RUP establece refinamientos sucesivos de una arquitectura ejecutable,
construida como un prototipo evolutivo.
III. Proceso de Desarrollo de SW basado en UML
Esfuerzo y dedicación por Fases en RUP
Inicio Elaboración Construcción Transición
Esfuerzo 5 % 20 % 65 % 10%
Tiempo
Dedicado 10 % 30 % 50 % 10%
Distribución de Recursos por Fases en RUP
Fin
Introducción a
Rational Unified Process (RUP)
Introducción:
UML
¿Qué es UML?
 UML = Unified Modeling Language
 Un lenguaje de propósito general para el modelado orientado a
objetos. Impulsado por el Object Management Group (OMG,
www.omg.org)
 Documento “OMG Unified Modeling Language Specification”
 UML combina notaciones provenientes desde:
 Modelado Orientado a Objetos
 Modelado de Datos
 Modelado de Componentes
 Modelado de Flujos de Trabajo (Workflows)
I. Introducción: UML
Participantes en UML 1.0
 Rational Software
(Grady Booch, Jim Rumbaugh y
Ivar Jacobson)
 Digital Equipment
 Hewlett-Packard
 i-Logix (David Harel)
 IBM
 ICON Computing
(Desmond D’Souza)
 Intellicorp and James
Martin & co. (James Odell)
 MCI Systemhouse
 Microsoft
 ObjecTime
 Oracle Corp.
 Platinium Technology
 Sterling Software
 Taskon
 Texas Instruments
 Unisys
I. Introducción: UML
Aspectos Novedosos
 Definición semi-formal del Metamodelo de UML
 Mecanismos de Extensión en UML:
 Stereotypes
 Constraints
 Tagged Values
Permiten adaptar los elementos de modelado,
asignándoles una semántica particular
I. Introducción: UML
Inconvenientes en UML
 Definición del proceso de desarrollo usando UML. UML no es una metodología
 No cubre todas las necesidades de especificación de un proyecto software. Por
ejemplo, no define los documentos textuales
 Ejemplos aislados
 “Monopolio de conceptos, técnicas y métodos en torno a UML y el OMG”
I. Introducción: UML
Perspectivas de UML
 UML es el lenguaje de modelado orientado a objetos estándar
predominante ahora y en los próximos años
 Razones:
 Participación de metodólogos influyentes
 Participación de importantes empresas
 Estándar del OMG
 Evidencias:
 Herramientas que proveen la notación UML
 “Edición” de libros (más de 300 en www.amazon.com)
 Congresos, cursos, “camisetas”, etc.
I. Introducción: UML

Más contenido relacionado

La actualidad más candente

Ingenieria de software (conceptos básicos)
Ingenieria de software (conceptos básicos)Ingenieria de software (conceptos básicos)
Ingenieria de software (conceptos básicos)Yaskelly Yedra
 
Diapositivas De Ingenieria De Software
Diapositivas De Ingenieria De SoftwareDiapositivas De Ingenieria De Software
Diapositivas De Ingenieria De Softwarerapa69
 
Introducción a la Ingeniería de Software:Qué es un Buen Sistema?
Introducción  a la Ingeniería de Software:Qué es un Buen Sistema?Introducción  a la Ingeniería de Software:Qué es un Buen Sistema?
Introducción a la Ingeniería de Software:Qué es un Buen Sistema?Kudos S.A.S
 
1.is.el software y la ingeniería del software
1.is.el software y la ingeniería del software1.is.el software y la ingeniería del software
1.is.el software y la ingeniería del softwareRamiro Estigarribia Canese
 
Introduccion a la Ingenieria de Software
Introduccion a la Ingenieria de SoftwareIntroduccion a la Ingenieria de Software
Introduccion a la Ingenieria de SoftwareFabricio Sanchez
 
Tecnicas.de.ingenieria.de.software
Tecnicas.de.ingenieria.de.softwareTecnicas.de.ingenieria.de.software
Tecnicas.de.ingenieria.de.softwarejuankexmisiodj
 
Conceptos Básicos de Ingeniería del Software y Control de Proyectos
Conceptos Básicos de Ingeniería del Software y Control de ProyectosConceptos Básicos de Ingeniería del Software y Control de Proyectos
Conceptos Básicos de Ingeniería del Software y Control de Proyectosedwinlemmon
 
Unidad 1 Introducción a la Ingeniería de Software
Unidad 1 Introducción a la Ingeniería de SoftwareUnidad 1 Introducción a la Ingeniería de Software
Unidad 1 Introducción a la Ingeniería de SoftwareMary Carmen
 
Introducción a la Ingeniria del Software
Introducción a la Ingeniria del SoftwareIntroducción a la Ingeniria del Software
Introducción a la Ingeniria del SoftwareEdit Lopez Veloz
 
Ingenieria de Software
Ingenieria de SoftwareIngenieria de Software
Ingenieria de Softwareem3marquez
 
Ingeniería de software - Descripción, características, modelos
Ingeniería de software - Descripción, características, modelosIngeniería de software - Descripción, características, modelos
Ingeniería de software - Descripción, características, modelosRafael Fdo Lopez Castillo
 
Grupo# 5 problemas en el desarrollo de software
Grupo# 5 problemas en el desarrollo de softwareGrupo# 5 problemas en el desarrollo de software
Grupo# 5 problemas en el desarrollo de softwarejohan2105
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de softwaremichellchia11
 
Ingeniería de Software - Sesion 2
Ingeniería de Software - Sesion 2Ingeniería de Software - Sesion 2
Ingeniería de Software - Sesion 2Luis Piedra
 

La actualidad más candente (19)

conceptos de ingenieria de software
conceptos de ingenieria de softwareconceptos de ingenieria de software
conceptos de ingenieria de software
 
Ingenieria de software (conceptos básicos)
Ingenieria de software (conceptos básicos)Ingenieria de software (conceptos básicos)
Ingenieria de software (conceptos básicos)
 
Diapositivas De Ingenieria De Software
Diapositivas De Ingenieria De SoftwareDiapositivas De Ingenieria De Software
Diapositivas De Ingenieria De Software
 
Introducción a la Ingeniería de Software:Qué es un Buen Sistema?
Introducción  a la Ingeniería de Software:Qué es un Buen Sistema?Introducción  a la Ingeniería de Software:Qué es un Buen Sistema?
Introducción a la Ingeniería de Software:Qué es un Buen Sistema?
 
Ingenieria De Software
Ingenieria De SoftwareIngenieria De Software
Ingenieria De Software
 
1.is.el software y la ingeniería del software
1.is.el software y la ingeniería del software1.is.el software y la ingeniería del software
1.is.el software y la ingeniería del software
 
Introduccion a la Ingenieria de Software
Introduccion a la Ingenieria de SoftwareIntroduccion a la Ingenieria de Software
Introduccion a la Ingenieria de Software
 
Tecnicas.de.ingenieria.de.software
Tecnicas.de.ingenieria.de.softwareTecnicas.de.ingenieria.de.software
Tecnicas.de.ingenieria.de.software
 
Conceptos Básicos de Ingeniería del Software y Control de Proyectos
Conceptos Básicos de Ingeniería del Software y Control de ProyectosConceptos Básicos de Ingeniería del Software y Control de Proyectos
Conceptos Básicos de Ingeniería del Software y Control de Proyectos
 
Introducción a la ingeniería del software
Introducción a la ingeniería del softwareIntroducción a la ingeniería del software
Introducción a la ingeniería del software
 
Unidad 1 Introducción a la Ingeniería de Software
Unidad 1 Introducción a la Ingeniería de SoftwareUnidad 1 Introducción a la Ingeniería de Software
Unidad 1 Introducción a la Ingeniería de Software
 
Introducción a la Ingeniria del Software
Introducción a la Ingeniria del SoftwareIntroducción a la Ingeniria del Software
Introducción a la Ingeniria del Software
 
Ingenieria de Software
Ingenieria de SoftwareIngenieria de Software
Ingenieria de Software
 
Conceptos I Sw
Conceptos I SwConceptos I Sw
Conceptos I Sw
 
Ingeniería de software - Descripción, características, modelos
Ingeniería de software - Descripción, características, modelosIngeniería de software - Descripción, características, modelos
Ingeniería de software - Descripción, características, modelos
 
Grupo# 5 problemas en el desarrollo de software
Grupo# 5 problemas en el desarrollo de softwareGrupo# 5 problemas en el desarrollo de software
Grupo# 5 problemas en el desarrollo de software
 
problemas del software
problemas del softwareproblemas del software
problemas del software
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software
 
Ingeniería de Software - Sesion 2
Ingeniería de Software - Sesion 2Ingeniería de Software - Sesion 2
Ingeniería de Software - Sesion 2
 

Similar a Ingeniería de software

Trabajo diapositiva modulo 3 de jhonatan
Trabajo diapositiva modulo 3 de jhonatanTrabajo diapositiva modulo 3 de jhonatan
Trabajo diapositiva modulo 3 de jhonatanjhonatanalex
 
SeccióN De TéCnicas De IngenieríA De Software(2007)
SeccióN De TéCnicas  De IngenieríA De Software(2007)SeccióN De TéCnicas  De IngenieríA De Software(2007)
SeccióN De TéCnicas De IngenieríA De Software(2007)denny osael lopez medina
 
Introduccion a la Ingenieria en Sistemas de Informacion, Examen Dos, Guia & R...
Introduccion a la Ingenieria en Sistemas de Informacion, Examen Dos, Guia & R...Introduccion a la Ingenieria en Sistemas de Informacion, Examen Dos, Guia & R...
Introduccion a la Ingenieria en Sistemas de Informacion, Examen Dos, Guia & R...Osver Fernandez V
 
El_software_y_la_Ingenieria_de_Software.pdf
El_software_y_la_Ingenieria_de_Software.pdfEl_software_y_la_Ingenieria_de_Software.pdf
El_software_y_la_Ingenieria_de_Software.pdfpauly230688
 
Curso ingeniería de software parte i
Curso ingeniería de software parte iCurso ingeniería de software parte i
Curso ingeniería de software parte iparafernalico
 
IngSoftCap01-Introduccion.pdf
IngSoftCap01-Introduccion.pdfIngSoftCap01-Introduccion.pdf
IngSoftCap01-Introduccion.pdfcristian265023
 
Mariajosehernandezcardenas 233101 9_agosto
Mariajosehernandezcardenas 233101 9_agostoMariajosehernandezcardenas 233101 9_agosto
Mariajosehernandezcardenas 233101 9_agostoMariaJoshernandezcar
 
Presentacion de ingenieria
Presentacion de ingenieriaPresentacion de ingenieria
Presentacion de ingenieriaAlexander Cruz
 
SELECCIÓN DE TECNICAS DE INGENIERIA DE SOFTWARE.
SELECCIÓN DE TECNICAS DE INGENIERIA DE SOFTWARE. SELECCIÓN DE TECNICAS DE INGENIERIA DE SOFTWARE.
SELECCIÓN DE TECNICAS DE INGENIERIA DE SOFTWARE. Cristhian Martinez
 
Presentación Sesión 1 Ingeniería del Software.pptx
Presentación Sesión 1 Ingeniería del Software.pptxPresentación Sesión 1 Ingeniería del Software.pptx
Presentación Sesión 1 Ingeniería del Software.pptxAderMogollonLuna
 
Ingenieria del Software: Software a medida y generico.
Ingenieria del Software: Software a medida y generico.Ingenieria del Software: Software a medida y generico.
Ingenieria del Software: Software a medida y generico.usserp584
 
Guia unidad ii fundamentacion de ingenieria del software
Guia unidad ii fundamentacion de ingenieria del softwareGuia unidad ii fundamentacion de ingenieria del software
Guia unidad ii fundamentacion de ingenieria del softwaresullinsan
 
Kevin guia
Kevin guiaKevin guia
Kevin guiakeninmnk
 
Tarea(1)
Tarea(1)Tarea(1)
Tarea(1)daniel
 

Similar a Ingeniería de software (20)

Trabajo de desarrollo desoftware
Trabajo de desarrollo desoftwareTrabajo de desarrollo desoftware
Trabajo de desarrollo desoftware
 
Trabajo diapositiva modulo 3 de jhonatan
Trabajo diapositiva modulo 3 de jhonatanTrabajo diapositiva modulo 3 de jhonatan
Trabajo diapositiva modulo 3 de jhonatan
 
SeccióN De TéCnicas De IngenieríA De Software(2007)
SeccióN De TéCnicas  De IngenieríA De Software(2007)SeccióN De TéCnicas  De IngenieríA De Software(2007)
SeccióN De TéCnicas De IngenieríA De Software(2007)
 
Introduccion a la Ingenieria en Sistemas de Informacion, Examen Dos, Guia & R...
Introduccion a la Ingenieria en Sistemas de Informacion, Examen Dos, Guia & R...Introduccion a la Ingenieria en Sistemas de Informacion, Examen Dos, Guia & R...
Introduccion a la Ingenieria en Sistemas de Informacion, Examen Dos, Guia & R...
 
El_software_y_la_Ingenieria_de_Software.pdf
El_software_y_la_Ingenieria_de_Software.pdfEl_software_y_la_Ingenieria_de_Software.pdf
El_software_y_la_Ingenieria_de_Software.pdf
 
Curso ingeniería de software parte i
Curso ingeniería de software parte iCurso ingeniería de software parte i
Curso ingeniería de software parte i
 
IngSoftCap01-Introduccion.pdf
IngSoftCap01-Introduccion.pdfIngSoftCap01-Introduccion.pdf
IngSoftCap01-Introduccion.pdf
 
Ingenieria de software
Ingenieria de softwareIngenieria de software
Ingenieria de software
 
Mariajosehernandezcardenas 233101 9_agosto
Mariajosehernandezcardenas 233101 9_agostoMariajosehernandezcardenas 233101 9_agosto
Mariajosehernandezcardenas 233101 9_agosto
 
Paula guia
Paula guiaPaula guia
Paula guia
 
Presentacion de ingenieria
Presentacion de ingenieriaPresentacion de ingenieria
Presentacion de ingenieria
 
SELECCIÓN DE TECNICAS DE INGENIERIA DE SOFTWARE.
SELECCIÓN DE TECNICAS DE INGENIERIA DE SOFTWARE. SELECCIÓN DE TECNICAS DE INGENIERIA DE SOFTWARE.
SELECCIÓN DE TECNICAS DE INGENIERIA DE SOFTWARE.
 
Presentación Sesión 1 Ingeniería del Software.pptx
Presentación Sesión 1 Ingeniería del Software.pptxPresentación Sesión 1 Ingeniería del Software.pptx
Presentación Sesión 1 Ingeniería del Software.pptx
 
Ingenieria del Software: Software a medida y generico.
Ingenieria del Software: Software a medida y generico.Ingenieria del Software: Software a medida y generico.
Ingenieria del Software: Software a medida y generico.
 
Guia unidad ii fundamentacion de ingenieria del software
Guia unidad ii fundamentacion de ingenieria del softwareGuia unidad ii fundamentacion de ingenieria del software
Guia unidad ii fundamentacion de ingenieria del software
 
Plan
PlanPlan
Plan
 
Kevin guia
Kevin guiaKevin guia
Kevin guia
 
Desarrollo de software
Desarrollo de softwareDesarrollo de software
Desarrollo de software
 
Tarea(1)
Tarea(1)Tarea(1)
Tarea(1)
 
Software de ingenieria
Software de ingenieriaSoftware de ingenieria
Software de ingenieria
 

Último

Edificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaEdificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaANDECE
 
Sistema de Gestión de Freelancers (Base de Datos)
Sistema de Gestión de Freelancers (Base de Datos)Sistema de Gestión de Freelancers (Base de Datos)
Sistema de Gestión de Freelancers (Base de Datos)dianamateo1513
 
Historia de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdfHistoria de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdfIsbelRodrguez
 
Diagrama de flujo metalurgia del cobre..pptx
Diagrama de flujo metalurgia del cobre..pptxDiagrama de flujo metalurgia del cobre..pptx
Diagrama de flujo metalurgia del cobre..pptxHarryArmandoLazaroBa
 
Espontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneosEspontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneosOscarGonzalez231938
 
Peligros de Excavaciones y Zanjas presentacion
Peligros de Excavaciones y Zanjas presentacionPeligros de Excavaciones y Zanjas presentacion
Peligros de Excavaciones y Zanjas presentacionOsdelTacusiPancorbo
 
Sistema de Base de Datos (Rubén Alberto)
Sistema de Base de Datos (Rubén Alberto)Sistema de Base de Datos (Rubén Alberto)
Sistema de Base de Datos (Rubén Alberto)mendezruben1901
 
Tarea de UTP matematices y soluciones ingenieria
Tarea de UTP matematices y soluciones ingenieriaTarea de UTP matematices y soluciones ingenieria
Tarea de UTP matematices y soluciones ingenieriaSebastianQP1
 
CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIACLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIAMayraOchoa35
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPJosLuisFrancoCaldern
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Francisco Javier Mora Serrano
 
NOM-002-STPS-2010, combate contra incendio.pptx
NOM-002-STPS-2010, combate contra incendio.pptxNOM-002-STPS-2010, combate contra incendio.pptx
NOM-002-STPS-2010, combate contra incendio.pptxJairReyna1
 
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdfS454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdffredyflores58
 
594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...
594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...
594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...humberto espejo
 
Electromagnetismo Fisica FisicaFisica.pdf
Electromagnetismo Fisica FisicaFisica.pdfElectromagnetismo Fisica FisicaFisica.pdf
Electromagnetismo Fisica FisicaFisica.pdfAnonymous0pBRsQXfnx
 
Electricidad y electronica industrial unidad 1
Electricidad y electronica industrial unidad 1Electricidad y electronica industrial unidad 1
Electricidad y electronica industrial unidad 1victorrodrigues972054
 
trabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidastrabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidasNelsonQuispeQuispitu
 
Trabajo en altura de acuerdo a la normativa peruana
Trabajo en altura de acuerdo a la normativa peruanaTrabajo en altura de acuerdo a la normativa peruana
Trabajo en altura de acuerdo a la normativa peruana5extraviado
 
Fisiología del azufre en plantas S.S.pdf
Fisiología del azufre en plantas S.S.pdfFisiología del azufre en plantas S.S.pdf
Fisiología del azufre en plantas S.S.pdfJessLeonelVargasJimn
 

Último (20)

Edificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaEdificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes Granada
 
Sistema de Gestión de Freelancers (Base de Datos)
Sistema de Gestión de Freelancers (Base de Datos)Sistema de Gestión de Freelancers (Base de Datos)
Sistema de Gestión de Freelancers (Base de Datos)
 
Historia de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdfHistoria de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdf
 
Diagrama de flujo metalurgia del cobre..pptx
Diagrama de flujo metalurgia del cobre..pptxDiagrama de flujo metalurgia del cobre..pptx
Diagrama de flujo metalurgia del cobre..pptx
 
MATPEL COMPLETO DESDE NIVEL I AL III.pdf
MATPEL COMPLETO DESDE NIVEL I AL III.pdfMATPEL COMPLETO DESDE NIVEL I AL III.pdf
MATPEL COMPLETO DESDE NIVEL I AL III.pdf
 
Espontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneosEspontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneos
 
Peligros de Excavaciones y Zanjas presentacion
Peligros de Excavaciones y Zanjas presentacionPeligros de Excavaciones y Zanjas presentacion
Peligros de Excavaciones y Zanjas presentacion
 
Sistema de Base de Datos (Rubén Alberto)
Sistema de Base de Datos (Rubén Alberto)Sistema de Base de Datos (Rubén Alberto)
Sistema de Base de Datos (Rubén Alberto)
 
Tarea de UTP matematices y soluciones ingenieria
Tarea de UTP matematices y soluciones ingenieriaTarea de UTP matematices y soluciones ingenieria
Tarea de UTP matematices y soluciones ingenieria
 
CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIACLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIA
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
 
NOM-002-STPS-2010, combate contra incendio.pptx
NOM-002-STPS-2010, combate contra incendio.pptxNOM-002-STPS-2010, combate contra incendio.pptx
NOM-002-STPS-2010, combate contra incendio.pptx
 
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdfS454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
 
594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...
594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...
594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...
 
Electromagnetismo Fisica FisicaFisica.pdf
Electromagnetismo Fisica FisicaFisica.pdfElectromagnetismo Fisica FisicaFisica.pdf
Electromagnetismo Fisica FisicaFisica.pdf
 
Electricidad y electronica industrial unidad 1
Electricidad y electronica industrial unidad 1Electricidad y electronica industrial unidad 1
Electricidad y electronica industrial unidad 1
 
trabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidastrabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidas
 
Trabajo en altura de acuerdo a la normativa peruana
Trabajo en altura de acuerdo a la normativa peruanaTrabajo en altura de acuerdo a la normativa peruana
Trabajo en altura de acuerdo a la normativa peruana
 
Fisiología del azufre en plantas S.S.pdf
Fisiología del azufre en plantas S.S.pdfFisiología del azufre en plantas S.S.pdf
Fisiología del azufre en plantas S.S.pdf
 

Ingeniería de software

  • 2. Objetivo del curso Comprender el proceso de desarrollo de software a partir de la conceptualización de un modelo de desarrollo de software estandarizado tipo RUP (Rational Unified Process) donde el estudiante aprenda a construir y mantener Sistemas de Información, basado en los principios que brinda la Ingeniería de Software, como marco de referencia en el proceso de construcción durante las fases de planeación, análisis, diseño y desarrollo de Proyectos de software de calidad.
  • 3. Textos Guías • Ingeniería del Software: Un enfoque práctico. Roger S. Pressman . Quinta Edición. 2001 • Proceso Unificado de Modelado Ed. Pearson.Software Engineering, Shari Lawrence Pfleeger • El lenguaje Unificado de Modelado versión 2.3  11.2 OTRAS REFERENCIAS • Ingeniería de Software. Ian Sommerville. Sexta Edición. 2001. • Software Engineering: theory and Prectice. Pfleeger, Shari Lawrence. 1998. • Software Engineering and testing, BB. Agarval, S.P. Tayal, M. Gupta, series Computer Science, 2009  DIRECCIONES DE INTERES  www.uml.org  www.omg.org  www.sparsystems.com  http://www.sei.cmu.edu
  • 4. Evaluación  Todas las evaluaciones son en pareja:  Parcial 1: Examen en papel  Parcial 2: Proyecto, Sustentación  Parcial Final: Proyecto, Sustentación  Notas Formativas:  2 talleres  1 exposición
  • 5. Herramientas de trabajo  Gestión proyecto:  dotproject, Microsoft project, pert-cpm, formulación de proyectos, pmbook, pmi, estándares  Ingeniería de Software (desarrollo)  Herramienta case (EA. http://www.sparxsystems.com/  Lenguaje Unificado de Modelado UML  Entorno de desarrollo preferiblemente JAVA, JSP, PHP  Base de Datos MYSQL, ORACLE, SQL SERVER-2008 (EXPRESS)  Documentación importante, generada por la herramienta  Objeto de estudio (sistemas de información organizacional)
  • 6. Ingeniería de Software: Definición  La Ingeniería del software es una disciplina que permite la aplicación de un enfoque sistemático, ordenado y cuantificable para el desarrollo, operación y mantenimiento de software.  La ingeniería del software es la aplicación de métodos y conocimiento científico para crear soluciones prácticas para el diseño, construcción, operación y mantenimiento de software.  La ingeniería del software es una disciplina que tiene por objetivo la producción de software libre de defectos que satisfacen las necesidades de usuarios y que son entregados a tiempo y dentro de un presupuesto.  La calidad del producto es clave.(objetivos, tiempo, presupuesto, satisface cliente)
  • 7. La naturaleza del software  El software se desarrolla o modifica con intelecto; no se manufactura en el sentido clásico.  El software no se “desgasta”  Aunque la industria se mueve hacia la construcción basada en componentes, la mayor parte del software se construye para un uso individualizado.
  • 8. La naturaleza del software 1. ¿Por qué se requiere tanto tiempo para terminar el software? 2. ¿Por qué son tan altos los costos de desarrollo? 3. ¿Por qué no podemos detectar todos los errores antes de entregar el software a nuestros clientes? 4. ¿Por qué dedicamos tanto tiempo y esfuerzo a mantener los programas existentes? 5. ¿Por qué seguimos con dificultades para medir el avance mientras se desarrolla y mantiene el software?
  • 9. Aplicaciones de Software  Software de Sistemas: compiladores, editores y herramientas para administrar archivos.  Software de aplicación: programas aislados que resuelven una necesidad específica de negocios.  Software de ingeniería y ciencias: Algoritmos para resolver problemas matemáticos también llamados devoradores de números.  Software incrustado: Software diseñado para un hardware especifico-  Aplicaciones web.  Software de inteligencia artificial: hace uso de algoritmos no numéricos para resolver problemas complejos que no son fáciles de tratar computacionalmente o con el análisis directo
  • 10. Software Heredados  ¿Qué hago si encuentro un sistema heredado de mala calidad?  ¿Qué tipos de cambios se hacen a los sistemas heredados?  El software debe adaptarse para que cumpla las necesidades de los nuevos ambientes del cómputo y de la tecnología.  El software debe ser mejorado para implementar nuevos requerimientos del negocio.  El software debe ampliarse para que sea operable con otros sistemas o bases de datos modernos.  La arquitectura del software debe rediseñarse para hacerla viable dentro de un ambiente de redes
  • 11. La practica del software  Entender el problema.  ¿Quiénes tienen que ver con la solución del problema? Es decir, ¿quiénes son los participantes?  ¿Cuáles son las incógnitas? ¿Cuáles datos, funciones y características se requieren para resolver el problema en forma apropiada?  ¿Puede fraccionarse el problema? ¿Es posible representarlo con problemas más pequeños que sean más fáciles de entender?  ¿Es posible representar gráficamente el problema? ¿Puede crearse un modelo de análisis?
  • 12. La practica del software  Planear la solución.  ¿Ha visto antes problemas similares? ¿Hay patrones reconocibles en una solución potencial?  ¿Hay algún software existente que implemente los datos, funciones y características que se requieren?  ¿Ha resuelto un problema similar? Si es así, ¿son reutilizables los elementos de la solución?  ¿Pueden definirse problemas más pequeños? Si así fuera, ¿hay soluciones evidentes para éstos?
  • 13. La practica del software  Ejecutar el plan  ¿Se ajusta la solución al plan? ¿El código fuente puede apegarse al modelo del diseño?  ¿Es probable que cada parte componente de la solución sea correcta? ¿El diseño y código se han revisado o, mejor aún, se han hecho pruebas respecto de la corrección del algoritmo?
  • 14. La practica del software  Examinar el resultado  ¿Puede probarse cada parte componente de la solución? ¿Se ha implementado una estrategia razonable para hacer pruebas?  ¿La solución produce resultados que se apegan a los datos, funciones y características que se requieren? ¿El software se ha validado contra todos los requerimientos de los participantes?
  • 15. Principios generales  Primer principio: La razón de que exista todo.  Segundo principio: MSE (Mantenlo sencillo, estúpido…)  Tercer principio: Mantener la visión  Cuarto principio: Otros consumirán lo que usted produce  Quinto principio: Ábrase al futuro.  Sexto principio: Planee por anticipado la reutilización.  Séptimo principio: ¡Piense!
  • 16. MITOS DEL SOFTWARE  Tenemos un libro lleno de estándares y procedimientos para elaborar software. ¿No le dará a mi personal todo lo que necesita saber?  Si nos atrasamos, podemos agregar más programadores y ponernos al corriente  Si decido subcontratar el proyecto de software a un tercero, puedo descansar y dejar que esa compañía lo elabore.  Para comenzar a escribir programas, es suficiente el enunciado general de los objetivos —podremos entrar en detalles más adelante.  Los requerimientos del software cambian continuamente, pero el cambio se asimila con facilidad debido a que el software es flexible.
  • 17.  Una vez que escribimos el programa y hacemos que funcione, nuestro trabajo ha terminado.  Hasta que no se haga “correr” el programa, no hay manera de evaluar su calidad.  El único producto del trabajo que se entrega en un proyecto exitoso es el programa que funciona.  La ingeniería de software hará que generemos documentación voluminosa e innecesaria, e invariablemente nos retrasará. MITOS DEL SOFTWARE
  • 18. Modelos de proceso de software  La Ingeniería de Software como disciplina  Un modelo de proceso de software es una representación simplificada de un proceso de software que conlleva una estrategia global para abordar el desarrollo de software  Modelos de proceso de software:  Codificar y corregir (code-and-fix)  Desarrollo en cascada  Desarrollo evolutivo  Desarrollo formal de sistemas  Desarrollo basado en reutilización  Desarrollo incremental  Desarrollo en espiral
  • 19. Modelos de proceso de software: Codificar y corregir (code-and-fix)
  • 20. Modelos de proceso de software: Desarrollo en Cascada [Ingeniería de Software. Sommerville I.., 2002]
  • 21. Modelos de proceso de software: Desarrollo evolutivo [Ingeniería de Software. Sommerville I.., 2002]
  • 22. [Balzer R. A 15 Year Perspective on Automatic Programming. IEEE Transactions on Software Engineering, vol.11, núm.11, páginas 1257-1268, Noviembre 1985 ] Modelos de proceso de software: Desarrollo formal de sistemas Especificación Tranformación Interactiva Transformación Automática Optimización Validación de Especificación Mantenimiento Especificación de alto nivel (prototipo) Desarrollo FormalDesiciones Especificación de bajo nivel Código Fuente Especificación Informal
  • 23. Modelos de proceso de software: Desarrollo basado en reutilización [Ingeniería de Software. Sommerville I.., 2002]
  • 24. Modelos de proceso de software: Desarrollo incremental [Ingeniería de Software. Sommerville I.., 2002]
  • 25. 22/05/2017 DiseñodeSoftwareI Modelo de Proceso de Espiral Determine objetivos alternativas y restricciones Evalúe alternativas, identifique y resuelva riesgos Análisis de Riesgos Análisis de Riesgos Análisis de Riesgos Análisis de Riesgos Planea la siguiente fase Desarrolla y verifica el siguiente nivel del producto Prototipo OperacionalPrototipo 3Prototipo 2Proto tipo 3 Plan de requerimientos Plan del ciclo de vida REVISIÓN Plan de Desarrollo Plan de Integración y Prueba Concepto de Operación Simulaciones, modelos y benchmarks Requeri mientos de SW Validación de Requerimientos Diseño V &V Servicio Prueba de Aceptación Prueba de Integración Prueba de Unidades Codificación Diseño Detallado Diseño del Producto
  • 26. Modelos de proceso de software ¿Cuál es el más adecuado? Modelo de proceso Desempeño con requisitos y arquitectura no predefinidos Produce software altamente fiable Gestión de riesgos Permite correcciones sobre la marcha Visión del progreso por el Cliente y el Jefe del proyecto Codificar y corregir Bajo Bajo Bajo Alto Medio Desarrollo En cascada Bajo Alto Bajo Bajo Bajo Desarrollo Evolutivo Alto Medio Medio Alto Alto Desarrollo formal de sistemas Bajo Alto Bajo a Medio Bajo Bajo Desarrollo basado en reutilización Medio Bajo a Medio Bajo a Medio Alto Alto Desarrollo Incremental Bajo Alto Medio Bajo Bajo Desarrollo Espiral Alto Alto Alto Medio Medio
  • 28. Dos Dimensiones III. Proceso de Desarrollo de SW basado en UML
  • 29. Fases e Hitos (Milestones) tiempo Objetivos (Vision) Arquitectura Capacidad Operacional Inicial Release del Producto Inception Elaboration Construction Transition III. Proceso de Desarrollo de SW basado en UML
  • 30. Elementos en RUP  Workflows (Disciplinas) Workflows Primarios • Business Modeling (Modado del Negocio) • Requirements (Requisitos) • Analysis & Design (Análisis y Diseño) • Implementation (Implementación) • Test (Pruebas) • Deployment (Despliegue) Workflows de Apoyo • Environment (Entorno) • Project Management (Gestión del Proyecto) • Configuration & Change Management (Gestión de Configuración y Cambios) III. Proceso de Desarrollo de SW basado en UML
  • 31. ... Elementos en RUP Workflow, Workflow Detail , Workers, Actividades y Artefactos Ejemplo Workflow Detail:Analyse the ProblemWorkflow: Requirements Actividades Workers Artefactos III. Proceso de Desarrollo de SW basado en UML
  • 32. ... Elementos en RUP Workers Analyst workers  Business-Process Analyst  Business Designer  Business-Model Reviewer  Requirements Reviewer  System Analyst  Use-Case Specifier  User-Interface Designer Developer workers  Architect  Architecture Reviewer  Capsule Designer  Code Reviewer  Database Designer  Design Reviewer  Designer  Implementer  Integrator Testing professional workers  Test Designer  Tester Manager workers  Change Control Manager  Configuration Manager  Deployment Manager  Process Engineer  Project Manager  Project Reviewer Other workers  Any Worker  Course Developer  Graphic Artist  Stakeholder  System Administrator  Technical Writer  Tool Specialist III. Proceso de Desarrollo de SW basado en UML
  • 33. ... Elementos en RUP Workers, Actividades, Artefactos Ejemplo: System Analyst Worker III. Proceso de Desarrollo de SW basado en UML
  • 34. ... Elementos en RUP Artefactos  Resultado parcial o final que es producido y usado durante el proyecto. Son las entradas y salidas de las actividades  Un artefacto puede ser un documento, un modelo o un elemento de modelo  Conjuntos de Artefactos Deployment Set  Project Management Set  Configuration & Change Management Set  Environment Set  Business Modeling Set  Requirements Set  Analysis & Design Set  Implementation Set  Test Set III. Proceso de Desarrollo de SW basado en UML
  • 35. ... Elementos en RUP Artefactos, Workers, Actividades Ejemplo:Business Modeling Artifact Set III. Proceso de Desarrollo de SW basado en UML
  • 36. Características Esenciales de RUP  Proceso Dirigido por los Casos de Uso  Proceso Iterativo e Incremental  Proceso Centrado en la Arquitectura III. Proceso de Desarrollo de SW basado en UML
  • 37. Requisitos Capturar, definir y validar los casos de uso Realizar los casos de uso Verificar que se satisfacen los casos de uso Proceso dirigido por los Casos de Uso Análisis & Diseño Implementación Pruebas Casos de Uso integran el trabajo III. Proceso de Desarrollo de SW basado en UML
  • 38. Caso de Uso Realización de Análisis Realización de Diseño Caso de Prueba X «trace» «trace» «trace» «trace» Pruebas Funcionales Pruebas Unitarias ... Proceso dirigido por los Casos de Uso [The Unified Software Development Process. I. Jacobson, G. Booch and J. Rumbaugh. Addison-Wesley, 1999] III. Proceso de Desarrollo de SW basado en UML
  • 39. ... Proceso dirigido por los Casos de Uso III. Proceso de Desarrollo de SW basado en UML
  • 40.  El ciclo de vida iterativo se basa en la evolución de prototipos ejecutables que se muestran a los usuarios y clientes  En el ciclo de vida iterativo a cada iteración se reproduce el ciclo de vida en cascada a menor escala  Los objetivos de una iteración se establecen en función de la evaluación de las iteraciones precedentes Proceso Iterativo e Incremental III. Proceso de Desarrollo de SW basado en UML
  • 41.  Las actividades se encadenan en una mini- cascada con un alcance limitado por los objetivos de la iteración Análisis Diseño Codific. Pruebas e Integración n veces ... Proceso Iterativo e Incremental III. Proceso de Desarrollo de SW basado en UML
  • 42.  Cada iteración comprende:  Planificar la iteración (estudio de riesgos)  Análisis de los Casos de Uso y escenarios  Diseño de opciones arquitectónicas  Codificación y pruebas. La integración del nuevo código con el existente de iteraciones anteriores se hace gradualmente durante la construcción  Evaluación de la entrega ejecutable (evaluación del prototipo en función de las pruebas y de los criterios definidos)  Preparación de la entrega (documentación e instalación del prototipo) ... Proceso Iterativo e Incremental III. Proceso de Desarrollo de SW basado en UML
  • 43. Proceso Iterativo e Incremental Enfoque Secuencial Enfoque Iterativo e Incremental III. Proceso de Desarrollo de SW basado en UML
  • 44. Grado de Finalización de Artefactos ... Proceso Iterativo e Incremental III. Proceso de Desarrollo de SW basado en UML
  • 45. Proceso Centrado en la Arquitectura  Arquitectura de un sistema es la organización o estructura de sus partes más relevantes  Un arquitectura ejecutable es una implementación parcial del sistema, construida para demostrar algunas funciones y propiedades  RUP establece refinamientos sucesivos de una arquitectura ejecutable, construida como un prototipo evolutivo. III. Proceso de Desarrollo de SW basado en UML
  • 46. Esfuerzo y dedicación por Fases en RUP Inicio Elaboración Construcción Transición Esfuerzo 5 % 20 % 65 % 10% Tiempo Dedicado 10 % 30 % 50 % 10%
  • 47. Distribución de Recursos por Fases en RUP
  • 50. ¿Qué es UML?  UML = Unified Modeling Language  Un lenguaje de propósito general para el modelado orientado a objetos. Impulsado por el Object Management Group (OMG, www.omg.org)  Documento “OMG Unified Modeling Language Specification”  UML combina notaciones provenientes desde:  Modelado Orientado a Objetos  Modelado de Datos  Modelado de Componentes  Modelado de Flujos de Trabajo (Workflows) I. Introducción: UML
  • 51. Participantes en UML 1.0  Rational Software (Grady Booch, Jim Rumbaugh y Ivar Jacobson)  Digital Equipment  Hewlett-Packard  i-Logix (David Harel)  IBM  ICON Computing (Desmond D’Souza)  Intellicorp and James Martin & co. (James Odell)  MCI Systemhouse  Microsoft  ObjecTime  Oracle Corp.  Platinium Technology  Sterling Software  Taskon  Texas Instruments  Unisys I. Introducción: UML
  • 52. Aspectos Novedosos  Definición semi-formal del Metamodelo de UML  Mecanismos de Extensión en UML:  Stereotypes  Constraints  Tagged Values Permiten adaptar los elementos de modelado, asignándoles una semántica particular I. Introducción: UML
  • 53. Inconvenientes en UML  Definición del proceso de desarrollo usando UML. UML no es una metodología  No cubre todas las necesidades de especificación de un proyecto software. Por ejemplo, no define los documentos textuales  Ejemplos aislados  “Monopolio de conceptos, técnicas y métodos en torno a UML y el OMG” I. Introducción: UML
  • 54. Perspectivas de UML  UML es el lenguaje de modelado orientado a objetos estándar predominante ahora y en los próximos años  Razones:  Participación de metodólogos influyentes  Participación de importantes empresas  Estándar del OMG  Evidencias:  Herramientas que proveen la notación UML  “Edición” de libros (más de 300 en www.amazon.com)  Congresos, cursos, “camisetas”, etc. I. Introducción: UML