Está en la página 1de 11

Ingeniería del Software I (4º I.I.

MODULO I:
Introducción al Desarrollo de
Sistemas Software

Tema 1: Introducción a la Ingeniería del Software

Ingeniería del Software I (4º I.I.) M1::Tema 1: Introducción a la Ingeniería del Software 1

Objetivos

z Introducir la Ingeniería del Software y explicar su


importancia.

z Dar respuesta a las preguntas clave sobre Ingeniería del


Software y conceptos relacionados.

z Introducir el concepto de ciclo de vida del desarrollo de


software y los diferentes modelos de procesos software.

Ingeniería del Software I (4º I.I.) M1::Tema 1: Introducción a la Ingeniería del Software 2

1
Ingeniería del Software I (4º I.I.)

Ingeniería del Software

z La Ingeniería del Software tiene que ver con las teorías, métodos y
herramientas para el desarrollo profesional de software.

z La Ingeniería del Software es el resultado de llevar la tradicional


disciplina de las ingenierías al mundo de la construcción de sistemas
software.

z Definición: Ingeniería del Software es el estudio de los principios y


metodologías para el desarrollo y mantenimiento de sistemas
software.

z "La aplicación práctica del conocimiento científico y matemático en el


diseño y construcción de programas para computadoras y la
documentación asociada requerida para desarrollarlos, operarlos y
mantenerlos". (BOEHM)
Ingeniería del Software I (4º I.I.) M1::Tema 1: Introducción a la Ingeniería del Software 3

Costes del Software

z Los costes del Software a menudo dominan los costes del


sistema global. Los costes del software en un PC suelen ser
mucho mayores que los costes del hardware.

z El software cuesta más de mantener que de desarrollar. Para


sistemas de larga duración, los costes de mantenimiento
pueden superar en dos o tres veces los costes de desarrollo
(con el HW no pasa esto).

z La Ingeniería del Software se centra sobre todo en el


desarrollo y mantenimiento de software con un coste efectivo.

Ingeniería del Software I (4º I.I.) M1::Tema 1: Introducción a la Ingeniería del Software 4

2
Ingeniería del Software I (4º I.I.)

Cuestiones Clave acerca de la Ingeniería del


Software (I)

z Qué es el Software?

z Qué es la Ingeniería del Software?

z Cuál es la diferencia entre Ingeniería del Software y


Ciencias de la Computación (Informática)?

z Cual es la diferencia entre Ingeniería del Software e


Ingeniería de Sistemas?

z Qué es un proceso software?

z Qué es un modelo de proceso software?

Ingeniería del Software I (4º I.I.) M1::Tema 1: Introducción a la Ingeniería del Software 5

Cuestiones Clave acerca de la Ingeniería del


Software (II)

z Cuáles son los costes de la Ingeniería del Software?

z Qué son los métodos de Ingeniería del Software?

z Qué es CASE (Computer-Aided Software Engineering)

z Cuáles son los atributos de un buen software?

z Cuáles son los nuevos retos a los que se enfrenta la


IS?

Ingeniería del Software I (4º I.I.) M1::Tema 1: Introducción a la Ingeniería del Software 6

3
Ingeniería del Software I (4º I.I.)

Qué es el software?

z Programas informáticos y la documentación


asociada.

z Productos software que pueden ser desarrollados


para un cliente particular o para el mercado general.

z Los productos software pueden ser:


• Genéricos - Desarrollados para ser vendidos a un amplio rango
de clientes diferentes.
• Particulares (Por encargo) - Desarrollados para un cliente
individual de acuerdo a sus necesidades.

Ingeniería del Software I (4º I.I.) M1::Tema 1: Introducción a la Ingeniería del Software 7

Qué es la Ingeniéria del Software?

z ¿Qué es ingeniería?: Conjunto de conocimientos y técnicas cuya


aplicación permite la utilización racional de los materiales y recursos
naturales, mediante invenciones, construcción u otras realizaciones
provechosas para el hombre.

z La ingeniería del software es una ingeniería que cubre todos los


aspectos relativos a la producción de software.

z IS: Disciplina o área de la Informática o Ciencias de la Computación, que


ofrece métodos y técnicas para desarrollar y mantener software de
calidad que resuelven problemas de todo tipo.

z Los ingenieros de software deben adoptar una aproximación sistemática


y organizada en su trabajo y utilizar las herramientas y técnicas
apropiadas dependiendo del problema a resolver, las restricciones de
desarrollo y los recursos disponibles.

Ingeniería del Software I (4º I.I.) M1::Tema 1: Introducción a la Ingeniería del Software 8

4
Ingeniería del Software I (4º I.I.)

Cuál es la diferencia entre Ingeniería del


Software y Ciencias de la Computación
(Informática)?

z La Ciencia de la Computación se refiere a los


fundamentos y teorías de la informática; La
Ingeniería del Software se refiere a los aspectos
prácticos del desarrollo y entrega de software.

Ingeniería del Software I (4º I.I.) M1::Tema 1: Introducción a la Ingeniería del Software 9

Cuál es la diferencia entre Ingeniería del


Software e Ingeniería de Sistemas?
z “Systems Engineering (SE) is an interdisciplinary field of engineering,
that focuses on the development and organization of complex artificial
systems. Systems Engineering integrates other disciplines and specialty
groups into a team effort, forming a structured development process that
proceeds from concept to production to operation and disposal. Systems
Engineering considers both the business and the technical needs of all
customers, with the goal of providing a quality product that meets the
user needs”.
International Council on Systems Engineering (INCOSE)

z La Ingeniería de Sistemas se refiere a todos los aspectos del desarrollo


de sistemas basados en computadora que incluyen hardware, software
e ingeniería de procesos. La Ingeniería del Software es parte de este
proceso.

z Los Ingenieros de Sistemas están involucrados en la especificación,


diseño de la arquitectura, integración y entrega del sistema.

Ingeniería del Software I (4º I.I.) M1::Tema 1: Introducción a la Ingeniería del Software 10

5
Ingeniería del Software I (4º I.I.)

Qué es un proceso software?

z Un conjunto ordenado de actividades cuyo objetivo es


el desarrollo o evolución de software.

z Actividades Genéricas en todos los procesos


software son:
• Especificación - Lo que el sistema debe hacer y sus restricciones
de desarrollo.
• Desarrollo - Producción del sistema software.
• Validación - Comprobar que el software entregado es lo que el
cliente quiere.
• Evolución - Cambiar el software en función de las demandas
cambiantes mantenimiento correctivo, adaptativo, preventivo y
evolutivo.

Ingeniería del Software I (4º I.I.) M1::Tema 1: Introducción a la Ingeniería del Software 11

Qué es un modelo de proceso software?

z Una representación simplificada de un proceso software,


presentado desde una perspectiva concreta.

z Ejemplos de perspectivas del proceso son:


• Perspectiva de Flujo de Trabajo (Workflow) - Secuencia de Actividades
• Perspectiva de Flujo de Datos (Data-flow) - Flujo de Información
• Perspectiva Rol/Acción - Quién hace Qué

z Modelos de proceso genéricos:


• Modelo en Cascada (Waterfall)
• Modelo en espiral
• Desarrollo Evolutivo
• Transformaciones Formales
• Integración a partir de componentes reutilizables.
• ...

Ingeniería del Software I (4º I.I.) M1::Tema 1: Introducción a la Ingeniería del Software 12

6
Ingeniería del Software I (4º I.I.)

Cuáles son los costes en Ingeniería del


software?

z Aproximadamente el 60% de los costes son costes


de desarrollo y el 40% son costes de testeo.

z Para software a medida, los costes de mantenimiento


(evolutivos) a menudo sobrepasan los costes de
desarrollo.

z Los costes varían dependiendo del tipo de sistema a


desarrollar y de los requisitos particulares del sistema
tales como rendimiento, fiabilidad, etc.

z La distribución de los costes también depende del


modelo de desarrollo que se utilice.
Ingeniería del Software I (4º I.I.) M1::Tema 1: Introducción a la Ingeniería del Software 13

Qué son los métodos de Ingeniería del


Software?

z Enfoque estructurado y sistemático para el desarrollo de software cuyo


propósito es facilitar la producción de software de alta calidad de una
forma costeable (Ej. Análisis Estructurado (DeMarco), JDS (Jackson), Booch (G.
Booch), OMT (Rumbaugh), ….

z Incluyen modelos (gráficos) del sistema, notaciones, reglas, consejos de


diseño y guías en el proceso.

z Descripciones de Modelos:
– Descripciones de los modelos gráficos que se deben crear.

z Reglas:
– Restricciones que se deben aplicar a los modelos del sistema.

z Recomendaciones:
– Consejos en la práctica del buen diseño.

z Guía en el proceso:
– Qué secuencia de actividades seguir.

Ingeniería del Software I (4º I.I.) M1::Tema 1: Introducción a la Ingeniería del Software 14

7
Ingeniería del Software I (4º I.I.)

Qué es CASE (Computer-Aided Software


Engineering)?

z Sistemas software que proporcionan un soporte


automatizado en las actividades del proceso de
desarrollo de software. Normalmente los sistemas
CASE se utilizan para soportar un método de IS
concreto.

z Upper-CASE
– Herramientas que soportan las actividades iniciales del proceso,
como requisitos, análisis y diseño.

z Lower-CASE
– Herramientas que soportan las actividades finales del proceso tales
como programación, depuración y testeo.

Ingeniería del Software I (4º I.I.) M1::Tema 1: Introducción a la Ingeniería del Software 15

Atributos de Calidad del Software (Bell 2000)

z Fiable z Portable
• Capacidad de ofrecer los mismos • Capaz de integrarse en entornos
resultados bajo las mismas distintos con el mismo esfuerzo.
condiciones. z Adaptable
z Eficiente (extensibilidad)
• Utilización óptima de los recursos • Modificar alguna función sin que
de la máquina. afecte a sus actividades.

z Robusto z Inteligible
• Diseño claro, bien estructurado y
• No poseer un comportamiento
documentado.
catastrófico ante situaciones
excepcionales z No Erróneo
(Tolerante a fallos).
• No exista diferencia entre los
valores reales y los calculados
z Correcto
• Se ajusta a las especificaciones z Reutilizable
dadas por el usuario. (reusabilidad)

Ingeniería del Software I (4º I.I.) M1::Tema 1: Introducción a la Ingeniería del Software 16

8
Ingeniería del Software I (4º I.I.)

Cuáles son los atributos de un buen


software? (Sommerville 2004)

z El software debe ofrecer al usuario la funcionalidad y el


rendimiento requerido y debe ser mantenible,fiable,
eficiente y usable.
z Mantenibilidad
– El software debe evolucionar para adaptarse a las necesidades
cambiantes.
z Fiabilidad
– El software debe ser fiable (no debe dar sorpresas).
z Eficiencia
– El software no debe malgastar o hacer un mal uso de los recursos
del sistema.
z Usabilidad
– El software debe ser facilmente usable por los usuarios para los
cuales ha sido diseñado.

Ingeniería del Software I (4º I.I.) M1::Tema 1: Introducción a la Ingeniería del Software 17

Cuáles son los grandes retos a los que se


enfrenta la Ingeniería del Software?

z Hacer frente a los sistemas heredados (legacy


systems), hacer frente a la creciente diversidad y
hacer frente a las demandas de entrega con tiempos
cada vez más reducidos.

z Sistemas Heredados (Legacy systems)


– Sistemas antiguos pero valiosos, deben ser mantenidos y
actualizados.
z Heterogeneidad
– Los sistemas son distribuidos e incluyen una mezcla de diferente
hardware y software. (interoperabilidad)
z Plazos de entrega
– Actualmente hay una creciente presión para que los sistemas
software sean entregados con rapidez.
Ingeniería del Software I (4º I.I.) M1::Tema 1: Introducción a la Ingeniería del Software 18

9
Ingeniería del Software I (4º I.I.)

Evolución del Desarrollo de Software


1960
• Lenguajes de alto nivel.
• Primeros métodos de concepción de sistemas (CORIG).
1970
• Programación estructurada.
• Primeros conceptos de la ingeniería del software.
• Intento de estandarización en el entorno de bases de datos (database
Task Group).
1975
• Modelo Entidad-Relación.
• Gran importancia a los datos.
• Diseño estructurado.

Ingeniería del Software I (4º I.I.) M1::Tema 1: Introducción a la Ingeniería del Software 19

Evolución del Desarrollo de Software


1980
• Primeras metodologías de análisis y diseño estructurado
(YOURDON, GANE&SARSON, WARNIER, JACKSON).
• Primeras metodologías que parten de una visión general del sistema
de información global (MERISE).
• Lenguajes de cuarta generación (4GL).
• Herramientas que facilitan la utilización y documentación de
diagramas o modelos (CASE inicial).
1985
• Tecnologías CASE integradas.
• Aproximación entre metodologías estructuradas y sistémicas
(INFORMATION ENGINEERING).
• Lenguajes de programación orientados a objetos.
1990
• Primer intento de estandarización de metodologías (EUROMETHOD).
• Diseño orientado a objetos.
• Metodologías de desarrollo orientadas a objetos.

Ingeniería del Software I (4º I.I.) M1::Tema 1: Introducción a la Ingeniería del Software 20

10
Ingeniería del Software I (4º I.I.)

Evolución del Desarrollo de Software

1995
• Estructuras arquitectónicas distribuidas.
• Utilización de componentes.
• Primer intento de estandarización de los modelos orientados a objetos
UML.
2000
• Auge de aplicación de arquitecturas en tres capas (DCOM, CORBA,
etc).
• Nuevas técnicas de interacción con el usuario (Sist. Ubicuos).
• Solicitud de nuevos desarrollos sobre WEB.
• Consolidación de UML.
• ¿Estandarización del método (Proceso Unificado de Desarrollo)?.
Futuro¿?
• Metodologías Ágiles (Extreme Programming)
• MDA / MDE (Model-Driven Arquitecture / Engineering)

Ingeniería del Software I (4º I.I.) M1::Tema 1: Introducción a la Ingeniería del Software 21

11

También podría gustarte