You are on page 1of 11

Ingeniera del Software I (4 I.I.

MODULO I: Introduccin al Desarrollo de Sistemas Software


Tema 1: Introduccin a la Ingeniera del Software

Ingeniera del Software I (4 I.I.)

M1::Tema 1: Introduccin a la Ingeniera del Software

Objetivos
Introducir la Ingeniera del Software y explicar su importancia. Dar respuesta a las preguntas clave sobre Ingeniera del Software y conceptos relacionados. Introducir el concepto de ciclo de vida del desarrollo de software y los diferentes modelos de procesos software.

Ingeniera del Software I (4 I.I.)

M1::Tema 1: Introduccin a la Ingeniera del Software

Ingeniera del Software I (4 I.I.)

Ingeniera del Software


La Ingeniera del Software tiene que ver con las teoras, mtodos y herramientas para el desarrollo profesional de software. La Ingeniera del Software es el resultado de llevar la tradicional disciplina de las ingenieras al mundo de la construccin de sistemas software. Definicin: Ingeniera del Software es el estudio de los principios y metodologas para el desarrollo y mantenimiento de sistemas software. "La aplicacin prctica del conocimiento cientfico y matemtico en el diseo y construccin de programas para computadoras y la documentacin asociada requerida para desarrollarlos, operarlos y mantenerlos". (BOEHM)
Ingeniera del Software I (4 I.I.) M1::Tema 1: Introduccin a la Ingeniera del Software 3

Costes del Software


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. El software cuesta ms de mantener que de desarrollar. Para sistemas de larga duracin, los costes de mantenimiento pueden superar en dos o tres veces los costes de desarrollo (con el HW no pasa esto). La Ingeniera del Software se centra sobre todo en el desarrollo y mantenimiento de software con un coste efectivo.

Ingeniera del Software I (4 I.I.)

M1::Tema 1: Introduccin a la Ingeniera del Software

Ingeniera del Software I (4 I.I.)

Cuestiones Clave acerca de la Ingeniera del Software (I)


Qu es el Software? Qu es la Ingeniera del Software? Cul es la diferencia entre Ingeniera del Software y Ciencias de la Computacin (Informtica)? Cual es la diferencia entre Ingeniera del Software e Ingeniera de Sistemas? Qu es un proceso software? Qu es un modelo de proceso software?
Ingeniera del Software I (4 I.I.) M1::Tema 1: Introduccin a la Ingeniera del Software 5

Cuestiones Clave acerca de la Ingeniera del Software (II)


Cules son los costes de la Ingeniera del Software? Qu son los mtodos de Ingeniera del Software? Qu es CASE (Computer-Aided Software Engineering) Cules son los atributos de un buen software? Cules son los nuevos retos a los que se enfrenta la IS?
Ingeniera del Software I (4 I.I.) M1::Tema 1: Introduccin a la Ingeniera del Software 6

Ingeniera del Software I (4 I.I.)

Qu es el software?

Programas informticos y la documentacin asociada. Productos software que pueden ser desarrollados para un cliente particular o para el mercado general. Los productos software pueden ser:
Genricos - Desarrollados para ser vendidos a un amplio rango de clientes diferentes. Particulares (Por encargo) - Desarrollados para un cliente individual de acuerdo a sus necesidades.

Ingeniera del Software I (4 I.I.)

M1::Tema 1: Introduccin a la Ingeniera del Software

Qu es la Ingeniria del Software?


Qu es ingeniera?: Conjunto de conocimientos y tcnicas cuya aplicacin permite la utilizacin racional de los materiales y recursos naturales, mediante invenciones, construccin u otras realizaciones provechosas para el hombre. La ingeniera del software es una ingeniera que cubre todos los aspectos relativos a la produccin de software. IS: Disciplina o rea de la Informtica o Ciencias de la Computacin, que ofrece mtodos y tcnicas para desarrollar y mantener software de calidad que resuelven problemas de todo tipo. Los ingenieros de software deben adoptar una aproximacin sistemtica y organizada en su trabajo y utilizar las herramientas y tcnicas apropiadas dependiendo del problema a resolver, las restricciones de desarrollo y los recursos disponibles.
Ingeniera del Software I (4 I.I.) M1::Tema 1: Introduccin a la Ingeniera del Software 8

Ingeniera del Software I (4 I.I.)

Cul es la diferencia entre Ingeniera del Software y Ciencias de la Computacin (Informtica)?

La Ciencia de la Computacin se refiere a los fundamentos y teoras de la informtica; La Ingeniera del Software se refiere a los aspectos prcticos del desarrollo y entrega de software.

Ingeniera del Software I (4 I.I.)

M1::Tema 1: Introduccin a la Ingeniera del Software

Cul es la diferencia entre Ingeniera del Software e Ingeniera de Sistemas?


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)

La Ingeniera de Sistemas se refiere a todos los aspectos del desarrollo de sistemas basados en computadora que incluyen hardware, software e ingeniera de procesos. La Ingeniera del Software es parte de este proceso. Los Ingenieros de Sistemas estn involucrados en la especificacin, diseo de la arquitectura, integracin y entrega del sistema.
Ingeniera del Software I (4 I.I.) M1::Tema 1: Introduccin a la Ingeniera del Software 10

Ingeniera del Software I (4 I.I.)

Qu es un proceso software?
Un conjunto ordenado de actividades cuyo objetivo es el desarrollo o evolucin de software. Actividades Genricas en todos los procesos software son:
Especificacin - Lo que el sistema debe hacer y sus restricciones de desarrollo. Desarrollo - Produccin del sistema software. Validacin - Comprobar que el software entregado es lo que el cliente quiere. Evolucin - Cambiar el software en funcin de las demandas cambiantes mantenimiento correctivo, adaptativo, preventivo y evolutivo.
M1::Tema 1: Introduccin a la Ingeniera del Software 11

Ingeniera del Software I (4 I.I.)

Qu es un modelo de proceso software?


Una representacin simplificada de un proceso software, presentado desde una perspectiva concreta. Ejemplos de perspectivas del proceso son:
Perspectiva de Flujo de Trabajo (Workflow) - Secuencia de Actividades Perspectiva de Flujo de Datos (Data-flow) - Flujo de Informacin Perspectiva Rol/Accin - Quin hace Qu

Modelos de proceso genricos:


Modelo en Cascada (Waterfall) Modelo en espiral Desarrollo Evolutivo Transformaciones Formales Integracin a partir de componentes reutilizables. ...

Ingeniera del Software I (4 I.I.)

M1::Tema 1: Introduccin a la Ingeniera del Software

12

Ingeniera del Software I (4 I.I.)

Cules son los costes en Ingeniera del software?


Aproximadamente el 60% de los costes son costes de desarrollo y el 40% son costes de testeo. Para software a medida, los costes de mantenimiento (evolutivos) a menudo sobrepasan los costes de desarrollo. Los costes varan dependiendo del tipo de sistema a desarrollar y de los requisitos particulares del sistema tales como rendimiento, fiabilidad, etc. La distribucin de los costes tambin depende del modelo de desarrollo que se utilice.
Ingeniera del Software I (4 I.I.) M1::Tema 1: Introduccin a la Ingeniera del Software 13

Qu son los mtodos de Ingeniera del Software?


Enfoque estructurado y sistemtico para el desarrollo de software cuyo propsito es facilitar la produccin de software de alta calidad de una forma costeable (Ej. Anlisis Estructurado (DeMarco), JDS (Jackson), Booch (G.
Booch), OMT (Rumbaugh), .

Incluyen modelos (grficos) del sistema, notaciones, reglas, consejos de diseo y guas en el proceso. Descripciones de Modelos:
Descripciones de los modelos grficos que se deben crear.

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

Recomendaciones:
Consejos en la prctica del buen diseo.

Gua en el proceso:
Qu secuencia de actividades seguir.
M1::Tema 1: Introduccin a la Ingeniera del Software 14

Ingeniera del Software I (4 I.I.)

Ingeniera del Software I (4 I.I.)

Qu es CASE (Computer-Aided Software Engineering)?


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 mtodo de IS concreto. Upper-CASE
Herramientas que soportan las actividades iniciales del proceso, como requisitos, anlisis y diseo.

Lower-CASE
Herramientas que soportan las actividades finales del proceso tales como programacin, depuracin y testeo.

Ingeniera del Software I (4 I.I.)

M1::Tema 1: Introduccin a la Ingeniera del Software

15

Atributos de Calidad del Software (Bell 2000)


Fiable
Capacidad de ofrecer los mismos resultados bajo las mismas condiciones.

Portable
Capaz de integrarse en entornos distintos con el mismo esfuerzo.

Eficiente
Utilizacin ptima de los recursos de la mquina.

Adaptable (extensibilidad)
Modificar alguna funcin sin que afecte a sus actividades.

Robusto
No poseer un comportamiento catastrfico ante situaciones excepcionales (Tolerante a fallos).

Inteligible
Diseo claro, bien estructurado y documentado.

No Errneo
No exista diferencia entre los valores reales y los calculados

Correcto
Se ajusta a las especificaciones dadas por el usuario.

Reutilizable (reusabilidad)
16

Ingeniera del Software I (4 I.I.)

M1::Tema 1: Introduccin a la Ingeniera del Software

Ingeniera del Software I (4 I.I.)

Cules son los atributos de un buen software? (Sommerville 2004)


El software debe ofrecer al usuario la funcionalidad y el rendimiento requerido y debe ser mantenible,fiable, eficiente y usable. Mantenibilidad
El software debe evolucionar para adaptarse a las necesidades cambiantes. El software debe ser fiable (no debe dar sorpresas). El software no debe malgastar o hacer un mal uso de los recursos del sistema. El software debe ser facilmente usable por los usuarios para los cuales ha sido diseado.
M1::Tema 1: Introduccin a la Ingeniera del Software 17

Fiabilidad

Eficiencia Usabilidad

Ingeniera del Software I (4 I.I.)

Cules son los grandes retos a los que se enfrenta la Ingeniera del Software?
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 ms reducidos. Sistemas Heredados (Legacy systems)
Sistemas antiguos pero valiosos, deben ser mantenidos y actualizados. Los sistemas son distribuidos e incluyen una mezcla de diferente hardware y software. (interoperabilidad) Actualmente hay una creciente presin para que los sistemas software sean entregados con rapidez.
M1::Tema 1: Introduccin a la Ingeniera del Software 18

Heterogeneidad

Plazos de entrega

Ingeniera del Software I (4 I.I.)

Ingeniera del Software I (4 I.I.)

Evolucin del Desarrollo de Software


1960 1970

Lenguajes de alto nivel. Primeros mtodos de concepcin de sistemas (CORIG). Programacin estructurada. Primeros conceptos de la ingeniera del software. Intento de estandarizacin en el entorno de bases de datos (database Task Group). Modelo Entidad-Relacin. Gran importancia a los datos. Diseo estructurado.

1975

Ingeniera del Software I (4 I.I.)

M1::Tema 1: Introduccin a la Ingeniera del Software

19

Evolucin del Desarrollo de Software


1980 1985 1990 Primer intento de estandarizacin de metodologas (EUROMETHOD). Diseo orientado a objetos. Metodologas de desarrollo orientadas a objetos.
M1::Tema 1: Introduccin a la Ingeniera del Software 20

Primeras metodologas de anlisis y diseo estructurado (YOURDON, GANE&SARSON, WARNIER, JACKSON). Primeras metodologas que parten de una visin general del sistema de informacin global (MERISE). Lenguajes de cuarta generacin (4GL). Herramientas que facilitan la utilizacin y documentacin de diagramas o modelos (CASE inicial). Tecnologas CASE integradas. Aproximacin entre metodologas estructuradas y sistmicas (INFORMATION ENGINEERING). Lenguajes de programacin orientados a objetos.

Ingeniera del Software I (4 I.I.)

10

Ingeniera del Software I (4 I.I.)

Evolucin del Desarrollo de Software


1995 2000 Auge de aplicacin de arquitecturas en tres capas (DCOM, CORBA, etc). Nuevas tcnicas de interaccin con el usuario (Sist. Ubicuos). Solicitud de nuevos desarrollos sobre WEB. Consolidacin de UML. Estandarizacin del mtodo (Proceso Unificado de Desarrollo)?. Estructuras arquitectnicas distribuidas. Utilizacin de componentes. Primer intento de estandarizacin de los modelos orientados a objetos UML.

Futuro? Metodologas giles (Extreme Programming) MDA / MDE (Model-Driven Arquitecture / Engineering)

Ingeniera del Software I (4 I.I.)

M1::Tema 1: Introduccin a la Ingeniera del Software

21

11

You might also like