Vous êtes sur la page 1sur 6

UNIDAD 1 FUNDAMENTOS DE

INGENIERÍA DE SOFTWARE
OBJETIVO

Identificar la historia del software así como las características de los paradigmas
estructurado y orientado a objetos. Conocer e identificar las herramientas CASE.

1.1 Conceptos básicos


La ingeniería de software es una disciplina formada por un conjunto de
métodos, herramientas y técnicas que se utilizan en el desarrollo de los
programas informáticos (software).

Esta disciplina trasciende la actividad de programación, que es la actividad


principal a la hora de crear un software. El ingeniero de software se encarga
de toda la gestión del proyecto para que éste se pueda desarrollar en un
plazo determinado y con el presupuesto previsto.

La ingeniería de software, por lo tanto, incluye el análisis previo de la


situación, el diseño del proyecto, el desarrollo del software, las pruebas
necesarias para confirmar su correcto funcionamiento y la implementación del
sistema.

Cabe destacar que el proceso de desarrollo de software implica lo que se


conoce como ciclo de vida del software, que está formado por cuatro etapas:
concepción, elaboración, construcción y transición.

La concepción fija el alcance del proyecto y desarrolla el modelo de negocio;


la elaboración define el plan del proyecto, detalla las características y
fundamenta la arquitectura; la construcción es el desarrollo del producto; y la
transición es la transferencia del producto terminado a los usuarios.

Una vez que se completa este ciclo, entra en juego el mantenimiento del
software. Se trata de una fase de esta ingeniería donde se solucionan los
errores descubiertos (muchas veces advertidos por los propios usuarios) y se
incorporan actualizaciones para hacer frente a los nuevos requisitos. El
proceso de mantenimiento incorpora además nuevos desarrollos, para
permitir que el software pueda cumplir con una mayor cantidad de tareas.

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.
1.2 El papel evolutivo del software
Hoy en día, el software tiene un papel dual. Es producto y canal de distribución de
este. Como producto, ofrece la potencia de cómputo presentada como hardware de
una computadora o, de manera más global por una red de computadoras accesible
mediante hardware local y de acceso físico. Sin importar el lugar en que resida el
software, ya sea en un celular o dentro de una computadora central, éste es un
transformador de información; realiza la producción, el manejo, la adquisición, la
modificación, el despliegue o la transmisión de la información que puede ser tan
simple como un solo bit o tan compleja como una presentación multimedia. En su
papel de vehículo para la entrega de un producto, el software actúa como la base para
el control de la computadora (Sistemas Operativos), la comunicación de información
(redes), y la relación y el control de otros programas (utilerías de software y
ambientes).

PRIMERA ERA (1950 – 1965)


 Se trabajaba con la idea de “Codificar y Corregir”.

 No existía un planteamiento previo.

 No existía documentación de ningún tipo.

 Existencia de pocos métodos formales y pocos creyentes en ellos.

 Desarrollo a base de prueba y error.

SEGUNDA ERA (1965 – 1972)

 Se busca simplificar código.

 Aparición de Multiprogramación y Sistemas Multiusuarios.

 Sistemas de Tiempo Real apoyan la toma de decisiones.

 Aparición de Software como producto. (Casas de Software).

 Se buscan procedimientos para el desarrollo del Software.

TERCERA ERA (1972 – 1985)

 Nuevo Concepto: Sistemas Distribuidos.


 Complejidad en los Sistemas de Información.
 Aparecen: Redes de área local y global, y Comunicadores Digitales.
 Amplio Uso de Microprocesadores.
CUARTA ERA (1985 - 1995 )

 Impacto Colectivo de Software.

 Aparecen: Redes de Información, Tecnologías Orientadas a Objetos.

 Aparecen: Redes Neuronales, Sistemas Expertos y SW de Inteligencia Artificial.

 La información como valor preponderante dentro de las Organizaciones.

QUINTA ERA (2000 hasta hoy en día)

Utiliza algunos requisitos de las eras anteriores solo que aumenta la omnipresencia
de la web, la reutilización de información y componentes de software:
 Codificar: Transformar mediante las reglas de un código la formulación de un
mensaje.
 Hardware: Componente físico de la computadora. Por ejemplo: el monitor, la
impresora o el disco rígido. El hardware por sí mismo no hace que una máquina
funcione.
 Multiprogramación: Se denomina multiprogramación a la técnica que permite que
dos o más procesos ocupen la misma unidad de memoria principal y que sean
ejecutados al "mismo tiempo“.

1.3 Etapas del desarrollo del


software
Etapa de análisis: Es el proceso de investigar un problema que se quiere resolver.
Definir claramente el Problema que se desea resolver o el sistema que se desea crear.
Identificar los componentes principales que integrarán el producto.
Etapa de Diseño: Es el proceso de utilizar la información recolectada en la etapa de
análisis al diseño del producto. La principal tarea de la etapa de diseño es
desarrollar un modelo o las especificaciones para el producto o Componentes del
Sistema.
Etapa de Desarrollo: Consiste en utilizar los modelos creados durante la etapa de
diseño para crear los componentes del sistema.
Etapa de Pruebas o Verificación Prueba : Consiste en asegurar que los
componentes individuales que integran al sistema o producto, cumplen con los
requerimientos de la especificación creada durante la etapa de diseño. Se
recomienda aplicar las etapas: • Análisis • Diseño • Desarrollo • Prueba A cada uno
de los ejercicios de este curso.
Etapa de Implementación o Entrega Implantación: Consiste en poner a
disposición del cliente el producto.
Etapa de Mantenimiento: Consiste en corregir problemas del producto y re- liberar
el producto como una nueva versión o revisión (producto mejorado).
Etapa final EOL (End-of-Life) El fin del ciclo del producto consiste en realizar todas
las tareas necesarias para asegurar que los clientes y los empleados están
conscientes de que el producto ya no será vendido ni soportado.

1.4 Clasificación de la tecnología en


el desarrollo de software
(Tecnología Estructurada y
Orientada a Objetos)
Tecnologías de desarrollo estructurado

Las tecnologías de desarrollo estructurado son las más convencionales de las


empleadas hoy día. Han surgido de la evolución de las ideas de programación
estructurada (hace más de veinticinco años) hacia las fases iniciales del ciclo de
vida. En su formulación actual, las notaciones empleadas en las prime-ras fases
del ciclo de vida (especificación de requisitos de usuario y sistema)suelen estar
constituidas por lenguajes gráficos que permiten: identificar el sistema y el entorno;
representar el flujo de información entre los elementos; y, describir los datos y las
actividades del sistema [12].La idea base de esta tecnología es que es posible
estructurar el modelo de un sistema de software en base a funciones que procesan
información que reciben de otras funciones (o del exterior) y dirigen la información
procesada a otros módulos funcionales (o al exterior). El enfoque seguido, por
tanto, es el de pensar en las funciones del sistema necesarias (extraídas de los
requisitos del sistema) y luego en los datos que requieren.

Tecnologías orientadas a objetos

Las tecnologías de desarrollo estructurado han demostrado sus limitaciones a la


hora de organizar y facilitar la evolución de sistemas de software complejos. La
descomposición en funciones hace difícil al diseñador mantener la relación con los
objetos del mundo real sobre los que se modifican generalmente los requisitos del
usuario.

Los métodos de descomposición orientada a objetos constituyen la tendencia más


influyente observada en la ingeniería de sistemas de software en los últimos años.
Con ellos nos referimos a un conjunto de métodos (aún en fase de desarrollo o
evolución) que permiten al analista diseñador concebir su sistema identificando
clases de objetos, operaciones permitidas y relaciones entre ellos como base para
la estructura del sistema a diseñar.

1.5 Definición e historia de las


herramientas CASE
¿Qué son las Herramientas CASE?

Se puede definir a las Herramientas CASE como un conjunto de programas y


ayudas que dan asistencia a los analistas, ingenieros de software y desarrolladores,
durante todos los pasos del Ciclo de Vida de desarrollo de un Software. Como es
sabido, los estados en el Ciclo de Vida de desarrollo de un Software son:
Investigación Preliminar, Análisis, Diseño, Implementación e Instalación.

CASE se define también como:

Conjunto de métodos, utilidades y técnicas que facilitan la automatización del ciclo


de vida del desarrollo de sistemas de información, completamente o en alguna de
sus fases.

La sigla genérica para una serie de programas y una filosofía de desarrollo de


software que ayuda a automatizar el ciclo de vida de desarrollo de los sistemas.

Una innovación en la organización, un concepto avanzado en la evolución de


tecnología con un potencial efecto profundo en la organización. Se puede ver al
CASE como la unión de las herramientas automáticas de software y las
metodologías de desarrollo de software formales.

Historia de las Herramientas CASE

Las Herramientas CASE tienen su inicio con el simple procesador de palabras que
fue usado para crear y manipular documentación. Los setentas vieron la introducción
de técnicas gráficas y diagramas de flujo de estructuras de datos. Sobre este punto,
el diseño y especificaciones en forma pictórica han sido extremadamente complejos
y consumían mucho tiempo para realizar cambios.

La introducción de las herramientas CASE para ayudar en este proceso ha permitido


que los diagramas puedan ser fácilmente creados y modificados, mejorando la
calidad de los diseños de software. Los diccionarios de datos, un documento muy
usado que mantiene los detalles de cada tipo de dato y los procesos dentro de un
sistema, son el resultado directo de la llegada del diseño de flujo de datos y análisis
estructural, hecho posible a través de las mejoras en las Herramientas CASE.
Pronto se reemplazaron los paquete gráficos por paquetes especializados que
habilitan la edición, actualización e impresión en múltiples versiones de diseño.
Eventualmente, las herramientas gráficas integradas con diccionarios de base de
datos para producir poderosos diseños y desarrollar herramientas, podrían sostener
ciclos completos de diseño de documentos.

Como un paso final, la verificación de errores y generadores de casos de pruebas


fueron incluidos para validar el diseño del software. Todos estos procesos pueden
saberse integrados en una simple herramienta CASE que soporta todo el ciclo de
desarrollo.

1.6 Clasificación de las


herramientas CASE
No existe una única clasificación de herramientas CASE y, en ocasiones, es difícil
incluirlas en una clase determinada. Podrían clasificarse atendiendo a:

 Las plataformas que soportan.


 Las fases del ciclo de vida del desarrollo de sistemas que cubren.
 La arquitectura de las aplicaciones que producen.
 Su funcionalidad.
Las herramientas CASE, en función de las fases del ciclo de vida abarcadas, se
pueden agrupar de la forma siguiente:
1. Herramientas integradas, I-CASE (Integrated CASE, CASE integrado):
abarcan todas las fases del ciclo de vida del desarrollo de sistemas. Son
llamadas también CASE workbench.
2. Herramientas de alto nivel, U-CASE (Upper CASE - CASE superior) ofront-
end, orientadas a la automatización y soporte de las actividades desarrolladas
durante las primeras fases del desarrollo: análisis y diseño.
3. Herramientas de bajo nivel, L-CASE (Lower CASE - CASE inferior) oback-end,
dirigidas a las últimas fases del desarrollo: construcción e implantación.

4. Juegos de herramientas o Tools-Case, son el tipo más simple de herramientas


CASE. Automatizan una fase dentro del ciclo de vida. Dentro
de este grupo se encontrarían las herramientas de reingeniería, orientadas
a la fase de mantenimiento.

Vous aimerez peut-être aussi