Monografias | Ingeniería de SoftwareIngeniería de SoftwareResumen: Objetivos de la ingeniería de software. Competitividad. Estrategias para su desarrollo. Método del ciclo de vida clásico. Método de desarrollo por análisis estructurado. Diccionario de datos. Diagrama de estructura de datos. Gráfica de estructura. Etapas del método de prototipos. Coordinación y Gestión del proyecto. Mediciones y estimaciones. Reingeniería e ingeniería inversa. Ingenieria de software Indice Este término fue introducido a finales de los 60 a raíz de la crisis delsoftware. Esta crisis fue el resultado de la introducción de la tercera generacióndel hardware. El hardware dejo de ser un impedimento para el desarrollo de la informática;redujo los costos y mejoro la calidad y eficiencia en el software producido La crisis se caracterizo por los siguientes problemas:
Por otra parte se exige que el software sea eficaz y barato tanto en eldesarrollo como en la compra. Tambien se requiere una serie de características como fiabilidad, facilidadde mantenimiento y de uso, eficiencia, etc. 2. Objetivos de la ingeniería de software En la construcción y desarrollo de proyectos se aplican métodos y técnicaspara resolver los problemas, la informática aporta herramientas yprocedimientos sobre los que se apoya la ingeniería de software.
Objetivos de los proyectos de sistemas Para que los objetivos se cumplan las empresas emprendenproyectos por las siguientes razones: "Las cinco C " Capacidad Las actividades de la organización están influenciadas porla capacidad de ésta para procesar transacciones con rapidez y eficiencia. Los sistemas de información mejoran esta capacidad en tresformas. * Aumentan la velocidad de procesamiento: Los sistemas basados en computadora pueden ser de ayuda paraeliminar la necesidad de cálculos tediosos y comparaciones repetitivas. Un sistema automatizado puede ser de gran utilidad si lo quese necesita es un procesamiento acelerado. *Aumento en el volumen: La incapacidad para mantener el ritmo de procesamiento nosignifica el abandono de los procedimientos existentes. Quizá éstos resulteninadecuados para satisfacer las demandas actuales. En estas situaciones elanalista de sistemas considera el impacto que tiene la introducción deprocesamiento computarizado, si el sistema existente es manual. Es poco probableque únicamente el aumento de la velocidad sea la respuesta. El tiempo deprocesamiento por transacción aumenta si se considera la cantidad deactividades comerciales de la empresa junto con su patrón de crecimiento. * Recuperación más rápida de la información: Las organizaciones almacenan grandes cantidades de datos, poreso, debe tenerse en cuenta donde almacenarlos y como recuperarlos cuando se losnecesita. Cuando un sistema se desarrolla en forma apropiada, se puederecuperar en forma rápida la información. Costo * Vigilancia de los costos: Para determinar si la compañía evoluciona en la formaesperada, de acuerdo con lo presupuestado, se debe llevar a cabo el seguimientode los costos de mano de obra, bienes y gastos generales. La creciente competitividad del mercado crea la necesidad demejores métodos para seguir los costos y relacionarlos con la productividadindividual y organizacional. * Reducción de costos: Los diseños de sistemas ayudan a disminuir los costos, yaque toman ventaja de las capacidades de cálculo automático y de recuperaciónde datos que están incluidos en procedimientos de programas en computadora.Muchas tareas son realizadas por programas de cómputo, lo cual deja un númeromuy reducido de éstas para su ejecución manual, disminuyendo al personal. Control *Mayor seguridad de información: Algunas veces el hecho de que los datos puedan ser guardadosen una forma adecuada para su lectura por medio de una máquina, es unaseguridad difícil de alcanzar en un medio ambiente donde no existencomputadoras. Para aumentar la seguridad, generalmente se desarrollansistemas de información automatizados. El acceso a la información puede estarcontrolado por un complejo sistemas de contraseñas, limitado a ciertas áreas opersonal, si está bien protegido, es difícil de acceder. *Menor margen de error: (mejora de la exactitud y laconsistencia) Esto se puede lograr por medio del uso de procedimientos decontrol por lotes, tratando de que siempre se siga el mismo procedimiento. Cadapaso se lleva a cabo de la misma manera, consistencia y con exactitud: por otraparte se efectúan todos los pasos para cada lote de transacciones. A diferenciadel ser humano, el sistema no se distrae con llamadas telefónicas, ni olvidos einterrupciones que sufre el ser humano. Si no se omiten etapas, es probable queno se produzcan errores. Comunicación La falta de comunicación es una fuente común dedificultades que afectan tanto a cliente como a empleados. Sin embargo, lossistemas de información bien desarrollados amplían la comunicación yfacilitan la integración de funciones individuales. * Interconexión: ( aumento en la comunicación) Muchas empresas aumentan sus vías de comunicación por mediodel desarrollo de redes para este fin, dichas vías abarcan todo el país y lespermiten acelerar el flujo de información dentro de sus oficinas y otrasinstalaciones que no se encuentran en la misma localidad. Una de las características más importantes de los sistemasde información para oficinas es la transmisión electrónica de información,como por ejemplo, los mensajes y los documentos. * Integración de áreas en las empresas: Con frecuencia las actividades de las empresas abarcan variasáreas de la organización, la información que surge en un área se necesita enotra área, por ejemplo. Los sistemas de información ayudan a comunicar los detallesdel diseño a los diferentes grupos, mantienen las especificaciones esencialesen un sitio de fácil acceso y calculan factores tales como el estrés y elnivel de costos a partir de detalles proporcionados por otros grupos. Los sistemas de información computacionales son un armaestratégica, capaz de cambiar la forma en que la compañía compite en elmercado, en consecuencia éstos sistemas mejoran la organización y la ayudan aganar "ventaja competitiva", sin embargo, si los competidores de lacompañía tienen capacidades mas avanzadas para el procesamiento de información,entonces los sistemas de información pueden convertirse en una "desventajacompetitiva". Una organización puede ganar ventaja competitiva a travésde sus sistemas de información de diferentes formas. * Asegurar clientes: Como los clientes son los más importante para una organización,los directivos buscan diferentes formas para conseguir nuevos clientes ymantener los que tienen. Para eso las empresas proporcionan: 1- Mejores precios 2- Servicios exclusivos. 3- Productos diferentes. La ventaja en precios se observa continuamente en laactividad comercial (sí el producto es exclusivo o distinto entonces tener elliderazgo en precios bajos quizás no sea el objetivo a alcanzar). La estrategia eficaz de precios a menudo se alcanza aldesarrollar sistemas de información por razones tales como reducción de costosy ganancia en la exactitud. Generalmente cuando una compañía puede ofrecer serviciosexclusivos y atraer clientes, es posible que los competidores no sean capaces deatraer a los clientes de la compañía. * Dejar fuera a los competidores: Pasar sobre los competidores puede ser un inconveniente siellos se encuentran la forma para duplicar los logros de la compañía, lossistemas de información pueden ser la base para dejar fuera del mercado a lacompetencia ya sea el disuadir sus intentos por ingresar al mercado o creándolesobstáculo para su entrada. *Mejores acuerdos con los proveedores: En los negocios, los proveedores también tienen importanciaestratégica. Una manera de utilizar los sistemas de información para favorecerarreglos con los proveedores es ofreciendo un mejor precio. Disminuyendo loscostos. *Formar bases para nuevos productos Los sistemas de información también forman la base demuchos productos y servicios nuevos. Los servicios de base de datos experimentan un crecimientocomún en todas las industrias. Productos que van desde programas personales hasta planes deconstrucción pueden hacerse a la medida del cliente gracias al procesamiento deinformación. Una cosa es clara, es necesario que los sistemas entren enoperación y que trabajen de manera confiable. 4. Estrategias para su desarrollo Los sistemas de información basados en computadoras sirvenpara diversas finalidades que van desde el procesamiento de las transacciones deuna empresa hasta proveer de la información necesaria para decidir sobreasuntos que se presentan con frecuencia. En algunos casos los factores que deben considerarse en unproyecto de sistema de información, como el aspecto más apropiado de lacomputadora o la tecnología de comunicaciones que se va a utilizar, el impactodel nuevo sistema sobre los empleados de la empresa y las características específicasque el sistema debe tener se pueden determinar de manera secuencial. Todas estassituaciones están determinadas por tres métodos básicos: 5. Método del ciclo de vida clásico El método del ciclo de vida para desarrollo de sistemas esel conjunto de actividades que los analistas, diseñadores y usuarios realizanpara desarrollar e implantar un sistema de información. El método del ciclo de vida para el desarrollo de sistemasconsta de las siguientes actividades: 1) Investigación preliminar La solicitud para recibir ayuda de un sistema de informaciónpueden originarse por una persona, cuando se formula la solicitud comienza laprimera actividad del sistema. Esta actividad tiene tres partes: *Aclaración de la solicitud Antes de considerar cualquier investigación de sistemas, lasolicitud de proyecto debe examinarse para determinar con precisión lo que elsolicitante desea; ya que muchas solicitudes que provienen de empleados yusuarios no están formuladas de manera clara. *Estudio de factibilidad En la investigación preliminar un punto importante esdeterminar que el sistema solicitado sea factible. Existen tres aspectosrelacionados con el estudio de factibilidad, que son realizados por los generalpor analistas capacitados o directivos: -Factibilidad técnica. Estudia si el trabajo para el proyecto, puede desarrollarsecon el software y el personal existente, y si en caso de necesitar nuevatecnología, cuales son las posibilidades de desarrollarla (no solo elhardware). -Factibilidad económica. Investiga si los costos se justifican con los beneficios quese obtienen, y si se ha invertido demasiado, como para no crear el sistema si secree necesario. -Factibilidad operacional: Investiga si será utilizado el sistema, si los usuariosusaran el sistema, como para obtener beneficios. * Aprobación de la solicitud Algunas organizaciones reciben tantas solicitudes de susempleados que sólo es posible atender unas cuantas. Sin embargo, aquellosproyectos que son deseables y factibles deben incorporarse en los planes. Enalgunos casos el desarrollo puede comenzar inmediatamente, aunque lo común esque los miembros del equipo de sistemas estén ocupados en otros proyectos.Cuando esto ocurre, la administración decide que proyectos son los másimportantes y el orden en que se llevarán acabo. Después de aprobar la solicitud de un proyecto se estima sucosto, el tiempo necesario para terminarlo y las necesidades de personal 2) Determinación de los requisitos del sistema. Los analistas, al trabajar con los empleados yadministradores, deben estudiar los procesos de una empresa para dar respuesta aciertas preguntas claves. Para contestar estas preguntas, el analista conversa convarias personas para reunir detalles relacionados con los procesos de laempresa. Cuando no es posible entrevistar, en forma personal a los miembros degrupos grandes dentro de la organización, se emplean cuestionarios para obteneresta información. Las investigaciones detalladas requieren el estudio demanuales y reportes, la observación en condiciones reales de las actividadesdel trabajo y, en algunas ocasiones, muestras de formas y documentos con el finde comprender el proceso en su totalidad. Reunidos los detalles, los analistas estudian los datos sobrerequerimientos con la finalidad de identificar las características que debetener el nuevo sistema. 3)Diseño del sistema.(diseño lógico) El diseño de un sistema de información responde a la formaen la que el sistema cumplirá con los requerimientos identificados durante lafase de análisis. Es común que los diseñadores hagan un esquema del formato opantalla que esperan que aparezca cuando el sistema esta terminado, se realizaen papel o en la pantalla de una terminal utilizando algunas de las herramientasautomatizadas disponibles para el desarrollo de sistemas. También se indican los datos de entrada, los que seráncalculados y los que deben ser almacenados. Los diseñadores seleccionan lasestructuras de archivo y los dispositivos de almacenamiento. Los procedimientosque se escriben indican cómo procesar los datos y producir salidas. Los documentos que contienen las especificaciones de diseñorepresentan a éste mediante diagramas, tablas y símbolos especiales. La información detallada del diseño se proporciona alequipo de programación para comenzar la fase de desarrollo de software. Los diseñadores son responsables de dar a los programadoreslas especificaciones de software completas y claramente delineadas. 4) Desarrollo de software (diseño físico). Los encargados de desarrollar software pueden instalarsoftware comprado a terceros o escribir programas diseñados a la medida delsolicitante. La elección depende del costo de cada alternativa, del tiempodisponible para escribir el software y de la disponibilidad de losprogramadores. Los programadores son responsables de la documentación delos programas y de explicar su codificación, esta documentación es esencialpara probar el programa y hacer el mantenimiento. 5) Prueba de sistemas. Durante esta fase, el sistema se emplea de maneraexperimental para asegurarse que el software no tenga fallas, es decir, quefunciona de acuerdo con las especificaciones y en la forma en que los usuariosesperan que lo haga. Se alimentan como entradas conjuntos de datos de pruebapara su procesamiento y después se examinan los resultados. En ocasiones sepermite que varios usuarios utilicen el sistema, para que los analistas observensi tratan de emplearlo en formas no previstas, antes de que la organizaciónimplante el sistema y dependa de él. En muchas organizaciones, las pruebas son conducidas porpersonas ajenas al grupo que escribió los programas originales; para asegurarsede que las pruebas sean completas e imparciales y, por otra, que el software seamás confiable. 6) Implantación y evaluación. La implantación es el proceso de verificar e instalar nuevoequipo, entrenar a los usuarios, instalar la aplicación y construir todos losarchivos de datos necesarios para utilizarla. Cada estrategia de implantación tiene sus méritos deacuerdo con la situación que se considere dentro de la empresa. Sin importar cuálsea la estrategia utilizada, los encargados de desarrollar el sistema procuranque el uso inicial del sistema se encuentre libre de problemas. Los sistemas de información deben mantenerse siempre al día,la implantación es un proceso de constante evolución. La evaluación de un sistema se lleva a cabo para identificarpuntos débiles y fuertes. La evaluación ocurre a lo largo de cualquiera de lassiguientes dimensiones:
Valoración de la forma en que funciona el sistema,incluyendo su facilidad de uso, tiempo de respuesta, lo adecuado de los formatosde información, confiabilidad global y nivel de utilización.
Identificación y medición de los beneficios para laorganización en áreas como finanzas (costos, ingresos y ganancias), eficienciaoperacional e impacto competitivo. - Opinión de los administradores Evaluación de las actitudes de directivos y administradoresdentro de la organización así como de los usuarios finales.
La evaluación del proceso de desarrollo de acuerdo concriterios tales como tiempo y esfuerzo de desarrollo, concuerdan conpresupuestos y estándares, y otros criterios de administración de proyectos. Cuando la evaluación de sistema se conduce en forma adecuadaproporciona mucha información que puede ayudar a mejorar la efectividad de losesfuerzos cuando la evaluación de sistemas se conduce en forma adecuadaproporciona mucha información que puede ayudar a mejorar la efectividad de losesfuerzos de desarrollo de aplicaciones subsecuentes. 6. Método de desarrollo por análisisestructurado Muchos especialistas en sistemas de información reconocen ladificultad de comprender de manera completa sistemas grandes y complejos. El métodode desarrollo del análisis estructurado tiene como finalidad superar estadificultad por medio de:
El método incorpora elementos tanto de análisis como dediseño El análisis estructurado se concentra en especificar lo quese requiere que haga el sistema o la aplicación. Permite que las personasobserven los elementos lógicos (lo que hará el sistema) separados de loscomponentes físicos (computadora, terminales, sistemas de almacenamiento,etc.). Después de esto se puede desarrollar un diseño físico eficiente parala situación donde será utilizado. El análisis estructurado es un método para el análisis desistemas manuales o automatizados, que conduce al desarrollo de especificacionespara sistemas nuevos o para efectuar modificaciones a los ya existentes. Ésteanálisis permite al analista conocer un sistema o proceso en una forma lógicay manejable al mismo tiempo que proporciona la base para asegurar que no seomite ningún detalle pertinente. Componentes Símbolos gráficos: Iconos y convenciones para identificar ydescribir los componentes de un sistema junto con las relaciones entre estoscomponentes. Diccionario de datos: descripción de todos los datos usadosen el sistema. Puede ser manual o automatizado. Descripciones de procesos y procedimientos: declaracionesformales que usan técnicas y lenguajes que permiten a los analistas describiractividades importantes que forman parte del sistema. Reglas: estándares para describir y documentar el sistema enforma correcta y completa. Diseño Estructurado. El diseño Estructurado es otro elemento del Método deDesarrollo por Análisis Estructurado que emplea la descripción gráfica, seenfoca en el desarrollo de especificaciones del software. El objetivo del Diseño Estructurado es programas formadospor módulos independientes unos de otros desde el punto de vista funcional. El Diseño Estructurado es una técnica específica para eldiseño de programas. La herramienta fundamental del Diseño Estructurado es eldiagrama estructurado que es de naturaleza gráfica y evitan cualquierreferencia relacionada con el hardware o detalles físicos. Su finalidad no esmostrar la lógica de los programas (que es la tarea de los diagramas de flujo).Los Diagramas Estructurados describen la interacción entre módulosindependientes junto con los datos que un módulo pasa a otro cuandointeracciona con él. Análisis de flujo de datos. Estudia el empleo de los datos para llevar a cabo procesosespecíficos de la empresa dentro del ámbito de una investigación de sistemasusa los diagrama de flujos de datos y los diccionarios de datos. Herramientas Las herramientas muestran todas las característicasesenciales del sistema y la forma en que se ajustan entre si, como es muy difícilentender todo un proceso de la empresa en forma verbal, las herramientas ayudana ilustrar los componentes esenciales de un sistema, junto con sus acciones. Diagrama de flujo de datos Es el modelo del sistema. Es la herramienta mas importante yla base sobre la cual se desarrollan otros componentes. El modelo original se detalla en diagramas de bajo nivel quemuestran características adicionales del sistema. Cada proceso puededesglosarse en diagramas de flujos de datos cada vez más detallados. Repitiéndoseesta secuencia hasta que se obtienen suficientes detalles para que el analistacomprenda la parte del sistema que se encuentra bajo investigación. El diagrama físico de datos da un panorama del sistema enuso, dependiente de la implantación, mostrando cuales tareas se hacen y comoson hechas. Incluyen nombres de personas, nombres o números de formato ydocumento, nombres de departamentos, archivos maestro y de transacciones, equipoy dispositivos utilizados, ubicaciones, nombres de procedimientos. El diagrama lógico de datos da un panorama del sistema, peroa diferencia del físico es independiente de la implantación, que se centra enel flujo de datos entre los procesos, sin considerar los dispositivos específicosy la localización de los almacenes de datos o personas en el sistema. Sinindicarse las características físicas. Notaciones: son cuatro símbolos, que fueron desarrollados ypromovidos la mismo tiempo por dos organizaciones: Yourdon y Gane y Sarson. Flujo de datos: son movimientos de datos en una determinadadirección, desde un origen hasta un destino. Es un paquete de datos. Yourdon Gane y Sarson Proceso: son personas, procedimientos o dispositivos que utilizan o producendatos. No identifica el componente físico Fuente o destino de los datos: pueden ser personas,programas, organizaciones u otras entidades que interactúan con el sistema peroque se encuentre fuera. Almacenamiento de datos: es un lugar donde se guardan losdatos. El almacenamiento de datos puede representar dispositivos tantocomputarizados como no computarizados. Cada componente en un diagrama de flujo de datos tiene unaetiqueta con un nombre descriptivo. Los nombres de los procesos reciben unnumero para poder identificarlos, este numero tiene un valor adicional cuando seestudian los componentes que integran un proceso especifico 7. Diccionario de datos. Contiene las características lógicas de los sitios donde sealmacenan los datos del sistema, incluyendo nombre, descripción, alias,contenido y organización. Identifica los procesos donde se emplean los datos ylos sitios donde se necesita el acceso inmediato a la información, sedesarrolla durante el análisis de flujo de datos y auxilia a los analistas queparticipan en la determinación de los requerimientos del sistema, su contenidotambién se emplea durante el diseño. Razones para su utilización:
Determina si son necesarias nuevas características o si están en orden los cambios de cualquier tipo. Se abordan las características: * Naturaleza de las transacciones: las actividades de la empresa que se llevan a cabo mientras se emplea el sistema. * Preguntas: solicitudes para la recuperación o procesamiento de información para generar una respuesta especifica. * Archivos y bases de datos: detalles de las transacciones y registros maestros que son de interés para la organización. * Capacidad del sistema: Habilidad del sistema para aceptar, procesar y almacenar transacciones y datos 5- Localizar errores y omisiones en el sistema, detectandificultades, y las presentan en un informe. Aun en los manuales, se revelanerrores. Contenido de un registro del diccionario El diccionario tiene dos tipos de descripciones para el flujode datos del sistema, son los elementos datos y estructura de datos. Elemento dato: son los bloques básicos para todos los demásdatos del sistema, por si mismos no le dan un significado suficiente al usuario.Se agrupan para formar una estructura de datos. Descripción: Cada entrada en el diccionario consiste de unconjunto de detalles que describen los datos utilizados o producidos por elsistema. Cada uno esta identificado con: Un nombre: para distinguir un dato de otro. Descripción: indica lo que representa en el sistema. Alias: porque un dato puede recibir varios nombres,dependiendo de quien uso este dato. Longitud: porque es de importancia de saber la cantidad deespacio necesario para cada dato. Valores de los datos: porque en algunos procesos solo sonpermitidos valores muy específicos para los datos. Si los valores de los datosestán restringidos a un intervalo especifico, esto debe estar en la entrada deldiccionario. Estructura de datos: es un grupo de datos que estánrelacionados con otros y que en conjunto describen un componente del sistema. Descripción: Se construyen sobre cuatro relaciones de componentes. Sepueden utilizar las siguientes combinaciones ya sea individualmente o enconjunción con alguna otra. Relación secuencial: define los componentes que siempre seincluyen en una estructura de datos. Relación de selección: (uno u otro), define lasalternativas para datos o estructuras de datos incluidos en una estructura dedatos. Relación de iteración: (repetitiva), define la repeticiónde un componente. Relación opcional: los datos pueden o no estar incluidos, osea, una o ninguna iteración. Notación Los analistas usan símbolos especiales con la finalidad deno usar demasiada cantidad de texto para la descripción de las relaciones entredatos y mostrar con claridad las relaciones estructurales. En algunos casos seemplean términos diferentes para describir la misma entidad (alias) estos serepresentan con un signo igual (=) que vincula los datos. 8. Diagrama de estructura de datos Es una descripción de la relación entre entidades(personas, lugares, eventos y objetos) de un sistema y el conjunto de informaciónrelacionado con la entidad. Finalidades:
Notación Una común se usa al preparar los diagramas de estructura de datos. Lasentidades se representan mediante rectángulos, con el nombre de la entidad enla parte de arriba y una lista de atributos que describan la entidad. Cadaentidad se puede identificar mediante un atributo llave. Uso en el diseño de archivo. El uso de los diagramas de estructura de datos requiere que el analista hagapreguntas importantes acerca de la entidad a describir. La llave de registro,identifica de una forma única a la cuenta. Los demás detalles son losatributos. Además de los componentes básicos existen dos elementos adicionalesesenciales: * Apuntadores atributos: enlazan dos entidades mediante la información común,usualmente un atributo llave en uno y un atributo (no llave) en el otro. * Apuntadores lógicos: identifican las relaciones entre las entidades,sirven para obtener acceso inmediato a la información en una entidad,definiendo un atributo llave en otra entidad. Usualmente se indican en la parte inferior del diagrama, son los enlaces conlas demás entidades incluidas en el diagrama. Compartir datos entre las aplicaciones. Cada sistema se puede desarrollar por separado, guardando los datos de losestados de cuenta aparte de los datos del inventario. Al desarrollar massistemas y crecer su utilidad, muy seguido existe la necesidad de integrar lossistemas para permitir que la información sea compartida por mas de un sistema. Redundancia e integridad: Si cada sistema se desarrolla en forma independiente, la información puedeser almacenada al menos una vez en cada sistema, éste además de requerirespacio de almacenamiento extra, esta duplicación es llamada redundancia, parareducir la integridad de la información; cuando se duplica información es muyprobable de que los detalles no coincidan o que no todos sean actualizados.Resultando la perdida de integridad en los datos, pudiendo ser corregidomejorando los procedimientos. Se puede evitar del todo disminuyendo la redundancia de datos en losarchivos. Muestra con símbolos la relación entre los módulos de procesamiento y elsoftware de la computadora. Describen la jerarquía de los módulos componentesy los datos que serán transmitidos entre ellos. Incluye el análisis de lastransformaciones entrada-salida y el análisis de transacción. Las flechas con una circunferencia indican datos, mientras que las que tienenun circulo representa información de control de programa, tales como notas ocondiciones de error. Diagrama de contexto Se pueden usar diagramas de flujos de datos para representar el sistema acualquier nivel de abstracción. El diagrama de flujo de dato de nivel 0 sellama diagrama de contexto y en él el sistema esta representado por un soloproceso, que identifica cual es la función principal del sistema, mostrandoademás, los flujos de información que lo relacionan con otros sistemas: lasentidades externas. El diagrama de contexto tiene una gran importancia puestoque resume el requisito principal del sistema de recibir ciertas entradas,procesarlas de acuerdo con determinada función y generar ciertas salidas. Apartir del diagrama de contexto se puede ir construyendo nuevos diagramas quevayan definiendo con mayor nivel de detalle lo flujos de datos y procesos detransformación que ocurren en el sistema, de forma que al final obtenemos unajerarquía de diagramas. Método del desarrollo por prototipos Los sistemas pueden desarrollarse con métodos y lenguajes deprogramación convencionales, aunque no tengan todas las características ytoques finales de un sistema terminado. Quizás los informes no tenganencabezados, logos, etc., falten controles de entradas y procesamiento. Loimportante es el ensayo, y hallar los requerimientos. Los generadores de aplicaciones, son programas que sirvenpara hacer otros programas, son un apoyo en la construcción de prototipos,permitiendo definir la estructura visual de las pantallas, los registros deentrada y el formato de los informes. En algunos casos donde el sistema no será utilizadofrecuentemente, puede convertirse el prototipo en el sistema terminado, o bien,cuando no son muchos los beneficios que se obtienen. Razones para desarrollar prototipos de sistemas Los requerimientos de información no siempre están biendefinidos, pueden ser demasiados vagos aún al formular el diseño. En otroscasos, es probable que una investigación de sistemas bien llevada, de comoresultado un conjunto muy amplio de requerimientos de sistemas, pero construirun sistema que satisfaga a todos ellos quizás necesite del desarrollo de nuevatecnología. Los prototipos permiten evaluar situaciones extraordinariasdonde los encargados de diseñar e implantar sistemas no tienen información niexperiencia, o también donde existen situaciones de riesgo y costos elevados, yaquellas donde el diseño propuesto es novedoso y aún no ha sido probada. La información obtenida con su uso se aplica en un nuevodiseño que se emplea, otra vez, como prototipo y que revela más informaciónvaliosa sobre diseño. El proceso se repite las veces que sea necesario pararevelar los requerimientos esenciales del diseño. Maquetas Cuando se comienza el desarrollo, tiene por objetivopresentar a los usuarios y/o clientes la apariencia del sistema final. Losusuarios pueden manifestar su opinión. Ambos métodos son muy útiles para establecer la viabilidaddel proyecto y definir acuerdos sobre los objetivos y resultados esperados. 10. Etapas del método de prototipos 1- Identificación de requerimientos conocido. La determinación de los requerimientos de una aplicación estan importante para el método de desarrollo de prototipo como lo es para los métodosdel ciclo clásico de desarrollo de sistemas o análisis estructurado (aunquelas tácticas son diferentes). Por consiguiente, antes de crear el prototipo,los analistas y usuarios deben trabajar juntos para identificar losrequerimientos conocidos que tiene que satisfacerse. Para hacerlo determinan losfines para lo que servirá el sistema y el alcance de sus capacidades. 2- Desarrollo de un modelo de trabajo Es útil comenzar el proceso de construcción del prototipocon el desarrollo de un plan general que permita a las personas conocer lo quese espera de ellas y del proceso de desarrollo. Es difícil, y en ocasionesimposibles, fijar una fecha tentativa de terminación. La experiencia con elsistema es la que determina eventualmente cuando en sistema esta terminado. Para comenzar la primera iteración, usuarios y analistasidentifican de manera conjunta los datos que son necesarios para el sistema yespecifican la salida que debe producir la aplicación. Las decisiones de diseño necesarias para desarrollar lasalida del sistema cambian muy poco en relación con las tomadas en otros métodosde desarrollo. Sin embargo, con un prototipo, se espera que las especificacionesiniciales estén incompletas. En el desarrollo de un prototipo se preparan los siguientescomponentes: *El lenguaje para el diálogo o conversación entre elusuario y el sistema *Pantallas y formato para la entrada de datos *módulos esenciales de procesamiento *Salida del sistema Al construir el prototipo se deben seguir los estándarespara datos que emplea la organización. En esta etapa es más importante la rapidez con que seconstruye el prototipo que la eficiencia de operación. Es por esto que elanalista no intenta optimizar la velocidad de operación del sistema Durante la evaluación los analistas de sistemas deseancapturar 3)El prototipo y el usuario Es responsabilidad del usuario trabajar con prototipo yevaluar su característica y operación. La experiencia con el sistema bajocondiciones permite obtener la familiaridad indispensable para determinar loscambios o mejoras que sean necesarios así como la eliminación de característicasinadecuadas o innecesarias. 4)Revisión del prototipo información sobre los que les gusta y los que les desagradaa los usuarios. La información obtenida tendrá influencia sobre las característicasde la siguiente versión de la aplicación. Los cambios al prototipo son planificados con los usuariosantes de llevarlos a cabo. El analista es el responsable de realizar lasmodificaciones. 5) Repetición del proceso las veces que sea necesario. El proceso finaliza cuando los usuarios y analistas están deacuerdo en que el sistema ha evolucionado lo suficiente como para incluir todaslas características necesarias o cuando ya es evidente que no se obtendrámayor beneficio. 6) El abandono o dejarlo como esta: Cuando se verifica de que no es posible desarrollar el sistema parasatisfacer los objetivos deseados, ya sea por la tecnología existente o por elfactor economico. 11. Coordinación y Gestión del proyecto. La gestión del proyecto presupone establecer condicionespara el desarrollo del mismo. Involucra actividades de: planificación, estimaciónde recursos, seguimiento y control y evaluación del proyecto.
Proceso de Iniciación del Proyecto. Abarca aquellas actividades de creación de la estructura delproyecto. Durante este ciclo se define el ciclo de vida del software para esteproyecto y se establecen en los planes para su gestión. Se estiman y asignanlos recursos necesarios a fin de ejecutar las distintas tareas que demanda elproyecto. Se identifican y seleccionan estándares, metodologías y herramientaspara la gestión y ejecución del mismo y, por último, se prepara y estableceun plan para su implementación adecuada y oportuna. El plan de Gestión delProyecto Software que conducirá el desarrollo se produce como culminación deeste proceso. El software al ser intangible, no tener peso, ni volumen, nisuperficie, etc. se mide a través de diversos aspectos clave en el desarrollo.La medición determina cuales son los aspectos y proporcionan métodos paramedirlos. La medición y estimación atacan los tres problemas clavesde la ingeniería del software:
Teniendo en cuenta estos objetivos, las métricas se centranen cuatro aspectos: Para estimar los recursos es necesario tener en cuenta unaserie de factores de riesgo que influyen sustancialmente en la precisión de lasestimaciones de los recursos humanos necesarios para la realización delproyecto. Los mas importantes son: *Complejidad de la tarea. *Modificaciones permitidas a lo largo del desarrollo *Experiencia previa de los desarrolladores *Duración fijada del proyecto. *Estructuración del problema y de las tareas. *Disponibilidad de datos e información suministrada por elusuario. *Disponibilidad y facilidad de comunicación con el usuario. Además de las fases estándar del desarrollo, hay que teneren cuenta la coordinación y seguimiento del proyecto que suponen una importantecarga de trabajo y que son olvidadas durante la planificación o no se le dedicamucho. El costo global se compone de las partidas de viajes,hardware (nuevo o actualización), software (en caso de comprar algún paquetepara el desarrollo), gastos comunes, y personal que es el mas influyente, ya queel costo de un proyecto es directamente proporcional a los recursos humanos. El proceso engloba todas las actividades y fases que sellevan a cabo durante la realización del proyecto. Se persigue determinar si encada fase los resultados producidos se corresponden con los esperados y enestablecer un control sobre los recursos estimados para cada una de las fases. El producto incluye cualquier documento o softwaredesarrollado que se genere durante el proceso completo. En las medidas deproductos software existen medidas directas (costo del proyecto, esfuerzoempleado, líneas de código implementadas, etc.) y medidas indirectas ( funcionalidad, fiabilidad, eficiencia, facilidad demantenimiento, etc.). Herramientas para el desarrollo de sistemas Las herramientas son cualquier dispositivo que, empleándoseadecuadamente, mejora el desempeño del desarrollo de sistemas de información. Se agrupan en las tres siguientes herramientas automatizadas: Herramientas de tipo Front-end Automatizan las primeras actividades del proceso dedesarrollo de sistemas. Esta herramienta proporciona soporte para el desarrollo demodelos gráficos de sistemas y procesos Los diagramas de flujo son representativos de este tipo deherramientas. Herramientas para análisis Éstas herramientas ayudan a los especialistas en sistemas adocumentar un sistema existente, ya sea manual o automatizado. También sirvepara determinar los requerimientos de una nueva aplicación. Incluye: - Herramientas para recolección de datos: capturan detallesque describen sistemas y procedimientos en uso. Documentan procesos yactividades de decisión, se utilizan para apoyar la tarea de identificarrequerimientos. - Herramientas para diagramación: crean representaciones gráficasde sistemas y actividades. Apoyan el dibujo y revisión de diagramas de flujosde datos e iconos asociados con el análisis estructurado. Incluyen programaspara representación en diagramas de flujo. - Herramientas para el diccionario: registran y mantienendescripciones de los elementos del sistema, como grupo de datos, procesos,alimentos de datos, etc. Frecuentemente proporcionan la capacidad de examinarlas descripciones del sistema, para decidir si son incompletas o inconsistentes. Herramientas para diseño Apoyan el proceso de formular las características que elsistema debe tener para satisfacer los requerimientos deseados durante lasactividades de análisis. Incluye: - Herramienta de especificación: apoyan el proceso deformular las características, como por ejemplo deben tener una aplicación comoentradas, salidas, procesamientos específicos de control. - Herramienta para presentación: se utilizan para describirla posición de datos, mensajes, y encabezados sobre las pantallas de lasterminales, informes y otros medios de entradas y salidas. Los analistas utilizan las herramientas para el diseño desistemas desde el inicio de la era de las computadoras. Ahora a las herramientasse le están dando un nuevo significado en el diseño de software. Herramientas de tipo back-end Su finalidad es ayudar al analista a formular la lógica delprograma, los algoritmos de procesamiento y la descripción física de datos. Tambien ayudan a la intersección con los dispositivos (paraentrada y salida). Estas actividades convierten los diseños lógicos delsoftware en un código de programación; este es que da existencia a la aplicación. Herramientas para el desarrollo Ayudan al analista a trasladar los diseños en aplicacionesfuncionales. Incluye: - Herramientas para ingeniería Software: apoyan el proceso de formular diseñosde software, incluyendo procesamientos y controles. - Generadores de códigos: producen el código fuente y las aplicaciones apartir de especificaciones funcionales bien articuladas - Herramientas para pruebas: apoyan la fase evaluación de un sistema.Incluyen facilidades para examinar la correcta operación del sistema. Herramientas integrales Proporcionan un ambiente que automatiza tareas claves a lo largo del procesode desarrollo. Estas herramientas facilitan el diseño, administración ymantenimiento del código. Brinda un ambiente eficiente para crear, almacenar,manipular y documentar sistemas. 13. Reingeniería e ingeniería inversa Los conceptos de reingeniería e ingeniería inversa estánligados al desarrollo de software a gran escala, donde una mejora en proceso deeste desarrollo supone un aumento en la competitividad de la empresa. Aunque hay que tener en cuenta que esta mejora es, en generala largo plazo (normalmente de uno a dos años) ambas actividades, estánorientadas a automatizar el mantenimiento de aplicaciones. Esta es una tarea queconsume gran cantidad de recursos, por lo que cualquier reducción en el tiempoy recursos empleados en ella supone una importante mejora en la productividaddel proceso. Este es el principal objetivo de la reingeniería. Se trata, deanalizar el código o el diseño actual y modificarlo con la ayuda deherramientas automáticas para traducirlos a códigos mas estructurados, y máseficientes. Dentro de la reingeniería, el proceso de pasar del código auna descripción de mas alto nivel es lo que se denomina: Ingeniería inversa. La reingeniería e ingeniería inversa prolongan la vida delsoftware. Dado que es una labor estratégica, es conveniente conocercuando conviene realizar la tarea de reingeniería para una aplicación y cuándoes más rentable sustituirla e implementar una nueva. Las aplicaciones para elprimer paso, son aquellas en la que se produce las siguientes situaciones:
Desarrollo de software con y para reuso El desarrollo de software con reúso consiste en desarrollaruna aplicación usando software ya existente. Cualquier profesional lo utiliza El desarrollo de software para reuso consiste en laconstrucción de un sistema con la intención de reutilizar partes de él enfuturos desarrollos. Con software a gran escala, un buen profesional conexperiencia puede desarrollarlo. Estudios realizados determinan que la práctica dereutilización del software en un proyecto aumenta la productividad durante eldesarrollo de dicho proyecto. Sin embargo, la reutilización del software no cubre solo elreuso de códigos, abarca todo un amplio de posibilidades en los diferentesniveles, metodología, ciclos de vida, planes del proyecto, especificaciones derequisitos, diseños, arquitectura software, planes de validación, juegos deprueba y documentación.
Trabajo enviado por: 1ro. de Analista de Sistemas, C. Del U. Entre Ríos, Argentina Publicación enviada por Solange Galáz Contactar solangega@hotmail.com Código ISPN de la Publicación EpypklZplZydAklOcM Publicado Thursday 7 de August de 2003 Ultimas Publicaciones en ilustrados.com
ilustrados.com nace con el fin difundir el conocimiento publicando trabajos de investigación, monografias, tesis, presentaciones powerpoint y afines. Publicar trabajos en ilustrados.com ha alcanzado prestigio y reconocimiento internacional siendo cada vez más el número de académicos, empresas, investigadores, científicos que consultan las publicaciones de nuestro portal. | |||||||||