COMP3400 Ingeniería de Software Prof. José Aníbal Rodríguez Ortega.

1 COMP3400 Ingeniería de Software Prof. José Aníbal Rodrí...
Author: Salvador Nicolas
0 downloads 0 Views

1 COMP3400 Ingeniería de Software Prof. José Aníbal Rodríguez Ortega

2 ¿Qué es Software Engineering?  Es el establecimiento y uso de principios de ingeniería con el propósito de obtener Software eficiente, a bajo costo y que sea confiable.  Es una disciplina responsable de monitorear todos los aspectos envueltos en la producción de software.

3 ¿Software Crisis?  Proyectos administrativamente a la deriva  Fuera de Presupuesto  Atrazados  Baja calidad  Todo por la complejidad del desarrollo de software

4 Del Hardware al Software  Originalmente, los problemas o situaciones de la vida real se resolvían todos con hardware.  Con el pasar del tiempo y el surgimiento del software, el gobierno y otras entidades se dieron cuenta que en muchos casos la mejor solución $$$ era la utilización del software

5 Metas de SE  Mantenimiento – Habilidad para hacer cambios o mejoras fácilmente  Confiabilidad – Habilidad de confiar en el software cuando más se necesita  Eficiencia – Habilidad de utilizar los recursos de la computadora efectivamente ( tiempo y espacio)  Uso – Habilidad de lograr que los usuarios utilizen el software fácil y efectivamente.

6 Principios de Software Eng.  Modularidad – Divide y conquista  Encapsulación – Esconde la implementación  Localización – localizar asuntos similares en un mismo lugar  Abstración – provee una ilusión  Uniformidad – Que se vea el código como si lo hubiese hecho una sóla persona  Completo – Que haga lo que se espera que haga  Garantía – Que se pruebe que funciona correctamente

7 Métodos de SE  Modelos - Produciendo modelos de material asbtracto.  Motivado por la DATA - solución de problemas basado en la estructura de la data  Motivado por las Funciones - solución basada estrictamente en la función  Orientado a Objetos - data + funciones

8 Modelos de Procesos  Waterfall – Secuencia estricta de actividades – Una sola pasada  Spiral – Se realiza por actividades y se regresa el principio de la actividad para ver si se cumplió el objetivo.  Incremental – se realiza una parte de la funcionalidad y se va aumentado poco a poco  Xtreme Programming – se realiza probando lo que se supone que haga

9 Waterfall  Análisis de Requerimientos  Diseño preliminar  Diseño detallado  Codificación  Prueba del código  Entrega del sistema  Mantenimiento

10 ¿Requerimentos?  Es el documento que establece lo que se supone haga el sistema que se va a desarrollar  Es la guía de trabajo para los programadores  Es el contrato entre clientes y desarrolladores / programadores

11 ¿Qué es un Sistema?  Es un conjunto de componentes interrelacionados que trabajan para realizar una tarea común  Puede ser una combinación de hardware y software  Puede estar compuesto de otros sub- sistemas  Su comportamiento hay que analizarlo en 2D y 3D

12 Retos de los sistemas  Coordinación entre las diferentes disciplinas – falta de confianza – falta de comprensión  Los sistemas deben ser diseñados para que duren muchos años en un ambiente cambiante.

13 Arquitectura de un sistema  La arquitectura del sistema puede estar compuesto por varios subsistemas ( Linux y Windows)  Cada sub-sistema puede ser desarrollado independientemente  Usualmente la arquitectura se agrupa en sólo nivel.

14 Detalles de las arquitecturas Cliente / Servidor  Los clientes conocen el servidor  El servidor no conoce sus clientes  Los clientes no conocen como trabaja el servidor internamente  El servidor tampoco conoce como trabajan sus clientes internamente

15 Software and System Engineering  La tendencia cada vez más es a utilizar hardware de uso general y software para uso específico  Los problemas que enfrentan ambos son semejantes  En ingeniería de sistemas, el software se ve como un problema, porque los proyectos se han atrazado por culpa del software

16 ¿System Engineering?  Diseñar, implementar y entregar un sistema que contenga Hardware, Software ( sistema operativo y aplicaciones ) y los usuarios que lo utilicen.

17 Propiedades Emergentes  Son las propiedades que adquiere el sistema como un todo y no por las propiedades individuales de los componentes  Son la consecuencia de la relaciones de los componentes del sistema.  Sólo pueden ser medidas y evaluadas una vez el sistema esté todo integrado

18 Ej. Propiedades Emergentes  El peso total del sistema  La confiabilidad del sistema – depende de la confiabilidad de sus componentes  El uso – que depende del hardware y software, pero también de los usuarios

19 Confiabilidad de un Sistema  Por el hecho de que los sub-sistemas son inter-dependientes, un error puede propagarse a lo largo del sistema  Frecuentemente, las fallas en los sistemas ocurren por inter-relaciones no vistas entre los componentes  Es sumamente difícil ver todas las inter- relaciones de los componentes del sistema  Las medidas de confiabilidad del sistema puede dar una idea falsa del mismo

20 Influencias en la confiabilidad  Confiabilidad en el Hardware – Cúal es la probabilidad de que haya fallas en el HW y cuánto tiempo tomará arreglarlo  Confiabilidad en el Software – Cúan cierto es que un componente de software producirá el output incorrecto. SW se distingue del HW en que el SW no se gasta  Confiabilidad en el Operador – Cúal es la probabilidad de que el operador cometa errores utilizando el sistema

21 Confiabilidad en las Relaciones  Errores en el HW pueden distorcionar señales introduciendo errores  Errores en el SW puede generar alarmas que pueden estresar al operador y causar errores  El ambiente en donde se instala el sistema puede introducir errores

22 Propiedades Olvidadas  Safety - Cuan seguro es un sistema  Seguridad - El sistema debe ser utilizado por personal autorizado solamente  Manejo de Memoria ( free olvidados )  Manejo de Archivos ( close olvidados )

23 Los sistemas y su ambiente  Los sistemas no son independientes, estos existen, en medio de un ambiente  Quizás la función de un sistema X pueda ser cambiar su ambiente.  El ambiente afecta el funcionamiento de un sistema: humedad, salitre, frío, calor, la corriente  El ambiente físico y organizativo puede ser importante

24 Factores Humanos y Organizatorios  Cambios en los procesos – Necesitará el sistema cambiar el ambiente para poder funcionar  Cambios de Trabajos – El sistema podrá funcionar con el personal de mantenimiento – El personal de mantenimiento tienen las destrezas necesarias  Cambios en la Organización – Sobrevivirá el sistema los cambios políticos de la organización

25 Modelaje de la arquitectura del sistema  Este modelo presenta una vista abstracta de los subsistemas que componen el sistema  Puede incluir información importante del flujo entre los sub-sistemas  Usualmente se prensenta en forma de bloques  Puede identificar diferentes tipos de componentes funcionales

26 Tipos de componentes en un sistema de alarma  Sensor - de movimiento, de las puertas, de impacto, de vibración  Actor – El que toma la acción, por ejemplo Sirenas, e-mails, etc.  Comunicación - llamar por teléfono, micro-ondas y hasta las líneas eléctricas  Coordinación - entre sensores y otros componentes  Interfase - sintetizador de voz