Ing. Lenin Huayta Flores Sesión 01: Introducción a la Ingeniería de Software Ingeniería de Software
Ing. Lenin Huayta Flores
Sesin 01:Introduccin a la Ingeniera de Software
Ingeniera de Software
Ingeniera de Software
Introduccin a la Ingeniera de Software
Objetivos
Tener una nocin general de lo que es la Ingeniera de
Software y de sus objetivos y conceptos bsico relacionados.
Lectura recomendada
Captulo 1 (Software and Software Engineering) del libro
Software Engineering A Practioners Approach (Roger
Pressman).
Captulo 1 (Introduction) del libro Software Engineering (Ian
Sommerville).
2
Ingeniera de Software
Ingeniera de Software
Las economas de los pases desarrollados dependen
en gran parte del software.
Mas y ms sistemas son actualmente controlados
por software.
El gasto en la Ingeniera de Software, representa un
alto porcentaje del PIB de los pases desarrollados.
3
Ingeniera de Software
Qu 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.
4
Ingeniera de Software
Objetivo general
Producir software de alta calidad de forma
industrial
5
Ingeniera de Software
Objetivos especficos
Calidad de software
Productividad en el desarrollo, operacin y
mantenimiento de software
Calidad versus Productividad
Permitir que profesionales tengan control sobre el
desarrollo de software dentro de costos, plazos y
niveles de calidad adecuados
6
Ingeniera de Software
Diferencia entre Ingeniera de Software y Computacin
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
como la Ingeniera Qumica, la Ingeniera Civil o la
Ingeniera Electrnica.
7
Ingeniera de Software
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.
8
Ingeniera de Software
Qu es el Software?
Programas y su documentacin asociada
Sistemas o Productos de software grandes y
complejos.
Qu contiene el software?
Qu tipos de software hay?
Cul es el costo del software?
Cmo se desarrolla el software?
Cmo saber si un software tiene calidad?
9
Ingeniera de Software
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.
10
Ingeniera de Software
Caractersticas de los Productos de Software
Mantenibilidad.
Debe ser posible que el software evolucione y que siga
cumpliendo con sus especificaciones.
Confiabilidad.
El software no debe causar danos fsicos o econmicos en el
caso de fallos.
Eficiencia.
El software no debe desperdiciar los recursos del sistema.
Utilizacin adecuada.
El software debe contar con una interfaz de usuario
adecuada y su documentacin.
11
Ingeniera de Software
Importancia de las caractersticas del producto
La importancia relativa de las caractersticas
depende en el tipo de producto y en el ambiente en
el que ser utilizado.
En algunos casos, algunos atributos pueden
dominar.
En sistemas de seguridad crticos de tiempo real, los
atributos clave pueden ser la confiabilidad y la eficiencia.
Los costos tienden a crecer exponencialmente si son
requeridos altos niveles de alguna caracterstica.
12
Ingeniera de Software
Calidad de Software (un ejemplo para una tienda)
Correcto
La tienda no puede dejar de cobrar por productos
comprados por el consumidor
Robusto y altamente disponible
La tienda no puede parar de vender
Eficiente
El consumidor no puede esperar
La empresa quiere invertir poco en recursos
computacionales (CPU, memoria, red)
13
Ingeniera de Software
Calidad de Software (un ejemplo para una tienda)
Amigable y fcil de usar
La empresa quiere invertir poco en entrenamiento
Altamente extensible y adaptable
La empresa tiene siempre nuevos requisitos (para ayer!)
La empresa quiere el software personalizado (interfase,
teclado, idioma, moneda, etc.)
Reusable
Varias empresas precisan usar partes de un mismo sistema
14
Ingeniera de Software
Calidad de Software (un ejemplo para una tienda)
Abierto, compatible, de fcil integracin con otros
sistemas
La empresa ya tiene control de stock, fidelizacin, etc.
Portable e independiente de la plataforma (hardware
y software)
La empresa opta por una determinada plataforma
Bajo costo de instalacin y actualizacin
La empresa tiene un gran nmero de PDVs
15
Ingeniera de Software
Productividad
Costo de desarrollo reducido
La empresa consumidora quiere invertir poco en software
La empresa productora tiene que ofrecer software barato
Tiempo de desarrollo reducido
Soporte rpido a las necesidades del mercado
16
Ingeniera de Software
Software Barato
No depende tanto el resultado de costos bajos de
desarrollo, mas principalmente de la distribucin de
los costos entre varios clientes.
Reuso, extensibilidad y adaptabilidad son esenciales
para viabilizar tal distribucin.
17
Ingeniera de Software
Relevancia de la Ingeniera de Software
Calidad de software y productividad garantizan:
Disponibilidad de servicios esenciales
Seguridad de personas
Competitividad de las empresas Productores
Consumidores
18
Ingeniera de Software
Pero, en la realidad, tenemos una Crisis de SW
25% de los proyectos son cancelados
El tiempo de desarrollo es mucho mayor de lo que
se ha estimado
75% de los sistemas no funcionan como planificado
El mantenimiento y reutilizacin son difciles y
costosos
Los problemas son proporcionales a la complejidad
de los sistemas
19
Ingeniera de Software
Causas de la Crisis del Software
Esenciales
Complejidad de los sistemas
Dificultad de formalizacin
Accidentes
Mala calidad de los mtodos, lenguajes, herramientas,
procesos y modelos de ciclo de vida
Falta de calificacin tcnica
20
Ingeniera de Software
Elementos y Actividades de la Ingeniera de Software
Elementos
Modelos del ciclo de vida del
software
Lenguajes
Mtodos
Herramientas
Procesos
Actividades
Modelamiento del negocio
Elicitacin de requisitos
Anlisis y Diseo
Implementacin
Pruebas
Distribucin
Planeamiento
Gerenciamiento
Gerencia de Configuracin
y Cambios
Mantenimiento
21
Ingeniera de Software
Crticas hechas al software
El software es caro
La capacidad del software es menor de la prometida
y esperada
La entrega del software es hecha generalmente con
mucho retraso
A menudo ocurren sobre costos y generalmente don
debidos a retrasos
La documentacin es inapropiada e inadecuada
Utilizar el software es a menudo difcil y su
interaccin con el usuario es deficiente
22
Ingeniera de Software
Crticas hechas al software
El mantenimiento es caro y lleno de errores
Los productos de software no pueden ser integrados
El desempeo es poco confiable
Los requerimientos pocas veces se adecuan a las
necesidades de los usuarios
El producto no se ejecuta de acuerdo a las
especificaciones
23
Ingeniera de Software
Mtodo
Descripcin sistemtica de como se debe realizar
una determinada actividad o tarea
La descripcin es normalmente hecha a travs de
padrones y guas
Ejemplos: Booch, BON, Pim
24
Ingeniera de Software
Herramienta
Provee soporte computacional a un determinado
mtodo o lenguaje
Ambiente de desarrollo: conjunto de herramientas
integradas (CASE)
Ejemplos: Rational Rose, Inprise Jbuilder,
Enterprice Architect
25
Ingeniera de Software
Proceso
Conjunto de actividades
bien definidas
con responsables
con artefactos de entrada y salida
con dependencias entre las mismas y orden de ejecucin
con modelo de ciclo de vida
26
Ingeniera de Software
Metodologa
Conjunto de mtodos + proceso
27
Ingeniera de Software
Introduccin a la Ingeniera de Software
Lectura adicional
Daniel M. Berry. Myths and Realities in Software
Development.
W. Wayt Gibbs. Software's chronic crisis. Scientific
American, September 1994.
Alan Joch. How software doesn't work. Byte, December
1995.
28