Sie sind auf Seite 1von 26

Ingeniera de

Software

Referencias
Brookshear: Introduccin a las
Ciencias de la Computacin,
Cap 6 Ingeniera de Software
Ian Sommerville: Ingeniera de
software, 6 Edicin

Qu es Software?
Programas computacionales y documentacin
asociada.
Los productos de software se pueden desarrollar
para un cliente en particular o pueden ser
desarrollados para un mercado general.
Productos de software pueden ser:
Genricos: desarrollados para ser vendidos a un tipo
de clientes.
Especficos: desarrollado para un cliente de acuerdo a
sus necesidades especficas.

Qu es Ingeniera de Software?
La Ingeniera de Sofware es una disciplina
de la Ingeniera que se preocupa de todos
los aspectos de la produccin de software.
aplicacin de los mtodos de la ingeniera
al proceso de desarrollo de software:
Diseo
Construccin
Mantenimiento

La disciplina una analoga


Disear y supervisar la construccin de un
edificio de oficinas de varios pisos
Recursos? Dinero, tiempo, otros
Divisin del proyecto en partes manejables?
Asegurar que las partes sean compatibles?
Mecanismo de comunicacin entre los
encargados de las diversas partes?
Medicin del grado de avance?
Muchas otras..

Diferencias con el software


Tolerancias para aceptacin
Una lavadora que difiere el 2% de su tiempo
de trabajo con el deseado vs
Sistema de contabilidad cuya exactitud difiere
en un 2% ?

Diferencias con el software


Mtricas
Sistemas de medicin de la calidad.
Para un sistema electromecnico: Tiempo
medio entre fallas
(el software no se desgasta)
El nmero de lneas de un programa ser
una buena medida de su complejidad?

El ciclo de vida del software

Modificacin: para adaptarse a los cambios del


entorno. (en otros productos se conoce como
reparacin o mantencin)

La fase de desarrollo del ciclo de vida


del software

Algunas herramientas
CASE
Computer Aided Software Engineering
Ingeniera de software asistida por
computador

Colaboran con
Elaboracin de diagramas de flujo
Diagramas entidad relacin
Diccionarios de datos
Generadores de cdigo

Qu atributos tiene un buen


Software?
El software debera entregar la funcionalidad y desempeo
requeridos por el usuario y debera ser mantenible, confiable
y usable.
Mantenibilidad
El software debe evolucionar para cubrir necesidades cambiantes.

Confiabilidad
El software debe ser confiable.

Eficiencia
El software no debe malgastar los recursos del sistema.

Usabilidad
El software debe ser usable por los usuarios para quienes se dise.

Tcnicas de desarrollo de software

Modelo de Cascada
Definicin de
requerimientos

Diseo de sistemas
y software

Implementacin y
prueba de unidades

Integracin y
prueba de sistema

Operacin y
mantenimiento

Inconveniente: dificultad para incorporar cambios despus de que el


proceso parte.

Empleo de prototipos
Desarrollo de versiones simplificadas
Para ser analizadas antes de continuar el desarrollo
Facilitan el aprendizaje frente a situaciones nuevas o
desconocidas
Elimina la necesidad de un desarrollo en cascada o
secuencial, permite un desarrollo iterativo o en espiral
El prototipo puede ser desechable o evolutivo

Desarrollo evolutivo
Desarrollo exploratorio
El objetivo es trabajar con los clientes y evolucionar
hacia un sistema final desde una especificacin inicial.
Debera partir con requerimientos bien conocidos.

Prototipos desechables
El objetivo es entender los requerimientos del sistema.
Debera comenzar con requerimientos pobremente
conocidos.

Desarrollo evolutivo
Actividades
concurrentes

Bosquejo de la
descripcin

Especificacin

Versin inicial

Desarrollo

Versiones
intermedias

Validacin

Versin final

Desarrollo evolutivo
Problemas
Los sistemas a menudo resultan pobremente estructurados.
Puede ser necesario contar con habilidades especiales (por
ejemplo, lenguajes para prototipos rpidos).

Aplicabilidad
Para sistemas interactivos pequeos o de mediano tamao.
Para partes de sistemas grandes (por ejemplo, la interfaz del
usuario).
Para sistemas de corta vida til.

Diseo descendente o top-down


Refinamiento por pasos sucesivos
Sistema jerrquico de refinamientos
Como resultado puede tenerse directamente
una estructura de mdulos

Estructura de un sistema de sueldos


simplificado
Procesar
Sueldos

Calcular
ingresos

Calcular
descuentos

Descuentos
legales

Calcular
impuestos

Otros
descuentos

Procesar
Sueldos

Diseo ascendente o bottom-up


Identifica las tareas individuales
Utiliza las tareas individuales como
herramientas abstractas para resolver
problemas mas complejos.
Estos bloques o mdulos individuales podran
ser reutilizados en otras aplicaciones
Ej.: filtros de Sistemas operativos familia Unix (Linux)

Modelo en espiral del proceso de Software


Evaluar alternativas e
identificar y resolver
riesgos
Anlisis de
riesgos

Determinar
objetivos, alternativas y
restricciones

Anlisis de
riesgos
Anlisis de
riesgos

REVISIN

Plan de requerimientos
Plan de ciclo de vida

Plan de
desarrollo
Integracin y
plan de prueba

Prototipo 3

Prototipo
operacional

Prototipo 2
Anlisis
Protode
riesgos tipo 1
Concepto
de
operacin

Simulaciones, modelos, pruebas


comparativas
Requerimientos
de software

Validacin de
requerimientos
Diseo de
V&V
Prueba de
aceptacin

Planear la siguiente fase


Servicio

Diseo del
producto

Diseo
detallado

Cdigo
Prueba de
unidades
Prueba de
integracin
Desarrollo, verificar
producto del siguiente
nivel

Sectores del modelo en espiral


Fijacin de Objetivo
Se identifican objetivos especficos para la fase.

Identificacin de riesgo y reduccin


Riesgos son identificados y se realizan actividades para reducir
los riesgos clave.

Desarrollo y validacin
Se escoge un modelo de desarrollo para el sistema que puede
ser cualquiera de los modelos genricos.

Planificacin
Se revisa el proyecto y se planifica la siguiente fase de la espiral.

Diagramas de flujo de datos


Representacin grfica de las trayectorias de los
datos en un sistema.

Ingr
eso
s br
utos

do

ba
se

Calcular
ingresos

su
el
Ta
bl
a

de
s
ja
o
H

cia
n
e
i st
s
a

Calcular
descuentos

Base de datos de empleados

Diagramas entidad-relacin
Representacin grfica de los elementos de
informacin o entidades manipulados por el
sistema, y de sus relaciones

Profesor

imparte

clase

Asiste a

alumno

Validacin de Software
Verificacin es mostrar que un sistema adhiere a las
especificaciones.
Validacin: alcanza los requerimientos del cliente del
sistema.
Involucra los procesos de chequeo y revisin, y las
pruebas del sistema.
Las pruebas del sistema consideran la ejecucin del
mismo con casos de prueba que se derivan desde la
especificacin de datos reales para ser procesados por
el sistema.

Documentacin
La documentacin se requiere para los
siguientes fines:
Aprender a utilizar el sistema
Documentacin del usuario

Realizar modificaciones o mantencin


Documentacin tcnica

Das könnte Ihnen auch gefallen