domingo, 17 de febrero de 2013

Bibliografias

Ingenieria del software, Roger s. Pressman; Mc Graw-Hill

Software Engineering for information system, Donald McDermid, Blackwell scientific Publication

www.slideshare.net/..///historia-y-evolucion-del-software-9165502

Html.rincondelvago.com/historia-del-software.html

1.6.- Clasificación de Las herramientas Case
Aunque no es fácil y no existe una forma única de clasificarlas, las herramientas case se pueden clasificar, teniendo en cuenta los siguientes parámetros:
8  Las plataformas que soportan
8  Las fases de ciclo de vida
8  La arquitectura de las aplicaciones que aplican y producen.
8  Su funcionalidad

Clasificación basada en la fase del ciclo de desarrollo:

ÿ Upper case (U-case) herramientas que ayudan en las fases de planificación, análisis de desarrollo, usando entre otros diagramas UML.
ÿ Middle case (M-case) herramientas para automatizar tareas en el análisis y diseño de la aplicación.
ÿ Lower case (L-case) herramientas que semi-autorizan la generación de código, crean programas de detección de errores, soportan la depuración de programas y pruebas. Además automatizan la documentación completa e aplicación.
Existe otros nombres que se le dan a este tipo de herramientas y que no es una clasificación excluyente. Entre si ni con lo anterior.
ÿ Integrated case (I-case) herramientas que engloban todo el proceso de desarrollo software, desde análisis e implementación.
ÿ Meta case: herramientas que definen nuestra propia técnica de software:
8  IPSE, herramientas que soportan todo el ciclo de vida, incluyen componentes para la gestión de proyectos y cuestión de la configuración.

Por funcionalidad podríamos diferenciar algunas como:

ÿ Herramientas de generación semiautomática de código
ÿ Editores UML
ÿ Herramientas de factorización de código
ÿ Herramientas de mantenimiento como los asistentes de control. 

1.5.- Definición e historia de las herramientas case

Definición:
Un conjunto de programas y ayudas que dan existencia a los analistas ing. Software, desarrolladores, también se puede definir  como un conjunto de métodos, utilidades y técnicas que facilitan la automatización del ciclo de vida del desarrollo de sistema de información, completamente o en lagunas de sus fases.




Historia:
Tiene su inicio con su simple procesador de palabras que fue usado para crear y manipular documentación. En los 70 vieron la introducción de técnicas gráficas y diagramas de flujos de estructuras de flujo. Sobre este punto el diseño y especificaciones en forma pictórica han sido extremadamente complejas y consumían mucho tiempo para realizar cambios. La primera herramienta comercial se remonta a 1982 aunque algunos especialistas indican que algunos ejemplos de herramientas para diagrama de flujo ya existían.
No fue sino hasta 1985 en que las herramientas case se volvieron realmente importantes en el proceso de desarrollo de software. Los proveedores prometieron a las industrias que muchas actividades seria beneficiadas por la ayuda case.




 Elaborado: Ivan hdez. sosa ingenieria en sistemas computacionales 4° semestre

1.4.- Clasificación de las tecnologías en el desarrollo de software. (Tecn. Estructurado y orientada a objetos)



ÿ Tecnología de desarrollo estructurado:
Es posible estructurar el modelo de un sistema de software en base a funciones que procesan la información que reciben de otras funciones que procesan la función lo del exterior y dirigen la información que reciben de otras funciones del sistema necesario.


ÿ Tecnologías orientadas a objetos:
Los métodos de descomposición orientada a objetos contribuyen la tendencia mas influyente observada en la ingeniería del software en los últimos años en ellas un objeto es un conjunto de datos y funciones de manipulación de los mismos encapsulados en una cantidad que es posible tratar.


1.3.- Etapas del desarrollo del software (captura, análisis y especificación de requisitos)

Al inicio de un desarrollo esta es la primera fase que se realiza y según el modelo de proceso adoptado,  pueden casi terminar para pasar a la próxima etapa. Durante esta fase, se adquieren, reúnen y especifican las características funcionales y no funcionales que deberán cumplir el futuro programa o sistema a desarrollar. Las características, tanto de entorno, parámetros no funcionales y arquitectura dependen enormemente de lo bien logrado. El objetivo de la ingeniería de requisitos es sistematizar el proceso de definición de requisitos permitiendo modelar y analizar el problema generando un compromiso entre los ingenieros y los clientes.  La ingeniería de requisitos aporta un conjunto de métodos, técnicas y herramientas que asisten a los analistas para obtener requerimientos seguros, veraces, completos oportunos posibles permitiendo:
8  Comprender el problema
8  Facilitar la obtención de las necesidades cliente-usuario
8  Validar con el cliente-usuario

Descripción: http://upload.wikimedia.org/wikipedia/commons/thumb/b/bb/Proceso_Ing_Requisitos.jpg/500px-Proceso_Ing_Requisitos.jpgRequisitos de usuario: son frases en lenguaje natural junto a diagramas con los servicios que el sistema debe proporcionar.
Requisitos de sistema: determinan los servicios del sistema y con restricciones en detalle.
Se clasifican en 3 los tipos de requisitos de sistema:
ÿ Funcionales
8  Servicios proporcionados del sistema
8  Respuesta del sistema ante determinadas entradas
8  El comportamiento del sistema en situaciones particulares
ÿ Requisitos no funcionales
8  Son restricciones de los servicios o funciones que ofrece el sistema
8  Requisitos del producto: comportamiento de este
8  Requisitos organizativos: procedimientos de organización
8  Requisitos externos: factores externos al sistema
8  Requisitos del dominio: dominio de aplicación y reflejan características de dicho dominio.
Elaborado: Ivan hdez. sosa 4° semestre ingenieria en sistemas computacionales

1.2.- El papel evolutivo del software

El software es el producto derivado del proceso de desarrollo, según la ingeniería de software. Este producto es intrínsecamente evolutivo durante su ciclo de vida, el software evoluciona, en general, generando versiones cada vez más completas, complejas, mejoradas, optimizadas en algún aspecto, adecuadas a nuevas plataformas. Cuando un sistema deja de evolucionar, eventualmente cumplirá con su ciclo de vida, entrara en obsolescencia e inevitablemente tarde o temprano será reemplazado por un producto nuevo. El software evoluciona sencillamente porque debe de adaptar los cambios del entorno, sean funcionales (exigencias de usuarios). La dinámica de la evolución del software es el estudio de los cambios de sistema. La mayor contribución en esta área fue realizada por meir m. Lehman comenzando en los años 70 y 80. Su trabajo continúo en la década de 1990 con Leman y otros investigadores de relevancia en la realimentación en los procesos de la evolución. A partir de estos estudios propusieron un conjunto de leyes son invariantes y ampliamente aplicables.

Cambio continuo:
Programa que se usa en un entorno real necesariamente menos útil de ese entorno.

Complejidad creciente:
A medida que un programa en evolución cambia, su estructura tiende a ser cada vez más compleja, se deben dedicar recursos extras para preservar y simplificar la estructura.

Evolución prolongada del sistema:
La evolución de los programas es un proceso autorregulativo. Los atributos de los sistemas, tales como tamaño, tiempo entre entregas y la cantidad de errores y documentados son aproximadamente invariantes para cada entrega del sistema.

Estabilidad organizacional:
Durante el tiempo de vida de un programa su velocidad de desarrollo es aproximadamente constante e independiente de los recursos dedicados al desarrollo del sistema.
Crecimiento continuado: la funcionalidad ofrecida por los sistemas tiene que crecer continuamente para,  tener la satisfacción de los usuarios.

Realimentación del sistema:
Los procesos de evolución incorporan sistemas de realimentación, multiagente y multibucle y estos deben ser tratados como sistemas de realimentación para lograr una mejora significativa del producto.






 Elaborado: Ivan hdez. sosa ingenieria en sistemas computacionales 4° semestre

1.1           .- Conceptos básicos
Software:
Programas de cómputo y su documentación asociada: requerimientos, modelos de diseño y manuales de usuario. El software puede ser desarrollado para un cliente en particular o para un mercado en general. El software puede ser genérico es decir desarrollado para venderse a múltiples clientes, a la medida desarrollado bajo demanda del cliente a un desarrollo especifico.

Ingeniería de software:
Una disciplina de la ingeniería que concierne a todos los aspectos de los productos de software. Los ingenieros de software deben: adoptar un enfoque sistemático para llevar a cabo su trabajo, utilizar las herramientas y técnicas apropiadas para resolver el problema planteado, de acuerdo a las restricciones de desarrollo y a los recursos disponibles.

Diferencia entre ingeniería de software y ciencias computacionales:
Las ciencias computacionales conciernen a la teoría y fundamentos de cualquier sistema de cómputo (hardware, software).
La ingeniería de software concierne a los aspectos prácticos del desarrollo y puesta en marcha de productos útiles de software.
La ingeniería de software aún está lejos de ser considerada una ciencia como lo son la química y la física.

Diferencia entre ingeniería de software e ingeniería de sistemas:
La ingeniería de sistemas se refiere a todos los aspectos del desarrollo de sistemas basados en cómputo incluyendo hardware, software y la ingeniería de procesos.
La ingeniería de software es una parte de este proceso que comprende el desarrollo de software, control, aplicaciones y bases de datos del sistema.
Modelo de proceso de software:
Representación formal y simplificada de un proceso de software, presentando desde una perspectiva especifica.

Costos de la ingeniería de software:
ÿ 60% costos de desarrollo
ÿ 40% costos de pruebas


Métodos de ingeniería de software:
Enfoques estructurados para el desarrollo de software que incluye descripciones del modelo, descripciones de modelos gráficos que deben ser producidos reglas restricciones del modelo de sistemas recomendaciones, para realizar el diseño efectivo, administración del proceso que actividades deben realizarse y en qué orden.

Elaborado: Ivan hdez. sosa   ingenieria en sistemas computacionales  4° semestre