Professional Documents
Culture Documents
Clase 1:
Introducción a la Ingeniería de
Software
Hugo R. Cordero S.
Clase 1
Objetivos
2
Concepto de Software
IEEE std. 610 define el software como “programas,
El producto Software
El software se desarrolla, no se fabrica en el sentido clásico.
Fundamentos de programación
Se introdujo el concepto de la modularidad y encapsulación.
Verificación de programas
Metodología
Colección de métodos de solución de problemas organizados
bajo una filosofía común y gobernados por un conjunto de
principios
Método
Forma de hacer las cosas. Los métodos de la ingeniería del
software indican “cómo” construir técnicamente el software”.
Técnica
Un conjunto de procedimientos precisamente descritos para
lograr una tarea estándar
Herramienta
Instrumentos o ayudas tangibles en la realización de una tarea.
Definiciones
11
Actividad
Es un proceso que tiene un lugar en el tiempo y en el espacio, y
en el cual un agente actúa con unos objetivos determinados
Artefacto
Es algo tangible creado por un propósito práctico
Especificación
Es un descripción detallada y precisa de algo existente (o que
existirá) o de una cierta situación, presente o futura
Ciclo de vida
De un producto o proyecto software es la evolución del mismo
desde su momento de concepción hasta el momento en que deja
de usarse, y puede describirse en función de las actividades que
realizan dentro de él
¿Qué es la Ingeniería de Software?
12
Bohem, 1976:
”Ingeniería del Software es la aplicación practica del
conocimiento científico en el diseño y construcción de
programas de computadora y la documentación necesaria
requerida para desarrollar, operar (funcionar) y
mantenerlos.”
¿Qué es la Ingeniería de Software?
15
Mills, 1980:
”La Ingeniería de Software tiene como uno de sus
principales objetivos la producción de programas que
cumplan las especificaciones, y que se demuestren
correctos, producidos en el plazo y costo adecuado.”
¿Qué es la Ingeniería de Software?
16
IEEE 1993:
”La Ingeniería de Software es la aplicación de un enfoque
sistemático, disciplinado y cuantificable hacia el
desarrollo, operación y mantenimiento del software; es
decir, la aplicación de Ingeniería de Software.”
¿Qué es la Ingeniería de Software?
17
Ian Sommerville
“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.”
¿Qué es la Ingeniería de Software?
18
Disciplina de Ingeniería
Los ingenieros de software usan las herramientas, métodos y
teorías para solucionar los problemas que aparecen
Incluso teniendo en cuenta restricciones económicas y de
organización
Producción de software
Planificación de proyectos
Administración de proyectos de software
Procesos técnicos de desarrollo de software
Dirección de proyectos
Ingeniería de Software en nuestros
19
días
Económicamente
En los EEUU, el software contribuyó a 1/4 de todo el incremento
del PIB durante los 90's y 1/6 de todo el crecimiento de
productividad durante los últimos años de la década
Socialmente
El software mejora servicios en la comunidad: Bomberos, Salud,
Municipalidades...Transportes, Tiendas, cajeros automáticos,
almacenes y muchos mas que dependen del Software hoy en día.
La Ingeniería del Software cambia la cultura del país debido al
arraigo de la computadora entre la sociedad.
De Ejemplos
Metas de la Ingeniería de Software
20
Otras metas:
Mejorar la calidad del software
Aumentar la productividad
Mantenibilidad
El software debe escribirse de tal forma que pueda evolucionar
para cumplir las necesidades de cambio de los clientes. Este es
un atributo crítico debido a que el cambio en el software es una
consecuencia inevitable de un cambio en el entorno de negocios.
Confiabilidad
La confiabilidad del software tiene un gran número de
características, incluyendo la fiabilidad, protección y seguridad.
El software confiable no debe causar daños físicos
o económicos en el caso de una falla en el sistema
Los atributos de un buen Software
26
Eficiencia
El software no debe hacer que se malgasten los recursos del
sistema, como la memoria y los ciclos de procesamiento. Por lo
tanto la eficiencia incluye tiempos de respuesta y de
procesamiento, utilización de la memoria, etc.
Usabilidad
El software debe ser fácil de utilizar, sin esfuerzo adicional, por
el usuario para quien está diseñado. Esto significa que debe
tener una interfaz de usuario apropiada y una documentación
adecuada.
Los retos de la Ingeniería de
27
Software
El reto de la heterogeneidad
Desarrollar técnicas para construir software confiable que sea lo
suficientemente flexible para adecuarse a esta heterogeneidad.
El reto de la entrega
Reducir los tiempos de entrega para sistemas grandes y
complejos sin comprometer la calidad del sistema.
El reto de la confianza
Desarrollar técnicas que demuestren que los usuarios pueden
confiar en el software.
El Ingeniero de Software
28
Reducción de riesgos