Está en la página 1de 13

INTRODUCCIN

Antes de empezar la lectura de este texto, debe recordarse que el


software es la parte intangible de una computadora, conformada por
todos los programas que se muestran en el monitor y que sin el
hardware el software no funcionara, ya que como sabemos el hardware
y el software juntos conforman la principal herramienta en el campo de
la tecnologa, el ordenador.
A continuacin se presenta con detalle la definicin de varios conceptos
dentro de la ingeniera del software, su evolucin, el proceso o
metodologa que se lleva, las tecnologas y su desarrollo, y algunas de
los mtodos ms efectivos para la solucin de problemas.

INGENIERA DE SOFTWARE
La ingeniera de software es una disciplina formada por un conjunto de
mtodos, herramientas y tcnicas que se utilizan en el desarrollo de los
programas informticos (software).
Esta disciplina trasciende la actividad de programacin, que es la actividad
principal a la hora de crear un software. El ingeniero de software se encarga de
toda la gestin del proyecto para que ste se pueda desarrollar en un plazo
determinado y con el presupuesto previsto.
La ingeniera de software, por lo tanto, incluye el anlisis previo de la situacin,
el diseo del proyecto, el desarrollo del software, las pruebas necesarias para
confirmar su correcto funcionamiento y la implementacin 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:
concepcin, elaboracin, construccin y transicin.
La concepcin fija el alcance del proyecto y desarrolla el modelo de negocio; la
elaboracin define el plan del proyecto, detalla las caractersticas y
fundamenta la arquitectura; la construccin es el desarrollo del producto; y la
transicin 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 ingeniera 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 adems nuevos desarrollos, para permitir que el
software pueda cumplir con una mayor cantidad de tareas.
Un campo directamente relacionado con la ingeniera de software es
la arquitectura de sistemas, que consiste en determinar y esquematizar la
estructura general del proyecto, diagramando su esqueleto con un grado
relativamente alto de especificidad y sealando los distintos componentes que
sern necesarios para llevar a cabo el desarrollo, tales como aplicaciones
complementarias y bases de datos. Se trata de un punto fundamental del
proceso, y es muchas veces la clave del xito de un producto informtico.
Los avances tecnolgicos y su repercusin en la vida social han afectado
inevitablemente el proceso de desarrollo de software por diversos motivos,
como ser el acceso indiscriminado de los usuarios a cierta informacin que
hasta hace un par de dcadas desconoca por completo y que no pueden
comprender, dado que no poseen el grado de conocimiento tcnico necesario.
Un consumidor bien informado es un consumidor al que no se puede timar, ya
que sabe lo que necesita y tiene la capacidad de analizar las diferentes ofertas
del mercado, comparando las propuestas y prestaciones de los productos; sin
embargo, un consumidor mal informado es como un nio caprichoso que llora,
grita y patalea sin parar.

El papel evolutivo del software


El software es tanto un producto como el vehculo para su entrega. Es el
transformador de la informacin. El papel del software de computadora ha
experimentado un cambio significativo en un periodo un poco mayor a 50 aos.
Las mejoras sustanciales en el desempeo del hardware, los cambios
profundos en las arquitecturas de cmputo, 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 ms
elaborados y complejos basados en computadoras. Nadie sabe en realidad el
futuro de los sistemas que da a da se construyen, ms 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 produccin, el manejo, la
adquisicin, la modificacin, el despliegue o la transmisin de la informacin
que puede ser tan simple como un solo bit o tan compleja como una
presentacin multimedia. En su papel de vehculo para la entrega de un
producto, el software acta como la base para el control de la computadora
(sistemas operativos), la comunicacin de informacin (redes) y la creacin y el
control de otros programas (utileras de software y ambientes)
El software entrega el producto ms importante de nuestro tiempo:
informacin. Transforma los datos personales, por ejemplo las transacciones
financieras de un individuo, de modo que los datos sean ms tiles en un
contexto local. Maneja informacin de negocio para mejorar la competitividad,
proporciona una va para las redes de informacin alrededor del mundo
(Internet) y proporciona los medios para adquirir informacin en todas sus
formas (pginas web).
Histricamente, siempre ha existido una separacin entre el proceso de
desarrollo y el proceso de evolucin del software (mantenimiento del software).
La gente considera el desarrollo de software como una actividad creativa en la
cual un sistema software se desarrolla desde un concepto inicial hasta que se
pone en funcionamiento.
Esta distincin entre el desarrollo y el mantenimiento es cada vez ms
irrelevante. Hoy en da, pocos sistemas software son completamente nuevos, lo
que implica que tiene ms sentido ver el desarrollo y el mantenimiento como
actividades continuas. Ms que dos procesos separados, es ms realista
considerar a la ingeniera del software como un proceso evolutivo en el cual el
software se cambia continuamente durante su periodo de vida como respuesta
a los requerimientos cambiantes y necesidades del usuario.

Las etapas del proceso de desarrollo de software

Cualquier sistema de informacin 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:- Planificacin- Anlisis- Diseo- Implementacin- 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.
Etapa de Anlisis:
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 integrarn el producto.
Etapa de Diseo:
Es el proceso de utilizar la informacin recolectada en la etapa de anlisis al
diseo del producto. La principal tarea de la etapa de diseo 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 diseo para crear
los componentes del sistema.
Etapa de Pruebas o Verificacin Prueba:
Consiste en asegurar que los componentes individuales que integran al sistema
o producto, cumplen con los requerimientos de la especificacin creada
durante la etapa de diseo.
Etapa de Implementacin o Entrega Implantacin:
Consiste en poner a disposicin del cliente el producto.

Etapa de Mantenimiento:
Consiste en corregir problemas del producto y re- liberar el producto como una
nueva versin o revisin (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 estn conscientes de que el producto
ya no ser vendido ni soportado.

Ya en 1945, mucho antes de que existiese la Ingeniera del Software, el


matemtico George Polya describi este proceso en su libro How to solve it (el
primero que describe la utilizacin de tcnicas heursticas en la resolucin de
problemas).
Bsicamente,
resolver
un
problema
requiere:- Comprender el problema (anlisis)- Plantear una posible solucin,
considerando soluciones alternativas (diseo)- Llevar a cabo la solucin
planteada (implementacin)- Comprobar que el resultado obtenido es
correcto (pruebas)Las
etapas
adicionales
de planificacin, instalacin
y mantenimiento que aparecen en el ciclode vida de un sistema de informacin
son necesarias en el mundo real porque el desarrollo de un sistema de
informacin conlleva unos costes asociados (lo que se hace necesaria la
planificacin) y se supone que, una vez construido el sistema de informacin,
ste debera poder utilizarse (si no, no tendra sentido haber invertido en su
desarrollo).
Para cada una de las fases en que hemos descompuesto el ciclo de vida de un
sistema de informacin se han propuesto multitud de prcticas tiles,
entendiendo por prcticas aquellos conceptos, principios, mtodos y
herramientas que facilitan la consecucin de los objetivos dcada etapa.
Tecnologas de desarrollo estructurado
Las tecnologas de desarrollo estructurado son las ms convencionales de las
empleadas hoy da. Han surgido de la evolucin de las ideas de programacin
estructurada (hace ms de veinticinco aos) hacia las fases iniciales del ciclo
de vida. En su formulacin actual, las notaciones empleadas en las prime-ras
fases del ciclo de vida (especificacin de requisitos de usuario y sistema)suelen
estar constituidas por lenguajes grficos que permiten: identificar sistema y el
entorno; representar el flujo de informacin entre los elementos; y, describir los
datos y las actividades del sistema [12].La idea base de esta tecnologa es que
es posible estructurar el modelo de un sistema de software en base a funciones
que procesan informacin que reciben de otras funciones (o del exterior) y
dirigen la informacin procesada a otros mdulos funcionales (o al exterior). El
enfoque seguido, por tanto, es el de pensar en las funciones del sistema
necesarias (extradas de los requisitos del sistema) y luego en los datos que
requieren.
El diseo estructurado se caracteriza por lo siguiente:

Mayor nivel de abstraccin (independencia del lenguaje programacin).

Elemento bsico de diseo: mdulo

Modularidad que permite medir la calidad de programas.

Representa los procesos, flujos y estructuras de datos, de una manera


jerrquica y descendente.

Ven el sistema como entradas-proceso-salidas.

Se concentran en la parte del proceso.

Se lee de porciones, independientes de las especificaciones.

Tecnologas orientadas a objetos


Las tecnologas de desarrollo estructurado han demostrado sus limitaciones a
la hora de organizar y facilitar la evolucin de sistemas de software complejos.
La descomposicin en funciones hace difcil al diseador mantener la relacin
con los objetos del mundo real sobre los que se modifican generalmente los
requisitos del usuario.
Los mtodos de descomposicin orientada a objetos constituyen la tendencia
ms influyente observada en la ingeniera de sistemas de software en los
ltimos aos. Con ellos nos referimos a un conjunto de mtodos (an en fase
de desarrollo o evolucin) que permiten al analista diseador concebir su
sistema identificando clases de objetos, operaciones permitidas y relaciones
entre ellos como base para la estructura del sistema a disear.
En ellas, un objeto es un conjunto de datos y funciones de manipulacin de los
mismos encapsulados en una unidad que es posible tratar como un todo (crear,
copiar, destruir, etc.). Un objeto posee unas operaciones visibles a otros
objetos aunque stos no conocen cmo estn implementadas. El diseador
reconoce inicialmente clases de objetos de las que se derivan los objetos
concretos que utilizar en el diseo.
Un objeto puede construirse jerrquicamente empleando, a su vez, a otros
objetos ms simples. Una clase implica una generalizacin del concepto de
objeto (identificando similitudes entre objetos similares) y constituye la base a
partir de las cuales se construye el sistema.
Existen varias tecnologas orientadas a objetos que, aunque similares en su
potencia expresiva, ofrecen algunas diferencias que las hacen ms adecuadas
para algn tipo concreto de sistemas.
Podemos mencionar como una de las ms representativas a OMT.
OMT est soportada por muchas herramientas CASE comerciales.
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: Investigacin Preliminar, Anlisis, Diseo, Implementacin e
Instalacin.
CASE se define tambin como: Conjunto de mtodos, utilidades y tcnicas que
facilitan la automatizacin del ciclo de vida del desarrollo de sistemas de
informacin, completamente o en alguna de sus fases.
La sigla genrica para una serie de programas y una filosofa de desarrollo de
software que ayuda a automatizar el ciclo de vida de desarrollo de los
sistemas.
Una innovacin en la organizacin, un concepto avanzado en la evolucin de
tecnologa con un potencial efecto profundo en la organizacin. Se puede ver al
CASE como la unin de las herramientas automticas de software y las
metodologas de desarrollo de software formales.
La tecnologa CASE es la automatizacin del desarrollo software para mejorar la
calidad del sistema de informacin.
Permitir aplicaciones prcticas de metodologas estructuradas, al ser
realizadas con una herramienta consigue agilizar el trabajo.
Facilitar la realizacin de prototipos y desarrollo conjunto de aplicaciones.
Simplificar el mantenimiento de los programas.
Mejorar y estandarizar la documentacin
Aumentar la portabilidad de las aplicaciones.
Facilitar la reutilizacin de componentes software.
Permitir un desarrollo y un refinamiento visual de las aplicaciones, mediante
la utilizacin de grficos.
Historia de las Herramientas CASE
Las Herramientas CASE tienen su inicio con el simple procesador de palabras
que fue usado para crear y manipular documentacin. Los setentas vieron la
introduccin de tcnicas grficas y diagramas de flujo de estructuras de datos.
Sobre este punto, el diseo y especificaciones en forma pictrica han sido
extremadamente complejos y consuman mucho tiempo para realizar cambios.
La introduccin de las herramientas CASE para ayudar en este proceso ha
permitido que los diagramas puedan ser fcilmente creados y modificados,
mejorando la calidad de los diseos 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 diseo
de flujo de datos y anlisis estructural, hecho posible a travs de las mejoras
en las Herramientas CASE.

Pronto se reemplazaron los paquetes grficos por paquetes especializados que


habilitan la edicin, actualizacin e impresin en mltiples versiones de diseo.
Eventualmente, las herramientas grficas integradas con diccionarios de base
de datos para producir poderosos diseos y desarrollar herramientas, podran
sostener ciclos completos de diseo de documentos.
Como un paso final, la verificacin de errores y generadores de casos de
pruebas fueron incluidos para validar el diseo del software. Todos estos
procesos pueden saberse integrados en una simple herramienta CASE que
soporta todo el ciclo de desarrollo.
La introduccin de CASE integradas est comenzando a tener un impacto
significativo en los negocios y sistemas de informacin de las organizaciones.
Con un CASE integrado, las organizaciones pueden desarrollar rpidamente
sistemas de mejor calidad para soportar procesos crticos del negocio y asistir
en el desarrollo y promocin intensiva de la informacin de productos y
servicios. Estas herramientas pueden proveer muchos beneficios en todas las
etapas del proceso de desarrollo de software, algunas de ellas son:

Verificar el uso de todos los elementos en el sistema diseado.


Automatizar el dibujo de diagramas.
Ayudar en la documentacin del sistema.
Ayudar en la creacin de relaciones en la Base de Datos.
Generar estructuras de cdigo.
La principal ventaja de la utilizacin de una herramienta CASE, es la mejora de
la calidad de los desarrollos realizados y, en segundo trmino, el aumento de la
productividad. Para conseguir estos dos objetivos es conveniente contar con
una organizacin y una metodologa de trabajo, adems de la propia
herramienta.
Clasificacin de las Herramientas Case
No existe una nica clasificacin de herramientas CASE y, en ocasiones, es
difcil incluirlas en una clase determinada. Podran 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 funcin 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
tambin CASE workbench.
2. Herramientas de alto nivel, U-CASE (Upper CASE - CASE superior) o frontend, orientadas a la automatizacin y soporte de las actividades desarrolladas
durante las primeras fases del desarrollo: anlisis y diseo.
3. Herramientas de bajo nivel, L-CASE (Lower CASE - CASE inferior) o back-end,
dirigidas a las ltimas fases del desarrollo: construccin e implantacin.
4. Juegos de herramientas o Tools-Case, son el tipo ms simple de herramientas
CASE. Automatizan una fase dentro del ciclo de vida. Dentro de este grupo se
encontraran las herramientas de reingeniera, orientadas a la fase de
mantenimiento
Otra posible clasificacin, utilizando la funcionalidad como criterio principal, es
la
siguiente:
Herramientas de planificacin de sistemas de gestin. Sirven para
modelizar los requisitos de informacin estratgica de una organizacin.
Proporcionan un "metamodelo" del cual se pueden obtener sistemas de
informacin especficos. Su objetivo principal es ayudar a comprender mejor
cmo se mueve la informacin entre las distintas unidades organizativas.
Herramientas de anlisis y diseo. Permiten al desarrollador crear un
modelo del sistema que se va a construir y tambin la evaluacin de la validez
y consistencia de este modelo. Proporcionan un grado de confianza en la
representacin del anlisis y ayudan a eliminar errores con anticipacin. Se
tienen:

Herramientas de anlisis y diseo (Modelamiento).


Herramientas de creacin de prototipos y de simulacin.
Herramientas para el diseo y desarrollo de interfaces. Mquinas de
anlisis y diseo. (Modelamiento).

Herramientas de programacin. Se engloban aqu los compiladores, los


editores y los depuradores de los lenguajes de programacin convencionales.
Ejemplos de estas herramientas son:

Herramientas de codificacin convencionales.


Herramientas de codificacin de cuarta generacin.

Herramientas de programacin orientadas a los objetos.

Herramientas de integracin y prueba: Sirven de ayuda a la adquisicin,


medicin, simulacin y prueba de los equipos lgicos desarrollados. Entre las
ms utilizadas estn:

Herramientas de anlisis esttico.


Herramientas de codificacin de cuarta generacin.

Herramientas de programacin orientadas a los objetos.

Herramientas de gestin de prototipos. Los prototipos son utilizados


ampliamente en el desarrollo de aplicaciones, para la evaluacin de
especificaciones de un sistema de informacin, o para un mejor entendimiento
de cmo los requisitos de un sistema de informacin se ajustan a los objetivos
perseguidos.
Herramientas de mantenimiento: La
mantenimiento se puede subdividir en:

categora

de

Herramientas de ingeniera inversa.


Herramientas de reestructuracin y anlisis de cdigo.

Herramientas de reingeniera.

herramientas

de

Herramientas de gestin de proyectos. La mayora de las herramientas


CASE de gestin de proyectos, se centran en un elemento especfico de la
gestin del proyecto, en lugar de proporcionar un soporte global para la
actividad de gestin. Utilizando un conjunto seleccionado de las mismas se
puede: realizar estimaciones de esfuerzo, coste y duracin, hacer un
seguimiento continuo del proyecto, estimar la productividad y la calidad, etc..
Se incluyen dentro de las herramientas de control de proyectos las siguientes:

Herramientas de planificacin de proyectos.


Herramientas de seguimiento de requisitos.

Herramientas de gestin y medida.

Herramientas de soporte. Se engloban en esta categora las herramientas


que recogen las actividades aplicables en todo el proceso de desarrollo, como
las que se relacionan a continuacin:

Herramientas de documentacin.
Herramientas para software de sistemas.

Herramientas de control de calidad.

Herramientas de bases de datos.

CONCLUSIN:
Como se pudo observar, el desarrollo de un software es altamente complicado,
ya que es muy difcil lograr obtener un software confiable, es decir, que cumpla
con todas las expectativas que el usuario requiere, para ello el diseo, anlisis
y otras etapas son muy importantes, puesto que nos permite el menor margen
de error para la solucin del problema.
Las herramientas CASE con el mejor mtodo para el anlisis y soluciones de
software, ya que mejoran los aspectos claves en el desarrollo de los sistemas
de informacin, las CASE han sido creadas para la automatizacin de procesos
de anlisis, diseo e implementacin, dndonos componentes que hacen que
los proyectos sean cada da ms eficientes para los usuarios.

BIBLIOGRAFA

http://definicion.de/ingenieria-de-software/#ixzz4IxR8gNGu

http://zeus.inf.ucv.cl/~bcrawford/AULA_ICI441/Ingenieria%20del
%20Software%207ma.%20Ed.%20-%20Ian%20Sommerville.pdf

http://www.slideshare.net/itlac/etapas-de-desarrollo-software

http://es.slideshare.net/waralivt/desarrollo-estructurado

http://ithuejutlajhh.blogspot.mx/2013/02/fundamentos-de-ingenieria-desoftware.html

http://paulchasiluisa.galeon.com/

http://www.monografias.com/trabajos73/herramientas-case-procesodesarrollo-software/herramientas-case-proceso-desarrollosoftware.shtml#ixzz4IxjnzC5O

También podría gustarte