Documente Academic
Documente Profesional
Documente Cultură
Diseo
En esta fase se traducen los requisitos a una representacin que pueda ser evaluada previamente antes de empezar la fase de codificacin.
Generacin de cdigo
Se traduce lo diseado en la fase anterior a un lenguaje que pueda ser procesado por la mquina.
Pruebas
Cuando el cdigo se ha generado es el momento de empezar a realizar las pruebas del programa, centrado en los procesos lgicos internos y en los procesos externos funcionales para asegurar que las entradas producen los resultados requeridos.
Mantenimiento
El software puede necesitar cambios, debido a varias razones: errores, el entorno o mejoras sugeridas por el cliente.
Modelo en espiral
El modelo espiral, propuesto originalmente por B. Boehm, es un modelo de proceso de software evolutivo que conjuga la naturaleza iterativa de construccin de prototipos con los aspectos controlados y sistemticos del modelo en cascada [1], aadiendo un nuevo elemento: el anlisis de riesgo [2]. El modelo, representado mediante la espiral de la figura 2, define cuatro actividades principales: Planificacin. Determinacin de objetivos, alternativas y restricciones. Anlisis de riesgo. Anlisis de alternativas e identificacin/resolucin de riesgos. Ingeniera. Desarrollo del producto del siguiente nivel. Evaluacin del cliente. Valorizacin de los resultados de la ingeniera.
Metodologa de desarrollo de software. Un objetivo de dcadas ha sido el encontrar procesos y metodologas, que sean sistemticas, predecibles y repetibles, a fin de mejorar la productividad en el desarrollo y la calidad del producto software.
Anlisis de requerimientos
Extraer los requisitos y requerimientos de un producto de software es la primera etapa para crearlo. Mientras que los clientes piensan que ellos saben lo que el software tiene que hacer, se requiere de habilidad y experiencia en la ingeniera de software para reconocer requerimientos incompletos, ambiguos o contradictorios. El resultado del anlisis de requerimientos con el cliente se plasma en el documento ERS, Especificacin de Requerimientos del Sistema, cuya estructura puede venir definida por varios estndares, tales como CMMI. Asimismo, se define un diagrama de Entidad/Relacin, en el que se plasman las principales entidades que participarn en el desarrollo del software. La captura, anlisis y especificacin de requerimientos (incluso pruebas de ellos), es una parte crucial; de esta etapa depende en gran medida el logro de los objetivos finales. Se han ideado modelos y diversos procesos de trabajo para estos fines. Aunque an no est formalizada, ya se habla de la Ingeniera de requerimientos, por ejemplo en dos captulos del libro de Sommerville "Ingeniera del software" titulados "Requerimientos del software" y "Procesos de la Ingeniera de Requerimientos". La IEEE Std. 830-1998 normaliza la creacin de las especificaciones de requerimientos de software (Software Requirements Specification).
Especificacin
La especificacin de requisitos describe el comportamiento esperado en el software una vez desarrollado. Gran parte del xito de un proyecto de software radicar en la identificacin de las necesidades del negocio (definidas por la alta direccin), as como la interaccin con los usuarios funcionales para la recoleccin, clasificacin, identificacin, priorizacin y especificacin de los requisitos del software. Entre las tcnicas utilizadas para la especificacin de requisitos se encuentran: Caso de uso, Historias de usuario,
Siendo los primeros ms rigurosos y formales, los segundas ms giles e informales. Arquitectura La integracin de infraestructura, desarrollo de aplicaciones, bases de datos y herramientas gerenciales, requieren de capacidad y liderazgo para poder ser conceptualizados y proyectados a futuro, solucionando los problemas de hoy. El rol en el cual se delegan todas estas actividades es el del Arquitecto. El arquitecto de software es la persona que aade valor a los procesos de negocios gracias a su valioso aporte de soluciones tecnolgicas. La arquitectura de sistemas en general, es una actividad de planeacin, ya sea a nivel de infraestructura de red y hardware, o de software. La arquitectura de software consiste en el diseo de componentes de una aplicacin (entidades del negocio), generalmente utilizando patrones de arquitectura. El diseo arquitectnico debe permitir visualizar la interaccin entre las entidades del negocio y adems poder ser validado, por ejemplo por medio de diagramas de secuencia. Un diseo arquitectnico describe en general el cmo se construir una aplicacin de software. Para ello se documenta utilizando diagramas, por ejemplo: Diagramas de clases Diagramas de base de datos Diagrama de despliegue Diagrama de secuencia Siendo los dos primeros los mnimos necesarios para describir la arquitectura de un proyecto que iniciar a ser codificado. Depende del alcance del proyecto, complejidad y necesidades, el arquitecto elige qu diagramas elaborar. Las herramientas para el diseo y modelado de software se denominan CASE, (Computer Aided Software Engineering) entre las cuales se encuentran: Enterprise Architect Microsoft Visio for Enterprise Architects
Programacin
Reducir un diseo a cdigo puede ser la parte ms obvia del trabajo de ingeniera de software, pero no necesariamente es la que demanda mayor trabajo y ni la ms complicada. La complejidad y la duracin de esta etapa est ntimamente relacionada al o a los lenguajes de programacin utilizados, as como al diseo previamente realizado.
Prueba
Consiste en comprobar que el software realice correctamente las tareas indicadas en la especificacin del problema. Una tcnica de prueba es probar por separado cada
mdulo del software, y luego probarlo de forma integral, para as llegar al objetivo. Se considera una buena prctica el que las pruebas sean efectuadas por alguien distinto al desarrollador que la program, idealmente un rea de pruebas; sin perjuicio de lo anterior el programador debe hacer sus propias pruebas. En general hay dos grandes formas de organizar un rea de pruebas, la primera es que est compuesta por personal inexperto y que desconozca el tema de pruebas, de esta forma se evala que la documentacin entregada sea de calidad, que los procesos descritos son tan claros que cualquiera puede entenderlos y el software hace las cosas tal y como estn descritas. El segundo enfoque es tener un rea de pruebas conformada por programadores con experiencia, personas que saben sin mayores indicaciones en qu condiciones puede fallar una aplicacin y que pueden poner atencin en detalles que personal inexperto no considerara.
Documentacin
Todo lo concerniente a la documentacin del propio desarrollo del software y de la gestin del proyecto, pasando por modelaciones (UML),diagramas de casos de uso, pruebas, manuales de usuario, manuales tcnicos, etc; todo con el propsito de eventuales correcciones, usabilidad, mantenimiento futuro y ampliaciones al sistema.
Mantenimiento
Fase dedicada a mantener y mejorar el software para corregir errores descubiertos e incorporar nuevos requisitos. Esto puede llevar ms tiempo incluso que el desarrollo del software inicial. Alrededor de 2/3 del tiempo de ciclo de vida de un proyecto4 est dedicado a su mantenimiento. Una pequea parte de este trabajo consiste eliminar errores (bugs); siendo que la mayor parte reside en extender el sistema para incorporarle nuevas funcionalidades y hacer frente a su evolucin.
El desarrollo de Software es un proceso complejo y a menudo difcil que requiere la sntesis de muchos sistemas. Desde el modelado y diseo hasta el cdigo, administracin del proyecto, pruebas, despliegue, administracin de cambios y ms, Enterprise Architect una herramienta de modelado basada en UML se ha convertido en una parte esencial para administrar esa complejidad.
Si necesita:
Administrar Requisitos Modelar y analizar los procesos de negocios Construir diseo y modelos de comportamientos Generar e importar cdigo fuente en una variedad de lenguajes Generar e importar esquema de base de datos Generar e importar XSD Crear modelos de componentes y de despliegue Rastrear cambios Administrar pruebas Confirmar la trazabilidad desde los requisitos a travs y hasta el despliegue Documentar su desarrollo de software Comunicar y desarrollar proyectos de ingeniera de software basados en el equipo Modelado/ingeniera rpida de su desarrollo de software. El desarrollo de software ha progresado bastante en la ltima dcada, y las herramientas de modelado forman un componente importante en el entorno de desarrollo de hoy en da. Las demandas en la industria han incrementado enormemente, particularmente en las reas de robustez, portabilidad y reusabilidad, por esto combinar el poder de UML 2.1 y tecnologas MDA puede cumplir con esas demandas.
Lenguajes
El UML es principalmente un lenguaje para describir sistemas orientados a objetos independientes de cualquier lenguaje de programacin especfico. Es simple de aprender, y bastante flexible, y consistente desde el planeamiento hasta el despliegue. Los beneficios de usar UML incluyen la trazabilidad, mejorada, inteligibilidad entre los usuarios y un mantenimiento realmente simplificado. Enterprise Architect soporta el UML 2.1 estndar, y Sparx Systems tiene disponible extensiones personalizadas para UML con los propsitos de modelar los procesos de negocios, esquemas XSD y ms. La estructura MDA mejora las capacidades de UML para proveer transformaciones de modelo a modelo, proporcionndole as la capacidad de mantener modelos de plataformas
independientes de un sistema, y generar y mantener modelos de plataformas especficas sincronizadas, a travs de una variedad de plataformas concurrentemente.
Metodologas
Hay un extenso rango de prcticas de desarrollo, por ejemplo mtodos como el Proceso unificado y el Desarrollo gil. Ninguna prctica en particular es la mejor, ya que los requisitos pueden variar enormemente de proyecto a proyecto, y por esto EA facilita un amplio rango de metodologas.