1. El documento describe las distintas fases del proceso de ingeniería de software, incluyendo la obtención de requerimientos, análisis de requerimientos, especificación, diseño, programación, pruebas, implementación, documentación y mantenimiento.
2. Algunas de las técnicas mencionadas son casos de uso, historias de usuario, diagramas de clases y secuencia, y pruebas unitarias.
3. El objetivo principal es desarrollar software que cumpla con los requerimientos recopilados y las especificaciones
Descripción original:
Fases de la Ingenieria en Software, conocido como el Ciclo de la vida
1. El documento describe las distintas fases del proceso de ingeniería de software, incluyendo la obtención de requerimientos, análisis de requerimientos, especificación, diseño, programación, pruebas, implementación, documentación y mantenimiento.
2. Algunas de las técnicas mencionadas son casos de uso, historias de usuario, diagramas de clases y secuencia, y pruebas unitarias.
3. El objetivo principal es desarrollar software que cumpla con los requerimientos recopilados y las especificaciones
1. El documento describe las distintas fases del proceso de ingeniería de software, incluyendo la obtención de requerimientos, análisis de requerimientos, especificación, diseño, programación, pruebas, implementación, documentación y mantenimiento.
2. Algunas de las técnicas mencionadas son casos de uso, historias de usuario, diagramas de clases y secuencia, y pruebas unitarias.
3. El objetivo principal es desarrollar software que cumpla con los requerimientos recopilados y las especificaciones
Materia: Fundamentos de Investigación de Software Carrera: Ingeniería en Sistemas Computacionales Grupo:51T Escuela: Instituto Tecnológico de Lázaro Cárdenas Numero de Control:17560350 1.2 Fases de la Ingeniería De Software Obtención de requerimientos: Se debe identificar sobre qué se está trabajando, es decir, el tema principal que motiva el inicio del estudio y creación del nuevo software o modificación de uno ya existente. A su vez identificar los recursos que se tienen, en esto entra el conocer los recursos humanos y materiales que participan en el desarrollo de las actividades. Análisis de requerimientos: Se extraen los requisitos del producto de software. En esta etapa la habilidad y experiencia en la ingeniería del software es crítica para reconocer requisitos incompletos, ambiguos o contradictorios. Usualmente el cliente/usuario tiene una visión incompleta/inexacta de lo que necesita y es necesario ayudarle para obtener la visión completa de los requerimientos. El contenido de comunicación en esta etapa es muy intenso ya que el objetivo es eliminar la ambigüedad en la medida de lo posible. 1. Es un estudio profundo de una necesidad tecnológica que tiene una empresa, organización o negocio.
2. Especifica las características operacionales que tendrá el software a desarrollar.
3. Se realiza a través de entrevistas, observación, indagación y demás técnicas específicas.
4. Describe el plan del proyecto a seguir.
5. Es fundamental entregar el proyecto dentro del tiempo y presupuesto acordados y de los
objetivos de negocio Limitaciones: Los softwares tienen la capacidad de emular inteligencia creando un modelo de ciertas características de la inteligencia humana pero sólo posee funciones predefinidas que abarcan un conjunto de soluciones que en algunos campos llega a ser limitado. Aun cuando tiene la capacidad de imitar ciertos comportamientos humanos no es capaz de emular el pensamiento humano porque actúa bajo condiciones. Especificación: Es la tarea de describir detalladamente el software a ser escrito, de una forma rigurosa. Se describe el comportamiento esperado del software y su interacción con los usuarios y/o otros sistemas. Entre las técnicas utilizadas para la especificación de requisitos se encuentran: 1. Caso de uso 2. Historias de usuario Diseño y arquitectura: Consiste en el diseño de los componentes del sistema que dan respuesta a las funcionalidades descritas en la segunda etapa también conocidas como las entidades de negocio. Generalmente se realiza en base a diagramas que permitan describir las interacciones entre las entidades y su secuenciado. Para ello se documenta utilizando diagramas, por ejemplo: -Diagrama de clases -Diagrama de base de datos -Diagrama de despliegue -Diagrama de secuencia Las herramientas para el diseño y modelado de software se denominan CASE (Computer Aided Software Engineering) entre las cuales se encuentran: -Enterprise Architect -Microsoft Visio for Enterprise Architects Programación: Se traduce el diseño a código. Es la parte más obvia del trabajo de ingeniería de software y la primera en que se obtienen resultados “tangibles”. No necesariamente es la etapa más larga ni la más compleja, aunque una especificación o diseño incompletos/ambiguos pueden exigir que, tareas propias de las etapas anteriores se tengan que realizarse en esta. Desarrollo de la aplicación: Para el desarrollo de la aplicación es necesario considerar cinco fases para tener una aplicación o programa eficiente, estas son: 1. Desarrollo de la infraestructura: Esta fase permite el desarrollo y la organización de los elementos que formaran la infraestructura de la aplicación, con el propósito de finalizar la aplicación eficientemente. 2. Adaptación del paquete: El objetivo principal de esta fase es entender de una manera detallada el funcionamiento del paquete, esto tiene como finalidad garantizar que el paquete pueda ser utilizado en su máximo rendimiento, tanto para negocios o recursos. Todos los elementos que componen el paquete son inspeccionados de manera detallada para evitar errores y entender mejor todas las características del paquete. 3. Desarrollo de unidades de diseño de interactivas: En esta fase se realizan los procedimientos que se ejecutan por un diálogo usuario-sistema. Los procedimientos de esta fase tienen como objetivo principal: -Establecer específicamente las acciones que debe efectuar la unidad de diseño. -La creación de componentes para sus procedimientos. -Ejecutar pruebas unitarias y de integración en la unidad de diseño. 4. Desarrollo de unidades de diseño batch: En esta fase se utilizan una serie de combinación de técnicas, como diagrama de flujo, diagramas de estructuras, tablas de decisiones, etc. Cualquiera a utilizar será beneficioso para plasmar de manera clara y objetiva las especificaciones y que así el programador tenga mayor comprensión a la hora de programar y probar los programas que le corresponden. 5. Desarrollo de unidades de diseño manuales: En esta fase el objetivo central es proyectar todos los procedimientos administrativos que desarrollarán en torno a la utilización de los componentes computarizados. Prueba: Consiste en comprobar que el software responda/realice correctamente las tareas indicadas en la especificación. Es una buena praxis realizar pruebas a distintos niveles (por ejemplo, primero a nivel unitario y después de forma integrada de cada componente) y por equipos diferenciados del de desarrollo (pruebas cruzadas entre los programadores o realizadas por un área de test independiente). Implementación: es la realización de una especificación técnica o algoritmos con un programa, componente software, u otro sistema de cómputo. Muchas especificaciones son dadas según a su especificación o un estándar. Las especificaciones recomendadas según el World Wide Web Consortium, y las herramientas de desarrollo del software contienen implementaciones de lenguajes de programación. El modelo de implementación es una colección de componentes y los subsistemas que contienen. Componentes tales como: ficheros ejecutables, ficheros de código fuente y todo otro tipo de ficheros que sean necesarios para la implementación y despliegue del sistema. Documentación: Realización del manual de usuario, y posiblemente un manual técnico con el propósito de mantenimiento futuro y ampliaciones al sistema. Las tareas de esta etapa se inician ya en la primera fase, pero sólo finalizan una vez terminadas las pruebas. Mantenimiento: En esta etapa se realizan un mantenimiento correctivo (resolver errores) y un mantenimiento evolutivo (mejorar la funcionalidad y/o dar respuesta a nuevos requisitos).. Esto puede llevar más tiempo incluso que el desarrollo inicial del software. Alrededor de 2/3 de toda la ingeniería de software tiene que ver con dar mantenimiento. Una pequeña parte de este trabajo consiste en arreglar errores, o bugs. La mayor parte consiste en extender el sistema para hacer nuevas cosas.
Referencias Pressman. (2010). Ingenieria del Software. Mexico: Mc Graw-Hill.
Scharch. (2006). Ingenieria de Software Clasica y Orientada a objetos. Mexico: Mc Graw HIll.
Sommerville. (2011). Ingenieria de Software. Mexico: Pearson.