14. fundamentos de desarrollo de software

28
Profesor: Jhon Alexander Holguín Barrera [email protected]

Upload: jhon-barrera

Post on 13-Jun-2015

2.383 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: 14. fundamentos de desarrollo de software

Profesor: Jhon Alexander Holguín Barrera

[email protected]

Page 2: 14. fundamentos de desarrollo de software

Introducción a la Ingeniería de Sistemas y Telecomunicaciones

Jhon Alexander Holguín B.

Programas de ordenador junto con toda la documentación y datos de configuración

asociados requeridos para hacer que estos programas operen de manera correcta

Page 3: 14. fundamentos de desarrollo de software

Introducción a la Ingeniería de Sistemas y Telecomunicaciones

Jhon Alexander Holguín B.

Parte Lógica

Parte Fisica

Page 4: 14. fundamentos de desarrollo de software

Introducción a la Ingeniería de Sistemas y Telecomunicaciones

Jhon Alexander Holguín B.

S.O

Compiladores Editores Interprete LC

Interfaces de Usuario

Usuario y Programas de Aplicaciones

Llamadas al Sistema

MAQUINA OPERATIVA

MAQUINA SIMBOLICA

Controladores de Dispositivos

Page 5: 14. fundamentos de desarrollo de software

Introducción a la Ingeniería de Sistemas y Telecomunicaciones

Jhon Alexander Holguín B.

•Software del Sistema

•Controladores de Dispositivos

•Sistemas Operativos

•Herramientas de Diagnostico

•Software de Programación

•Compiladores

•Interpretes

•Enlazadores

•Depuradores

•Software de Aplicación

•Ofimática

•Software Empresarial

•Video juegos

•Bases de Datos

Page 6: 14. fundamentos de desarrollo de software

Introducción a la Ingeniería de Sistemas y Telecomunicaciones

Jhon Alexander Holguín B.

•Productos Genéricos

•Son sistemas aislados producidos por una organización de desarrollo y que se venden

al mercados abierto a cualquier cliente que va ha hacer uso de ellos.

•Productos Personalizados (A la medida)

•Son sistemas requeridos por un cliente en particular, un contratista de software

desarrolla el software especialmente para ese cliente.

Page 7: 14. fundamentos de desarrollo de software

Introducción a la Ingeniería de Sistemas y Telecomunicaciones

Jhon Alexander Holguín B.

•Disciplina de la Ingeniería que comprende todos los aspectos de la producción de

software desde las etapas iniciales de la especificación del sistema, hasta el

mantenimiento de éste después de que se utiliza (Ciclo de vida del Software)

•Aspectos de la producción de Software

•Procesos Técnicos del desarrollo de Software

•Gestión de proyectos de software

•Desarrollo de Herramientas

•Teorías de apoyo a la producción de software

Page 8: 14. fundamentos de desarrollo de software

Introducción a la Ingeniería de Sistemas y Telecomunicaciones

Jhon Alexander Holguín B.

•Conjunto de actividades y resultados que producen un producto de software

(incluida la documentación requerida)

1. Especificación del Software: Se define el software a producir y las

restricciones sobre su operación.

2. Desarrollo de Software: Análisis, Diseño y programación

3. Validación del Software: Donde el software se valida para asegurar que es

lo que el cliente requiere (Pruebas y Validación).

4. Evolución del Software: Donde el software se modifica para adaptarlo a

los cambios requeridos por el cliente y el mercado (mantenimiento).

Page 9: 14. fundamentos de desarrollo de software

Introducción a la Ingeniería de Sistemas y Telecomunicaciones

Jhon Alexander Holguín B.

Page 10: 14. fundamentos de desarrollo de software

Introducción a la Ingeniería de Sistemas y Telecomunicaciones

Jhon Alexander Holguín B.

Page 11: 14. fundamentos de desarrollo de software

Introducción a la Ingeniería de Sistemas y Telecomunicaciones

Jhon Alexander Holguín B.

•Modelo Cascada: Considera las actividades anteriores y las representa como

factores del proceso separados, después que cada etapa quede definida se firma y el

desarrollo continua con la siguiente etapa.

•Desventajas

•Rigidez y poca adaptabilidad

•Baja mitigación de Riesgos

•Falta de Retroalimentación

Page 12: 14. fundamentos de desarrollo de software

Introducción a la Ingeniería de Sistemas y Telecomunicaciones

Jhon Alexander Holguín B.

•Modelo Iterativo: Se entrelazan las actividades de especificación desarrollo y

validación.

•Ventajas

•Flexibilidad

•Mitigación de Riesgos

•Retroalimentación

Page 13: 14. fundamentos de desarrollo de software

Introducción a la Ingeniería de Sistemas y Telecomunicaciones

Jhon Alexander Holguín B.

Modelo en Cascada Modelo en Evolutivo

Page 14: 14. fundamentos de desarrollo de software

Introducción a la Ingeniería de Sistemas y Telecomunicaciones

Jhon Alexander Holguín B.

•Iteración de Procesos (Modelo en Espiral)

•Propuesto por Boehm 1988, donde se representa cada ciclo de la espiral representa

una fase del proceso del software.

•Cada se divide en cuatro sectores.

•Definición de objetivos

•Evaluación y reducción de riesgos

•Desarrollo y validación

•Planificación

Page 15: 14. fundamentos de desarrollo de software

Introducción a la Ingeniería de Sistemas y Telecomunicaciones

Jhon Alexander Holguín B.

(Modelo en Espiral)

Page 16: 14. fundamentos de desarrollo de software

Introducción a la Ingeniería de Sistemas y Telecomunicaciones

Jhon Alexander Holguín B.

Page 17: 14. fundamentos de desarrollo de software

Introducción a la Ingeniería de Sistemas y Telecomunicaciones

Jhon Alexander Holguín B.

•Especificación del Software

•Conocida como ingeniería de requerimientos es el proceso de comprensión y

definición de que servicios se requieren del sistema y de identificación de

restricciones de funcionamiento y desarrollo del mismo.

•Requerimientos Funcionales

•Requerimientos no Funcionales

•Restricciones de Funcionamiento

•Restricciones de Desarrollo

Page 18: 14. fundamentos de desarrollo de software

Introducción a la Ingeniería de Sistemas y Telecomunicaciones

Jhon Alexander Holguín B.

•Especificación del Software

•Fases del proceso de requerimientos:

•Estudio de Viabilidad

•Obtención y Análisis de requerimientos

•Especificación de Requerimientos

•Validación de Requerimientos

Page 19: 14. fundamentos de desarrollo de software

Introducción a la Ingeniería de Sistemas y Telecomunicaciones

Jhon Alexander Holguín B.

•Diseño e Implementación del Software

•Convertir las especificaciones establecidas en los requerimientos en un sistema

ejecutable (Cumpla la funcionalidad)

•Un diseño de software es una descripción de la estructura del software que se va a

implementar.

•Datos del Sistema

•Interfaces del Sistema

•Componentes del Sistema

•Especificación de Algoritmos

Page 20: 14. fundamentos de desarrollo de software

Introducción a la Ingeniería de Sistemas y Telecomunicaciones

Jhon Alexander Holguín B.

•Diseño e Implementación del Software

•Actividades especificas del proceso de diseño:

•Diseño arquitectónico (Subsistemas y relaciones)

•Especificación abstracta (Especificación abstracta de los subsistemas)

•Diseño de Interfaz

•Diseño de Componentes

•Diseño de Estructura de Datos

•Diseño de Algoritmos

Page 21: 14. fundamentos de desarrollo de software

Introducción a la Ingeniería de Sistemas y Telecomunicaciones

Jhon Alexander Holguín B.

•Diseño e Implementación del Software

•Metodología Desarrollo Estructuradas

•RUP (Rational Unified Process)

•Metodologías Desarrollo Agiles

•Scrum

•XP

•RAD (Rapid Application Development)

Page 22: 14. fundamentos de desarrollo de software

Introducción a la Ingeniería de Sistemas y Telecomunicaciones

Jhon Alexander Holguín B.

Page 23: 14. fundamentos de desarrollo de software

Introducción a la Ingeniería de Sistemas y Telecomunicaciones

Jhon Alexander Holguín B.

•Diseño e Implementación del Software

•Lenguajes de Programación : Idioma artificial para expresar ordenes o

funciones lógicas con el fin de ejecutarse en maquinas.

Page 24: 14. fundamentos de desarrollo de software

Introducción a la Ingeniería de Sistemas y Telecomunicaciones

Jhon Alexander Holguín B.

•Diseño e Implementación del Software

Page 25: 14. fundamentos de desarrollo de software

Introducción a la Ingeniería de Sistemas y Telecomunicaciones

Jhon Alexander Holguín B.

•Validación del Software

•Verificación de que el software creado se ajusta a las especificaciones dadas por el

usuario.

•Implica procesos de comprobación y revisiones, es decir el desarrollo de pruebas de

funcionamiento (Testing)

•Las etapas de las pruebas del proceso son:

•Prueba de Componentes (Unitarias)

•Pruebas del Sistema (Integración)

•Prueba de Aceptación

Page 26: 14. fundamentos de desarrollo de software

Introducción a la Ingeniería de Sistemas y Telecomunicaciones

Jhon Alexander Holguín B.

•Evolución del Software

•La flexibilidad de los sistemas de software es una de las principales razones por las

cuales el software puede aumentar su complejidad

“Los requerimientos no serán completamente conocidos hasta después que los usuarios hayan

usado el producto terminado”

Watts S. Humphrey 2005

Page 27: 14. fundamentos de desarrollo de software

Introducción a la Ingeniería de Sistemas y Telecomunicaciones

Jhon Alexander Holguín B.

•Evolución del Software

•El mantenimiento del software no solo incluye nuevas funcionalidades si no también

la mejora y corrección de las existentes.

Page 28: 14. fundamentos de desarrollo de software

Introducción a la Ingeniería de Sistemas y Telecomunicaciones

Jhon Alexander Holguín B.

Oportunidad /Necesidad

Requerimientos

Diseño/

Codificación

Validación/

Pruebas

Evolución

• Implementación

• Mantenimiento

Obsolescencia