1.1 CONCEPTOS BÁSICOS
La ingeniería de
software es una disciplina y profesión enfocada a la aplicación de conocimiento
científico y técnico, que utiliza recursos físicos para diseñar e implementar
diversos artefactos (estructuras, máquinas, dispositivos, sistemas y procesos) para
realizar un objetivo deseado y alcanzar criterios especificados.
Se conoce como
software al equipamiento lógico o
soporte lógico de una computadora digital; comprende el conjunto de los
componentes lógicos necesarios que hacen posible la realización de
tareas específicas, en contraposición a los componentes físicos, que son
llamados hardware.
La Ingeniería de
software es la rama de la ingeniería que crea y mantiene las aplicaciones de
software Ingeniería de Software aplicando tecnologías y prácticas de las
ciencias computacionales, manejo de proyectos, ingeniería, el ámbito de la
aplicación, y otros campos.
Desde los años 40’s
las aplicaciones y usos de las computadoras han crecido de forma constante Hoy
en día el software juega un papel central en casi todos los aspectos de Importancia
del Software la vida cotidiana: gobierno, finanzas, educación, transporte,
medicina, etc...
La Ingeniería del
Software es la aplicación práctica del conocimiento científico en el diseño y
construcción de programas de computadora y la documentación asociada requerida
para desarrollar y operar (funcionar) y mantenerlos.
Así como también
desarrollo de software o producción de software.
1.2 EL PAPEL EVOLUTIVO DEL SOFTWARE
El software
tiene un papel dual, es producto y canal de distribución como el vehículo para
su entrega. Es el transformador de la información. El papel del software de
computadora ha experimentado un cambio significativo en un periodo un poco
mayor a 50 años.
Las mejorías sustanciales en el desempeño del hardware, los
cambios profundos en las arquitecturas de cómputo, los enormes incrementos en
las capacidades de memoria y almacenamiento, y la amplia variedad de opciones
de salida y de entrada han propiciado el surgimiento de sistemas más elaborados
y complejos basados en computadoras.
Nadie sabe en realidad el futuro de los
sistemas que día a día se construyen, más sin embargo sin importar el lugar en el
que resida el software, ya sea en un
celular o dentro de una computadora
central , el software 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 tal compleja como una
presentación multimedia . en su papel de vehículo para entregar el producto, el software actúa
como base para el control de la
computadora (sistema operativo ), la comunicación de información (redes) y la creación y el control de otros programas (utilerías de software y ambientales ).
El software entrega el producto más importante
de nuestros tiempos la información. Transforma los datos personales, por ejemplo
las transacciones financieras de un
individuo, de modo que los datos sean
más útiles en un contexto local.
1.3 etapas del desarrollo del software.
Las etapas del proceso de
desarrollo de software
Cualquier sistema de
información va pasando por una serie de fases a lo largo de su vida.
Su ciclo de vida comprende
una serie de etapas entre las que se encuentran las siguientes:
- Planificación.
- Análisis Diseño.
- Implementación.
- Pruebas.
- Instalación o despliegue.
- Uso y mantenimiento.
Estas etapas son un reflejo
del proceso que se sigue a la hora de resolver cualquier tipo de problema.
Como primer paso para
resolver un problema se tiene que :
- Comprender el problema (análisis)- Plantear una posible solución
- considerando soluciones alternativas (diseño)- Llevar a cabo la solución
- planteada (implementación)- Comprobar que el resultado obtenido escorrecto (pruebas)
- Las etapas adicionales de planificación, instalación
- mantenimiento que aparecen en el ciclo de vida de un sistema de información son necesarias en el mundo real porque el desarrollo de un sistema de información conlleva unos costes asociados (lo que se hace necesaria la planificación).
1.4 clasificación de la tecnología en el
desarrollo de software
(tecnología, estructura y orientada a objetos).
Tecnologías
de desarrollo estructurado
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.
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 y 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
Las Herramientas CASE son 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.
Las herramientas CASE (Computer Aided Software Engineering) son diversas
aplicaciones informáticas destinadas a aumentar la productividad en el
desarrollo de software reduciendo el costo de las mismas en términos de tiempo
y de dinero.
Estas herramientas pueden ayudar en todos los aspectos del ciclo de vida de
desarrollo del software en tareas como el proceso de realizar un diseño del
proyecto, cálculo de costos, implementación de parte del código automáticamente
con el diseño dado, compilación automática, documentación o detección de
errores entre otras. Ya en los años 70 un proyecto llamado ISDOS diseñó un
lenguaje y por lo tanto un producto que analizaba la relación existente entre
los requisitos de un problema y las necesidades que éstos generaban, el
lenguaje en cuestión se denominaba PSL (Problem Statement Language) y la
aplicación que ayudaba a buscar las necesidades de los diseñadores PSA (Problem
Statement Analyzer).
Aunque ésos son los inicios de las herramientas informáticas que ayudan a
crear nuevos proyectos informáticos, la primera herramienta CASE fue
Excelerator que salió a la luz en el año 1984 y trabajaba bajo una plataforma
PC.
Las herramientas CASE alcanzaron su techo a principios de los años 90. En
la época en la que IBM había conseguido una alianza con la empresa de software
AD/Cycle para trabajar con sus mainframes, estos dos gigantes trabajaban con
herramientas CASE que abarcaban todo el ciclo de vida del software. Pero poco a
poco los mainframes han ido siendo menos utilizados y actualmente el mercado de
las Big CASE ha muerto completamente abriendo el mercado de diversas
herramientas más específicas para cada fase del ciclo de vida del software.
. 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) o front-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) o back-end, dirigidas a las últimas
fases del desarrollo: construcción e implantación.
Bibliografía
Herramientas para el desarrollo de Sistemas de Información.
http://www.inei.gob.pe/cpi/bancopub/libfree.
Herramientas CASE
http://es.wikipedia.org/wiki/CASE
Libro
SOFTWARE ENGINEERING. A Practitioner’s Approach.
European Adaptation
McGRAW-HILLDNTERAMERICANA DE
ESPANA, S. A. U.
Copyright O MMI, by The McGraw-Hill Companies
ISBN: 84-481-3214-9
Editora: Concepción Femández Madrid
Diseño de cubierta: Design Master Dima
Impreso en: Imprenta FARESO.
S. A.
Esta es la informacion de la unidad uno fundamentos de ingenieria de software, espero que sea del agrado....
ResponderEliminarmuy buen blog excelente informacion
ResponderEliminarmuy buen trabajo. es perfecto que publiques la bibliografia..saludos
ResponderEliminarexelente trabajo compañera, muy buena informacion felicidades
ResponderEliminar