Está en la página 1de 43

Ingeniera del Software I

UNIDAD I
El producto y el proceso

15/03/2012

Analisis de Sistemas - U.N.P.

Software
Qu es? Es el producto que disean y construyen los ingenieros del software. Abarca programas, documentos y datos. Quin lo hace? Los ingenieros del software lo construyen, y virtualmente cualquier persona en el mundo industrializado. Por qu es importante? Porque afecta muy de cerca a cualquier aspecto de nuestra vida, est muy extendido en nuestro comercio, cultura y actividades cotidianas.
Analisis de Sistemas - U.N.P. 2

Software
Cules son los pasos? Construir software de computadora aplicando un proceso que conduce a un resultado de alta calidad que satisface las necesidades de la gente que usar el producto aplicando un enfoque de ingeniera de software. Cul es el producto obtenido? Desde el punto de vista de un ingeniero de software, el producto obtenido son los programas, documentos y datos. Desde el punto de vista de los usuarios el producto obtenido es la informacin resultante que facilita la labor de los usuarios. Cmo puedo estar seguro de que lo he hecho correctamente? Cuando el software obtenido sirva para los fines para los cuales fue creado.
8/23/2012 Analisis de Sistemas - U.N.P. 3

Evolucin del Software


Hoy en da el software tiene un doble papel, es un producto y al mismo tiempo, el vehculo para entregarlo. Como producto: hace entrega de la potencia informtica que incorpora el hardware informtico o una red de computadoras Es un transformador de informacin, produciendo, gestionando, adquiriendo, modificando, mostrando o transmitiendo informacin

Analisis de Sistemas - U.N.P.

Evolucin del Software


Como vehculo: es utilizado para hacer entrega del producto, el software acta como la base de control de la computadora (sistemas operativos), la comunicacin de informacin (redes) y la creacin y control de otros programas (herramientas de software y entornos) El papel del software informtico ha sufrido un cambio significativo: Enormes mejoras en rendimiento de hardware Profundos cambios de arquitecturas informticas
Analisis de Sistemas - U.N.P. 5

Grandes aumentos de memoria y capacidad de almacenamiento Gran variedad de opciones de entrada y salida Libros populares publicados durante los aos 70 y 80 proporcionan una visin histrica til dentro de la percepcin cambiante de las computadoras y del software, y de su impacto en nuestra cultura. Osborne hablaba de una nueva revolucin industrial Toffler llam a la llegada de componenetes microelectrnicos la tercera ola del cambio en la historia de la humanidad Naisbitt predijo la transformacin de la sociedad industrial a una sociedad de informacin

Analisis de Sistemas - U.N.P.

Feingenbaum y McCorduck sugirieron que la informacin y el conocimiento controlados por computadora seran el foco de poder del siglo XXI Stoll argument que la comunidad electrnica creada mediante redes y software es la clave para el intercambio de conocimiento alrededor del mundo Al comienzo de los aos 90 Toffler describi un cambio de poder en el que las viejas estructuras de poder (gubernamentales, educativas, industriales, econmicas y militares) se desintegraran a medida que las computadoras y el software nos llevaran a la democratizacin del conocimiento

8/23/2012

Analisis de Sistemas - U.N.P.

Yourdon predijo el declive y la cada del programador americano Hammer y Champy argumentaron que las tecnologas de informacin iban a desempear el papel principal en la reingeniera de la compaa Al final de los 90 Yourdon volvi a evaluar las perspectivas del software profesional y sugiri la resurreccin y elevacin del programador americano Al final del siglo XX tuvo lugar el impacto de la bomba de relojera Y2K Hoy da la computacin ha producido una generacin de aplicaciones con conexin a la web

Analisis de Sistemas - U.N.P.

El programador solitario de antao ha sido reemplazado por un equipo de especialistas de software, cada uno centrado en una parte de la tecnologa requerida para entregar una aplicacin concreta

Analisis de Sistemas - U.N.P.

EL SOFTWARE
El software es un elemento del sistema que es lgico, en lugar de fsico Caractersticas del software:
1. El software se desarrolla, no se fabrica en un sentido clsico
La fase de construccin del hardware puede introducir problemas de calidad que no existen (o son fcilmente corregibles) en el software

2. El software no se estropea
Durante su vida, el software sufre cambios (mantenimiento). Conforme se hacen los cambios, es bastante probable que se introduzcan nuevos defectos. El software se va deteriorando debido a los cambios
Analisis de Sistemas - U.N.P. 10

3. Aunque la industria tiende a ensamblar componentes, la mayora del software se construye a medida
A medida que la disciplina del software evoluciona, se crea un grupo de componentes de diseo estndar. La reutilizacin de componentes hace que el ingeniero pueda concentrarse en los elementos de diseo que representan algo nuevo.

Analisis de Sistemas - U.N.P.

11

Aplicaciones del Software


El software puede aplicarse en cualquier situacin en la que se haya definido previamente un conjunto especfico de pasos procedimentales (algoritmos) Software de sistemas: Conjunto de programas que han sido escritos para servir a otros programas. Ej.: compiladores, editores, utilidades de gestin de archivos. Componentes del sistema operativo, utilidades de manejo de perifricos, procesadores de telecomunicaciones

Analisis de Sistemas - U.N.P.

12

Software de tiempo real: El software que coordina, analiza, controla sucesos del mundo real conforme ocurren, se denomina de tiempo real. Aquellos que responden a informacin recibida del entorno externo. Software de gestin: El proceso de la informacin comercial constituye la mayor de las reas de aplicacin del software Software de ingeniera y cientfico: Est caracterizado por los algoritmos de manejo de nmeros. Software empotrado: Reside en memoria de solo lectura y se utiliza para controlar productos y sistemas de los mercados industriales y de consumo
13

Software de computadoras personales: Incluye procesadores de texto, hojas de clculo, los grficos por computadora, multimedia, entretenimientos, gestin de bases de datos, aplicaciones financieras, de negocios y personales y redes o acceso a base de datos externas. Software basado en web: Las pginas web son software que incorporan instrucciones ejecutables. La red viene a ser una gran computadora que proporciona un recurso software casi ilimitado.

Analisis de Sistemas - U.N.P.

14

Software: Una crisis en el horizonte


La palabra crisis se define como un punto decisivo en el curso de algo, momento, etapa o evento decisivo crucial. Sin embargo, en trminos de calidad del software total y de la velocidad con la cual son desarrollados los productos y los sistemas basados en computadoras, no ha habido ningn punto crucial, ningn momento decisivo. Solamente un lento cambio evolutivo, puntualizado por cambios tecnolgicos explosivos en las disciplinas relacionadas con el software

Analisis de Sistemas - U.N.P.

15

Software: Una crisis en el horizonte


El conjunto de problemas encontrados en el desarrollo del software de computadoras no se limitan al software que no funciona correctamente. El mal abarca los problemas asociados a cmo desarrollar software, cmo mantener el volumen cada vez mayor de software existente y cmo poder esperar mantenernos al corriente de la demanda creciente de software.

Analisis de Sistemas - U.N.P.

16

Software: Una crisis en el horizonte


Causas de la crisis del software: Naturaleza lgica del software Mala gestin de los proyectos ( ausencia de datos, deficiente comunicacin, ...) Ausencia de entrenamiento formal en nuevas tcnicas (programadores vs. ingenieros de software) Resistencia al cambio Mitos del software

8/23/2012

Analisis de Sistemas - U.N.P.

17

Mitos del Software


Los mitos del software son informaciones errneas que surgen durante los primeros aos del desarrollo de software y y generan confusin. Tipos de mitos:
Mitos de gestin Mitos del cliente Mitos de los desarrolladores

Analisis de Sistemas - U.N.P.

18

Mitos del Software

8/23/2012

Analisis de Sistemas - U.N.P.

19

El proceso del Software


Qu es? Es la serie de pasos predecibles a seguir para la obtencin de resultado oportuno de calidad en el desarrollo de software. Quin lo hace? Los ingenieros del software y sus gestores adaptan el proceso a sus necesidades Por qu es importante? Porque proporciona estabilidad, control y organizacin a una actividad que puede volverse catica si no es controlada.

8/23/2012

Analisis de Sistemas - U.N.P.

20

El proceso del Software


Cules son los pasos? El proceso que adoptemos depende del software que estamos construyendo. Cul es el producto obtenido? Desde el punto de vista de un ingeniero de software los productos obtenidos son programas, documentos y datos que se producen Cmo puedo estar seguro de que lo he hecho correctamente? La calidad, oportunidad y viabilidad a largo plazo son los mejores indicadores de la eficiencia del proceso que estamos utilizando.

8/23/2012

Analisis de Sistemas - U.N.P.

21

Ingeniera del Software


Segn el IEEE: Ingeniera del Software: (1) La aplicacin de un enfoque sistemtico, disciplinado y cuantificable hacia el desarrollo, operacin y mantenimiento del software. (2) (2) El estudio de enfoques.

8/23/2012

Analisis de Sistemas - U.N.P.

22

Ingeniera del Software:


Para Roger S. Pressman, la Ingeniera del software es una tecnologa estratificada (multicapas).
Se apoya sobre un enfoque de calidad. El fundamento de la Ingeniera del Software es la capa de proceso, que se refiere a la unin que mantiene juntas las capas de tecnologa que refieren el desarrollo racional y oportuno de la ingeniera del software. El proceso define un marco de trabajo para un conjunto de reas claves de proceso que se deben establecer para la entrega efectiva de la tecnologa de la ingeniera del software. Los mtodos indican cmo construir tcnicamente un software. Abarcan una gran gama de tareas que incluyen anlisis de requisitos, diseo, construccin de programas, pruebas y mantenimiento. Las herramientas proporcionan un enfoque automtico o semi-automtico para el proceso y para los mtodos.
Herramientas

Mtodos

Procesos

Enfoque de Calidad

Analisis de Sistemas - U.N.P.

23

Ingeniera del Software


Fases de la Ingeniera del Software

1- Fase de definicin: se centra sobre el qu. En esta fase se deben identificar qu informacin ha de ser procesada, qu funcin y rendimiento se desea, qu comportamiento del sistema, qu interfaces van a ser establecidas, qu restricciones de diseo existen, y qu criterios de validacin se necesitan para definir un sistema correcto. Por tanto han de identificarse los requisitos clave del sistema y del software.

8/23/2012

Analisis de Sistemas - U.N.P.

24

Ingeniera del Software


Fases de la Ingeniera del Software

2- Fase de desarrollo: se centra en el cmo. Durante el desarrollo se intenta definir cmo han de disearse las estructuras de datos, cmo han de implementarse la funcin dentro de una arquitectura de software, cmo han de implementarse los detalles procedimentales, cmo han de caracterizarse las interfaces, cmo ha de traducirse el diseo en un lenguaje de programacin y cmo ha de realizarse la prueba.

8/23/2012

Analisis de Sistemas - U.N.P.

25

Ingeniera del Software


Fases de la Ingeniera del Software

3- Fase de mantenimiento: se centra en el cambio que va asociado a la correccin de errores, a las adaptaciones requeridas a medida que evoluciona el entorno del software y a cambios debido a las mejoras producidas por los requisitos cambiantes del cliente.
Durante la fase de mantenimiento se encuentran cuatro tipos de cambios:

8/23/2012

Analisis de Sistemas - U.N.P.

26

Ingeniera del Software


Correccin: Cambia el software para corregir los defectos. Adaptacin: Produce modificaciones en el software para acomodarlo a los cambios de su entorno externo. Mejora: Lleva al software ms all de sus requisitos funcionales originales. Prevencin: Hace cambios en los programas de computadora a fin de que se puedan corregir, adaptar y mejorar ms fcilmente.

8/23/2012

Analisis de Sistemas - U.N.P.

27

Software
Marco de trabajo comn del proceso

Tareas

8/23/2012

Analisis de Sistemas - U.N.P.

28

El proceso del Software


Se establece un marco comn del proceso, definiendo un pequeo nmero de actividades del marco de trabajo que son aplicables a todos los proyectos del software. Un nmero de conjuntos de tareas (que abarcan tareas de trabajo de ingeniera del software, hitos de proyectos, productos de trabajo, y puntos de garanta de calidad). Las actividades de proteccin tales como garanta de calidad del software, gestin de configuracin del software y medicin son independientes de cualquier actividad del marco de trabajo y aparecen durante todo el proceso.
8/23/2012 Analisis de Sistemas - U.N.P. 29

Modelo de proceso del Software


Modelo de proceso o paradigma de ingeniera del software: son estrategias de desarrollo de software que acompaan a los procesos, mtodos y capas de herramientas. Se selecciona un modelo de proceso segn la naturaleza del proyecto y de la aplicacin, los mtodos y las herramientas a utilizarse, y los controles y entregas que se requieren.

8/23/2012

Analisis de Sistemas - U.N.P.

30

Fases de un bucle de resolucin de problemas:

Definicin de problemas

Desarrollo

8/23/2012

Analisis de Sistemas - U.N.P.

31

Modelo de proceso del Software


Fases de un bucle de resolucin de problemas: - Estado actual: representa el estado actual de sucesos - Definicin de problemas: identifica el problema especfico a resolverse - Desarrollo tcnico: resuelve el problema a travs de la aplicacin de alguna tecnologa - Integracin de soluciones: ofrece resultados(documentos, programas, datos, nueva funcin comercial, nuevo producto)

8/23/2012

Analisis de Sistemas - U.N.P.

32

Modelos de procesos del Software


1.Modelo lineal secuencial 2.Modelo de construccin de prototipos 3.Modelo DRA 4.Modelos Evolutivos:
4.1. Modelo incremental 4.2. Modelo espiral 4.3. Modelo espiral WIN-WIN 4.4. Modelo de desarrollo concurrente

5.Desarrollo basado en componentes 6.Modelo de Mtodos Formales

8/23/2012

Analisis de Sistemas - U.N.P.

33

1.Modelo lineal secuencial

Llamado ciclo de vida bsico o modelo en cascada el modelo lineal secuencial sugiere un enfoque sistemtico, secuencial, para el desarrollo del software que comienza en un nivel de sistemas y progresa con el anlisis, diseo, codificacin, pruebas y mantenimiento. Este enfoque en cascada asume que se va entregar un sistema completo una vez que la secuencia lineal se haya finalizado.

8/23/2012

Analisis de Sistemas - U.N.P.

34

2.Modelo de construccin de prototipos

Se disea para ayudar al cliente (o al que desarrolla) a comprender los requisitos. En general, no se disea para entregar un sistema de produccin.

8/23/2012

Analisis de Sistemas - U.N.P.

35

3.Modelo DRA

4.Modelos Evolutivos:

Los modelos evolutivos son iterativos. Se caracterizan por la forma en que permiten a los ingenieros del software desarrollar versiones cada vez ms completas del software.
Modelo incremental

El modelo incremental combina elementos del modelo lineal secuencial (aplicados repetidamente) con la filosofa interactiva de construccin de prototipos.

8/23/2012

Analisis de Sistemas - U.N.P.

37

Modelo incremental
incremento 1 Prueba incremento

,
Cdigo Prueba

2." incremento

Diseo

Cdigo

incremento

Anlisis

Prueba

incremento

El modelo incremental entrega el software en partes pequeas pero utilizables, llamadas incrementos. En general, cada incremento se construye sobre aqul que ya ha sido entregado.

8/23/2012

Analisis de Sistemas - U.N.P.

38

Modelo espiral

Proyecto de mantenimiento de productos. Proyecto de mejora de productos. Proyecto de desarrollo de nuevos productos. Proyecto de desarrollo de conceptos.

8/23/2012

Analisis de Sistemas - U.N.P.

39

Modelo espiral WIN-WIN

8/23/2012

Analisis de Sistemas - U.N.P.

40

Modelo de desarrollo concurrente

8/23/2012

Analisis de Sistemas - U.N.P.

41

5.Desarrollo basado en componentes

8/23/2012

Analisis de Sistemas - U.N.P.

42

6.Modelo de Mtodos Formales

8/23/2012

Analisis de Sistemas - U.N.P.

43