You are on page 1of 44

INGENIERA DEL

SOFTWARE
ING. OLMER VILLENA LEN
CUSCO 2015

Temas

INTRODUCCIN

ESPECIFICACIN DEL SOFTWARE

FUNDAMENTOS DEL DISEO SOFTAWARE

TCNICAS GENERALES DE DISEO SOFTWARE

Concepto de Ingeniera de
Sistemas

Concepto de sistema, conjunto de cosas que ordenadamente relacionadas


entre s contribuyen a un determinado objeto. De forma recursiva, las partes
de un sistema pueden ser consideradas como nuevos sistemas (subsistemas).

Los sistemas informticos estn compuestos por ordenadores y sus perifricos.


Entre ellos podemos distinguir dos tipos de subsistemas:

Sistemas Hardware, son los elementos materiales, los que se pueden


tocar.

Sistemas Software, los programas que gobiernan el funcionamiento del


computador.

El objetivo de los sistemas informticos es el tratamiento de la informacin:


almacenamiento, elaboracin y presentacin de datos. De esta forma se
automatizan determinadas acciones.

En la concepcin del sistema informtico no solo se decide el trabajo a


realizar, sino tambin cmo ha de ser utilizado por los usuarios.

Concepto de Ingeniera del Software

Caractersticas del software (lo contrario para el hardware):

No se desgasta ni envejece, y por este motivo no requiere reparaciones ocasionales

Su duplicacin es poco costosa, lo caro es el desarrollo

Puede ser modificado fcilmente, tanto que es necesario un control de versiones

La Ingeniera del Software comprende las tcnicas y procedimientos ingenieriles para el


desarrollo del software.

La IS no se plantea solo una actividad de programacin, previamente son necesarias las


fases de anlisis y diseo y posteriormente la integracin y la verificacin, incluso el
manteniendo cuando el producto ya est en explotacin. (CICLO DE VIDA).

Inicialmente la tarea de desarrollo era realizada individualmente por hbiles creativos, de


forma poco disciplinada. El trabajo en equipo supone la divisin y organizacin del trabajo
utilizando metodologas de desarrollo.

En los 70 y los 80 empiezan a usarse herramientas CASE (Computer Aided Software


Engineering). En los 90 IPSE e ICASE.

La crisis del Software

Se produce cuando surge la necesidad de desarrollar aplicaciones


software demasiado complejas, a mediados de los 60.

Para superar la crisis:

Aparicin de metodologas concretas de desarrollo

Concepcin

Trabajo en equipo y especializacin (analistas, programadores, ...)

de la Ingeniera del Software como disciplina

No se ha llegado a una situacin estable, sino a una evolucin


permanente con avances continuos en la IS, forzados por el rpido
abaratamiento y aumento de capacidad del hardware.

Mitos del Software

El hardware es mucho ms importante que el software

El software es fcil de desarrollar

El software consiste exclusivamente en programas ejecutables

El desarrollo del software es slo una labor de programacin

Es natural que el software contenga errores

Formalizacin del proceso de


desarrollo

La ingeniera supone la existencia de procesos bien


establecidos para la realizacin de actividades de
desarrollo, construccin, fabricacin, etc.

El ciclo de vida es el proceso de desarrollo y mantenimiento


del software. Segn el modelo elegido se describen un
conjunto de actividades para llevar a cabo el ciclo de vida,

Los modelos clsicos y O.O.

Prcticamente identifican actividades similares y slo se


diferencian en la forma de presentacin.

EL DESARROLLO DE
SISTEMAS DE INFORMACION

Ciclo de Vida = Ciclo de Desarrollo + Mantenimiento

Metodologas
1. ESTRUCTURADA.
2. ORIENTADO A OBJETO

EL CICLO TRADICIONAL DE LOS S.I.

FASES
QUE VARIAN DE
AUTOR EN AUTOR

FASE N + 1
FASE N
FASE 3
FASE 2
FASE 1

MODELOS PARA EL CICLO DE VIDA DE


DESARROLLO DE SOFTWARE
MODELOS

CASCADA

ESTRUCTURADO

ESPIRAL

PROPTOTIPO

Anlisis de
Requerimientos.
Encuesta
Anlisis de riesgo. Requerim. Bsicos
requerimientos
Anlisis.
Desarr. Prot. oper.
Prototipo 1, 2.
Especificaciones. Diseo.
Uso prot.
Req. software
Diseo.
Implantacin..
Implementacin. Pruebas
Validacin de Req. Usuario satisfecho?.
Si. Aceptar.
Prueba
Control de calidad.Anlisis de riesgo.
No. Revisar y
Mantenimiento. Procedimientos. Prototipo 3.
mejorar.
Conversin B.D. Diseo software.
Validacin diseo.
Instalacin.
Integracin y prueba.

CICLO DE VIDA TRADICIONAL


Los Sistemas de Informacin
PRODUCTOS.

Definicin
del
Proyecto

Propuesta.

Estudio
de
Sistemas

Propuesta sistema.

Diseo

Especificaciones.

Programacin

Cdigo.

Instalacin
Laudon y Laudon. 1996

Posimplantacin

Pruebas
Auditora.

EL CICLO DE VIDA SEGN BIBLIOGRAFA


FABREGAS:
1- Requerimientos
2- Anlisis/Diseo
3- Construccin
4- Pruebas
5- Produccin/Mantenimiento
PRESSMAN:
1- Anlisis
2- Diseo
3- Codificacin
4- Prueba
5- Mantenimiento

SENN:
1- Investigacin Preliminar
2- Determ. de Requerimientos.
3- Diseo del Sistema
4- Desarrollo del Software
5- Prueba del Sistema
6- Implantacin y Evaluacin
EN GENERAL USAREMOS:
1- Anlisis
2- Diseo
3- Implementacin
4- Mantenimiento

CARACTERISTICAS DEL CICLO DE VIDA


CLASICO

Implantacin Ascendente
Las fases deben sucederse de manera Secuencial
El usuario no ve resultados, sino hasta el final
El usuario o el ambiente pueden cambiar las
especificaciones originales del sistema.

Presenta numerosos problemas Analista-Usuario


Manejable como proyecto

CICLO DE VIDA TRADICIONAL

ANALISIS

MANTENIMIENTO

DISEO

IMPLEMENTACION

CICLO DE VIDA
1. ANALISIS:
1.1. Estudio Preliminar
1.2. Levantamiento de Informacin
1.3. Definicin del Problema
1.4. Elaboracin del Modelo Funcional del Sistema actual
1.5. Determinacin de Requerimientos
1.6. Descripcin y Evaluacin de Alternativas
1.7. Aprobacin de alternativas

Sistemas II.

CICLO DE VIDA

2.DISEO
2.1. Elaborar Modelo Funcional del Sistema
Propuesto
2.2. Diseo Lgico
2.3. Elaboracin y Presentacin del
prototipo del Sistema
2.4. Aprobacin del Sistema Propuesto

CICLO DE VIDA

3. IMPLEMENTACION
3.1. Desarrollo del Software
3.2. Prueba del Sistema
3.3. Puesta en Marcha

Qu significa poner en
Marcha un Sistema ?
Sistemas II.

CICLO DE VIDA
PUESTA EN MARCHA:
Actividad de traslado de una aplicacin probada a un ambiente de
produccin
- Acondicionamiento de locales
- Organizacin del Cliente
- Entregar aplicacin probada
- Elaborar datos en Vivo
- Adiestramiento
- Carga de datos en vivo
- Entrega de documentacin
- Asignar Responsabilidades
- Determinar FIN de la instalacin

MANTENIMIENTO DE SISTEMAS
Es la ltima fase del Ciclo de Vida de Desarrollo de
Sistemas, en donde los SI son sistemticamente
reparados y mejorados.
Por definicin, el proceso de mantenimiento de un SI es
un proceso de devolucin al principio del Ciclo de Vida y
de repeticin de los pasos de desarrollo para la
implementacin de cambios.
Las 4 actividades ms importantes que ocurren dentro
del mantenimiento son:
Obtencin de los requerimientos de mantenimiento.
Transformacin de los requerimientos en cambios.
Diseo de los cambios.
Implementacin de los cambios.

TIPOS DE MANTENIMIENTO
CORRECTIVO. Para reparar fallas en el diseo, codificacin o
implementacin, del sistema.
ADAPTATIVO. Para que las funcionalidades del sistema
evolucionen a la par de los cambios del negocio o de las
tecnologas.
PERFECTIVO. Para agregar nuevas funciones al sistema o
para mejorar su desempeo.
PREVENTIVO. Para evitar posibles problemas del sistema a
Futuro.

Sistemas II.

Mtodos Orientados a Objetos


Los mtodos orientados a objeto describen e
implementan los sistemas de informacin desde un
punto de vista ontolgico.

QUE HACER PARA


IMPLEMENTAR
UN EXITOSO
SISTEMA DE INFORMACION?

Sistemas II.

MODELO EN CASCADA

23

MODELO EN CASCADA

ANLISIS, determinar qu debe hacer el software -> especificacin

DISEO, descomponer y organizar el sistema para que los mdulos


puedan ser desarrollados por separado

CODIFICACIN, escribir el cdigo fuente de cada mdulo y realizar


sobre ellos las pruebas necesarias

INTEGRACIN, combinar todos los mdulos y probar el sistema


completo antes de pasar a su explotacin

MANTENIMIENTO, durante la explotacin es necesario realizar cambios


ocasionales bien para corregir errores o para introducir mejoras,

Se trata de aislar cada fase de las otras, lo que facilita la especializacin


de los desarrolladores. Al final de cada fase se requiere un proceso de
revisin para evitar que los errores se propaguen a fases posteriores
provocando la vuelta atrs.

24

MODELO EN CASCADA
AMPLIADO

25

MODELO EN CASCADA

Cada fase debe generar una informacin de salida precisa y


suficiente:

DOCUMENTOS DE REQUISITOS DEL SOFTWARE (SRD), es una especificacin


precisa y completa a partir de los requisitos establecidos por el cliente.
DOCUMENTO DE DISEO DEL SOFTWARE (SDD),descripcin de la
estructura global del sistema, especificacin de qu debe hacer cada
uno de los mdulos y de cmo se combinan.
CDIGO FUENTE, el programa debidamente comentado
(documentacin interna).
SISTEMA SOFTWARE, el ejecutable producto dela fase de integracin y la
documentacin de las pruebas realizadas.
DOCUMENTOS DE CAMBIOS, despus de cada modificacin realizada en
la fase de mantenimiento: problema detectado y solucin adoptada

26

MODELO EN V

27

MODELO EN V AMPLIADO

28

MODELO EN V

Incluye fases similares a las del modelo en cascada


pero de forma jerrquica. En horizontal se
representa el avance en el desarrollo y en vertical
el nivel de detalle.

VERIFICACIN, comprobacin de que una parte


del sistema cumple con sus especificaciones.

VALIDACIN, comprobacin de que un elmento


satisface las necesidades del usuario identificadas
durante el anlisis.

29

PROTOTIPOS

En los modelos clsicos se insiste en las actividades de revisin de


resultados al final de cada fase para evitar la vuelta atrs, que no
se contempla de una forma organizada y resulta muy costosa.
Estn orientados a una forma de desarrollo lineal.
PROTOTIPO, es un sistema auxiliar que permite probar
experimentalmente soluciones parciales a los requisitos del sistema
Para que el coste de desarrollo del prototipo sea bajo en relacin
al del sistema final podemos:

Limitar las funciones

Limitar su capacidad

Limitar su eficiencia

Evitar limitaciones de diseo, utilizando un hardware ms potente


que el que ejecutar el sistema final

Reducir la parte a desarrollar

30

PROTOTIPOS RPIDOS

Su finalidad es solo adquirir experiencia, no se aprovechan como


producto (usar y tirar). Se denominan maquetas cuando su funcionalidad
o capacidad es muy limitada.

El sistema final se codifica totalmente partiendo de cero, no se


aprovecha el cdigo del prototipo

Lo importante de estos prototipos es que se desarrollen en poco tiempo.

31

PROTOTIPOS RPIDOS

32

PROTOTIPOS EVOLUTIVOS

En este caso se intenta aprovechar al mximo el cdigo del prototipo, y


para ello se emplea el mismo hardware/software del sistema final.

Se realizan fases de anlisis y diseo parcial, que se van ampliando hasta


construir el sistema final mediante adiciones sucesivas.

Se puede considerar un modelo en cascada en bucle, de manera que en


cada iteracin se va avanzando en el desarrollo.

HERRAMIENTAS PARA EL DESARROLLO DE PROTOTIPOS, se emplean


lenguajes de 4 generacin, que son de alto nivel y de tipo declarativo.
Tambin se emplean lenguajes de especificacin, como VDM y Z. Si
disponemos del compilador correspondiente podemos obtener
automticamente el cdigo del prototipo.

En el desarrollo de prototipos es clave la reutilizacin de software.

33

PROTOTIPOS EVOLUTIVOS

34

MODELO EN ESPIRAL

Puede considerarse como un refinamiento del modelo evolutivo general que


introduce el anlisis de riesgo como elemento fundamental para guiar la
evolucin del proceso de desarrollo.

En la dimensin radial se representa el esfuerzo realizado en el desarrollo


(siempre creciente)

En cada iteracin 4 fases:

PLANIFICACIN, determina que parte del desarrollo se abordar en ese ciclo.

ANALISIS DE RIESGO, evaluar diferentes alternativas para esa parte del desarrollo
seleccionando la ms ventajosa y tomando precauciones para evitar los posibles
inconvenientes.

INGENIERA, las actividades de los modelos clsicos

EVALUACIN, se analizan los resultados de la fase de ingeniera.

35

MODELO EN ESPIRAL

36

MANTENIMIENTO DEL SOFTWARE

El mantenimiento no representa una actividad especfica, sino


que consiste en rehacer parte de las actividades
correspondientes a las otras fases del desarrollo para introducir
cambios sobre una aplicacin ya en fase de explotacin.

MANTENIMIENTO CORRECTIVO, su finalidad es corregir errores que


no fueron detectados en el desarrollo del producto.

MANTENIMIENTO ADAPTATIVO, modificar una aplicacin para


adaptarla a las nuevas necesidades del entorno.

MANTENIMIENTO PERFECTIVO, se trata de ir obteniendo versiones


mejoradas del producto

37

GESTIN DE CAMBIOS

38

El mantenimiento supone la realizacin de una serie de cambios sucesivos


Si afectan a la mayor parte del sistema se puede plantear como un nuevo
desarrollo.
Cada cambio debe ser documentado con:
INFORME DEL PROBLEMA, que ocasiona el cambio. Suele ser propuesto por el
cliente.
INFORME DE CAMBIO, describe la solucin dada al problema y el cambio
realizado
REINGENIERA, es necesaria cuando el desarrollo de una aplicacin no est
documentado y se dispone solamente del cdigo. Se llama tambin
ingeniera inversa porque supone reconstruir y documentar las fases de
anlisis y diseo llegando a la estructura modular de la aplicacin y las
dependencias entre mdulos y funciones. Estas actividades organizan y
documentan un sistema deficiente.

GARANTA DE CALIDAD

39

Para evaluar la calidad son necesarias tcnicas de aplicacin de mtricas precisas tanto sobre los productos software como a sus procesos de
desarrollo.

McCall propone un esquema basado en valoraciones a 3 niveles:

FACTORES, valoracin significativa de la calidad en base a los criterios establecidos

CRITERIOS, aspectos de nivel intermedio que influyen en los factores de calidad

MTRICAS, mediciones puntuales de determinadas caractersticas del producto.

Entre los factores de calidad tenemos:

CORRECCIN, grado en que cumple con las especificaciones

FIABILIDAD, grado de ausencia de fallos

EFICIENCIA, reilacin entre la cantidad de resultados y los recursos requeridos

SEGURIDAD, dificultad para el acceso a datos por personas no autorizadas

FACILIDAD DE USO, esfuerzo requerido para el aprendizaje de la aplicacin

MANTENIBILIDAD. Facilidad para corregir el producto en caso necesario.

FLEXIBILIDAD, facilidad para modificar el producto

FACILIDAD DE PRUEBA, depende del esfuerzo requerido para comprobar su correccin o fiabilidad

TRANSPORTABILIDAD, facilidad para adaptar el producto a otra plataforma

REUSABILIDAD, facilidad para usar partes del producto en otros desarrollos

INTEROPERATIVIDAD, facilidad del producto para trabajar con otros

PLAN DE GARANTA DE CALIDAD (SQAP)

Es un documento formal para organizar el proceso de desarrollo


software de manera que se asegure la calidad del producto final.
Debe contemplar:

Organizacin, direccin y seguimiento de los equipos de desarrollo


Modelo de ciclo de vida a seguir, detallando fases y actividades
Documentacin requerida, determinando contenido y guin de cada
documento
Revisiones y auditorias, para garantizar que las actividades y los
documentos son correctos
Organizacin de las pruebas, a distintos niveles
Organizacin de la etapa de mantenimiento, determinando cmo
gestionar la realizacin de cambios

40

REVISIONES

Consiste en inspeccionar el resultado de una actividad para determinar si es


aceptable o contiene defectos que han de ser subsanados.
Las revisiones deben ser formalizadas y contempladas en el modelo de ciclo
de vida:

Deben ser realizadas por un grupo de personas y no individualmente

El grupo de be ser reducido


Debe ser imparcial, nada que ver con los desarrolladores
Se debe revisar el producto, pero no el productor ni el proceso de produccin
Se debe establecer de antemano una lista formal de comprobaciones
Se debe levantar acta de la reunin de revisin, recogiendo las decisiones tomadas

41

PRUEBAS

Consiste en hacer funcionar el producto o una parte de l y comprobar si


los resultados son correctos.

No permite garantizar la calidad del producto. En general no es posible


probar un producto de forma exhaustiva, debido a su complejidad.

42

GESTIN DE CONFIGURACIN

43

CONFIGURACIN, disposicin de las partes que componen una cosa y le dan su peculiar figura.

La CONFIGURACN SOFTWARE se refiere a la manera en que diversos elementos se combinan para construir un producto software.

Se han de combinar todos los elementos que intervienen en el desarrollo:

Documentos del desarrollo

Cdigo fuente

Programas, datos y resultado de las pruebas

Manuales de usuario

Documentos de mantenimiento, informes de problemas y cambios

Prototipos intermedios

Normas particulares del proyecto

Dado que los elementos software van evolucionando a lo largo del desarrollo se requiere:

Control de versiones, almacenar de forma organizada las sucesivas versiones de cada elemento de la configuracin.

Control de cambios, garantizar que las diferentes configuraciones del software se componen de elementos compatibles entre s
(lnea base).

NORMAS Y ESTNDARES

IEEE, Institute of Electrical and Electronics Engineer de USA [IEEE93]

DoD, Departament od Defense de USA [DoD88]

ESA, Agencia Europea del Espacio [ESA91]

ISO, organismo internacional de normalizacin (International Standars


Organization). En Espaa AENOR.

METRICA-2, desarrollada por el Consejo Superior de Informtica del MAP.


Se basa en la metodologa de anlisis y diseo de Yourdon/DeMarco.

44

You might also like