Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Ingeniería de Software
INTRODUCCION A LA
INGENIERIA DE SOFTWARE
Agenda
1.Que es software?
2.Evolución histórica del software
3.Tipos de producto software
4.Definición de Ingeniería de Software.
5.Crisis del software
6.Malas prácticas de desarrollo y mantenim.
7.Principios de la ISW
8.Atributos de Calidad del SW
9.Ciclo de vida del software
10.Industria del Software en el Perú
1. Qué es Software (SW) ?
8
3. Tipos de productos software (i)
• Un producto software es un sistema software
que se acompaña de la documentación
necesaria para su instalación y uso
• Tipos de mercados
Productos genéricos
Sistemas autónomos producidos por una
organización para su venta en el mercado abierto
a cualquier cliente que pueda adquirirlo
El desarrollador controla la especificación
Productos personalizados
Sistemas encargados por un cliente particular
Desarrollos a medida
Las especificaciones las determina el cliente
3. Tipos de productos software (ii)
Áreas de aplicación [Pressman, 2010] (i)
• Software de sistemas
Software para dar servicio a otros programas:
compiladores, editores...
Fuerte interacción con el hardware
Uso intensivo por parte de usuarios múltiples.
Recursos compartidos
Ejm: componentes de sistemas operativos, software de redes,
procesadores de telecomunicaciones
• Software aplicación
Programas aislados que resuelven una necesidad específica
de negocios. Las aplicaciones en esta área procesan datos
comerciales o técnicos en una forma que facilita las
operaciones de negocios o la toma de decisiones
administrativas o técnicas. Además se usa para controlar
funciones de negocios en tiempo real (por ejemplo
procesamiento de transacciones en punto de venta, control de
procesos de manufactura en tiempo real etc)
3. Tipos de productos software (iii)
Áreas de aplicación [Pressman, 2010] (ii)
• Software de ingeniería y científico
Algoritmos de tratamiento numérico: simulación,
estadística, CAD...
Diseño de algoritmos y estructuras de datos
Cálculo intensivo
Las aplicaciones van de la astronomía a la vulcanología,
del análisis de tensiones en automóviles a la dinámica
orbital del transbordador espacial y de la biología
molecular a la manufactura automatizada.
• Software incrustado
Reside dentro de un producto o sistema y se usa para
implementar y controlar características y funciones para el
usuario final y para el sistema en si. (por ejemplo control del
tablero de un horno microondas, funciones digitales en un
automóvil)
3. Tipos de productos software (iv)
Áreas de aplicación [Pressman, 2010] (iii)
• Software de línea de productos
Es diseñado para proporcionar una capacidad específica
para uso de muchos consumidores diferentes . El software
de línea de productos se centra en algún mercado limitado
y particular (por ejemplo, control de inventario de productos) o
se dirige a mercados masivos de consumidores
(procesamiento de textos, hojas de cálculo,
entretenimiento, administración de base de datos y
aplicaciones para finanzas personales o de negocios)
• Aplicaciones Web
Llamadas “webapps”, agrupa una amplia gama de
aplicaciones. En su forma mas sencilla, las webapps son
poco mas que un conjunto de archivos hipertexto
vinculados que presentan información con uso de texto y
gráficas limitadas. Sin embargo desde que surgió las web
2.0, las webapps están evolucionando integrándose con
base de datos corporativas y aplicaciones de negocio.
3. Tipos de productos software (v)
Áreas de aplicación [Pressman, 2010] (iv)
• Software de Inteligencia Artificial
Hace uso de algoritmos no numéricos para resolver
problemas complejos que no son fáciles de tratar
computacionalmente o con análisis directo.
Las aplicaciones en esta área incluyen robótica,
sistemas expertos, reconocimiento de patrones (imagen
y voz), redes neuronales artificiales, demostración de
teoremas y juegos.
4. Qué es Ingeniería de Software?
• “La Ingeniería del Software es la disciplina de
ingeniería encargada de todos los aspectos
relacionados con la producción de software
desde sus etapas más tempranas de la
especificación del sistema hasta el
mantenimiento del sistema tras su puesta en
marcha.” - Ingeniería del Software – Ian
Sommerville
4. ¿Qué es Ingeniería del Software?
15
5. Ingeniería de Software
16
5. Ingeniería de Software
Resolución de problemas
Utilizamos: métodos, herramientas, procedimientos y
paradigmas.
Métodos: técnica formal para producir un resultado
Herramientas: instrumento o sistema automatizado para
realizar una tarea de mejor manera
Procedimientos: combinación de herramientas y técnicas
que producen un resultado
Paradigmas: enfoque particular o filosofía
La finalidad es generar soluciones efectivas
17
¿Qué es Ingeniería del Software?
18
5. Ingeniería de Software
Participantes-Roles
19
5. Ingeniería de Software
Participantes-Roles
20
5. Ingeniería de Software
Participantes-Roles
21
5. Ingeniería de Software
Participantes – Miembros del equipo
22
5. Ingeniería de Software
Participantes – Miembros del equipo
• Una vez terminado el trabajo, se entrega al cliente
• Compara el producto obtenido contra el conjunto inicial de
requerimientos especificados al comienzo.
23
¿Por qué surgió la Ingeniería SW
24
5. Crisis del Software
25
6. Malas prácticas de desarrollo y mantenimiento
26
6. Malas prácticas de desarrollo y mantenimiento
27
6. Malas prácticas de desarrollo y mantenimiento
• Síntomas:
• Baja calidad del software desarrollado. Alto
grado de desconfianza e insatisfacción en el
cliente.
• Empresas inmaduras -> En fase artesanal.
Se exceden en los plazos y presupuestos previstos.
90% de los proyectos no consiguen los objetivos
propuestos.
40% fracasan completamente.
29% nunca se entregan.
28
¿Qué propone la IS? – Ser ingenieros
• Artesano Ingeniero
• Para ello se debe:
Aplicar métodos, técnicas y herramientas de
desarrollo. Adoptar estándares de
desarrollo.
Utilizar la experiencia acumulada.
Documentación.
29
¿Qué propone la IS? – Ser ingenieros
30
Ingeniería de Software
Construcción de una casa
Casa para grupo familiar
Contratan empresa de construcciones
Reunión para explicarlo que desean
Constructores dibujan planos
Muestran modelos que representen la casa
Se incorporan cambios
Se inspecciona el terreno
Se hacen pruebas: electricista, gasista, plomeros
Los carpinteros ultiman detalles
Los propietarios se instalan
Si hay reclamos se hacen de manera inmediata y
se arreglan los problemas que surjan
31
Ingeniería de Software
Construcción de una casa
• Documentación
Planos: de planta, eléctricos, de gas, cañerías,
etc.
Diseño de carpintería: madera y metal
• Modificaciones
No se consiguen más los cerámicos
Incorporar ventanas en sectores oscuros
Restricciones financieras
32
Ingeniería de Software
Construcción de una casa. Resumen
33
Ingeniería de Software
Construcción de un sistema
• Proceso análogo.
• Clientes: presentan sus deseos y necesidades
• Equipo: desarrolla planos y modelos
• Se presentan: pantallas, descripciones de uso
• Se discuten detalles de apariencia y
funcionalidad
• Diseño global aprobado–> se discuten detalles
de implementación.
• Código(programas) escrito-> comienzan
pruebas unitarias
34
Ingeniería de Software
Construcción de un sistema
35
7. Algunos Principios de la Ing. del SW
36
7. Algunos Principios de la Ing. del SW
37
8. Atributos de Calidad del software
• Mantenible.
Construido y documentado para permitir cambios.
• Fiable.
Debe hacer lo que se espera de él, no debe fallar
más a menudo de lo que se acordó en la
especificación.
• Eficiente.
No debe hacer uso innecesario de recursos.
• Usable.
Interfaz de usuario adecuada
38
9. ¿Qué es el Ciclo de Vida del SW?
• ¿Qué es un proceso?
Un proceso es un conjunto de actividades que
se suceden siguiendo una ordenación
temporal determinada
17
47
Las limitaciones del sector de TI