Gestión de proyectos de software. El producto de software y su ciclo de vida
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