You are on page 1of 46

INGENIERA DE SOFTWARE

Diseo, construccin y mantenimiento de sistemas de


software.

C.P.C.C. Manuel Rivas Acedo

OBJETIVOS

Definir la Ingeniera de Software y explicar su importancia.

Discutir los conceptos de producto de software y proceso de software.

Explicar la importancia de la visibilidad de los procesos.

Introducir la nocin de responsabilidad profesional.

INGENIERA DE SOFTWARE

Las economas de los pases desarrollados dependen en gran parte del


software.

Mas y ms sistemas son actualmente controlados por software.

La Ingeniera de Software concierne a teoras, mtodos y herramientas


para el desarrollo profesional de software.

El gasto en La Ingeniera de Software, representa un alto porcentaje del


PIB de los pases desarrollados.

QUE ES LA INGENIERA DE SOFTWARE

La Ingeniera de Software es una disciplina de la Ingeniera que concierne a


todos los aspectos de la produccin de software

Los Ingenieros de Software adoptan un enfoque sistemtico para llevar a cabo


su trabajo y utilizan las herramientas y tcnicas necesarias para resolver el
problema planteado, de acuerdo a las restricciones de desarrollo y recursos
disponibles.

DIFERENCIA ENTRE INGENIERIA DE SOFTWARE Y


COMPUTACION
La computacin concierne a la teora y
fundamentos de cualquier sistema de computo,
sea de hardware o de software.
La Ingeniera de software concierne solo al
desarrollo de sistemas o productos de software
La Ingeniera de Software todava esta lejos de
ser una ciencia como los son la Qumica, la
Ingeniera Civil o la Electrnica.

INGENIERA DE SISTEMAS E INGENIERA DE


SOFTWARE

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.

QUE ES EL SOFTWARE ?

El software es la parte lgica e intangible que hace que una computadora pueda
realizar sus tareas y controlar los dispositivos fsicos o hardware que la componen.

El software est formado por los programas que se cargan en una computadora
para que sta realice diversas tareas y funciones, tambin son parte de ste todos
los documentos y diagramas que utilizaron para disearlo y construirlo.

Se clasifica en software de aplicacin, de sistemas y de programacin.

EJEMPLOS DE SOFTWARE:

Excel: Hoja de Clculo.

Word: Procesador de textos.

Corel Draw: Editor y creador de imgenes y animaciones.

Word Press: Desarrollo de blogs.

Oracle: Sistema Administrador de Bases de Datos.

Java: Lenguaje de programacin.

Visual Basic .NET: Lenguaje de programacin.

SAP: Suite de programas de gestin y administracin.

Adobe Acrobat: Lector de documentos protegidos.

Windows: Sistema Operativo.

PRODUCTOS DE SOFTWARE

Productos genricos.

Productos que son producidos por una organizacin


para ser vendidos al mercado.

Productos hechos a medida.

Sistemas que son desarrollados bajo pedido a un


desarrollador especfico.

La mayor parte del gasto del software es en productos


genricos, pero hay ms esfuerzo en el desarrollo de los
sistemas hechos a medida.

CARACTERSTICAS DE LOS PRODUCTOS DE


SOFTWARE

Requieren mantenimiento.

Confiabilidad.

El software no debe causar danos fsicos o econmicos en el caso


de fallos.

Eficiencia.

Debe ser posible que el software evolucione y que siga cumpliendo


con sus especificaciones.

El software no debe desperdiciar los recursos del sistema.

Utilizacin adecuada.

El software debe contar con una interfaz de usuario adecuada y su


documentacin.

QUE CONTIENE EL SOFTWARE ?

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.

COSTOS DEL SOFTWARE

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.

Cuesta mas mantener el software que desarrollarlo. Para sistemas con


una larga vida, este costo se multiplica.

La Ingeniera de Software concierne a un desarrollo efectivo en cuanto


a costes del software.

COSTES DE EFICIENCIA.

Costos

Eficiencia

EL PROCESO DE SOFTWARE

Conjunto estructurado de actividades requeridas para desarrollar un sistema de


software.

Especificacin- que debe hacer el software y cuales son sus


especificaciones de desarrollo.

Desarrollo produccin del sistema de software.

Validacin verificar que el software hace lo que el cliente pide.

Evolucin cambiar/adaptar el software a las demandas.

Las actividades varan dependiendo de la organizacin y del tipo de sistema a


desarrollarse.

Debe estar explcitamente modelado si va a ser bien administrado.

PROCESO GENRICO DE SOFTWARE

Gracias

CARACTERSTICAS DEL PROCESO

Entendible

Visible

El proceso es visible al exterior ?.

Soportable

Se encuentra el proceso bien definido y es entendible ?.

Puede el proceso ser soportado por herramientas CASE ?.

Aceptable

El proceso es aceptado por aquellos involucrados en el ?.

CARACTERSTICAS DEL PROCESO

Confiable

Los errores del proceso son descubiertos antes de que se conviertan en errores del
producto ?.

Robusto

Susceptible de mantenimiento

Puede continuar el proceso a pesar de problemas inesperados ?.


Puede el proceso evolucionar para cumplir con los objetivos organizacionales ?.

Rapidez

Que tan rpido puede producirse el sistema ?.

PROBLEMAS EN EL MODELO DEL


PROCESO

Normalmente, las especificaciones son incompletas o anmalas

No existe una distincin precisa entre la especificacin, el diseo y la manufactura

Solo hasta que el sistema se ha producido se puede probar

El software no se puede remplazar siempre durante el mantenimiento

MODELOS DE DESARROLLO DE
SOFTWARE

Representacion formal o simplificada de processo de software.


Modelos Genericos:
Modelo de Cascada

Separar en distintas fases de especificacin y desarrollo.

Desarrollo Evolutivo

La especificacin y el desarrollo estn intercalados.

Prototipado

Un modelo sirve de prototipo para la construccin del sistema final.

Transformacin Formal

Un modelo matemtico del sistema se transforma formalmente en la


implementacin.

Desarrollo basado en Reutilizacin

El sistema es ensamblado a partir de componentes existentes.

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

FASES DEL MODELO DE CASCADA

Anlisis de requerimientos y definicin.

Diseo del sistema y del software.

Implementacin y prueba de unidades

Integracin y prueba del sistema.

Operacin y mantenimiento.

La dificultad en esta modelo reside, en la dificultad de hacer cambios entre etapas.

DESARROLLO EVOLUTIVO
Actividades
Concurrentes

Descripcin
del sistema

Especificacin

Versin
Inicial

Desarrollo

Versiones
Intermedias

Validacin

Versin
Final

DESARROLLO EVOLUTIVO

Problemas

Poca visibilidad en el proceso

Los sistemas estn pobremente especificados

Se requieren habilidades especiales.

Aplicabilidad

Para sistemas interactivos pequeos o medianos.

Para partes de sistemas grandes (p.ej. la interfaz de usuario).

Para sistemas de corta vida.

PROTOTIPADO

Prototipado exploratorio

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.

Prototipado de throw-away.

El objetivo es entender los requerimientos del sistema. Se puede comenzar con


especificaciones poco entendidas.

PROBLEMAS Y RIESGOS CON LOS


MODELOS.

Cascada.

Alto riesgo en sistemas nuevos debido a problemas en las especificaciones y en el


diseo.

Bajo riesgo para desarrollos bien comprendidos utilizando tecnologa conocida.

Prototipado.

Bajo riesgo para nuevas aplicaciones debido a que las especificaciones y el diseo
se llevan a cabo paso a paso.

Alto riesgo debido a falta de visibilidad

Evolutivo.

Alto riesgo debido a la necesidad de tecnologa avanzada y habilidades del grupo


desarrollador.

MANEJO DE RIESGOS

La tarea principal del administrador consiste en minimizar riesgos.

El riesgo inherente en una actividad es se mide en base a la incertidumbre que


presenta el resultado de esa actividad.

Las actividades con alto riesgo causan sobre-costes en cuanto a planeacin y costos

El riesgo es proporcional al monto de la calidad de la informacin disponible. Cuanto


menos informacin, mayor el riesgo.

MODELOS DE PROCESOS HBRIDOS

Los sistemas grandes estn hechos usualmente de varios subsistemas.

No es necesario utilizar el mismo modelo de proceso para todos los subsistemas.

El prototipado es recomendado cuando existen especificaciones de alto riesgo.

El modelo de cascada es utilizado en desarrollos bien comprendidos.

MODELO DE PROCESO DE ESPIRAL


Determine objetivos
alternativas y
restricciones

Anlisis de
Riesgos
Anlisis de
Riesgos

Evale alternativas,
identifique y resuelva
riesgos

Anlisis de
Riesgos

REVISIN

Prototipo
Anlisis
Prototipo
3
de Proto
2
Riesgostipo 3

Plan de requerimientos
Concepto de
Plan del ciclo de vida Operacin

Planea la
siguiente fase

Prototipo
Operacional

Simulaciones, modelos y benchmarks

Requeri
Diseo
Diseo
mientos de
del
Detallado
SW
Plan de
Validacin de
Producto Codificacin
Desarrollo
Requerimientos
Prueba de
Unidades
Plan de Integracin Diseo
Prueba de
y Prueba
V &V
Prueba de Integracin
Desarrolla y verifica
Aceptacin
el siguiente nivel
Servicio
del producto

FASES DEL MODELO DE ESPIRAL

Planteamiento de Objetivos

Identificacin y reduccin de riesgos.

Los riesgos clave se identifican y analizan, y la informacin sirve para minimizar los
riesgos.

Desarrollo y Validacin.

Se identifican los objetivos especficos para cada fase del proyecto.

Se elige un modelo apropiado para la siguiente fase del desarrollo.

Planeacin.

Se revisa el proyecto y se trazan planes para la siguiente ronda del espiral.

PLANTILLA PARA UNA RONDA DEL


ESPIRAL

Objetivos.

Restricciones.

Alternativas.

Riesgos.

Resolucin de riesgos.

Resultados.

Planes.

Garantas (commitments).

VENTAJAS DEL MODELO DE ESPIRAL

Centra su atencin en la reutilizacin de componentes y eliminacin de errores en


informacin descubierta en fases iniciales.

Los objetivos de calidad son el primer objetivo.

Integra desarrollo con mantenimiento.

Provee un marco de desarrollo de hardware/software.

PROBLEMAS CON EL MODELO DE ESPIRAL

El desarrollo contractual especifica el modelo del proceso y los resultados a entregar


por adelantado.

Requiere de experiencia en la identificacin de riesgos.

Requiere refinamiento para uso generalizado.

QUE MODELO UTILIZAR ?

Para sistemas bien comprendidos utiliza el Modelo de Cascada. La fase de anlisis de


riesgos es relativamente fcil.

Con requerimientos estables y sistemas de seguridad crticos, utiliza modelos


formales.

Con especificaciones incompletas, utiliza el modelo de prototipado.

Pueden utilizarse modelos hbridos en distintas partes del desarrollo.

VISIBILIDAD DE PROCESOS

Los sistemas de software son intangibles por lo que los administradores necesitan
documentacin para identificar el progreso en el desarrollo.

Esto puede causar problemas..

El tiempo planeado para entrega de resultados puede no coincidir con el tiempo


necesario para completar una actividad.

La necesidad de producir documentos restringe la iteracin entre procesos.

.El tiempo para revisar y aprobar documentos es significativo.

El modelo de cascada es an el modelo basado en resultados mas utilizado .

DOCUMENTOS DEL MODELO DE CASCADA


Actividad

Documentos Producidos

Anlisis de Requerimientos

Documento de Requerimientos

Definicin de Requerimientos

Documento de Requerimientos.

Especificacin del Sistema.

Especificacin Funcional, Plan de Pruebas de Aceptacin.

Diseo Arquitectural

Especificacin de la Arquitectura, y Plan de Pruebas del


Sistema

Diseo de Interfaces

Especificacin de la Interfaces y Plan de pruebas de


Integracin.

Diseo Detallado

Especificacin del diseo y Plan de prueba de Unidades.

Codificacin

Cdigo de Programa

Prueba de Unidades

Reporte de prueba de unidades

Prueba de Mdulos

Reporte de prueba de mdulos

Prueba de Integracin

Reporte de prueba de integracin y Manual de usuario final

Prueba del Sistema

Reporte de prueba del sistema

Prueba de Aceptacin

Sistema final mas la documentacin.

VISIBILIDAD DEL MODELO


Modelo de Proceso

Visibilidad del Proceso

Modelo de Cascada

Buena visibilidad, cada actividad produce


un documento o resultado

Desarrollo Evolutivo

Visibilidad pobre, muy caro al producir


docuementos en cada iteracin.

Modelos Formales

Buena visibilidad, en cada fase deben


producirse documentos.

Desarrollo orientado a la reutilizacin

Visibilidad moderada. Importante contar


con documentacin de componentes
reutilizables.

Modelo de Espiral

Buena visibilidad, cada segmento y cada


anillo del espiral debe producir un
documento.

RETOS DE LA INGENIERIA DE SOFTWARE

Mantener y tratar con sistemas legados. Tratar con una mayor diversidad de
sistemas con mayores demandas de computo, y menores tiempos de entrega
Sistemas Legados
Sistemas entiguos que deben ser mantenidos y mejorados.
Hetereogenidad
Sistemas que incluyen una mezcla de software y hardware.
Entrega
Existe una presion incremental por una entrega a tiempo de los productos de
software.
Formalidad.
Existe una gran demanda de que exista formalidad en el proceso de desarrollo
de software

RETOS DE LA INGENIERIA DE
SOFTWARE
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. ?

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.

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.

RESPONSABILIDAD PROFESIONAL

Los Ingenieros de software no solo deben considerar aspectos tcnicos. Deben tener
una visin mas amplia, en lo tico, social y profesional.

No existe estatutos para ninguno de estos aspectos.

Desarrollo de sistemas militares.

Piratera.

Que es mejor para la profesin de Ingeniero de Software.

ASPECTOS TICOS

Confidencialidad.

Competencia.

Derechos de propiedad intelectual.

Mal uso de la computadora.

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

RESUMEN

La Ingeniera de software concierne a las teoras, mtodos y herramientas para el


desarrollo, administracin y evolucin de productos de software.

Los productos de software consisten de programas y documentacin. Los atributos


de los productos son, mantenabilidad, dependabilidad, eficiencia y usabilidad.

El proceso de software consiste en aquellas actividades involucradas en el desarrollo


de software.

RESUMEN

El modelo de cascada considera cada actividad del proceso como una actividad
discreta.

El modelo de desarrollo evolutivo considera actividades del proceso en forma


concurrente.

El modelo de espiral se basa en anlisis de riesgos.

La visibilidad del proceso involucra la creacin de documentos o resultados de las


actividades.

Los Ingenieros de software deben tener responsabilidades ticas, sociales y


profesionales.

You might also like