Title: Introduccion
1Ingeniería de software
Semana 1
Tema
El producto de software y su ciclo de vida
2Objetivos 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.
3Objetivos 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.
4Objetivos 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.
5(No Transcript)
6(No Transcript)
7Ingenierí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.
8Ingenierí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.
9Ingenierí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
10Conceptos 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?
11Que 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.
12Diferencia 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.
13Diferencia 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.
14Que se requiere?
- 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
15Que se puede esperar?
- 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
16Que es el Software?
- Programas de cómputo y su documentación asociada
- Sistemas o Productos de software grandes y
complejos.
17Clasificació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.
18Caracterí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.
19Importancia 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.
20Que 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.
21Que 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.
22Que 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.
23Costos 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.
24Costes de Eficiencia.
Costes
Eficiencia
25Percepciones 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.
26Que 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.
27Generaciones
28Mitos 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.
29...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.
30...Mitos 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.
31- Software de sistemas.
- Software de tiempo real.
- Software de gestión.
- Software de ingeniería y científico.
- Software empotrado.
- Software de computadoras personales.
32- 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.
33- 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.
34- 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
35- 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?
36- 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.
37Aspectos Éticos
- Confidencialidad.
- Competencia.
- Derechos de propiedad intelectual.
- Mal uso de la computadora.
38- 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.
39- 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.
40La Ingeniería de Software es una disciplina que
integra procesos, métodos y herramientas para el
desarrollo de software de computadora
41Ingeniería de software
Semana 1
Tema
El producto de software y su ciclo de vida