Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin.
Capitulo 1Diapositiva1 Ingeniera de Software u Diseo, construccin y
mantenimiento de sistemas de software grandes. Diapositivas
Traducidas por: Dr. Pedro Meja Alvarez. CINVESTAV-IPN, Mxico
Septiembre 2003.
Diapositiva 2
Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin.
Capitulo 1Diapositiva1 Objetivos u Definir la Ingeniera de Software
y explicar su importancia. u Discutir los conceptos de producto de
software y proceso de software. u Explicar la importancia de la
visibilidad delos procesos. u Introducir la nocin de
responsabilidad profesional.
Diapositiva 3
Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin.
Capitulo 1Diapositiva1 Tpicos u Productos de Software. u El proceso
de Software. u El modelo de Espiral de Boehm. u La visibilidad de
los procesos. u Responsabilidad profesional.
Diapositiva 4
Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin.
Capitulo 1Diapositiva1 Ingeniera de Software u Las economas de los
pases desarrollados dependen en gran parte del software. u Mas y ms
sistemas son actualmente controlados por software. u La Ingeniera
de Software concierne a teoras, mtodos y herramientas para el
desarrollo profesional de software. u El gasto en La Ingeniera de
Software, representa un alto porcentaje del PIB de los pases
desarrollados.
Diapositiva 5
Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin.
Capitulo 1Diapositiva1 Ingenieria de Software: Conceptos Basicos u
Que es la Ingenieria de Software ? u Cual es la diferencia entre un
programador y un Ingeniero de Software? u Cual es la diferencia
entre un Ingeniero de Software y un Ingeniero de Sistemas? u Cual
es la diferencia entre la Ingenieria de Software y la Computacion ?
u Que es el software ? u Que es un proceso de software ? u Que es
un modelo de software?
Diapositiva 6
Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin.
Capitulo 1Diapositiva1 Que es la Ingeniera de Software u La
Ingeniera de Software es una diciplina de la Ingeniera que
concierne a todos los aspectos de la produccin de software u Los
Ingenieros de Software adoptan un enfoque sistematico para llevar a
cabo su trabajo y utilizan las herramientas y tecnicas necesarias
para resolver el problema planteado, de acuerdo a las restricciones
de desarrollo y recursos disponibles.
Diapositiva 7
Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin.
Capitulo 1Diapositiva1 Diferencia entre Ingenieria de Software y
Computacion u La computacion concierne a la teoria y fundamentos de
cualquier sistema de computo, sea de hardware o de software. u La
Ingenieria de software concierne solo al desarollo de sisetmas o
productos de software u La Ingeniria de Sofware todavia esta lejos
de ser una ciencia como los son la Quimica, la Ingenieria Civil o
la Electronica.
Diapositiva 8
Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin.
Capitulo 1Diapositiva1 Ingenieria de Sistemas e Ingenieria de
Software u La Ingeniera de Sistemas concierne a todos los aspectos
del desarrollo de sistemas basados en cmputo, que incluyen
hardware, software y el proceso de Ingeniera. La Ingeniera de
Software es solo parte de este proceso.
Diapositiva 9
Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin.
Capitulo 1Diapositiva1 Que es el Software ? Programas de cmputo y
su documentacion asociada u Sistemas o Productos de software
grandes y complejos. u Que contiene el software. u Que tipos de
software hay ? u Cual es el costo del software. u Como se
desarrolla el software ? u Como saber si un software tiene
calidad.
Diapositiva 10
Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin.
Capitulo 1Diapositiva1 Productos de Software u Productos genricos.
l Productos que son producidos por una organizacin para ser
vendidos al mercado. u Productos hechos a medida. l Sistemas que
son desarrollados bajo pedido a un desarrollador especfico. u La
mayor parte del gasto del software es en productos genricos, pero
hay ms esfuerzo en el desarrollo de los sistemas hechos a
medida.
Diapositiva 11
Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin.
Capitulo 1Diapositiva1 Caractersticas de los Productos de Software
u Mantenibles. l Debe ser posible que el software evolucione y que
siga cumpliendo con sus especificaciones. u Confiabilidad. l El
software no debe causar danos fsicos o econmicos en el caso de
fallos. u Eficiencia. l El software no debe desperdiciar los
recursos del sistema. u Utilizacin adecuada. l El software debe
contar con una interfaz de usuario adecuada y su documentacin.
Diapositiva 12
Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin.
Capitulo 1Diapositiva1 Importancia de las caractersticas del
producto u La importancia relativa de las caractersticas depende en
el tipo de producto y en el ambiente en el que ser utilizado. u En
algunos casos, algunos atributos pueden dominar. l En sistemas de
seguridad crticos de tiempo real, los atributos clave pueden ser la
confiabilidad y la eficiencia. u Los costos tienden a crecer
exponencialmente si son requeridos altos niveles de alguna
caracterstica.
Diapositiva 13
Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin.
Capitulo 1Diapositiva1 Que contiene el software ? u El software
contiene: Lneas de cdigo de algn lenguaje ? Instrucciones de
computadora. Descripcin de las estructuras de datos. Algoritmos.
Procedimientos y funciones. Componentes de software.
Diapositiva 14
Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin.
Capitulo 1Diapositiva1 Que tipos de software hay ? u Por su
estructura: Funcionales. Orientados a objetos. Orientados a listas.
Orientados a componentes. u Por su funcion: Programas o Sistemas de
Usuario Interfaces Hombre-Maquina. Herramientas de Software.
Librerias. Sistemas de uso generico: Compiladores, S.Os,
Procesadores de Texto, etc. Bases de Datos. Sistemas basados en
Web.
Diapositiva 15
Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin.
Capitulo 1Diapositiva1 Que tipos de software hay ? u Por su
plataforma de computo: Sistemas embebidos. Sistemas de computo
distribuido. Sistemas de computo paralelo. Sistemas de tiempo real.
Sistemas basados en Chips. Wearable computing systems. Sistemas de
computo ubiquos.
Diapositiva 16
Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin.
Capitulo 1Diapositiva1 Costos del Software u Los costos del
software a menudo dominan al costo del sistema. El costo del
software en un PC es a menudo mas caro que la PC. u Cuesta mas
mantener el software que desarrollarlo. Para sistemas con una larga
vida, este costo se multiplica. u La Ingeniera de Software
concierne a un desarrollo efectivo en cuanto a costes del
software.
Diapositiva 17
Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin.
Capitulo 1Diapositiva1 Costes de Eficiencia. Costos Eficiencia
Diapositiva 18
Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin.
Capitulo 1Diapositiva1 El Proceso de Software u Conjunto
estructurado de actividades requeridas para desarrollar un sistema
de software. l Especificacin- que debe hacer el software y cuales
son sus especificaciones de desarrollo. l Desarrollo produccion del
sistema de software. l Validacin verificar que el software hace lo
que el cliente pide. l Evolucin cambiar/adaptar el software a las
demandas. u Las actividades varan dependiendo de la organizacin y
del tipo de sistema a desarrollarse. u Debe estar explcitamente
modelado si va a ser bien administrado.
Diapositiva 19
Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin.
Capitulo 1Diapositiva1 Proceso Genrico de Software u Especificacin
- establecer los requerimientos y restricciones del sistema u Diseo
- Producir un modelo en papel del sistema u Manufactura - construir
el sistema u Prueba - verificar que el sistema cumpla con las
especificaciones requeridas u Instalacin - entregar el sistema al
usuario y asegurar su operacionalidad u Mantenimiento - reparar
fallos en el sistema cundo sea descubiertos
Diapositiva 20
Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin.
Capitulo 1Diapositiva1 Caractersticas del proceso u Entendible l Se
encuentra el proceso bien definido y es entendible ?. u Visible l
El proceso es visible al exterior ?. u Soportable l Puede el
proceso ser soportado por herramientas CASE ?. u Aceptable l El
proceso es aceptado por aquellos involucrados en el ?.
Diapositiva 21
Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin.
Capitulo 1Diapositiva1 Caractersticas del proceso u Confiable l Los
errores del proceso son descubiertos antes de que se conviertan en
errores del producto ?. u Robusto l Puede continuar el proceso a
pesar de problemas inesperados ?. u Mantenible l Puede el proceso
evolucionar para cumplir con los objetivos organizacionales ?. u
Rapidez l Que tan rpido puede producirse el sistema ?.
Diapositiva 22
Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin.
Capitulo 1Diapositiva1 Problemas en el Modelo del Proceso u
Normalmente, las especificaciones son incompletas o anmalas u No
existe una distincin precisa entre la especificacin, el diseo y la
manufactura u Solo hasta que el sistema se ha producido se puede
probar u El software no se puede remplazar siempre durante el
mantenimiento
Diapositiva 23
Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin.
Capitulo 1Diapositiva1 Modelos de Desarrollo de Software u
Representacion formal o simplificada de processo de software. u
Modelos Genericos: Modelo de Cascada u Separar en distintas fases
de especificacin y desarrollo. Desarrollo Evolutivo u La
especificacin y el desarrollo estn intercalados. Prototipado u Un
modelo sirve de prototipo para la construccin del sistema final.
Transformacin Formal u Un modelo matemtico del sistema se
transforma formalmente en la implementacin. Desarrollo basado en
Reutilizacin u El sistema es ensamblado a partir de componentes
existentes.
Diapositiva 24
Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin.
Capitulo 1Diapositiva1 Modelo de Cascada (grfica) Definicin de
Requerimientos Diseo del Software y del Sistema Implementacin y
Prueba de unidades Integracin y Prueba del Sistema Operacin y
Mantenimiento
Diapositiva 25
Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin.
Capitulo 1Diapositiva1 Fases del Modelo de Cascada u Anlisis de
requerimientos y definicin. u Diseo del sistema y del software. u
Implementacin y prueba de unidades u Integracin y prueba del
sistema. u Operacin y mantenimiento. u La dificultad en esta modelo
reside, en la dificultad de hacer cambios entre etapas.
Diapositiva 26
Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin.
Capitulo 1Diapositiva1 Desarrollo Evolutivo Descripcin del sistema
Versin Inicial Versin Final Versiones Intermedias Especificacin
Desarrollo Validacin Actividades Concurrentes
Diapositiva 27
Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin.
Capitulo 1Diapositiva1 Desarrollo Evolutivo u Problemas l Poca
visibilidad en el proceso l Los sistemas estn pobremente
especificados l Se requieren habilidades especiales. u
Aplicabilidad l Para sistemas interactivos pequeos o medianos. l
Para partes de sistemas grandes (p.ej. la interfaz de usuario). l
Para sistemas de corta vida.
Diapositiva 28
Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin.
Capitulo 1Diapositiva1 Prototipado u Prototipado exploratorio l El
objetivo es trabajar con clientes hasta evolucionar a un sistema
final, a partir de una especificacin inicial. Se debe comenzar con
unas especificaciones bien entendidas. u Prototipado de throw-away.
l El objetivo es entender los requerimientos del sistema. Se puede
comenzar con especificaciones poco entendidas.
Diapositiva 29
Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin.
Capitulo 1Diapositiva1 Problemas y Riesgos con los Modelos. u
Cascada. l Alto riesgo en sistemas nuevos debido a problemas en las
especificaciones y en el diseo. l Bajo riesgo para desarrollos bien
comprendidos utilizando tecnologa conocida. u Prototipado. l Bajo
riesgo para nuevas aplicaciones debido a que las especificaciones y
el diseo se llevan a cabo paso a paso. l Alto riesgo debido a falta
de visibilidad u Evolutivo. l Alto riesgo debido a la necesidad de
tecnologa avanzada y habilidades del grupo desarrollador.
Diapositiva 30
Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin.
Capitulo 1Diapositiva1 Manejo de Riesgos u La tarea principal del
administrador consiste en minimizar riesgos. u El riesgo inherente
en una actividad es se mide en base a la incertidumbre que presenta
el resultado de esa actividad. u Las actividades con alto riesgo
causan sobre-costes en cuanto a planeacin y costos u El riesgo es
proporcional al monto de la calidad de la informacin disponible.
Cuanto menos informacin, mayor el riesgo.
Diapositiva 31
Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin.
Capitulo 1Diapositiva1 Modelos de Procesos Hbridos u Los sistemas
grandes estn hechos usualmente de varios subsistemas. u No es
necesario utilizar el mismo modelo de proceso para todos los
subsistemas. u El prototipado es recomendado cuando existen
especificaciones de alto riesgo. u El modelo de cascada es
utilizado en desarrollos bien comprendidos.
Diapositiva 32
Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin.
Capitulo 1Diapositiva1 Modelo de Proceso de Espiral Determine
objetivos alternativas y restricciones Evale alternativas,
identifique y resuelva riesgos Anlisis de Riesgos Anlisis de
Riesgos Anlisis de Riesgos Anlisis de Riesgos Planea la siguiente
fase Desarrolla y verifica el siguiente nivel del producto
Prototipo Operacional Prototipo 3 Prototipo 2 Proto tipo 3 Plan de
requerimientos Plan del ciclo de vida REVISIN Plan de Desarrollo
Plan de Integracin y Prueba Concepto de Operacin Simulaciones,
modelos y benchmarks Requeri mientos de SW Validacin de
Requerimientos Diseo V &V Servicio Prueba de Aceptacin Prueba
de Integracin Prueba de Unidades Codificacin Diseo Detallado Diseo
del Producto
Diapositiva 33
Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin.
Capitulo 1Diapositiva1 Fases del Modelo de Espiral u Planteamiento
de Objetivos l Se identifican los objetivos especficos para cada
fase del proyecto. u Identificacin y reduccin de riesgos. l Los
riesgos clave se identifican y analizan, y la informacin sirve para
minimizar los riesgos. u Desarrollo y Validacin. l Se elige un
modelo apropiado para la siguiente fase del desarrollo. u
Planeacin. l Se revisa el proyecto y se trazan planes para la
siguiente ronda del espiral.
Diapositiva 34
Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin.
Capitulo 1Diapositiva1 Plantilla para una ronda del espiral u
Objetivos. u Restricciones. u Alternativas. u Riesgos. u Resolucin
de riesgos. u Resultados. u Planes. u Garantas (commitments).
Diapositiva 35
Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin.
Capitulo 1Diapositiva1 Ventajas del Modelo de Espiral u Centra su
atencin en la reutilizacin de componentes y eliminacin de errores
en informacin descubierta en fases iniciales. u Los objetivos de
calidad son el primer objetivo. u Integra desarrollo con
mantenimiento. u Provee un marco de desarrollo de
hardware/software.
Diapositiva 36
Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin.
Capitulo 1Diapositiva1 Problemas con el Modelo de Espiral u El
desarrollo contractual especifica el modelo del proceso y los
resultados a entregar por adelantado. u Requiere de experiencia en
la identificacin de riesgos. u Requiere refinamiento para uso
generalizado.
Diapositiva 37
Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin.
Capitulo 1Diapositiva1 Que modelo utilizar ? u Para sistemas bien
comprendidos utiliza el Modelo de Cascada. La fase de anlisis de
riesgos es relativamente fcil. u Con requerimientos estables y
sistemas de seguridad crticos, utiliza modelos formales. u Con
especificaciones incompletas, utiliza el modelo de prototipado. u
Pueden utilizarse modelos hbridos en distintas partes del
desarrollo.
Diapositiva 38
Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin.
Capitulo 1Diapositiva1 Visibilidad de Procesos u Los sistemas de
software son intangibles por lo que los administradores necesitan
documentacin para identificar el progreso en el desarrollo. u Esto
puede causar problemas.. l El tiempo planeado para entrega de
resultados puede no coincidir con el tiempo necesario para
completar una actividad. l La necesidad de producir documentos
restringe la iteracin entre procesos. l.El tiempo para revisar y
aprobar documentos es significativo. u El modelo de cascada es an
el modelo basado en resultados mas utilizado.
Diapositiva 39
Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin.
Capitulo 1Diapositiva1 Documentos del Modelo de Cascada
ActividadDocumentos Producidos Anlisis de RequerimientosDocumento
de Requerimientos Definicin de RequerimientosDocumento de
Requerimientos. Especificacin del Sistema.Especificacin Funcional,
Plan de Pruebas de Aceptacin. Diseo ArquitecturalEspecificacin de
la Arquitectura, y Plan de Pruebas del Sistema Diseo de
InterfacesEspecificacin de la Interfaces y Plan de pruebas de
Integracin. Diseo DetalladoEspecificacin del diseo y Plan de prueba
de Unidades. CodificacinCdigo de Programa Prueba de UnidadesReporte
de prueba de unidades Prueba de MdulosReporte de prueba de mdulos
Prueba de IntegracinReporte de prueba de integracin y Manual de
usuario final Prueba del SistemaReporte de prueba del sistema
Prueba de AceptacinSistema final mas la documentacin.
Diapositiva 40
Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin.
Capitulo 1Diapositiva1 Visibilidad del Modelo Modelo de
ProcesoVisibilidad del Proceso Modelo de CascadaBuena visibilidad,
cada actividad produce un documento o resultado Desarrollo
EvolutivoVisibilidad pobre, muy caro al producir docuementos en
cada iteracin. Modelos FormalesBuena visibilidad, en cada fase
deben producirse documentos. Desarrollo orientado a la
reutilizacinVisibilidad moderada. Importante contar con
documentacin de componentes reutilizables. Modelo de EspiralBuena
visibilidad, cada segmento y cada anillo del espiral debe producir
un documento.
Diapositiva 41
Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin.
Capitulo 1Diapositiva1 Retos de la Ingenieria de Software u
Mantener y tratar con sistemas legados. Tratar con una mayor
diversidad de sistemas con mayores demandas de computo, y menores
tiempos de entrega u Sistemas Legados Sistemas entiguos que deben
ser mantenidos y mejorados. u Hetereogenidad Sistemas que incluyen
una mezcla de software y hardware. u Entrega Existe una presion
incremental por una entrega a tiempo de los productos de software.
u Formalidad. Existe una gran demanda de que exista formalidad en
el proceso de desarrollo de software
Diapositiva 42
Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin.
Capitulo 1Diapositiva1 Retos de la Ingenieria de Software u Por que
no podemos desarrollar sistemas de software con tecnicas formales
como lo hacen los Ingenieros en Electronica, los Ing. Quimicos o
los Ingenieros Civiles. ?
Diapositiva 43
Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin.
Capitulo 1Diapositiva1 Demanda de Ingenieros de Software Over the
last few decades, information technology has grown dramatically,
with significant impact to both the global economy and everyday
life. Computing power has increased rapidly while the costs of
hardware and communications have dropped, making it increasingly
more economical to implement systems in software rather than
hardware. Mechanical devices in automobiles, airplanes, and power
plants are being replaced by software components because software
is more adaptable, can provide more functionality, and can be
upgraded more easily to accommodate future needs.
Diapositiva 44
Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin.
Capitulo 1Diapositiva1 Demanda de Ingenieros de Software Software
is used in medical devices, transportation systems, and financial
systems to automate repetitive but critical tasks. Scientists and
business researchers use software to sift through data warehouses
and to identify pertinent facts and trends. Banking, insurance,
telecommunications, and other service industries use software to
automate and personalize the services they offer to their
customers. As software applications have grown more complex, there
has been a surge in the demand for software engineers who have the
knowledge and expertise to develop high-quality software
systems.
Diapositiva 45
Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin.
Capitulo 1Diapositiva1 Responsabilidad profesional u Los Ingenieros
de software no solo deben considerar aspectos tcnicos. Deben tener
una visin mas amplia, en lo tico, social y profesional. u No existe
estatutos para ninguno de estos aspectos. l Desarrollo de sistemas
militares. l Piratera. l Que es mejor para la profesin de Ingeniero
de Software.
Diapositiva 46
Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin.
Capitulo 1Diapositiva1 Aspectos ticos u Confidencialidad. u
Competencia. u Derechos de propiedad intelectual. u Mal uso de la
computadora.
Diapositiva 47
Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin.
Capitulo 1Diapositiva1 Una Profesion Madura de la Ingenieria de
Software Consultar: A Mature Profession of Software Engineering.
Gary Ford Norman Gibbs Technical Report: CMU/SEI-96-TR-004
www.sei.cmu.edu
Diapositiva 48
Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin.
Capitulo 1Diapositiva1 Resumen u La Ingeniera de software concierne
a las teoras, mtodos y herramientas para el desarrollo,
administracin y evolucin de productos de software. u Los productos
de software consisten de programas y documentacin. Los atributos de
los productos son, mantenabilidad, dependabilidad, eficiencia y
usabilidad. u El proceso de software consiste en aquellas
actividades involucradas en el desarrollo de software.
Diapositiva 49
Ian Sommerville 2002Ingeniera de Software, 5a. Y 6a. edicin.
Capitulo 1Diapositiva1 Resumen u El modelo de cascada considera
cada actividad del proceso como una actividad discreta. u El modelo
de desarrollo evolutivo considera actividades del proceso en forma
concurrente. u El modelo de espiral se basa en anlisis de riesgos.
u La visibilidad del proceso involucra la creacin de documentos o
resultados de las actividades. u Los Ingenieros de software deben
tener responsabilidades ticas, sociales y profesionales.