Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Cod. 0600
1
I. ANTECEDENTES DE LA INGENIERÍA DE SOFTWARE
Objetivos
Conocer los antecedentes de la Ingeniería de
Software y su evolución.
Discutir la crisis del software.
Identificar los pasos para la comprensión y
resolución de problemas de Ingeniería de Software.
Explicar las mejores prácticas en Ingeniería de
Software.
Reconocer las actividades, roles y
responsabilidades en el desarrollo de proyectos SW
2
I. ANTECEDENTES DE LA INGENIERÍA DE SOFTWARE
Un tipo de ingeniería.
Tiene el mismo conjunto de deberes, derechos y
responsabilidades sociales que todas las ingenierías.
3
I. ANTECEDENTES DE LA INGENIERÍA DE SOFTWARE
Orden
Item
envío
Proceso de Negocios
Sistema Computacional
4
www.dsic.upv.es/~letelier/pub
I. ANTECEDENTES DE LA INGENIERÍA DE SOFTWARE
Herramientas
Métodos
Proceso
Un enfoque de calidad
8
I. ANTECEDENTES DE LA INGENIERÍA DE SOFTWARE
11
I. ANTECEDENTES DE LA INGENIERÍA DE SOFTWARE
12
Basado en presentación de Ing. Francisco Rodríguez
I. ANTECEDENTES DE LA INGENIERÍA DE SOFTWARE
13
I. ANTECEDENTES DE LA INGENIERÍA DE SOFTWARE
14
I. ANTECEDENTES DE LA INGENIERÍA DE SOFTWARE
15
I. ANTECEDENTES DE LA INGENIERÍA DE SOFTWARE
16
I. ANTECEDENTES DE LA INGENIERÍA DE SOFTWARE
más lo
crisis
17
I. ANTECEDENTES DE LA INGENIERÍA DE SOFTWARE
18
I. ANTECEDENTES DE LA INGENIERÍA DE SOFTWARE
Mito del
Desarrollador
20
I. ANTECEDENTES DE LA INGENIERÍA DE SOFTWARE
21
I. ANTECEDENTES DE LA INGENIERÍA DE SOFTWARE
22
I. ANTECEDENTES DE LA INGENIERÍA DE SOFTWARE
23
I. ANTECEDENTES DE LA INGENIERÍA DE SOFTWARE
24
I. ANTECEDENTES DE LA INGENIERÍA DE SOFTWARE
El reto a lo heredado
– Mantener y actualizar el software desarrollado
(por terceros) para evitar costos excesivos y
que siga funcionando.
El reto de la heterogeneidad
– Desarrollar técnicas para construir software
confiable que sea flexible y se adecue a las
diversas necesidades actuales.
28
I. ANTECEDENTES DE LA INGENIERÍA DE SOFTWARE
El reto de la entrega
– Consiste en reducir los tiempos de entrega
para sistemas grandes y complejos sin
comprometer la calidad del sistema.
29
I. ANTECEDENTES DE LA INGENIERÍA DE SOFTWARE
Interface de Usuario
(Visual Basic,
Java, ..)
Lógica del
Negocio
(C++, Java, ..)
Múltiples Sistemas
Servidor de BDs
(C++ & SQL, ..)
Modelar el sistema
independientemente Componentes
del lenguaje de Reutilizados
implementación
Promover la Reutilización
30
www.dsic.upv.es/~letelier/pub
I. ANTECEDENTES DE LA INGENIERÍA DE SOFTWARE
.1-.2 Especificación
0.5 Diseño
1 Programación
2 Pruebas de Unidades
5 Pruebas de Aceptación
20 Mantenimiento
34
I. ANTECEDENTES DE LA INGENIERÍA DE SOFTWARE
Métodos
▪ Describen el cómo construir técnicamente
el software
35
I. ANTECEDENTES DE LA INGENIERÍA DE SOFTWARE
Procedimientos
▪ Unión de de los métodos y las
herramientas
36
I. ANTECEDENTES DE LA INGENIERÍA DE SOFTWARE
37
I. ANTECEDENTES DE LA INGENIERÍA DE SOFTWARE
Participantes
38
I. ANTECEDENTES DE LA INGENIERÍA DE SOFTWARE
Productos de Trabajo
Es un artefacto que se produce durante el desarrollo.
Puede ser un documento o fragmento de software40
para los demás desarrolladores o para el cliente.
I. ANTECEDENTES DE LA INGENIERÍA DE SOFTWARE
Tipos:
Requerimiento funcional: especifica los servicios o
funciones que debe proporcionar el sistema software.
Requerimiento no funcional: no especifica un servicio.
Califica el servicio o servicios (especifica algo sobre ellos).
Ejm. Rendimiento, confiabilidad y disponibilidad, manejo de
errores, interfase, restricciones.
Requerimiento inverso: establece lo que no debe hacer el
software. Ejm. No se requiere que realice análisis
estadístico. (Restricción) 44
I. ANTECEDENTES DE LA INGENIERÍA DE SOFTWARE
I.4 Conceptos de Ingeniería de Software
Notaciones, métodos y metodologías
Notación: es un conjunto de reglas gráficas o
textuales para representar un modelo. Por ejemplo
la notación OO.
Método: es un técnica aplicable para la resolución
de un problema específico.
Ejm. receta, algoritmo de ordenamiento.
Metodología: es una colección de métodos para la
resolución de una clase de problemas. Las
metodologías de desarrollo de software
descomponen el proceso en actividades: análisis,
diseño del sistema, diseño del objeto, etc.
Ejm. Metodología RUP, Booch son metodologías45
orientadas a objetos.
I. ANTECEDENTES DE LA INGENIERÍA DE SOFTWARE
I.4 Conceptos de Ingeniería de Software
Notación UML
46
I. ANTECEDENTES DE LA INGENIERÍA DE SOFTWARE
I.4 Conceptos de Ingeniería de Software
Metodología
[Maddison, 1983]
47
I. ANTECEDENTES DE LA INGENIERÍA DE SOFTWARE
I.4 Conceptos de Ingeniería de Software
Metodología
48
I. ANTECEDENTES DE LA INGENIERÍA DE SOFTWARE
I.4 Conceptos de Ingeniería de Software
Metodología: descomposición del proceso
49
I. ANTECEDENTES DE LA INGENIERÍA DE SOFTWARE
I.4 Conceptos de Ingeniería de Software
En un proyecto de desarrollo de software la
metodología define Quién? debe hacer Qué?,
Cuándo? y Cómo? debe hacerlo
Requisitos nuevos Sistema nuevo
o modificados o modificado
Proceso de Desarrollo
de Software
53
I. ANTECEDENTES DE LA INGENIERÍA DE SOFTWARE
I.5 Actividades de desarrollo de la Ingeniería de Software
Ejemplo de un caso de uso:
Nombre del caso de uso CompraBoletoSencillo.
Actor Participante Iniciado por viajero.
Condición Inicial 1. El viajero se para enfrente del distribuidor
de boletos que puede estar ubicado en la
estación de origen u otra estación.
Flujo de Eventos 2. El viajero selecciona las estaciones de
origen y destino.
3. El distribuidor de boletos despliega el precio
del boleto.
4. El viajero inserta una cantidad de dinero
que, por lo menos, es igual al precio del boleto
5. El distribuidordeboletos emite el boleto
especificado al Viajero y regresa el cambio si
es el caso.
Condición de Salida 6. El viajero toma un boleto válido y el cambio, en
su caso.
Requerimientos especiales: Si la transacción no se termina después de un
minuto de inactividad, el distribuidordeboletos
54
regresa todo el dinero insertado.
I. ANTECEDENTES DE LA INGENIERÍA DE SOFTWARE
Análisis
- Se produce un modelo del sistema que sea
correcto, completo, consistente, claro, realista y
verificable.
- Los casos de uso se transforman en un modelo
de objeto que describa por completo el sistema.
- Se descubren las ambigüedades y las
inconsistencias en el modelo de casos de uso.
El resultado del análisis es un modelo de objeto con
atributos, operaciones y asociaciones. 56
I. ANTECEDENTES DE LA INGENIERÍA DE SOFTWARE
I.5 Actividades de desarrollo de la Ingeniería de Software
Diseño
- Se definen los objetivos de diseño del proyecto, y se
descompone el sistema en subsistemas más pequeños,
que puedan desarrollar los equipos de trabajo individuales.
- Se seleccionan las estrategias para la construcción del
sistema, tales como la plataforma de hardware y software.
58
I. ANTECEDENTES DE LA INGENIERÍA DE SOFTWARE
I.5 Actividades de desarrollo de la Ingeniería de Software
Implementación
Los objetivos:
– Planificar las integraciones del sistema
– Distribuir el sistema asignando componentes
ejecutables.
– Implementar las clases y subsistemas
– Probar componentes e integrarlos
59
I. ANTECEDENTES DE LA INGENIERÍA DE SOFTWARE
I.5 Actividades de desarrollo de la Ingeniería de Software
Mantenimiento
- Es la modificación de un producto software después de la
entrega, para corregir errores, mejorar el rendimiento, u
otros atributos.1
- El mantenimiento del software es una de las actividades
más comunes en la ingeniería de software.
- Es una de las fases en el ciclo de vida de desarrollo de
software.
- La fase de mantenimiento es la fase que viene después
del despliegue (implementación) del software en el campo.
- Más del 80%, del esfuerzo de mantenimiento es usado
para acciones no correctivas. 60
I. ANTECEDENTES DE LA INGENIERÍA DE SOFTWARE
I.6 Roles del personal
Equipo de mantenimiento
- Corrigen defectos en el software.
- Desarrollan nuevas funcionalidades.
- Adaptan el software según los cambios del
negocio.
- Se aseguran de que el software brinde el nivel de
servicio esperado por los usuarios.
67
I. ANTECEDENTES DE LA INGENIERÍA DE SOFTWARE
I.6 Roles del personal
Recurso Humano
68