Академический Документы
Профессиональный Документы
Культура Документы
Objetivos
Definir la Ingeniera de Software y explicar su importancia. Discutir los conceptos de producto de software y proceso de software. Explicar la importancia de la visibilidad delos procesos. Introducir la nocin de responsabilidad profesional.
Tpicos
Productos de Software. El proceso de Software. El modelo de Espiral de Boehm. La visibilidad de los procesos. Responsabilidad profesional.
Ingeniera de Software
Las economas de los pases desarrollados dependen en gran parte del software. Mas y ms sistemas son actualmente controlados por software. La Ingeniera de Software concierne a teoras, mtodos y herramientas para el desarrollo profesional de software. El gasto en La Ingeniera de Software, representa un alto porcentaje del PIB de los pases desarrollados.
Que es la Ingeniera de Software La Ingeniera de Software es una diciplina de la Ingeniera que concierne a todos los aspectos de la produccin de software Los Ingenieros de Software adoptan un enfoque sistematico para llevar a cabo su trabajo y utilizan las herramientas y tecnicas necesarias para resolver el problema planteado, de acuerdo a las restricciones de desarrollo y recursos disponibles.
La computacion concierne a la teoria y fundamentos de cualquier sistema de computo, sea de hardware o de software. La Ingenieria de software concierne solo al desarollo de sisetmas o productos de software La Ingeniria de Sofware todavia esta lejos de ser una ciencia como los son la Quimica, la Ingenieria Civil o la Electronica.
Ingenieria de Sistemas e Ingenieria 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.
Que es el Software ? Programas de cmputo y su documentacion asociada Sistemas o Productos de software grandes y complejos. Que contiene el software. Que tipos de software hay ? Cual es el costo del software. Como se desarrolla el software ? Como saber si un software tiene calidad.
Productos de Software
Productos genricos.
Productos que son producidos por una organizacin para ser vendidos al mercado. 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.
Debe ser posible que el software evolucione y que siga cumpliendo con sus especificaciones. El software no debe causar danos fsicos o econmicos en el caso de fallos. El software no debe desperdiciar los recursos del sistema. El software debe contar con una interfaz de usuario adecuada y su documentacin.
Confiabilidad.
Eficiencia.
Utilizacin adecuada.
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.
Por su funcion:
Programas o Sistemas de Usuario Interfaces Hombre-Maquina. Herramientas de Software. Librerias. Sistemas de uso generico: Compiladores, S.Os, Procesadores de Texto, etc. Bases de Datos. Sistemas basados en Web.
El Proceso de Software
Conjunto estructurado de actividades requeridas para desarrollar un sistema de software.
Especificacin- que debe hacer el software y cuales son sus especificaciones de desarrollo. Desarrollo produccion del sistema de software. Validacin verificar que el software hace lo que el cliente pide. Evolucin cambiar/adaptar el software a las demandas.
Las actividades varan dependiendo de la organizacin y del tipo de sistema a desarrollarse. Debe estar explcitamente modelado si va a ser bien administrado.
Se encuentra el proceso bien definido y es entendible ?. El proceso es visible al exterior ?. Puede el proceso ser soportado por herramientas CASE ?. El proceso es aceptado por aquellos involucrados en el ?.
Visible
Soportable
Aceptable
Los errores del proceso son descubiertos antes de que se conviertan en errores del producto ?.
Robusto
Puede continuar el proceso a pesar de problemas inesperados ?. Puede el proceso evolucionar para cumplir con los objetivos organizacionales ?. Que tan rpido puede producirse el sistema ?.
Mantenible
Rapidez
Transformacin Formal
Un
modelo sirve de prototipo para la construccin del sistema final. modelo matemtico del sistema se transforma formalmente en la implementacin. sistema es ensamblado a partir de componentes existentes.
Operacin y Mantenimient o
Desarrollo Evolutivo
Actividades Concurrentes
Versin Inicial
Especificacin
Desarrollo
Versiones Intermedias
Validacin
Versin Final
Desarrollo Evolutivo
Problemas
Poca visibilidad en el proceso Los sistemas estn pobremente especificados Se requieren habilidades especiales. Para sistemas interactivos pequeos o medianos. Para partes de sistemas grandes (p.ej. la interfaz de usuario). Para sistemas de corta vida.
Aplicabilidad
Prototipado
Prototipado exploratorio
El objetivo es trabajar con clientes hasta evolucionar a un sistema final, a partir de una especificacin inicial. Se debe comenzar con unas especificaciones bien entendidas. El objetivo es entender los requerimientos del sistema. Se puede comenzar con especificaciones poco entendidas.
Prototipado de throw-away.
Alto riesgo en sistemas nuevos debido a problemas en las especificaciones y en el diseo. Bajo riesgo para desarrollos bien comprendidos utilizando tecnologa conocida. Bajo riesgo para nuevas aplicaciones debido a que las especificaciones y el diseo se llevan a cabo paso a paso. Alto riesgo debido a falta de visibilidad Alto riesgo debido a la necesidad de tecnologa avanzada y habilidades del grupo desarrollador.
Prototipado.
Evolutivo.
Manejo de Riesgos
La tarea principal del administrador consiste en minimizar riesgos. El riesgo inherente en una actividad se mide en base a la incertidumbre que presenta el resultado de esa actividad. Las actividades con alto riesgo causan sobre-costes en cuanto a planeacin y costos El riesgo es proporcional al monto de la calidad de la informacin disponible. Cuanto menos informacin, mayor el riesgo.
REVISIN
Prototipo Prototipo 3 2
Prototipo Operacional
Requeri Diseo Diseo mientos de del Detallado SW Plan de Validacin de Producto Codificacin Desarrollo Requerimientos Prueba de Unidades Plan de Integracin Diseo Prueba de y Prueba V &V Prueba de Integracin Desarrolla y verifica Aceptacin el siguiente nivel Servicio del producto
Los riesgos clave se identifican y analizan, y la informacin sirve para minimizar los riesgos.
Se elige un modelo apropiado para la siguiente fase del desarrollo. Se revisa el proyecto y se trazan planes para la siguiente ronda del espiral.
Desarrollo y Validacin.
Planeacin.
UML
Diagramas
Modelo: abstraccin semnticamente cerrada de un sistema. Vista: proyeccin de la organizacin y estructura de un modelo del sistema, centrada en un aspecto del sistema. Diagrama: representacin grfica de un conjunto de elementos, normalmente mostrado como un grafo conexo de nodos y arcos.
Diagramas
Diagramas estructurales: representan partes estticas de un sistema, tales como clases, objetos, componentes, etc. Diagramas de comportamiento: especifican las partes dinmicas de un sistema tales como estados del sistema, flujo de control de actividades, secuencia de mensajes, etc.
Diagramas estructurales
Diagramas de clases: conjunto de clases, interfaces y colaboraciones, y las relaciones entre ellas. Diagramas de objetos: instantneas de las instancias de los elementos encontrados en los diagramas de clases. Diagramas de componentes: conjunto de componentes y sus relaciones. Diagramas de despliegue: conjunto de nodos y sus relaciones.
Diagramas de comportamiento
Diagramas de casos de uso: conjunto de casos de uso y actores y sus relaciones. Son importantes para organizar y modelar el sistema. Diagramas de interaccin:
Diagramas de secuencia: conjunto de objetos y los mensajes enviados y recibidos por ellos. Resalta ordenacin temporal de los mensajes. Diagramas de colaboracin: Resalta organizacin estructural de objetos que envan y reciben mensajes.
Diagramas de comportamiento
Diagramas de estados: representan mquinas de estados, construida por estados, transiciones, eventos y actividades.tiles para modelar sistemas reactivos. Diagramas de actividades: muestran el flujo de actividades de un sistema. Importantes para modelar la funcin de un sistema, as como para resaltar el flujo de control entre objetos.
Vistas
Vista de implementacin
Vista de despliegue
Vistas
Vista de casos de uso: comportamiento del sistema tal y como es percibido por usuarios, analistas y encargados de pruebas. Vista de diseo: comprende el vocabulario del problema y su solucin, y soporta los requisitos funcionales del sistema (servicios que el sistema debera proporcionar a los usuarios finales).
Vistas
Vista de procesos: hilos y procesos que forman mecanismos de sincronizacin y concurrencia del sistema. Se hace mayor nfasis en las clases activas. Vista de implementacin: componentes y archivos que se utilizan para ensamblar y hacer disponible el sistema fsico. Vista de despliegue: nodos que forman la topologa hardware sobre la que se ejecuta el sistema. Distribucin, entrega e instalacin de las partes.
Vista de procesos
Vista de implementacin Vista de despliegue
Visibilidad de Procesos
Los sistemas de software son intangibles por lo que los administradores necesitan documentacin para identificar el progreso en el desarrollo. Esto puede causar problemas..
El tiempo planeado para entrega de resultados puede no coincidir con el tiempo necesario para completar una actividad. La necesidad de producir documentos restringe la iteracin entre procesos. .El tiempo para revisar y aprobar documentos es significativo.
Retos de la Ingeniera de Software Por qu no podemos desarrollar sistemas de software con tcnicas formales como lo hacen los Ingenieros en Electronica, los Ing. Qumicos o los Ingenieros Civiles. ?
Responsabilidad profesional
Los Ingenieros de software no solo deben considerar aspectos tcnicos. Deben tener una visin mas amplia, en lo tico, social y profesional. No existe estatutos para ninguno de estos aspectos.
Desarrollo de sistemas militares. Piratera. Que es mejor para la profesin de Ingeniero de Software.