Ingeniería de software

1. Introducción Este término fue introducido a finales de los 60 a raíz de la crisis del software. Esta crisis fue el resultado de la introducción de la tercera generación del 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: - Imprecisión en la planificación del proyecto y estimación de los costos. - Baja calidad del software. - Dificultad de mantenimiento de programas con un diseño poco estructurado, etc. Por otra parte se exige que el software sea eficaz y barato tanto en el desarrollo como en la compra. También se requiere una serie de características como fiabilidad, facilidad de 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écnicas para resolver los problemas, la informática aporta herramientas y procedimientos sobre los que se apoya la ingeniería de software. mejorar la calidad de los productos de software aumentar la productividad y trabajo de los ingenieros del software. Facilitar el control del proceso de desarrollo de software. Suministrar a los desarrolladores las bases para construir software de alta calidad en una forma eficiente. Definir una disciplina que garantice la producción y el mantenimiento de los productos software desarrollados en el plazo fijado y dentro del costo estimado.

Objetivos de los proyectos de sistemas Para que los objetivos se cumplan las empresas emprenden proyectos por las siguientes razones: “Las cinco C ” Capacidad Las actividades de la organización están influenciadas por la transacciones con rapidez y eficiencia. Los sistemas de información mejoran esta capacidad en tres formas. capacidad de ésta para procesar

* Aumentan la velocidad de procesamiento: Los sistemas basados en computadora pueden ser de ayuda para eliminar la necesidad de cálculos tediosos y comparaciones repetitivas. Un sistema automatizado puede ser de gran utilidad si lo que se necesita es un procesamiento acelerado. *Aumento en el volumen: La incapacidad para mantener el ritmo de procesamiento no significa el abandono de los procedimientos existentes. Quizá éstos resulten inadecuados para satisfacer las demandas actuales. En estas situaciones el analista de sistemas considera el impacto que tiene la introducción de procesamiento computarizado, si el sistema existente es manual. Es poco probable que únicamente el aumento de la velocidad sea la respuesta. El tiempo de procesamiento por transacción aumenta si se considera la cantidad de actividades 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, por eso, debe tenerse en cuenta donde almacenarlos y como recuperarlos cuando se los necesita. Cuando un sistema se desarrolla en forma apropiada, se puede recuperar en forma rápida la información. Costo * Vigilancia de los costos: Para determinar si la compañía evoluciona en la forma esperada, de acuerdo con lo presupuestado, se debe llevar a cabo el seguimiento de los costos de mano de obra, bienes y gastos generales. La creciente competitividad del mercado crea la necesidad de mejores métodos para seguir los costos y relacionarlos con la productividad individual y organizacional. * Reducción de costos: Los diseños de sistemas ayudan a disminuir los costos, ya que toman ventaja de las capacidades de cálculo automático y de recuperación de datos que están incluidos en procedimientos de programas en

3. Comunicación La falta de comunicación es una fuente común de dificultades que afectan tanto a cliente como a empleados. si está bien protegido. es difícil de acceder. en consecuencia éstos sistemas mejoran la organización y la ayudan a ganar “ventaja competitiva”. La ventaja en precios se observa continuamente en la actividad comercial (sí el producto es exclusivo o distinto entonces tener el liderazgo en precios bajos quizás no sea el objetivo a alcanzar).Productos diferentes. disminuyendo al personal. *Menor margen de error: (mejora de la exactitud y la consistencia) Esto se puede lograr por medio del uso de procedimientos de control por lotes. Si no se omiten etapas. es una seguridad difícil de alcanzar en un medio ambiente donde no existen computadoras. * Asegurar clientes: Como los clientes son los más importantes para una organización. ni olvidos e interrupciones que sufre el ser humano.computadora. dichas vías abarcan todo el país y les permiten acelerar el flujo de información dentro de sus oficinas y otras instalaciones que no se encuentran en la misma localidad. consistencia y con exactitud: por otra parte se efectúan todos los pasos para cada lote de transacciones. Para eso las empresas proporcionan: 1. los mensajes y los documentos. * Dejar fuera a los competidores: Pasar sobre los competidores puede ser un inconveniente si ellos se encuentran la forma para duplicar los logros de la compañía. mantienen las especificaciones esenciales en un sitio de fácil acceso y calculan factores tales como el estrés y el nivel de costos a partir de detalles proporcionados por otros grupos. los directivos buscan diferentes formas para conseguir nuevos clientes y mantener los que tienen. tratando de que siempre se siga el mismo procedimiento.Mejores precios 2. Competitividad Los sistemas de información computacionales son un arma estratégica. La estrategia eficaz de precios a menudo se alcanza al desarrollar sistemas de información por razones tales como reducción de costos y ganancia en la exactitud.Servicios exclusivos. los sistemas de información bien desarrollados amplían la comunicación y facilitan la integración de funciones individuales. Cada paso se lleva a cabo de la misma manera. la información que surge en un área se necesita en otra área. A diferencia del ser humano. el sistema no se distrae con llamadas telefónicas. limitado a ciertas áreas o personal. Control *Mayor seguridad de información: Algunas veces el hecho de que los datos puedan ser guardados en una forma adecuada para su lectura por medio de una máquina. Muchas tareas son realizadas por programas de cómputo. * Interconexión: ( aumento en la comunicación) Muchas empresas aumentan sus vías de comunicación por medio del desarrollo de redes para este fin. sin embargo. como por ejemplo. lo cual deja un número muy reducido de éstas para su ejecución manual. capaz de cambiar la forma en que la compañía compite en el mercado. Sin embargo. Una de las características más importantes de los sistemas de información para oficinas es la transmisión electrónica de información. El acceso a la información puede estar controlado por un complejo sistemas de contraseñas. si los competidores de la compañía tienen capacidades mas avanzadas para el procesamiento de información. los sistemas de información pueden ser la base para dejar fuera del mercado a la competencia ya sea el disuadir sus intentos por ingresar al mercado o creándoles obstáculo para su entrada. es posible que los competidores no sean capaces de atraer a los clientes de la compañía. es probable que no se produzcan errores. Los sistemas de información ayudan a comunicar los detalles del diseño a los diferentes grupos. 3. Una organización puede ganar ventaja competitiva a través de sus sistemas de información de diferentes formas. generalmente se desarrollan sistemas de información automatizados. Generalmente cuando una compañía puede ofrecer servicios exclusivos y atraer clientes. Para aumentar la seguridad. * Integración de áreas en las empresas: Con frecuencia las actividades de las empresas abarcan varias áreas de la organización. por ejemplo. entonces los sistemas de información pueden convertirse en una “desventaja competitiva”. *Mejores acuerdos con los proveedores: .

puede desarrollarse con el software y el personal existente. Cuando no es posible entrevistar. si los usuarios usaran el sistema. en forma personal a los miembros de grupos grandes dentro de la organización. como el aspecto más apropiado de la computadora o la tecnología de comunicaciones que se va a utilizar. Todas estas situaciones están determinadas por tres métodos básicos: 5. *Formar bases para nuevos productos Los sistemas de información también forman la base de muchos productos y servicios nuevos. diseñadores y usuarios realizan para desarrollar e implantar un sistema de información. Método del ciclo de vida clásico El método del ciclo de vida para desarrollo de sistemas es el conjunto de actividades que los analistas. la solicitud de proyecto debe examinarse para determinar con precisión lo que el solicitante desea. Existen tres aspectos relacionados con el estudio de factibilidad. aunque lo común es que los miembros del equipo de sistemas estén ocupados en otros proyectos. Cuando esto ocurre. que son realizados por los general por analistas capacitados o directivos: -Factibilidad técnica. aquellos proyectos que son deseables y factibles deben incorporarse en los planes. . Los servicios de base de datos experimentan un crecimiento común en todas las industrias. Estrategias para su desarrollo Los sistemas de información basados en computadoras sirven para diversas finalidades que van desde el procesamiento de las transacciones de una empresa hasta proveer de la información necesaria para decidir sobre asuntos que se presentan con frecuencia. Una cosa es clara. En algunos casos el desarrollo puede comenzar inmediatamente. al trabajar con los empleados y administradores. El método del ciclo de vida para el desarrollo de sistemas consta de las siguientes actividades: 1) Investigación preliminar La solicitud para recibir ayuda de un sistema de información pueden originarse por una persona. el analista conversa con varias personas para reunir detalles relacionados con los procesos de la empresa. es necesario que los sistemas entren en operación y que trabajen de manera confiable. Esta actividad tiene tres partes: *Aclaración de la solicitud Antes de considerar cualquier investigación de sistemas. Sin embargo. el impacto del nuevo sistema sobre los empleados de la empresa y las características específicas que el sistema debe tener se pueden determinar de manera secuencial. ya que muchas solicitudes que provienen de empleados y usuarios no están formuladas de manera clara. deben estudiar los procesos de una empresa para dar respuesta a ciertas preguntas claves. Investiga si los costos se justifican con los beneficios que se obtienen. y si en caso de necesitar nueva tecnología. y si se ha invertido demasiado. Estudia si el trabajo para el proyecto. cuales son las posibilidades de desarrollarla (no solo el hardware). -Factibilidad económica. Una manera de utilizar los sistemas de información para favorecer arreglos con los proveedores es ofreciendo un mejor precio. * Aprobación de la solicitud Algunas organizaciones reciben tantas solicitudes de sus empleados que sólo es posible atender unas cuantas.En los negocios. En algunos casos los factores que deben considerarse en un proyecto de sistema de información. como para no crear el sistema si se cree necesario. Productos que van desde programas personales hasta planes de construcción pueden hacerse a la medida del cliente gracias al procesamiento de información. Disminuyendo los costos. se emplean cuestionarios para obtener esta información. Los analistas. los proveedores también tienen importancia estratégica. Para contestar estas preguntas. Después de aprobar la solicitud de un proyecto se estima su costo. *Estudio de factibilidad En la investigación preliminar un punto importante es determinar que el sistema solicitado sea factible. la administración decide que proyectos son los más importantes y el orden en que se llevarán acabo. cuando se formula la solicitud comienza la primera actividad del sistema. como para obtener beneficios. -Factibilidad operacional: Investiga si será utilizado el sistema. el tiempo necesario para terminarlo y las necesidades de personal 2) Determinación de los requisitos del sistema. 4.

Los encargados de desarrollar software pueden instalar software comprado a terceros o escribir programas diseñados a la medida del solicitante. 6) Implantación y evaluación. instalar la aplicación y construir todos los archivos de datos necesarios para utilizarla. tiempo de respuesta. del tiempo disponible para escribir el software y de la disponibilidad de los programadores. Los diseñadores son responsables de dar a los programadores las especificaciones de software completas y claramente delineadas. La implantación es el proceso de verificar e instalar nuevo equipo. La evaluación ocurre a lo largo de cualquiera de las siguientes dimensiones: . entrenar a los usuarios. La evaluación de un sistema se lleva a cabo para identificar puntos débiles y fuertes. se realiza en papel o en la pantalla de una terminal utilizando algunas de las herramientas automatizadas disponibles para el desarrollo de sistemas. que funciona de acuerdo con las especificaciones y en la forma en que los usuarios esperan que lo haga. Los sistemas de información deben mantenerse siempre al día. eficiencia operacional e impacto competitivo. en algunas ocasiones. 4) Desarrollo de software (diseño físico). para asegurarse de que las pruebas sean completas e imparciales y. los encargados de desarrollar el sistema procuran que el uso inicial del sistema se encuentre libre de problemas. 5) Prueba de sistemas.Las investigaciones detalladas requieren el estudio de manuales y reportes. es decir. muestras de formas y documentos con el fin de comprender el proceso en su totalidad. En muchas organizaciones. para que los analistas observen si tratan de emplearlo en formas no previstas.Evaluación operacional Valoración de la forma en que funciona el sistema.(diseño lógico) El diseño de un sistema de información responde a la forma en la que el sistema cumplirá con los requerimientos identificados durante la fase de análisis. .Opinión de los administradores Evaluación de las actitudes de directivos y administradores dentro de la organización así como de los usuarios finales. 3)Diseño del sistema. Los procedimientos que se escriben indican cómo procesar los datos y producir salidas. por otra. . incluyendo su facilidad de uso. La elección depende del costo de cada alternativa. las pruebas son conducidas por personas ajenas al grupo que escribió los programas originales. Los documentos que contienen las especificaciones de diseño representan a éste mediante diagramas. También se indican los datos de entrada. Los diseñadores seleccionan las estructuras de archivo y los dispositivos de almacenamiento. La información detallada del diseño se proporciona al equipo de programación para comenzar la fase de desarrollo de software. la observación en condiciones reales de las actividades del trabajo y. Sin importar cuál sea la estrategia utilizada. Reunidos los detalles. En ocasiones se permite que varios usuarios utilicen el sistema. los que serán calculados y los que deben ser almacenados. Durante esta fase. antes de que la organización implante el sistema y dependa de él. ingresos y ganancias).Impacto organizacional Identificación y medición de los beneficios para la organización en áreas como finanzas (costos. la implantación es un proceso de constante evolución. Los programadores son responsables de la documentación de los programas y de explicar su codificación. los analistas estudian los datos sobre requerimientos con la finalidad de identificar las características que debe tener el nuevo sistema. Se alimentan como entradas conjuntos de datos de prueba para su procesamiento y después se examinan los resultados. Es común que los diseñadores hagan un esquema del formato o pantalla que esperan que aparezca cuando el sistema esta terminado. tablas y símbolos especiales. el sistema se emplea de manera experimental para asegurarse que el software no tenga fallas. Cada estrategia de implantación tiene sus méritos de acuerdo con la situación que se considere dentro de la empresa. . que el software sea más confiable. confiabilidad global y nivel de utilización. lo adecuado de los formatos de información. esta documentación es esencial para probar el programa y hacer el mantenimiento.

que conduce al desarrollo de especificaciones para sistemas nuevos o para efectuar modificaciones a los ya existentes. como es muy difícil entender todo un proceso de la empresa en forma verbal. sistemas de almacenamiento. Diagrama de flujo de datos Es el modelo del sistema. El Diseño Estructurado es una técnica específica para el diseño de programas. etc. Diseño Estructurado. Método de desarrollo por análisis estructurado Muchos especialistas en sistemas de información reconocen la dificultad de comprender de manera completa sistemas grandes y complejos. Puede ser manual o automatizado. Es la herramienta mas importante y la base sobre la cual se desarrollan otros componentes. Descripciones de procesos y procedimientos: declaraciones formales que usan técnicas y lenguajes que permiten a los analistas describir actividades importantes que forman parte del sistema. Herramientas Las herramientas muestran todas las características esenciales del sistema y la forma en que se ajustan entre si. Éste análisis permite al analista conocer un sistema o proceso en una forma lógica y manejable al mismo tiempo que proporciona la base para asegurar que no se omite ningún detalle pertinente. La herramienta fundamental del Diseño Estructurado es el diagrama estructurado que es de naturaleza gráfica y evitan cualquier referencia relacionada con el hardware o detalles físicos. Componentes Símbolos gráficos: Iconos y convenciones para identificar y describir los componentes de un sistema junto con las relaciones entre estos componentes. Su finalidad no es mostrar la lógica de los programas (que es la tarea de los diagramas de flujo).). El objetivo del Diseño Estructurado es programas formados por módulos independientes unos de otros desde el punto de vista funcional. Cada proceso puede desglosarse en diagramas de flujos de datos cada vez más detallados. Análisis de flujo de datos. El análisis estructurado es un método para el análisis de sistemas manuales o automatizados. se enfoca en el desarrollo de especificaciones del software. Permite que las personas observen los elementos lógicos (lo que hará el sistema) separados de los componentes físicos (computadora. y otros criterios de administración de proyectos. Cuando la evaluación de sistema se conduce en forma adecuada proporciona mucha información que puede ayudar a mejorar la efectividad de los esfuerzos cuando la evaluación de sistemas se conduce en forma adecuada proporciona mucha información que puede ayudar a mejorar la efectividad de los esfuerzos de desarrollo de aplicaciones subsecuentes. El diseño Estructurado es otro elemento del Método de Desarrollo por Análisis Estructurado que emplea la descripción gráfica. .. Reglas: estándares para describir y documentar el sistema en forma correcta y completa. El modelo original se detalla en diagramas de bajo nivel que muestran características adicionales del sistema. junto con sus acciones. Después de esto se puede desarrollar un diseño físico eficiente para la situación donde será utilizado. concuerdan con presupuestos y estándares. las herramientas ayudan a ilustrar los componentes esenciales de un sistema. terminales. 6.Desempeño del desarrollo La evaluación del proceso de desarrollo de acuerdo con criterios tales como tiempo y esfuerzo de desarrollo. El método incorpora elementos tanto de análisis como de diseño El análisis estructurado se concentra en especificar lo que se requiere que haga el sistema o la aplicación. Los Diagramas Estructurados describen la interacción entre módulos independientes junto con los datos que un módulo pasa a otro cuando interacciona con él. Diccionario de datos: descripción de todos los datos usados en el sistema. El método de desarrollo del análisis estructurado tiene como finalidad superar esta dificultad por medio de: 1) la división del sistema en componentes y 2) la construcción de un modelo del sistema. Estudia el empleo de los datos para llevar a cabo procesos específicos de la empresa dentro del ámbito de una investigación de sistemas usa los diagrama de flujos de datos y los diccionarios de datos.

equipo y dispositivos utilizados. . Notaciones: son cuatro símbolos. ya que tienen enormes cantidades de datos. sin considerar los dispositivos específicos y la localización de los almacenes de datos o personas en el sistema. archivos maestro y de transacciones. su contenido también se emplea durante el diseño.Para asignarle un solo significado a cada uno de los elementos y actividades del sistema. El diagrama lógico de datos da un panorama del sistema. Por eso se registra la información. nombres de procedimientos. se desarrolla durante el análisis de flujo de datos y auxilia a los analistas que participan en la determinación de los requerimientos del sistema. programas. organizaciones u otras entidades que interactúan con el sistema pero que se encuentre fuera. Los analistas mas organizados usan el diccionario de datos automatizados diseñados específicamente para el análisis y diseño de software. incluyendo nombre. que se centra en el flujo de datos entre los procesos. dependiente de la implantación. Tambien es necesario saber bajo que circunstancias se lleva a cabo cada proceso y con que frecuencia ocurren. No identifica el Fuente o destino de los datos: pueden ser personas. Contiene las características lógicas de los sitios donde se almacenan los datos del sistema. Los diccionarios de datos proporcionan asistencia para asegurar significados comunes para los elementos y actividades del sistema y registrando detalles adicionales relacionadas con el flujo de datos en el sistema. procedimientos o dispositivos que utilizan o componente físico producen datos. Los sistemas al sufrir cambios continuos. contenido y organización. pero a diferencia del físico es independiente de la implantación. El almacenamiento de datos puede representar dispositivos tanto computarizados como no computarizados. El diagrama físico de datos da un panorama del sistema en uso. ya sea sobre hoja de papel o usando procesadores de texto. Produciendo una comprensión mas completa. alias. Sin indicarse las características físicas. mostrando cuales tareas se hacen y como son hechas. nombres de departamentos. Una vez que las características están articuladas y registradas. Cada componente en un diagrama de flujo de datos tiene una etiqueta con un nombre descriptivo. desde un origen hasta un destino.Para documentar las características del sistema. incluyendo partes o componentes así como los aspectos que los distinguen. Diccionario de datos. Almacenamiento de datos: es un lugar donde se guardan los datos. todos los participantes en el proyecto tendrán una fuente común de información con respecto al sistema. que fueron desarrollados y promovidos la mismo tiempo por dos organizaciones: Yourdon y Gane y Sarson. aun en los sistemas mas chicos hay gran cantidad de datos.Repitiéndose esta secuencia hasta que se obtienen suficientes detalles para que el analista comprenda la parte del sistema que se encuentra bajo investigación. nombres o números de formato y documento. Yourdon Gane y Sarson Proceso: son personas. este numero tiene un valor adicional cuando se estudian los componentes que integran un proceso especifico 7. Incluyen nombres de personas. Es un paquete de datos. Identifica los procesos donde se emplean los datos y los sitios donde se necesita el acceso inmediato a la información. 3. Razones para su utilización: 1. 2. descripción.Para manejar los detalles en sistemas muy grandes. ubicaciones. es muy difícil manejar todos los detalles. Flujo de datos: son movimientos de datos en una determinada dirección. de tal manera que todo pueda localizarse con rapidez. Los nombres de los procesos reciben un numero para poder identificarlos.

En algunos casos se emplean términos diferentes para describir la misma entidad (alias) estos se representan con un signo igual (=) que vincula los datos. eventos y objetos) de un sistema y el conjunto de información relacionado con la entidad. Describir los datos asociados con las entidades. Descripción: indica lo que representa en el sistema. Comunicar los requerimientos de datos a un diseñador de archivos o administrador de la base de datos. * Capacidad del sistema: Habilidad del sistema para aceptar. por si mismos no le dan un significado suficiente al usuario. define las alternativas para datos o estructuras de datos incluidos en una estructura de datos. las presentan en un informe. y en los manuales. Se pueden utilizar las siguientes combinaciones ya sea individualmente o en conjunción con alguna otra. Determina si son necesarias nuevas características o si están en orden los cambios de cualquier tipo. Relación de iteración: (repetitiva). una o ninguna iteración. Relación de selección: (uno u otro). Finalidades: 1234Verificar los requerimientos de información. * Preguntas: solicitudes para la recuperación o procesamiento de información para generar una respuesta especifica. Se abordan las características: * Naturaleza de las transacciones: las actividades de la empresa que se llevan a cabo mientras se emplea el sistema. Cada uno esta identificado con: Un nombre: para distinguir un dato de otro. 8.Para facilitar el análisis de los detalles con la finalidad de evaluar las características y determinar donde efectuar cambios en el sistema. * Archivos y bases de datos: detalles de las transacciones y registros maestros que son de interés para la organización. procesar y almacenar transacciones y datos 5. Aun Contenido de un registro del diccionario El diccionario tiene dos tipos de descripciones para el flujo de datos del sistema. Relación opcional: los datos pueden o no estar incluidos.Localizar errores y omisiones en el sistema. Notación . Diagrama de estructura de datos Es una descripción de la relación entre entidades (personas. son los elementos datos y estructura de datos. Notación Los analistas usan símbolos especiales con la finalidad de no usar demasiada cantidad de texto para la descripción de las relaciones entre datos y mostrar con claridad las relaciones estructurales. o sea. detectan dificultades. Valores de los datos: porque en algunos procesos solo son permitidos valores muy específicos para los datos. Alias: porque un dato puede recibir varios nombres. lugares. esto debe estar en la entrada del diccionario. se revelan errores. Si los valores de los datos están restringidos a un intervalo especifico. Descripción: Se construyen sobre cuatro relaciones de componentes. Se agrupan para formar una estructura de datos.4. define la repetición de un componente. Elemento dato: son los bloques básicos para todos los demás datos del sistema. dependiendo de quien uso este dato. Estructura de datos: es un grupo de datos que están relacionados con otros y que en conjunto describen un componente del sistema. Mostrar la relación entre entidades. Relación secuencial: define los componentes que siempre se incluyen en una estructura de datos. Descripción: Cada entrada en el diccionario consiste de un conjunto de detalles que describen los datos utilizados o producidos por el sistema. Longitud: porque es de importancia de saber la cantidad de espacio necesario para cada dato.

A partir del diagrama de contexto se puede ir construyendo nuevos diagramas que vayan definiendo con mayor nivel de detalle lo flujos de datos y procesos de transformación que ocurren en el sistema. mostrando además. para reducir la integridad de la información. Uso en el diseño de archivo. o bien. y hallar los requerimientos. Los demás detalles son los atributos. guardando los datos de los estados de cuenta aparte de los datos del inventario. Lo importante es el ensayo. éste además de requerir espacio de almacenamiento extra. usualmente un atributo llave en uno y un atributo (no llave) en el otro. Incluye el análisis de las transformaciones entrada-salida y el análisis de transacción. permitiendo definir la estructura visual de las pantallas. es probable que una investigación de sistemas bien llevada.. esta duplicación es llamada redundancia. etc. procesarlas de acuerdo con determinada función y generar ciertas salidas. Describen la jerarquía de los módulos componentes y los datos que serán transmitidos entre ellos. Usualmente se indican en la parte inferior del diagrama. cuando no son muchos los beneficios que se obtienen. definiendo un atributo llave en otra entidad. Al desarrollar mas sistemas y crecer su utilidad. muy seguido existe la necesidad de integrar los sistemas para permitir que la información sea compartida por mas de un sistema. Compartir datos entre las aplicaciones. los registros de entrada y el formato de los informes. Se puede evitar del todo disminuyendo la redundancia de datos en los archivos. cuando se duplica información es muy probable de que los detalles no coincidan o que no todos sean actualizados. mientras que las que tienen un circulo representa información de control de programa. que identifica cual es la función principal del sistema. El uso de los diagramas de estructura de datos requiere que el analista haga preguntas importantes acerca de la entidad a describir. Las flechas con una circunferencia indican datos. pudiendo ser corregido mejorando los procedimientos. Resultando la perdida de integridad en los datos. son programas que sirven para hacer otros programas. El diagrama de contexto tiene una gran importancia puesto que resume el requisito principal del sistema de recibir ciertas entradas. * Apuntadores lógicos: identifican las relaciones entre las entidades. Quizás los informes no tengan encabezados. aunque no tengan todas las características y toques finales de un sistema terminado. Gráfica de estructura Muestra con símbolos la relación entre los módulos de procesamiento y el software de la computadora. La llave de registro. Además de los componentes básicos existen dos elementos adicionales esenciales: * Apuntadores atributos: enlazan dos entidades mediante la información común. En otros casos. identifica de una forma única a la cuenta. El diagrama de flujo de dato de nivel 0 se llama diagrama de contexto y en él el sistema esta representado por un solo proceso. falten controles de entradas y procesamiento. son los enlaces con las demás entidades incluidas en el diagrama. logos. de como . Método del desarrollo por prototipos Los sistemas pueden desarrollarse con métodos y lenguajes de programación convencionales. tales como notas o condiciones de error. de forma que al final obtenemos una jerarquía de diagramas. Redundancia e integridad: Si cada sistema se desarrolla en forma independiente. puede convertirse el prototipo en el sistema terminado. Cada sistema se puede desarrollar por separado. 9. Cada entidad se puede identificar mediante un atributo llave. la información puede ser almacenada al menos una vez en cada sistema. con el nombre de la entidad en la parte de arriba y una lista de atributos que describan la entidad. sirven para obtener acceso inmediato a la información en una entidad. los flujos de información que lo relacionan con otros sistemas: las entidades externas. son un apoyo en la construcción de prototipos. Los generadores de aplicaciones. Diagrama de contexto Se pueden usar diagramas de flujos de datos para representar el sistema a cualquier nivel de abstracción. Las entidades se representan mediante rectángulos. En algunos casos donde el sistema no será utilizado frecuentemente. Razones para desarrollar prototipos de sistemas Los requerimientos de información no siempre están bien definidos. pueden ser demasiados vagos aún al formular el diseño.Una común se usa al preparar los diagramas de estructura de datos.

y en ocasiones imposibles. Los usuarios pueden manifestar su opinión. se espera que las especificaciones iniciales estén incompletas. otra vez. La información obtenida tendrá influencia sobre las características de la siguiente versión de la aplicación. 4)Revisión del prototipo información sobre los que les gusta y los que les desagrada a los usuarios. 5) Repetición del proceso las veces que sea necesario. 2. Es por esto que el analista no intenta optimizar la velocidad de operación del sistema Durante la evaluación los analistas de sistemas desean capturar 3)El prototipo y el usuario Es responsabilidad del usuario trabajar con prototipo y evaluar su característica y operación. El analista es el responsable de realizar las modificaciones. . ya sea por la tecnología existente o por el factor económico. El proceso se repite las veces que sea necesario para revelar los requerimientos esenciales del diseño. con un prototipo.Desarrollo de un modelo de trabajo Es útil comenzar el proceso de construcción del prototipo con el desarrollo de un plan general que permita a las personas conocer lo que se espera de ellas y del proceso de desarrollo. Maquetas Cuando se comienza el desarrollo. Etapas del método de prototipos 1. Para hacerlo determinan los fines para lo que servirá el sistema y el alcance de sus capacidades. La experiencia con el sistema es la que determina eventualmente cuando en sistema esta terminado. Sin embargo. 6) El abandono o dejarlo como esta: Cuando se verifica que no es posible desarrollar el sistema para satisfacer los objetivos deseados. La experiencia con el sistema bajo condiciones permite obtener la familiaridad indispensable para determinar los cambios o mejoras que sean necesarios así como la eliminación de características inadecuadas o innecesarias. Ambos métodos son muy útiles para establecer la viabilidad del proyecto y definir acuerdos sobre los objetivos y resultados esperados. usuarios y analistas identifican de manera conjunta los datos que son necesarios para el sistema y especifican la salida que debe producir la aplicación. Los cambios al prototipo son planificados con los usuarios antes de llevarlos a cabo. como prototipo y que revela más información valiosa sobre diseño. los analistas y usuarios deben trabajar juntos para identificar los requerimientos conocidos que tiene que satisfacerse. Los prototipos permiten evaluar situaciones extraordinarias donde los encargados de diseñar e implantar sistemas no tienen información ni experiencia. o también donde existen situaciones de riesgo y costos elevados. Las decisiones de diseño necesarias para desarrollar la salida del sistema cambian muy poco en relación con las tomadas en otros métodos de desarrollo. y aquellas donde el diseño propuesto es novedoso y aún no ha sido probada. tiene por objetivo presentar a los usuarios y/o clientes la apariencia del sistema final.Identificación de requerimientos conocido. Para comenzar la primera iteración. En el desarrollo de un prototipo se preparan los siguientes componentes: *El lenguaje para el diálogo o conversación entre el usuario 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ándares para datos que emplea la organización. En esta etapa es más importante la rapidez con que se construye el prototipo que la eficiencia de operación. Por consiguiente. Es difícil. El proceso finaliza cuando los usuarios y analistas están de acuerdo en que el sistema ha evolucionado lo suficiente como para incluir todas las características necesarias o cuando ya es evidente que no se obtendrá mayor beneficio. 10. La determinación de los requerimientos de una aplicación es tan importante para el método de desarrollo de prototipo como lo es para los métodos del ciclo clásico de desarrollo de sistemas o análisis estructurado (aunque las tácticas son diferentes). fijar una fecha tentativa de terminación. pero construir un sistema que satisfaga a todos ellos quizás necesite del desarrollo de nueva tecnología. La información obtenida con su uso se aplica en un nuevo diseño que se emplea.resultado un conjunto muy amplio de requerimientos de sistemas. antes de crear el prototipo.

En las medidas de productos software existen medidas directas (costo del proyecto. El plan de Gestión del Proyecto Software que conducirá el desarrollo se produce como culminación de este proceso. casos de prueba. especificaciones.) y medidas indirectas ( funcionalidad. seguimiento y control y evaluación del proyecto. La medición en los proyectos de desarrollo de software es una actividad fundamental para la mejora de la productividad. etc.). La medición determina cuales son los aspectos y proporcionan métodos para medirlos. no tener peso. empleándose adecuadamente. Se estiman y asignan los recursos necesarios a fin de ejecutar las distintas tareas que demanda el proyecto.Mejorar la productividad del ingeniero de software durante el desarrollo. por último. documentación del usuario y otros productos tangibles que son salida del proyecto. y personal que es el mas influyente. el costo y la calidad del producto final. Involucra actividades de: planificación. _ La estimación se define como la predicción de personal. La gestión del proyecto presupone establecer condiciones para el desarrollo del mismo. Durante este ciclo se define el ciclo de vida del software para este proyecto y se establecen en los planes para su gestión. mejora el desempeño del desarrollo de sistemas de información. gastos comunes. Se identifican y seleccionan estándares. facilidad de mantenimiento. *Disponibilidad de datos e información suministrada por el usuario. El proceso engloba todas las actividades y fases que se llevan a cabo durante la realización del proyecto. se mide a través de diversos aspectos clave en el desarrollo. Los más importantes son: *Complejidad de la tarea. _ El seguimiento de proyectos es la recolección de datos y su acumulación sobre recursos consumidos. El tamaño del producto a desarrollar es una de las primeras tareas en la gestión del proyecto. metodologías y herramientas para la gestión y ejecución del mismo y. eficiencia. esfuerzo y costo que se requerirá para terminar todas las actividades y productos conocidos asociados con el proyecto. Coordinación y Gestión del proyecto. ni volumen. Proceso de Iniciación del Proyecto.Garantizar la calidad del producto final 3. éste se basa principalmente en la experiencia de proyectos anteriores. líneas de código implementadas. Además de las fases estándar del desarrollo. *Modificaciones permitidas a lo largo del desarrollo *Experiencia previa de los desarrolladores *Duración fijada del proyecto. etc. ni superficie. *Estructuración del problema y de las tareas.Estimar costos y recursos en un proyecto software 2. esfuerzo empleado. ya que el costo de un proyecto es directamente proporcional a los recursos humanos. Se agrupan en las tres siguientes herramientas automatizadas: . Abarca aquellas actividades de creación de la estructura del proyecto. El costo global se compone de las partidas de viajes. etc.11. Herramientas para el desarrollo de sistemas Las herramientas son cualquier dispositivo que. software (en caso de comprar algún paquete para el desarrollo). hay que tener en cuenta la coordinación y seguimiento del proyecto que suponen una importante carga de trabajo y que son olvidadas durante la planificación o no se le dedica mucho. *Disponibilidad y facilidad de comunicación con el usuario. 12. hardware (nuevo o actualización). La medición y estimación atacan los tres problemas claves de la ingeniería del software: 1. estimación de recursos. las métricas se centran en cuatro aspectos: Para estimar los recursos es necesario tener en cuenta una serie de factores de riesgo que influyen sustancialmente en la precisión de las estimaciones de los recursos humanos necesarios para la realización del proyecto. fiabilidad. El producto incluye cualquier documento o software desarrollado que se genere durante el proceso completo. _ La planificación de proyectos se define como la predicción de la duración de las actividades y tareas a nivel individual. costos generados asociados con un proyecto. El tamaño se define como la cantidad de código fuente. Teniendo en cuenta estos objetivos. Mediciones y estimaciones El software al ser intangible. se prepara y establece un plan para su implementación adecuada y oportuna. Se persigue determinar si en cada fase los resultados producidos se corresponden con los esperados y en establecer un control sobre los recursos estimados para cada una de las fases.

13. . Ahora a las herramientas se le están dando un nuevo significado en el diseño de software. Incluye: .Herramientas para recolección de datos: capturan detalles que describen sistemas y procedimientos en uso. los algoritmos de procesamiento y la descripción física de datos. por lo que cualquier reducción en el tiempo y recursos empleados en ella supone una importante mejora en la productividad del proceso. manipular y documentar sistemas. Estas actividades convierten los diseños lógicos del software en un código de programación. Herramientas de tipo back-end Su finalidad es ayudar al analista a formular la lógica del programa. Brinda un ambiente eficiente para crear. Herramientas para el desarrollo Ayudan al analista a trasladar los diseños en aplicaciones funcionales. Incluyen facilidades para examinar la correcta operación del sistema. donde una mejora en proceso de este desarrollo supone un aumento en la competitividad de la empresa. salidas. Apoyan el dibujo y revisión de diagramas de flujos de datos e iconos asociados con el análisis estructurado. Esta es una tarea que consume gran cantidad de recursos.Herramientas para el diccionario: registran y mantienen descripciones de los elementos del sistema. . procesos. Este es el principal . Los analistas utilizan las herramientas para el diseño de sistemas desde el inicio de la era de las computadoras. informes y otros medios de entradas y salidas.Herramientas para diagramación: crean representaciones gráficas de sistemas y actividades. procesamientos específicos de control. administración y mantenimiento del código. Esta herramienta proporciona soporte para el desarrollo de modelos gráficos de sistemas y procesos Los diagramas de flujo son representativos de este tipo de herramientas. incluyendo procesamientos y controles. como por ejemplo deben tener una aplicación como entradas.Herramientas para ingeniería Software: apoyan el proceso de formular diseños de software.Herramienta de especificación: apoyan el proceso de formular las características. Herramientas para análisis Éstas herramientas ayudan a los especialistas en sistemas a documentar un sistema existente. Reingeniería e ingeniería inversa Los conceptos de reingeniería e ingeniería inversa están ligados al desarrollo de software a gran escala. Aunque hay que tener en cuenta que esta mejora es. Frecuentemente proporcionan la capacidad de examinar las descripciones del sistema. etc. para decidir si son incompletas o inconsistentes. Documentan procesos y actividades de decisión. alimentos de datos. están orientadas a automatizar el mantenimiento de aplicaciones. Incluyen programas para representación en diagramas de flujo. . Herramientas para diseño Apoyan el proceso de formular las características que el sistema debe tener para satisfacer los requerimientos deseados durante las actividades de análisis. Tambien ayudan a la intersección con los dispositivos (para entrada y salida). Incluye: . este es que da existencia a la aplicación. almacenar. Herramientas integrales Proporcionan un ambiente que automatiza tareas claves a lo largo del proceso de desarrollo.Herramientas de tipo Front-end Automatizan las primeras actividades del proceso de desarrollo de sistemas. Incluye: . se utilizan para apoyar la tarea de identificar requerimientos. También sirve para determinar los requerimientos de una nueva aplicación. mensajes. en general a largo plazo (normalmente de uno a dos años) ambas actividades.Generadores de códigos: producen el código fuente y las aplicaciones a partir de especificaciones funcionales bien articuladas . y encabezados sobre las pantallas de las terminales. como grupo de datos.Herramientas para pruebas: apoyan la fase evaluación de un sistema.Herramienta para presentación: se utilizan para describir la posición de datos. . ya sea manual o automatizado. Estas herramientas facilitan el diseño.

arquitectura software. metodología. pero los básicos se mantienen. diseños. pero realizan la función esperada  Dificultades en la integración con otros sistemas  Calidad pobre del software final  Resistencia a introducir cambios  Pocas personas capacitadas para realizar modificaciones  Dificultades para realizar pruebas  El mantenimiento consume muchos recursos  Es necesario incluir nuevos requisitos. Las aplicaciones para el primer paso. La reingeniería e ingeniería inversa prolongan la vida del software. Dado que es una labor estratégica. de analizar el código o el diseño actual y modificarlo con la ayuda de herramientas automáticas para traducirlos a códigos mas estructurados. Sin embargo. Estudios realizados determinan que la práctica de reutilización del software en un proyecto aumenta la productividad durante el desarrollo de dicho proyecto. el proceso de pasar del código a una descripción de mas alto nivel es lo que se denomina: Ingeniería inversa. . la reutilización del software no cubre solo el reúso de códigos. Dentro de la reingeniería. juegos de prueba y documentación. es conveniente conocer cuando conviene realizar la tarea de reingeniería para una aplicación y cuándo es más rentable sustituirla e implementar una nueva.objetivo de la reingeniería. un buen profesional con experiencia puede desarrollarlo. y más eficientes. planes de validación. Desarrollo de software con y para reúso El desarrollo de software con reúso consiste en desarrollar una aplicación usando software ya existente. planes del proyecto. ciclos de vida. Cualquier profesional lo utiliza El desarrollo de software para reúso consiste en la construcción de un sistema con la intención de reutilizar partes de él en futuros desarrollos. son aquellas en la que se produce las siguientes situaciones:  Fallos frecuentes. Con software a gran escala. Se trata. que son difíciles de localizar  Son poco eficientes. abarca todo un amplio de posibilidades en los diferentes niveles. especificaciones de requisitos.