Instituto
Tecnológico de Comitán
Daniela
Hernández Vázquez
No
control: 19700041
Semestre:
5
Grupo:
A
Carrera:
Ingeniería en Sistemas Computacionales
Nombre
del Profesor: Mónica Laurent León Juárez
Materia: Fundamentos de Ingeniería de software
Resumen
de las fases de la ingeniería de software.
Fecha: 30/08/2021
Introducción
El
diseño del Software tiene un impacto directo sobre la capacidad del sistema
para cumplir o no el total de requerimientos establecidos. Un error de diseño
en esta fase puede acarrear problemas en todo el proyecto y provocar que este
caiga en una espiral de continuos cambios y de rehacer constantemente el
trabajo. La ingeniería de software requiere llevar a cabo numerosas tareas
agrupadas en etapas, al conjunto de estas etapas se le denomina ciclo de vida.
Las etapas comunes a casi todos los modelos de ciclo de vida son las
siguientes: Análisis, especificación, diseño y arquitectura, programación,
prueba, documentación y mantenimiento a continuación se explicarán cada uno de
ellos.
La ingeniería de programas
informáticos es el proceso formal de desarrollo de programas informáticos en el
que las necesidades de los usuarios se traducen en requisitos, éstos se
transforman en un diseño que se aplica en un código que se prueba, documenta y
certifica para su uso operacional.
Fases
Análisis
de los requisitos:
Se
extraen los requisitos del producto de software. En esta etapa, la habilidad y
la experiencia en ingeniería de software es fundamental para reconocer los
requisitos incompletos, ambiguos o contradictorios. Por lo general, el
cliente/usuario tiene una visión incompleta/inexacta de lo que necesita y es
necesario ayudarle a obtener la visión completa de los requisitos. El contenido
de la comunicación en esta etapa es muy intenso ya que el objetivo es eliminar
la ambigüedad en la medida de lo posible.
El resultado del análisis de requisitos con el cliente se plasma en el documento ERS (especificación de requisitos del sistema), cuya estructura puede venir definida por varios estándares, tales como CMMI. Asimismo, se define un diagrama de entidad/relación, en el que se plasman las principales entidades que participarán en el desarrollo del software, de esta etapa depende en gran medida el logro de los objetivos finales.
Finalidades del análisis de requisitos:
- Brindar al usuario todo lo necesario para que pueda trabajar en conjunto con el software desarrollado obteniendo los mejores resultados posibles.
- Tener un control más completo en la etapa creación del software, en cuanto a tiempo de desarrollo y costos.
- Utilización de métodos más eficientes que permitan el mejor aprovechamiento del software según sea la finalidad de uso del mismo
- Aumentar la calidad del software desarrollado al disminuir los riesgos de mal funcionamiento.
Especificación:
Es la
tarea de describir en detalle el software que se va a escribir, de forma
rigurosa. Describe el comportamiento esperado del software y su interacción con
los usuarios y/u otros sistemas.
La
especificación de requisitos describe el comportamiento esperado en el software
una vez desarrollado. Gran parte del éxito de un proyecto de software radicará
en la identificación de las necesidades del negocio (definidas por la alta
dirección), así como la interacción con los usuarios funcionales para la
recolección, clasificación, identificación, priorización y especificación de
los requisitos del software.
Entre
las técnicas utilizadas para la especificación de requisitos se encuentran:
·
Caso de uso
·
Historias de usuario
Siendo
los primeros más rigurosas y formales, los segundas más ágiles e informales.
Diseño
y arquitectura:
Determinar
cómo funcionará de manera general sin entrar en detalles, incorporando
consideraciones de implementación tecnológica, como el hardware, la red, etc.
Consiste en el diseño de los componentes del sistema que responden a las
funcionalidades descritas en la segunda etapa, también conocidas como entidades
empresariales. Generalmente se realiza en base a diagramas que permiten
describir las interacciones entre las entidades y su secuenciación.
Un
diseño arquitectónico describe en general el cómo se construirá una aplicación
de software. Para ello se documenta utilizando diagramas, por ejemplo:
·
Diagrama de clases
·
Diagrama de base de datos
·
Diagrama de despliegue
·
Diagrama de secuencia
Los
diagramas de clases y de base de datos son los mínimos necesarios para
describir la arquitectura de un proyecto que iniciará a ser codificado.
Dependiendo del alcance del proyecto, complejidad y necesidades, el arquitecto
elegirá cuales de los diagramas se requiere elaborar.
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
Programacion:
El diseño se traduce en código. Es la parte más obvia del trabajo de ingeniería de software y la primera en la que se obtienen resultados “tangibles”. No es necesariamente la etapa más larga ni la más compleja, aunque una especificación o diseño incompleto/ambiguo puede requerir que las tareas de las etapas anteriores se lleven a cabo en ésta.
Para el desarrollo de la aplicación es necesario considerar cinco fases para tener una aplicación o programa eficiente, estas son:
- 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.
- 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.
- 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.
- 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.
- 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 programa informático responde correctamente / realiza las tareas indicadas en la especificación. Es una buena práctica realizar pruebas a diferentes niveles (por ejemplo, primero a nivel de unidad y luego de forma integrada para cada componente) y así poder llegar al objetivo. Se considera una buena práctica 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.
Documentación:
Elaboración
del manual de usuario y, posiblemente, de un manual técnico para el
mantenimiento y las futuras ampliaciones del sistema. Las tareas de esta etapa
comienzan ya en la primera fase, pero sólo terminan una vez terminadas las
pruebas.
Todo
lo concerniente a la documentación del propio desarrollo del software y de la
gestión del proyecto, pasando por modelaciones (UML), diagramas, pruebas,
manuales de usuario, manuales técnicos, etc; todo con el propósito de
eventuales correcciones, usabilidad, mantenimiento futuro y ampliaciones al
sistema.
Mantenimiento: En
esta etapa se realiza un mantenimiento correctivo (para solucionar errores) y
un mantenimiento evolutivo (para mejorar las funcionalidades y/o dar respuesta
a nuevos requerimientos).
Mantener
y mejorar el software para enfrentar errores descubiertos y 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.
De manera similar, alrededor de 2/3 de toda la ingeniería civil, arquitectura y
trabajo de construcción es dar mantenimiento.
Conclusión
Cada
una de las fases de la arquitectura de software son muy importantes, ya que
cada una cumple una función que permite que la elaboración del software se
pueda realizar de la mejor manera y que podamos cumplir con el objetivo que
deseamos. Si no realizamos uno de estos pasos tendríamos consecuencia que no
nos permitirá que el proyecto funcione y no podamos avanzar, es importante
llevar un buen control para así poder realizar el proyecto de la mejor manera
posible.
Bibliografía
Fases del Proceso de Desarrollo del Software. (2008, July 5). Sistemas VD; Sistemas VD.
https://sistemasvd.wordpress.com/2008/07/05/fases-del-proceso-de-desarrollo-del-software/
Ingeniero. (2020, February 19). Fases de la
ingeniería de software La ingeniería de programas informáticos es Read more.
Ingeniería; Ingeniería.
https://ingeniero.win/fases-de-la-ingenieria-de-software/
https://www.facebook.com/ZimbronApps. (2017, August
22). Fases de la Ingeniería de Software - ZimbronApps. ZimbronApps.
https://zimbronapps.com/educacion/sistemas-computacionales/ingenieria-de-software/fases-la-ingenieria-software/








No hay comentarios:
Publicar un comentario