lunes, 30 de agosto de 2021

2do PA Fases de la Ingeniería de software

En la actualidad se ha visto muchos proyectos de software fracasar porque no siguieron ninguna metodología. Con muy buenas intenciones se empieza a construir rápidamente con sólo una idea aproximada de lo que se quiere desarrollar y con un plan aún más vago de cómo hacerlo. Aplicar las etapas de la ingeniería de software suele ser una buena idea que te permite estructurar el producto y enfocar su construcción con éxito. La ingeniería del software es el proceso formal de desarrollo de software en el que las necesidades del usuario se traducen en requerimientos, estos se transforman en diseño que se implementa en código que se prueba, documenta y se certifica para su uso operativo. La ingeniería del software se define como “la aplicación de un método sistemático, disciplinado y cuantificable al desarrollo, operación, mantenimiento de software y el estudio de los métodos”

La metodología para el desarrollo de software es un modo sistemático de realizar, gestionar y administrar un proyecto para llevarlo a cabo con grandes posibilidades de éxito. Esta sistematización indica cómo se divide un proyecto en módulos más pequeños para normalizar cómo se administra el mismo. La metodología para el desarrollo de software son los procesos a seguir sistemáticamente para idear, implementar y mantener un producto de software desde que surge la necesidad del producto hasta que se cumple el objetivo por el cual fue creado.

De esta forma, las etapas del desarrollo de software son las siguientes:

1.      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 tiene una visión incompleta o 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.

2.      Especificación:

La especificación describe detalladamente el software una vez desarrollado de una forma rigurosa. Se describe el comportamiento esperado del software y su interacción con los usuarios y otros sistemas.

 

3.      Diseño y arquitectura:

Se refiere a determinar cómo funcionará en general sin entrar en detalles. Consiste en incorporar consideraciones de implementación tecnológica. Se definen los casos de uso para cubrir las funciones que el sistema realizará, 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 y las entidades definidas en el análisis de requerimientos se transforman en clases de diseño, obteniendo un modelo cercano a la programación orientada a objetos. Generalmente se realiza en base a diagramas que permitan describir las interacciones entre las entidades y su secuenciado.

4.      Programación:

Se traduce el diseño a código. Es la primera parte 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 pueden exigir que, tareas propias de las etapas anteriores se tengan que realizarse en esta.

5.      Prueba:

Consiste en comprobar que el software responda correctamente las tareas indicadas en la especificación. Es una buena práctica 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.

6.      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. Esta etapa se inicia en la primera fase, pero sólo finalizan una vez terminadas las pruebas.

 

7.      Mantenimiento:

En esta etapa se suele resolver errores y mejorar las funcionalidades o dar respuesta a nuevos requisitos.








Referencia:

Xavi. (2013, February 10). Proyectos de Guerrilla. Proyectos de Guerrilla. http://proyectosguerrilla.com/blog/2013/02/las-cinco-etapas-en-la-ingenieria-del-software/

1.2 Fases de la Ingeniería de software. (2017). Blogspot.com. http://andoniandresperezdominguezfis.blogspot.com/2017/09/12-fases-de-la-ingenieria-de-software.html

ETAPAS DE LA INGENIERÍA DE SOFTWARE (ANALISIS (DISEÑO (Se refiere a…. (2013). Coggle.it; Coggle. https://coggle.it/diagram/V_KjJzukTDoQ_Au4/t/etapas-de-la-ingenier%C3%ADa-de-software


jueves, 26 de agosto de 2021

1.- Fundamentos de Ingeniería de software

1.1. Conceptos básicos

Modelo: Un modelo es la representación real de los datos obtenidos a partir de la información disponible. Ejemplos son el modelo de estructura y el modelo de estilo que representan la estructura analítica y la información de estilo asociada a un documento. El modelo podría ser un árbol, o un grafo orientado, o cualquier otra cosa.

 

Adaptabilidad: Capacidad de un objeto para acomodarse o ajustarse a otro; Capacidad para acostumbrarse a una situación.

 

Base de datos: Una base de datos o banco de datos (en ocasiones abreviada con la sigla BD o con la abreviatura b. d.) es un conjunto de datos pertenecientes a un mismo contexto y almacenados sistemáticamente para su posterior uso.

 

Clase: En la programación orientada a objetos, una clase es una construcción que se utiliza como un modelo (o plantilla) para crear objetos de ese tipo. El modelo describe el estado y el comportamiento que todos los objetos de la clase comparten.

 

Código: En el caso de la informática, se conoce como código fuente al texto desarrollado en un lenguaje de programación y que debe ser compilado o interpretado para poder ejecutarse en una computadora

 

Conocimiento científico: El conocimiento científico es una aproximación crítica a la realidad apoyándose en el método científico que, fundamentalmente, trata de percibir y explicar desde lo esencial hasta lo más prosaico, el porqué de las cosas y su devenir, o al menos entiende a este fin.

 

Ingeniería de software:  es la aplicación de un enfoque sistemático, disciplinado y cuantificable al desarrollo, operación y mantenimiento de software, y el estudio de estos enfoques, es decir, la aplicación de la ingeniería al software. Es la aplicación de la ingeniería al software, ya que integra matemáticas, ciencias de la computación y prácticas cuyos orígenes se encuentran en la ingeniería.

 

Metodología: La metodología hace referencia al conjunto de procedimientos racionales utilizados para alcanzar una gama de objetivos que rigen en una investigación científica, una exposición doctrinal o tareas que requieran habilidades, conocimientos o cuidados específicos. Alternativamente puede definirse la metodología como el estudio o elección de un método pertinente para un determinado objetivo.

 

Objeto: En el paradigma de programación orientada a objetos (POO, o bien OOP en inglés), un objeto se define como la unidad que en tiempo de ejecución realiza las tareas de un programa. También a un nivel más básico se define como la instancia de una clase.

 

Portabilidad: La portabilidad, en informática, se refiere a la capacidad de un programa o sistema de ejecutarse en diferentes plataformas o arquitecturas con mínimas modificaciones.

La portabilidad, en cuanto al hardware, es la facilidad con que se puede transportar un dispositivo electrónico (computadora, consola de juego, etc.) y está básicamente relacionado al peso y las dimensiones del equipo. A menor peso y dimensiones, más portable es el dispositivo.

 

Programación: Es el proceso de diseñar, codificar, depurar y mantener el código fuente de programas computacionales. El código fuente es escrito en un lenguaje de programación.

 

Rentable: La rentabilidad es la capacidad que tiene algo para generar suficiente utilidad o beneficio.

 

Sistema: Un sistema (del latín systēma, proveniente del griego σύστημα) es un objeto compuesto cuyos componentes se relacionan con al menos algún otro componente; puede ser material o conceptual.

 

Software: Conjunto de programas, instrucciones y reglas informáticas para ejecutar ciertas tareas en una computadora.

 

API: Una API es una interfaz de programación de aplicaciones (application programming interface), un conjunto de funciones o métodos usados para acceder a cierta funcionalidad.

 

Aplicación cliente: Una aplicación (cliente) es cualquier programa de computadora que usa las interfaces de programación del Modelo de Objetos del Documento proporcionadas por la implementación anfitrión para realizar trabajo útil. Ejemplos de aplicaciones cliente son los scripts de un documento HTML o XML.

Conveniencia: Un método de conveniencia es una operación sobre un objeto que podría realizar un programa consistente en operaciones más básicas sobre el objeto. Los métodos de conveniencia normalmente se proporcionan para hacer el API más fácil y simple de usar, o para permitir a programas específicos crear implementaciones más optimizadas para operaciones comunes. Análogamente se define una propiedad de conveniencia.

 

Interfaz: Una interfaz es una declaración de un conjunto de métodos sin información sobre su implementación. En los sistemas de objetos que soportan interfaces y herencia, las interfaces normalmente pueden derivar unas de otras.

 

Método: Un método es una operación o función que está asociada a un objeto y que tiene permiso para manipular los datos del objeto.

 

Software libre: Software completo con el código fuente que es distribuido libremente para que además de ser usado, pueda modificarse, redistribuirse, y si se desea, venderse sin que constituya piratería.

El usuario puede hacer las modificaciones que considere adecuadas sin necesidad de notificar estos cambios, mas debe distribuir su programa con el código fuente agregado.



Referencias:

Glosario. (2012). Blogspot.com. http://fund-ing-soft.blogspot.com/p/glosario_11.html

Angel, M. (2021, August 26). 8.-Glosario y términos relacionados con la Ingeniería del Software. Blogspot.com. http://ingsoft2013.blogspot.com/2013/02/8-glosario-y-terminos-relacionados-con.html


PA 4

 Conclusión La importancia radica principalmente en entregar productos de calidad esperada, en donde se previenen riesgos a futuro. Así mism...