1.1Conceptos básicos Ingeniería de software
Sin importar cualquiera que sea el tipo de software a ser
desarrollado sea de sistemas (Son programas que sirven a otros programas en el trabajo de desarrollo como compiladores, editores, ..), tiempo real (Software encargado de analizar datos del mundo en forma real tales como análisis de datos, control automatizado, monitoreo de datos), gestión (a esta categoría se incluye el software
comercial a nivel empresarial nominas, inventarios), ingeniería y científico (es software que posee un amplio
manejo numérico usado en biología, astronomía, CAD, …), empotrado (software que se encuentra
residente en memoria, tales como : controles automáticos en los vehículos,
sistemas de background, partes del sistema operativo, …), computación personal (software comercial de uso local como procesadores de texto, hojas electrónicas, navegadores web, calendarios, agendas, recetarios, …), inteligencia artificial (software de procesamiento
especial sistemas expertos, sistemas basados en el conocimiento, generalmente no usan algoritmos numéricos).
Todos los tipos de software mencionados requieren que los analistas,
diseñadores y desarrolladores apliquen características y elementos de calidad
para que se logren productos a las necesidades del usuario, estas
necesidades se comienzan a encontrar un camino de solución a
través de la aplicación de elementos de calidad, así se presentan dos de los
más valiosos como son la eficiencia y la eficacia.
El uso eficiente y eficaz de la tecnología de los computadores es un objetivo que aún está distante. Para representar lo
anterior, sólo basta señalar los reportes de fracasos y dificultades de muchos proyectos en los que se pretende involucrar a la tecnología
de los computadores.
La ingeniería del software pretende utilizar los recursos computacionales de tal manera que se produzcan soluciones eficientes y eficaces a los problemas informáticos, el éxito de un proyecto involucra elementos como la planeación, la administración y la utilización de metodologías de
desarrollo de software.
A través de la planeación se determinan los recursos necesarios para el
desarrollo del proyecto, la factibilidad del mismo y el tiempo estimado de
desarrollo; unido a ello con la administración se controla, evalúa y corrige la dirección de acuerdo a las contingencias y demás
elementos que se vayan presentando durante el desarrollo; finalmente, a través
del uso de una metodología se busca lograr el acople de los
participantes y la garantía de una determinada calidad. Debe notarse
que las metodologías de desarrollote software sólo constituyen uno de los
mecanismos que actualmente se utilizan para alcanzar software de calidad; no
debemos dejar de lado aspectos de la dirección de proyectos que también buscan
calidad en el proceso de desarrollo y en el producto final.
Considerando que la calidad es un término bastante impreciso se ha
decidido establecer este tema como punto de partida. Como complemento se trata
el tema del manejo de la complejidad puesto que es un tópico fundamental dentro
de una metodología, que es la herramienta fundamental con la que se pretende
guiar el proceso de elaboración de un producto software de alta calidad.
Calidad en la ingeniería del software. En una versión sucinta la calidad
en la ingeniería del software es un grupo de características que representa la efectividad y
la eficiencia de un sistema de información. Es importante enfatizar en dos puntos :
Un software de calidad debe ser eficaz, es decir, que debe realizar las funciones establecidas, debe ser amigable. Un usuario
debe utilizar el software porque produce resultados confiables, realiza todas
las operaciones que se requieren, ejecuta las operaciones en
un tiempo aceptado y es fácilmente usado por el grupo de usuarios a quien este
dirigido.
Un software de calidad debe ser eficiente, es decir el costo de su desarrollo tomando todos los recursos y el
costo de su operación debe ser tal que las organizaciones involucradas en su desarrollo y uso
obtengan el máximo beneficio o por lo menos un beneficio aceptable en un
período de tiempo establecido.
Para ilustrar el concepto de calidad de manera más profunda, es necesario
considerar algunos aspectos fundamentales que caracterizan al software de
calidad como son : solidez, exactitud, completitud, mantenibilidad,
reutilizabilidad, claridad en la documentación, entre otros que serán descritos a continuación.
El software es tanto un producto 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 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 creación y
el control de otros programas (utilerías de software y ambientes)
El software entrega el producto más importante de
nuestro tiempo: 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. Maneja información de negocio para mejorar la
competitividad, proporciona una vía para las redes de información alrededor del
mundo (Internet) y proporciona los medios
2. Etapas del desarrollo de software Etapas. Descripción. Identificación
Las oportunidades son situaciones que se considera quede problemas, pueden
mejorarse, perfeccionarse mediante el uso de los sistemas de oportunidades información.
Es crucial para el éxito del resto del proyecto, requiere que se y objetivos. Observe
de forma objetiva lo que ocurre en una organización o empresa, luego en
conjunto con otros miembros o usuarios de la organización hacer notar los
problemas. Se debe averiguar lo que la organización trata de conseguir, se
podrá determinar si algunas funciones de las aplicaciones de los sistemas de
información pueden contribuir a que la organización alcance sus objetivos
aplicándolas a problemas u oportunidades específicos. Determinación Se
determina la información que necesita los usuarios para llevar a cabo de los
sus actividades. Entre las herramientas que se utilizan para determinar
requerimientos los requerimientos de información de una organización se encuentran:
de información. Métodos interactivos (entrevistas, muestreos, investigación de
datos impresos y aplicación de cuestionarios). Métodos que no interfieren con
el usuario como la observación del comportamiento de los encargados de tomar
las decisiones y sus entornos de trabajo. Análisis de las Se analizan las
necesidades propias del sistema, se utilizan los necesidades de diagramas de
flujo de datos que cuentan con una técnica estructurada sistema. para
representar en forma gráfica la entrada de datos, procesos y salida de
información. También se analizan las decisiones estructuradas por realizar.
Diseño del Se usa la información recolectada y se elabora el diseño lógico de
sistema sistemas de información, se diseña también los procedimientos precisos
recomendado. de captura de datos, con la finalidad de que los datos que se
introducen en el sistema de información sean los correctos. También incluye el
3. diseño de los archivos o la base de datos que almacenará los datos
requeridos por quien toma las decisiones en la organización. Desarrollo y
Dentro de las técnicas estructuradas para el diseño y documentación
documentación del software se tienen: del software. Método HIPO. Los diagramas
de flujo. Los diagramas Nassi-Schneiderman. Los diagramas Warnier-Orr. El pseudocódigo.
Pruebas y En esta etapa todo sistema de información debe probarse antes de ser
mantenimiento utilizado, así se reduce el coste al encontrar problemas y
errores antes del del sistema. uso del sistema. Esta etapa se desarrolla de la
siguiente manera: 1. Se realizan las pruebas con datos de muestra para
determinar con precisión cuáles son los problemas. 2. Se realiza otra con datos
reales del sistema actual. Implementación La última etapa del desarrollo del
sistema; incluye lay evaluación capacitación que el usuario requerirá,
impartido por eldel sistema. Fabricante (manuales de usuario y manuales
técnicos). Aunque la evaluación del sistema se plantea como parte de la última
etapa del ciclo de desarrollo de los sistemas; Realmente la evaluación toma
parte de cada una. Incluso durante el uso del sistema se puede seguir evaluando
el mismo. Uno de los criterios fundamentales que debe satisfacerse, es que el
futuro usuario utilice el sistema desarrollado. A veces suelen encontrarse
errores o vulnerabilidades en el sistema por lo que la evaluación no debe
terminarse, para así en su caso aplicar arreglos (actualizaciones, parches,
etcétera.)
1.4. Clasificación de la tecnologia en el desarrollo de software (Tecnologia 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 iníciales
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: identificarle
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 informa-cien 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.
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 constitúyanla
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, opera-ciones permitidas y relaciones
entre ellos como base para la estructuradle 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 los analistas, ingenieros de software y
desarrolladores, durante todos los pasos del Ciclo debida 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 delciclo de vida del desarrollo de sistemas de información,
completamente o enalguna 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 alCASE 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 enaste proceso ha
permitido que los diagramas puedan ser fácilmente creados y modificados,
mejorando la calidad delos 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 el 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 fue 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.
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 (Intégrate CASE, CASE
integrado):abarcan todas las fases del ciclo de vida del desarrollo de
sistemas. Sollamadas 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
actividadesdesarrolladas 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
eimplantación.
4. Juegos de herramientas o Tools-Case, son el tipo más simple
deherramientas CASE. Automatizan una fase dentro del ciclo de vida. Dentrode
este grupo se encontrarían las herramientas de reingeniería, orientadasa la
fase de mantenimiento
El software entrega el producto más importante de nuestro tiempo: 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. Maneja información de negocio para mejorar la competitividad, proporciona una vía para las redes de información alrededor del mundo (Internet) y proporciona los medios
buena investigacion.. sigue adelante
ResponderEliminarOk gracias!!
EliminarClaro esk salio del "A" por eso, ya saves ahi en ese salon todos buenos estudiantes
ResponderEliminarhay que ordenar mejor la informacion compañero sigue adelante
ResponderEliminarmuy bien amigo.. solo falto un poquito de organizacion.. saludos..
ResponderEliminarbuen trabajo amigo suige asi
ResponderEliminar