Gestión de proyectos de software. El producto de software y su ciclo de vida
Enviado por Pablo Turmero
Objetivos Generales: Comprender correcta y eficientemente los conceptos y principios del espectro de técnicas de Ingeniería de Software que puedan ser aplicadas en proyectos de software. Desarrollar una cultura de ingeniería de software.
Objetivos Específicos: Aplicar correctamente los conceptos y principios relacionados a la Ingeniería de Software en la resolución de casos prácticos para la gestión de proyectos de software de calidad. Utilizar herramientas para el modelado y gestión de proyectos de software. Utilizar metodologías agiles en el desarrollo de software.
Objetivos Instruccionales: Definir la Ingeniería de Software y explicar su importancia. Discutir los conceptos de producto de software. Introducir la noción de responsabilidad profesional.
Ingeniería de Software… Las economías de los países desarrollados dependen en gran parte del software. Mas y más sistemas son actualmente controlados por software. La Ingeniería de Software concierne a teorías, métodos y herramientas para el desarrollo profesional de software. El gasto en La Ingeniería de Software, representa un alto porcentaje del PBI de los países desarrollados.
…Ingeniería de Software La Ingeniería de software es el establecimiento y uso de principios robustos de la ingeniería a fin de obtener económicamente software que sea fiable y que funcione eficientemente sobre maquinas reales.
…Ingeniería de Software ¿Cuál es el trabajo del ingeniero de software? Realizar software de calidad en el plazo y costo establecido. Planificar su trabajo Hacer su trabajo de acuerdo al plan Esforzarse en producir productos de calidad
Conceptos Básicos ¿Qué es la Ingeniería de Software ? ¿Cuál es la diferencia entre un programador y un Ingeniero de Software? ¿Cuál es la diferencia entre un Ingeniero de Software y un Ingeniero de Sistemas? ¿Cual es la diferencia entre la Ingeniería de Software y la Computación ? ¿Qué es el software ? ¿Qué es un proceso de software ? ¿Qué es un modelo de software? (Gp:) Introducción
¿Que es la Ingeniería de Software? La Ingeniería de Software es una disciplina de la Ingeniería que concierne a todos los aspectos de la producción de software. Los Ingenieros de Software adoptan un enfoque sistemático para llevar a cabo su trabajo y utilizan las herramientas y técnicas necesarias para resolver el problema planteado, de acuerdo a las restricciones de desarrollo y recursos disponibles. (Gp:) Introducción
Diferencia entre Ingeniería de Software y Computación La computación concierne a la teoría y fundamentos de cualquier sistema de cómputo, sea de hardware o de software. La Ingeniería de software concierne solo al desarrollo de sistemas o productos de software. La Ingeniería de Software todavía esta lejos de ser una ciencia como los son la Química, la Ingeniería Civil o la Electrónica. (Gp:) Introducción
Diferencia entre Ingeniería de Sistemas e Ingeniería de Software La Ingeniería de Sistemas concierne a todos los aspectos del desarrollo de sistemas basados en cómputo, que incluyen hardware, software y el proceso de Ingeniería. La Ingeniería de Software es solo parte de este proceso. (Gp:) Introducción
(Gp:) Metas de la Ingeniería de Software Mejorar la calidad de los procesos de producción de software Mejorar la calidad de los productos de software Aumentar la productividad y satisfacción profesional de los ingenieros de esta disciplina ¿Que se requiere?
(Gp:) Metas de la Ingeniería de Software Creación de empleo calificado Generación de exportaciones no tradicionales de alto valor agregado Facilitar el proceso de modernización de las economías nacionales ¿Que se puede esperar?
¿Que es el Software? Programas de cómputo y su documentación asociada Sistemas o Productos de software grandes y complejos. (Gp:) El producto software
Clasificación Productos genéricos. Productos que son producidos por una organización para ser vendidos al mercado. Productos hechos a medida. Sistemas que son desarrollados bajo pedido a un desarrollador específico. La mayor parte del gasto del software es en productos genéricos, pero hay más esfuerzo en el desarrollo de los sistemas hechos a medida. (Gp:) El producto software
Características de los Productos de Software Mantenibles. Debe ser posible que el software evolucione y que siga cumpliendo con sus especificaciones. Confiabilidad. El software no debe causar daños físicos o económicos en el caso de fallos. Eficiencia. El software no debe desperdiciar los recursos del sistema. Utilización adecuada. El software debe contar con una interfaz de usuario adecuada y su documentación. (Gp:) El producto software
Importancia de las características del producto La importancia relativa de las características depende en el tipo de producto y en el ambiente en el que será utilizado. En algunos casos, algunos atributos pueden dominar. En sistemas de seguridad críticos 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 característica. (Gp:) El producto software
¿Que contiene el software ? El software contiene: Líneas de código de algún lenguaje Instrucciones de computadora. Descripción de las estructuras de datos. Algoritmos. Procedimientos y funciones. Componentes de software. (Gp:) El producto software
¿Que tipos de software hay?… Por su estructura: Funcionales. Orientados a objetos. Orientados a listas. Orientados a componentes. Por su función: Programas o Sistemas de Usuario Interfaces Hombre-Maquina. Herramientas de Software. Librerías. Sistemas de uso genérico: Compiladores, S.O, Procesadores de Texto, etc. Bases de Datos. Sistemas basados en Web. (Gp:) El producto software
…¿Que tipos de software hay ? Por su plataforma de computo: Sistemas embebidos. Sistemas de computo distribuido. Sistemas de computo paralelo. Sistemas de tiempo real. Sistemas basados en Chips. (Gp:) El producto software
Costos del Software Los costos del software a menudo dominan al costo del sistema. El costo del software en un PC es a menudo mas caro que la PC. Cuesta mas mantener el software que desarrollarlo. Para sistemas con una larga vida, este costo se multiplica. La Ingeniería de Software concierne a un desarrollo efectivo en cuanto a costes del software. (Gp:) El producto software
Costes de Eficiencia. Costes Eficiencia (Gp:) El producto software
Percepciones del software El software se desarrolla, no se fabrica en un sentido clásico. El software no se “estropea”. Aunque la industria tiende a ensamblar componentes, la mayoría del software se construye a medida. (Gp:) El producto software
¿Que hace que un producto de software sea considerado de calidad? Si existe interés en desarrollar software de calidad, se debe tener presente los 6 principios de calidad de software (planteados por el padre de la calidad de los procesos de software), de Watts Humphrey, publicados originalmente en CrossTalk. (Gp:) El producto software
Generaciones (Gp:) Evolución del software
Mitos del software… De gestión. Tenemos ya un libro que esta lleno de estándares y procedimientos para construir software. ¿No le proporciona ya a mi gente todo lo que necesita saber? Mi gente dispone de las herramientas de desarrollo de software mas avanzadas, después de todo, les compramos las computadoras mas modernas. Si fallamos en la planificación, podemos añadir mas programadores y adelantar el tiempo perdido. (Gp:) Evolución del software
…Mitos del software… Del Cliente. Una declaración general de los objetivos es suficiente para comenzar a escribir los programas, podemos dar los detalles mas adelante Los requisitos del proyecto cambian continuamente, pero los cambios pueden acomodarse fácilmente, ya que el software es flexible. (Gp:) Evolución del software
De los desarrolladores. Una vez que escribimos el programa y hacemos que funcione, nuestro trabajo ha terminado. Hasta que no tengo el programa ejecutándose, realmente no tengo forma de comprobar su calidad. Lo único que se entrega al terminar el proyecto es el programa funcionando. (Gp:) Evolución del software …Mitos del software
Software de sistemas. Software de tiempo real. Software de gestión. Software de ingeniería y científico. Software empotrado. Software de computadoras personales. (Gp:) Aplicaciones del software
Los procesos que se utilizan en cualquier fábrica son básicos e imprescindibles para el correcto funcionamiento de la fábrica. El proceso más importante en una fábrica de software es el proceso de desarrollo de software. Por ello, se debe definir el proceso, basado en estándares adaptado a los proyectos y tipología de los clientes, donde se definen: La planificación de las fases del proyecto: Inicio, Elaboración, Construcción y Transición. Los estándares de tiempos de ejecución y costes de desarrollo de cada fase. La planificación de los flujos de trabajo de desarrollo: Requisitos, Análisis, Diseño, Implementación y Pruebas. Los roles de desarrolladores asociados a cada tarea. Las herramientas a utilizar en cada flujo de trabajo y actividad. Las plantillas correspondientes a los artefactos a generar. Las métricas de diferentes parámetros del proyecto. Una completa documentación de todo el proceso. (Gp:) Visión industrial del software
Es el proceso que se sigue desde el planteamiento de un problema hasta que se tiene una solución instalada en la computadora, y en funcionamiento por los usuarios finales mientras sea de utilidad. (Gp:) Ciclo de vida de una aplicación
Mantener y tratar con sistemas legados. Tratar con una mayor diversidad de sistemas con mayores demandas de computo, y menores tiempos de entrega Sistemas Legados Sistemas antiguos que deben ser mantenidos y mejorados. Hetereogenidad Sistemas que incluyen una mezcla de software y hardware. Entrega Existe una presión incremental por una entrega a tiempo de los productos de software Formalidad. Existe una gran demanda de que exista formalidad en el proceso de desarrollo de software (Gp:) Retos de la Ingeniería de Software
¿Porque no podemos desarrollar sistemas de software con técnicas formales como lo hacen los Ingenieros en Electrónica, los Ingenieros Químicos o los Ingenieros Civiles? (Gp:) Retos de la Ingeniería de Software
Los Ingenieros de software no solo deben considerar aspectos técnicos. Deben tener una visión mas amplia, en lo ético, social y profesional. No existe estatutos para ninguno de estos aspectos. Desarrollo de sistemas militares. Piratería. Que es mejor para la profesión de Ingeniero de Software. (Gp:) Responsabilidad profesional
Aspectos Éticos Confidencialidad. Competencia. Derechos de propiedad intelectual. Mal uso de la computadora. (Gp:) Responsabilidad profesional
La Ingeniería de software concierne a las teorías, métodos y herramientas para el desarrollo, administración y evolución de productos de software. Los productos de software consisten de programas y documentación. Los atributos de los productos son, mantenabilidad, dependabilidad, eficiencia y usabilidad. El proceso de software consiste en aquellas actividades involucradas en el desarrollo de software. (Gp:) Resumen
La visibilidad del proceso involucra la creación de documentos o resultados de las actividades. Los Ingenieros de software deben tener responsabilidades éticas, sociales y profesionales. Las personas obtienen tanta satisfacción del proceso que del producto final. (Gp:) Resumen
“La Ingeniería de Software es una disciplina que integra procesos, métodos y herramientas para el desarrollo de software de computadora” (Gp:) Resumen