Software Evo Lucio Ning Soft
Transcript of Software Evo Lucio Ning Soft
-
8/18/2019 Software Evo Lucio Ning Soft
1/52
Ingeniería de Software
Profesor: Patricio Salinas
-
8/18/2019 Software Evo Lucio Ning Soft
2/52
Objetivos:
Introducción a la Ingeniería de Software
1. Identificar las etapas fundamentales
en el Ciclo de Vida de todo proyecto.
2. Identificar los elementos quecomponen la Ingeniería de Software.
-
8/18/2019 Software Evo Lucio Ning Soft
3/52
Software
El Software no es sólo código,
sino también las especificaciones del diseño,
los datos tratados y la documentación quepermite el desarrollo, instalación y
mantenimiento
-
8/18/2019 Software Evo Lucio Ning Soft
4/52
Software
-
8/18/2019 Software Evo Lucio Ning Soft
5/52
Software: Características
Es un elemento lógico, no físico.
Es desarrollado, no fabricado.
Se deteriora.
No hay “piezas de repuesto”.
Se construye a medida.
-
8/18/2019 Software Evo Lucio Ning Soft
6/52
Software: Cualidades
CorrectoConfiable
Robusto
Eficiente
Amigable
Verificable
Reusable
Portable
-
8/18/2019 Software Evo Lucio Ning Soft
7/52
Software: Un sistema de SW debe ser…
Fácil de mantener. Construido y documentadopara permitir cambios.
-
8/18/2019 Software Evo Lucio Ning Soft
8/52
Software: Un sistema de SW debe ser…
Fácil de mantener. Construido y documentadopara permitir cambios.
Fiable. Debe hacer lo que se espera de él.
-
8/18/2019 Software Evo Lucio Ning Soft
9/52
Software: Un sistema de SW debe ser…
Fácil de mantener. Construido y documentadopara permitir cambios.
Fiable. Debe hacer lo que se espera de él.
Eficiente. No debe hacer uso innecesario derecursos.
-
8/18/2019 Software Evo Lucio Ning Soft
10/52
Software: Un sistema de SW debe ser…
Fácil de mantener. Construido y documentadopara permitir cambios.
Fiable. Debe hacer lo que se espera de él.
Eficiente. No debe hacer uso innecesario derecursos.
Fácil de usar. Interfaz de usuario adecuada.
-
8/18/2019 Software Evo Lucio Ning Soft
11/52
Software: Evolución hacia la ingeniería
-
8/18/2019 Software Evo Lucio Ning Soft
12/52
Software: Progreso de técnicas en su construcción
-
8/18/2019 Software Evo Lucio Ning Soft
13/52
Software: Factores de Calidad
Corrección¿ Hace lo que quiero ?
-
8/18/2019 Software Evo Lucio Ning Soft
14/52
Software: Factores de Calidad
Corrección
MainframeFiabilidad¿ Lo hace de forma fiable
todo el tiempo ?
-
8/18/2019 Software Evo Lucio Ning Soft
15/52
Software: Factores de Calidad
Corrección
Fiabilidad
Eficiencia¿ Se ejecutará en mi hardware
lo mejor que pueda ?
-
8/18/2019 Software Evo Lucio Ning Soft
16/52
Software: Factores de Calidad
Corrección
Fiabilidad
Eficiencia
Seguridad (Integridad)¿ Es seguro ?
-
8/18/2019 Software Evo Lucio Ning Soft
17/52
Software: Factores de Calidad
Corrección
Fiabilidad
Eficiencia
Seguridad (Integridad)
Facilidad de uso¿ Esta diseñado para ser
usado ?
-
8/18/2019 Software Evo Lucio Ning Soft
18/52
Ingeniería de Software: Inicios
El término Ingeniería de Software nació a finalesde los años 60 en un congreso en Alemania.
La necesidad de un enfoque de ingeniería en el
desarrollo de software fue propuesto en estecongreso (OTAN-1968)
La Ingeniería de Software surge como respuesta ala crisis del software.
-
8/18/2019 Software Evo Lucio Ning Soft
19/52
Ingeniería de Software: Crisis del SW
La crisis del SW se fundamentó en:
• El tiempo de creación del SW
• La no obtención de los resultados deseados
• La poca flexibilidad
• El alto costo
-
8/18/2019 Software Evo Lucio Ning Soft
20/52
Crisis del SW: Causas más profundas
La metodología en cascada linealiza el proceso dedesarrollo
La metodología de modular estructurada hace que
el SW sea inflexible y difícil de mantenerLos programadores no tienen formación en Ing.SW
Las empresas (instituciones) tienen alta inercia aintroducir innovaciones
-
8/18/2019 Software Evo Lucio Ning Soft
21/52
Crisis del SW: Razones
Bases inestables
Fallas en el manejo del riesgo
La complejidad del SW
-
8/18/2019 Software Evo Lucio Ning Soft
22/52
Crisis del SW: Soluciones
Reforzar las fases de análisis y diseño de SW
Construir un modelo sencillo, fácil de entender,compatible con muchas herramientas de
programación y fácil de mantenerUso de metodologías y herramientas en las fasesde construcción del SW
-
8/18/2019 Software Evo Lucio Ning Soft
23/52
Ingeniería de Software: Definición
“El establecimiento y uso de principios de ingeniería
robustos, orientados a obtener económicamente
software que sea fiable y funcione eficientemente
sobre máquinas reales”
Fritz Bauer
-
8/18/2019 Software Evo Lucio Ning Soft
24/52
Ingeniería de Software: Desafíos
Reducir el costo y mejorar la calidad del SW.
-
8/18/2019 Software Evo Lucio Ning Soft
25/52
Ingeniería de Software: Desafíos
Reducir el costo y mejorar la calidad del SW.
Explotar y aprovechar el potencial proporcionadopor el HW.
-
8/18/2019 Software Evo Lucio Ning Soft
26/52
Ingeniería de Software: Desafíos
Reducir el costo y mejorar la calidad del SW.
Explotar y aprovechar el potencial proporcionadopor el HW.
Desarrollar y mantener el SW asegurando:Calidad
Fiabilidad
Facilidad de usoImposibilidad de mal uso
-
8/18/2019 Software Evo Lucio Ning Soft
27/52
Ingeniería de Software: Existen muchas clases de SW
De sistemas
De tiempo real
De gestión
-
8/18/2019 Software Evo Lucio Ning Soft
28/52
Ingeniería de Software: Existen muchas clases de SW
De sistemas
De tiempo real
De gestión
CientíficoDe inteligencia artificial
Empotrado
Etc.
-
8/18/2019 Software Evo Lucio Ning Soft
29/52
Ingeniería de Software: Existen muchas clases de SW
De sistemas
De tiempo real
De gestión
CientíficoDe inteligencia artificial
Empotrado
Etc.
Pero existen métodos y procedimientoscomunes para desarrollar un buen software
-
8/18/2019 Software Evo Lucio Ning Soft
30/52
Ingeniería de Software: Desafíos
-
8/18/2019 Software Evo Lucio Ning Soft
31/52
Ingeniería de Software … sus elementos son:
Métodos
Herramientas
Procedimientos
-
8/18/2019 Software Evo Lucio Ning Soft
32/52
Ingeniería del Software … sus elementos son:
Herramientas
Procedimientos
Definen cómo desarrollar el SW desde elpunto de vista técnico.
Métodos
-
8/18/2019 Software Evo Lucio Ning Soft
33/52
Ingeniería del Software … sus elementos son:
Métodos
T
Procedimientos
Herramientas Proporcionan un soporte automático osemi-automático para los métodos.
Definen cómo desarrollar el SW desde elpunto de vista técnico.
-
8/18/2019 Software Evo Lucio Ning Soft
34/52
Ingeniería del Software … sus elementos son:
Métodos
Herramientas
PProcedimientos
Proporcionan un soporte automático osemi-automático para los métodos.
Definen cómo desarrollar el SW desde elpunto de vista técnico.
Punto de unión entre métodos yherramientas. Definen la secuencia en laque se aplican los métodos, cómo usar lasherramientas, controles de seguimiento y
calidad, guías para gestores ydesarrolladores, etc.
-
8/18/2019 Software Evo Lucio Ning Soft
35/52
Ingeniería del Software … sus elementos son:
Métodos
Planificación y estimación de proyectos.
Análisis de requisitos.
Diseño.
Codificación.
Pruebas.
Mantenimiento.
Herramientas
CASECAD…
Procedimientos
-
8/18/2019 Software Evo Lucio Ning Soft
36/52
Ingeniería del Software … sus elementos son:
-
8/18/2019 Software Evo Lucio Ning Soft
37/52
Ciclo de Vida del Software
Define el estado de las fases a través de las
cuales se mueve un proyecto de desarrollo de
software.
-
8/18/2019 Software Evo Lucio Ning Soft
38/52
Modelo de Ciclo de Vida
Es una vista de las actividades que ocurren durante
el desarrollo de software, intenta determinar el orden
de las etapas involucradas y los criterios de transición
asociadas entre estas etapas.
-
8/18/2019 Software Evo Lucio Ning Soft
39/52
Ciclo de Vida: Definición
Ciclo de vida se define como el conjunto de fases
que transcurren desde que surge la idea de construir
una aplicación, hasta que la aplicación deja de tener
validez y se desecha.
-
8/18/2019 Software Evo Lucio Ning Soft
40/52
Ciclo de Vida: Etapas fundamentales CV de todo proyecto
-
8/18/2019 Software Evo Lucio Ning Soft
41/52
Ciclo de Vida: Etapas fundamentales CV de todo proyecto
Etapa de Desarrollo
Análisis
Diseño
Codificación
Prueba
-
8/18/2019 Software Evo Lucio Ning Soft
42/52
Ciclo de Vida: Etapas fundamentales CV de todo proyecto
Planificación: en esta fase se hace imprescindible:Conocer el SI, en el que va a estar inmerso el softwareque voy a desarrollar.
Determinar los objetivos a cumplir
Definir un plan de acción (proyecto a desarrollar ycalendario que se va a seguir).
Evaluar los recursos necesarios.
Determinar un plan de seguimiento con mecanismos deevaluación adecuados (técnicas de análisiscosto/beneficio).
-
8/18/2019 Software Evo Lucio Ning Soft
43/52
Ciclo de Vida: Etapas fundamentales CV de todo proyecto
Desarrollo. Se divide en cuatro etapas:Análisis. ¿Qué es lo que tenemos que hacer?. Se tratade conocer el conjunto de entradas que necesita elsistema, el conjunto de salidas que se producirán y losprocesos a implantar. Siempre dependiendo de lasespecificaciones marcadas por el Cliente.
Diseño. ¿Cómo lo tenemos que hacer?. Cómo losprogramas van a conseguir los objetivos con los datosdisponibles.
Codificación. Consiste en traducir los resultados deldiseño a un lenguaje de programación.
Pruebas. Consiste en verificar y validar la soluciónobtenida (pruebas unitarias, pruebas de integración).
i l d id f d l d d
-
8/18/2019 Software Evo Lucio Ning Soft
44/52
Ciclo de Vida: Etapas fundamentales CV de todo proyecto
Mantenimiento.¿Cómo se gestiona el cambio una vez que el sistema estáen explotación?
Mantenimiento Correctivo. Corrección de errores.
Mantenimiento Adaptativo. Cambio en el entorno físico ylógico.
Mantenimiento Perfectivo. Mejoras y ampliaciones.
Ci l d Vid E f d l CV d d
-
8/18/2019 Software Evo Lucio Ning Soft
45/52
Ciclo de Vida: Etapas fundamentales CV de todo proyecto
Mantenimiento.¿Cómo se gestiona el cambio una vez que el sistema estáen explotación?
Mantenimiento Correctivo. Corrección de errores.
Mantenimiento Adaptativo. Cambio en el entorno físico ylógico.
Mantenimiento Perfectivo. Mejoras y ampliaciones.
Mantenimiento Adaptativo y Perfectivoreinician el Ciclo de Vida.
Ci l d Vid d l S ft
-
8/18/2019 Software Evo Lucio Ning Soft
46/52
Ciclo de Vida del Software
Un modelo de Ciclo de Vida del software:Describe las fases principales de desarrollo desoftware.
Define las fases primarias esperadas de ser ejecutadasdurante esas fases.
Ayuda a administrar el progreso del desarrollo.
Provee un espacio de trabajo para la definición de undetallado proceso de desarrollo de software.
Ti d CV d li ió i f áti
-
8/18/2019 Software Evo Lucio Ning Soft
47/52
Tipos de CV de una aplicación informática
Ciclo de Vida Clásico (o Cascada).Se desarrolla c/u de las etapas secuencialmente.
Hay que esperar el término de una etapa para continuarcon la siguiente.
Ti d CV d li ió i f áti
-
8/18/2019 Software Evo Lucio Ning Soft
48/52
Tipos de CV de una aplicación informática
Ciclo de Vida en Cascada con vuelta atrás.Es el más conocido y experimentado.
Contempla la posibilidad de volver atrás desde cualquieretapa.
Tipos de CV de na aplicación info mática
-
8/18/2019 Software Evo Lucio Ning Soft
49/52
Tipos de CV de una aplicación informática
Ciclo de Refinamiento de Prototipos.Entendemos por Prototipo un modelo evolutivo de lasolución final. Poco a poco se irá refinando paraadaptarlo a las necesidades del proyecto.
Tipos de CV de una aplicación informática
-
8/18/2019 Software Evo Lucio Ning Soft
50/52
Tipos de CV de una aplicación informática
Ciclo de Vida en Espiral.
Trata de unir las ventajas de los modelos anteriores,incorporando el análisis de riesgo, con lo que gananimportancia los factores económicos del proyecto.
Tipos de CV de una aplicación informática
-
8/18/2019 Software Evo Lucio Ning Soft
51/52
Tipos de CV de una aplicación informática
En general:
Si el problema es perfectamente
conocido, en el que el usuario
define claramente los requisitos,
y el equipo de desarrollo tiene
amplia experiencia en la cuestión
CV en cascada (corregida)
Si el desarrollo conlleva muchos
riesgosCV en espiral
Si es importante ir probando el
producto a medida que se
desarrolla para demostrarle al
usuario y al cliente su utilidad
CV basado en prototipos
Sínt sis
-
8/18/2019 Software Evo Lucio Ning Soft
52/52
Síntesis
– Software = Programas + Datos + Documentación
– Elementos de la Ingeniería de Software:
• Métodos, Herramientas, Procedimientos.
– Ciclo de Vida:
• Conjunto de fases desde idea de desarrollar hasta que sedesecha la aplicación.
– Etapas de Ciclo de Vida:
• Planificación, Desarrollo, Mantenimiento
– Tipos de Ciclo de Vida:
• Cascada, Cascada c/vuelta atrás, Prototipo, Espiral.