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
domingo, 17 de febrero de 2013
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.
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
Requisitos
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.
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.
Suscribirse a:
Entradas (Atom)