Está en la página 1de 32

Bibliografa

- Ingeniera del Software. Un enfoque prctico. Roger


S. Pressman. 7 edicin. MC-Graw Hill.
- Ingeniera del Software . Ian Sommerville. 9 edicin .
Addison-Wesley. Pearson.
-Laboratorio Nacional de Calidad del Software.
www.inteco.es/calidad_TIC/descargas/guias/ INTECO.
Tema 1
Introduccin
a la Ingeniera del Software
Ingeniera del Software
El comienzo de la sabidura de un ingeniero
del software est en reconocer la diferencia
entre obtener un software que funcione y
obtener uno que funcione correctamente
M. A. J ackson
Ingeniera del Software
Los ingenieros informticos debern
habituarse a trabajar en un entorno que
cambia continuamente, y en el que los
cambios se suceden ms rpidamente
cada ao
Importancia de la IS
Las economas de los pases desarrollados
son software dependientes
El nmero de sistemas controlados por el
software crece continuamente
La industria del software representa una
fraccin cada vez ms importante del PNB
de los pases
Desarrollo del software.
Comunicacin compleja
1. Lo que el director desea. 2. Como lo define el director de
proyecto.
3. Como se disea el Sistema.
4. Como lo desarrolla el
programador.
5. Como se ha realizado la
instalacin.
6. Lo que el usuario quera.
Origen: desconocido
Problemas de desarrollo del software
Proyectos fuera de plazo y de presupuesto
Excesiva dependencia de los
desarrolladores
Falta de control del desarrollo del proyecto
Escasa integracin de las diferentes fases
del desarrollo
Escaso control de calidad del producto
Escasa documentacin actualizada de los
proyectos
No utilizar una metodologa formal
El Software
El Software:
Instrucciones que, cuando se ejecutan, proporcionan la
funcionalidad deseada.
Estructuras de datos que facilitan a las instrucciones manipular
adecuadamente la informacin.
Documentos que describen el desarrollo, uso, instalacin y
mantenimiento de los programas.
Software: "programas de computador, procedimientos, y,
posiblemente, la documentacin asociada y los datos
pertenecientes a las operaciones de un sistema de
computacin".
Incluye: Formacin, soporte al consumidor e instalacin.
Caractersticas del software
Elemento lgico, no fsico.
Desarrollado, no fabricado.
No se estropea, se deteriora!
(deterioro por cambios)
Mayoritariamente cerrado:
usar todo o nada
(poco ensamblaje de componentes:
reutilizacin--)
Factores de calidad de McCall
Operaciones del producto
Revisin del
producto
Transicin
del producto
Correccin: Hace lo que quiero?
Fiabilidad: Lo hace de forma fiable todo el tiempo?
Eficiencia: Se ejecutar en mi hardware lo mejor que pueda?
Integridad: Es seguro?
Facilidad de uso: Est diseado para ser usado fcilmente?
Facilidad de
mantenimiento: Puedo corregirlo?
Flexibilidad: Puedo cambiarlo?
Facilidad de prueba: Puedo probarlo?
Portabilidad: Podr usarlo
en otra mquina?
Reusabilidad: podr reusar alguna
parte del software?
Interoperabilidad: Podr hacerlo interactuar
con otro sistema?
Atributos de Calidad del Software
(Bell 2000)
Fiable
Capacidad de ofrecer los mismos
resultados bajo las mismas
condiciones.
Eficiente
Utilizacin ptima de los recursos de
la mquina.
Robusto
No poseer un comportamiento
catastrfico ante situaciones
excepcionales
(Tolerante a fallos).
Correcto
Se ajusta a las especificaciones
dadas por el usuario.
Portable
Capaz de integrarse en entornos
distintos con el mismo esfuerzo.
Adaptable (extensibilidad)
Modificar alguna funcin sin que
afecte a sus actividades.
Inteligible
Diseo claro, bien estructurado y
documentado.
No Errneo
No exista diferencia entre los valores
reales y los calculados
Reutilizable (reusabilidad)
Atributos de Calidad del Software
(Sommerville 2002)
Mantenibilidad
Confiabilidad
fiabilidad
seguridad
proteccin
Eficiencia
Usabilidad
Perspectiva histrica del
desarrollo de software
Dcada 50-60:
Software como un aadido.
Desarrollo artesanal, a medida.
Lenguajes de bajo nivel.
Dcada 60-70:
Software como producto.
Dcada lenguajes y compilacin.
Crisis del software.
Dcada 70-80:
Programacin estructurada.
Ingeniera del Software.
Primeros mtodos estructurados.
Dcada 80-90:
Tecnologa de SGBDs, SOs...
Nuevos paradigmas de programacin
y de produccin de programas:
OO
C/S
90s - actualidad:
Anlisis/Diseo OO.
Tecnologa CASE
Componentes y reutilizacin
Interoperabilidad (CORBA, .NET...)
Internet
ISw. distribuida
repositorios de componentes
reutilizables
e-business; e-commerce
...
Objetivos de la Ingeniera del Software
Trmino que aparece en 1968
La produccin de programas debe abordarse como una ingeniera
ms.
(Boehm) La Ingeniera del Software es la aplicacin prctica y
sistemtica del conocimiento cientfico a:
la produccin de programas correctos, que se desarrollan a
tiempo y dentro de las estimaciones de presupuesto,
y a la correspondiente documentacin para desarrollarlos, usarlos
y mantenerlos.
La Ingeniera del Software se fundamenta en tcnicas
relacionadas con:
ciencia de la computacin, programacin, ingeniera,
administracin, matemticas, economa,...
Ms definiciones de ISw...
La ISw es el establecimiento y uso de principios slidos de
ingeniera, orientados a obtener software econmico que sea
fiable y trabaje de manera eficiente en mquinas reales (Fritz
Bauer).
Isw: (1) La aplicacin de un enfoque sistemtico, disciplinado y
cuantificable para el desarrollo, la operacin y el mantenimiento
del software; es decir, la aplicacin de la ingeniera al software;
(2) El estudio de enfoques como en (1) (Glosario Estndar de
Trminos de Ingeniera del Software de IEEE, 1998).
Una disciplina que comprende todos los aspectos de la
produccin de software desde las etapas iniciales de la
especificacin del sistema, hasta el mantenimiento de ste
despus de que se utiliza(Sommerville 2002).
Situacin actual de la ISw
Tres problemas esenciales en los comienzos del siglo XXI
(Sommerville 2002):
El reto de lo heredado
El reto de la heterogeneidad
El reto de la entrega
Hoy da,
existe un consenso en la importancia de la ISw
muchos autores comienzan a renegar del trmino crisis
del software
Principios de la Ingeniera del Software
Abstraccin
Permite parcelar la complejidad. Por
ello se olvidan aspectos irrelevantes
del sistema y se potencian los
fundamentales.
Encapsulamiento u Ocultacin de
la informacin
Esconder todos los detalles que no
afecten a otros mdulos, definiendo
interfaces estrictos que sirvan de
interaccin entre los distintos
modelos.
Modularidad
Sirve para parcelar la solucin en
mdulos independientes con fuerte
cohesin interna.
Localizacin
Deben estar agrupados todos
aquellos elementos que estn
afectados por un mismo hecho.
Uniformidad
Tdos los mdulos deben tener una
notacin similar.
Completitud
Deben estar desarrollados todos los
aspectos del sistema.
Validacin y Verificabilidad
El producto final debe ser fcilmente
validable y verificable:
Estamos desarrollando el
programa correcto?
Estamos desarrollando
correctamente el programa?
El proceso de resolucin de
problemas
Proceso de resolucin
1. Identificar el problema
2. Definir y representar el problema
3. Explorar las posibles estrategias
4. Aplicar y mejorar las estrategias
5. Mirar atrs y evaluar los efectos de la actividad
realizada (se ha resuelto el problema?)
Decidir qu hacer (cul es el problema)
Decidir cmo hacerlo
Hacerlo
Probar el resultado
Usar el resultado
Proceso de resolucin
Proceso
Software
Pr obl ema
o
Necesi dad
Sol uci n
o
Softwar e
Proceso de resolucin
Proceso de resolucin
1. qu hacer (Especificacin de Requisitos
y Anlisis )
2. cmo hacerlo (Diseo del Sistema
Software)
3. Hacerlo (Codificacin )
4. Probar el resultado
5. Usar el resultado (Instalado )
6. Mantenimiento
Proceso mnimo construccin SW
Obtener requisitos software
Disear
Implementar
Realizar pruebas
Instalar
Mantener y ampliar
Proceso SW frente a ciclo de vida
PROCESO DE
CONSTRUCCION
CICLO DE VIDA
DEL PRODUCTO Necesidad
Especi-
ficacin
de requi-
sitos
Diseo
Cdigo
Sistema
Software
Obtencin
de
Requisitos
Disear
el
Sistema
Programar
el
Cdigo
Probar
el
Sistema

Visin general del proceso de
ISw
Con independencia del rea de aplicacin,
tamao o complejidad del proyecto,
cualquier sistema se encontrar al menos en
una de las siguientes fases genricas:
Definicin ~ Anlisis (del sistema, del sw.)
desarrollo ~ Diseo, codificacin, prueba
mantenimiento.
Fase de definicin
Qu debe hacer el sistema?
informacin que ha de manejar el sistema
necesidades de rendimiento
restricciones de diseo
interfaces del sistema con los usuarios y con otros
sistemas
criterios de validacin
Se elaboran los documentos de requisitos del
sistema (SyRS) y del software (SRS)
Fase de desarrollo
Cmo construir el sistema?
Se disean las estructuras de los datos y los
programas
cmo se caracterizan las interfaces,
cmo realizar el paso del diseo al lenguaje de
programacin,
cmo ha de realizarse la prueba,
se escriben y documentan los programas,
y se prueba el software construido.
Fase de mantenimiento
Comienza una vez construido el sistema, cuando se
empieza a utilizar.
Se centra en el cambio.
El software es sometido a reparaciones y
modificaciones cada vez que se detecta un fallo o
se necesita cubrir una nueva necesidad de los
usuarios.
En esta fase recae el mayor porcentaje del coste de
un sistema.
Fase de mantenimiento
Un buen sistema no es slo un conjunto de
programas que funcionan.
Debe ser fcil de mantener
Documentacin esencial
(CASE, Computer Assisted
Software Engineering)
Tipos de mantenimiento
Correctivo: un programa no realiza
correctamente la aplicacin para la que ha sido
diseado, y, por tanto, debe ser modificado.
Perfectivo: modificaciones a los programas para
conseguir mayor adecuacin a los requisitos, mayor
eficiencia, o simplemente recoger nuevas
funcionalidades no expresadas en la fase de
definicin del sistema.
Tipos de mantenimiento
Adaptativo: Adaptar los programas para
acomodarlos a los cambios de su entorno externo
(modificaciones en la legislacin, CPU, SO, las
reglas de negocio, etc.)
Preventivo: El software se deteriora con los
cambios, y este tipo de mantenimiento hace
cambios en los programas para que se puedan
corregir, adaptar y mejorar ms fcilmente
(Reingeniera del software).
Impacto del cambio
Definicin Desarrollo Mantenimiento
1x
1,5-6x
60-100x
C
o
s
t
e

d
e
l

c
a
m
b
i
o

También podría gustarte