Sunteți pe pagina 1din 7

Ingeniera de Software.

Procesos de ingeniera de software:


Existen diferentes procesos en el tema ingeniera de software, que tienen como objetivo presentar diferentes tcnicas que consisten en la combinacin de procedimientos que permiten guiar el diseo y el desarrollo de sistemas de software a un producto final de calidad. Algunos de esos procesos son: modelo secuencial, modelo en espiral, modelo win win, rational unified process (RUP), extreme programming (XP), mtodo delphi, mtrica versin 3, modelo de madurez de capacidad (CMM), proceso personal de software (PSP) y proceso en equipo de software (TSP). Palabras clave: Ingeniera de Software, RUP (Rational Unified Process), XP (eXtreme rogramming), CMM (Capability Maturity Model), PSP (Personal Software Process), TSP (Team Software Process).

Modelo lineal secuencial


Tambin llamado ciclo de vida clsico o modelo en cascada, sugiere un enfoque 1 sistemtico, secuencial para el desarrollo del software que empieza con el establecimiento de requisitos y pasa a las fases de anlisis, diseo, codificacin, pruebas y mantenimiento.

Anlisis de los requisitos del software


En esta parte el ingeniero intenta comprender la naturaleza de los programas que han de construirse, as como el dominio de la aplicacin.

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.

Debilidades del modelo en cascada


Nada est hecho hasta que todo est terminado. Se pueden presentar problemas debido a falta de informacin en la fase de levantamiento de requisitos. El progreso ordenado no es realista: durante el proceso de desarrollo pueden cambiar las variables de entorno del usuario que pueden afectar de manera potencial y los requisitos planteados inicialmente. La eliminacin de fallas suele ser extremadamente difcil durante las ltimas etapas de prueba del sistema.

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.

Mitologa de la Ingeniera de Software


La rama de la metodologa, dentro de la ingeniera de software, se encarga de elaborar estrategias de desarrollo de software que promuevan prcticas adaptativas en vez de predictivas; centradas en las personas o los equipos, orientadas hacia la funcionalidad y la entrega, de comunicacin intensiva y que requieren implicacin directa del cliente.

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.

Etapas del proceso


La ingeniera de software requiere llevar a cabo numerosas tareas, dentro de etapas como las siguientes:

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.

Herramientas para el desarrollo de Software

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.

El rol que Enterprise Architect juega en la Ingeniera de Software


El objetivo de Enterprise Architect es proveer todos estos elementos juntos en un entorno que sea tanto coherente como flexible. Un soporte extenso para la notacin de UML 2.1 se combina con las herramientas de administracin de procesos que le permiten decidir sobre una metodologa. soporta un amplio rango de diagramas del UML 2.0, permitiendo modelar casi cualquier sistema, desde aplicaciones Web hasta sistemas embebidos. La generacin de diagramas UML es fcil y rpida, y la maquina de grficos produce diagramas altamente legibles. El explorador de proyectos hace que la navegacin de procesos enteros sea un asunto simple. Adems, las caractersticas de la amplia documentacin de EA le permiten generar, personalizar y mantener soluciones de software completas fcilmente.

S-ar putea să vă placă și