Métodos de Ingeniería de Software
javier fuentesInforme19 de Enero de 2016
9.081 Palabras (37 Páginas)430 Visitas
UNIVERSIDAD DE SANTIAGO DE CHILE[pic 1]
FACULTAD DE INGENIERÍA
Departamento Ingeniería Informática
Buenas Prácticas para la Ingeniería de Software
“PEP 1 Métodos de Ingeniería de Software”
Javier Fuentes Gaete
Yanira Sáez Venegas
Diego Salinas Menares
Profesor: Alcides Quispe Sanca.
Ayudante: Robinson Oyarzún.
Santiago-Chile
Segundo Semestre 2015
TABLA DE CONTENIDO
ÍNDICE DE FIGURAS
CAPÍTULO 1: INTRODUCCIÓN
CAPÍTULO 2: PRÁCTICAS DE INGENIERÍA DE SOFTWARE
CAPÍTULO 3: BUENAS PRÁCTICAS DE REQUERIMIENTOS
CAPÍTULO 4: BUENAS PRÁCTICAS DE DISEÑO
CAPÍTULO 5: BUENAS PRÁCTICAS DE PROGRAMACIÓN.
CAPÍTULO 6: BUENAS PRÁCTICAS DE TESTING.
CAPÍTULO 7: BUENAS PRÁCTICAS DE GESTIÓN.
CAPÍTULO 8: CONCLUSIONES
CAPÍTULO 9: REFERENCIAS
ÍNDICE DE FIGURAS
Figura 2.1 Manifiesto Ágil................................................................................................................9
Figura 3.1: Como cada uno entiende los requerimientos .............................................................11
Figura 3.2: Priorización de requerimientos mediante tabla Excel .................................................14
Figura 3.3: Control de cambios dentro de las líneas base de los requisitos .................................16
Figura 4.1: Tipos de diseño de software ........................................................................................18
Figura 4.2: Diagrama de Componentes ........................................................................................19
Figura 4.3: Diagrama de Interfaz ..................................................................................................19
Figura 4.4: Arquitectura basada en EC2 .......................................................................................20
Figura 4.5: Diagramas de datos o clases .....................................................................................20
Figura 4.6 : Diagramas de funcionamiento de un subprograma ...................................................21
Figura 5.1: Ejemplo de Principio de Abstracción ..........................................................................23
Figura 5.2: Ejemplo de comentar código ......................................................................................24
Figura 5.3: Ejemplo de nombres descriptivos ...............................................................................24
Figura 5.4: Ejemplo de principio abierto/cerrado ...........................................................................25
Figura 5.5: Ejemplo Principio de Responsabilidad Única ..............................................................25
Figura 5.6: Ejemplo de Maximizar Cohesión .................................................................................26
Figura 5.7: Ejemplo de reutilización de código .............................................................................26
Figura 5.8: Ejemplo de Indentación ..............................................................................................27
Figura 6.1: Niveles de Testing .......................................................................................................29
Figura 6.2: Ejemplo de herramientas por niveles de Testing ........................................................31
Figura 6.3: Métrica “Reliable” por cada componente en el software .............................................31
Figura 7.1: Modelo de Ciclo de Vida Cascada ...............................................................................33
Figura 7.2: Modelo de Ciclo de Vida Incremental .........................................................................34
Figura 7.3: Modelo de Ciclo de Vida Evolutivo .............................................................................34
Figura 7.4: Metodología Scrum .....................................................................................................34
Figura 7.5: Modelo de funcionamiento de ambiente de Integración Continua...............................38
CAPÍTULO 1: INTRODUCCIÓN
Para construir sistemas grandes y complejos de buena calidad hay que construir una base sólida desde el principio, es por esta razón que es necesario comenzar desde los cimientos del conocimiento de ingeniería de software, de manera de lograr comprender las buenas prácticas de desarrollo de software. Primero que todo ¿Qué es el software? Son programas de ordenador y la documentación asociada, que pueden ser desarrollados para un cliente en particular o para un mercado general (Sommerville, 2005), a partir de esto nace la ingeniería de software como una disciplina de ingeniería que comprende todos los aspectos de la producción de software.
La producción de software consta de varias etapas que componen este proceso de producción como Requerimientos, diseño, programación, testing y gestión. Cada una de estas etapas son fundamentales para el correcto desarrollo de software, y a lo largo de los años los ingenieros han desarrollado distintos consejos para mejorar el proceso de desarrollo de ingeniería de software, más conocidos como las buenas prácticas de ingeniería de software. ¿Qué son las buenas prácticas? Según Margaret Rouse administradora de Whatls.com la enciclopedia y centro de aprendizaje de TI de TechTarget, “Una buena práctica es un método bien definido que contribuye al éxito de una determinada actividad dentro del proceso de desarrollo de software, y que ha sido probada a través de la experiencia e investigación.” (Rouse, 2007). Bajo la definición dicha anteriormente se describen, enumeran y explican a lo largo de este informe una gran variedad de buenas prácticas de ingeniería de software, con el fin de ayudar y servir de guía al estudiante en sus futuros proyectos de software.
Grandes empresas a nivel mundial utilizan buenas prácticas de software como Amazon, Apple Computers, Google, IBM, Microsoft y Unisys, por nombrar las más reconocidas, para poder dimensionar la importancia de aplicar y aprender a usar estas buenas prácticas, que no tan solo ayudan de forma teórica dentro del curso de métodos de ingeniería de software, sino también la comprensión de las metodologías de trabajo que utilizan estas grandes empresas podrán aportar e implementarse a futuro de una forma más práctica en el entorno laboral.
CAPÍTULO 2: PRÁCTICAS DE INGENIERÍA DE SOFTWARE
En la ingeniería de software el desarrollo de un proceso de software, tiene un enfoque flexible que permite al equipo buscar y decidir el conjunto de acciones y tareas más apropiadas para realizar de la mejor manera el proyecto. Siempre se busca entregar el software en el tiempo decidido, con el menor costo y con la mayor funcionalidad y valor para el cliente. El proceso de software está compuesto por actividades que ayudan a dar forma a la estructura que se desea del proyecto, los cuales son descritos a continuación:
- Comunicación: Antes de comenzar el desarrollo del proyecto y durante este mismo es importante conversar y colaborar en conjunto con el cliente para comprender de mejor forma los objetivos de los participantes respecto al proyecto.
- Planeación: Es importante desarrollar un camino para el equipo de software por medio de las tareas técnicas a realizar, los posibles riesgos, los recursos necesarios, los productos que se obtendrán y una programación de las actividades.
- Modelo: El ingeniero crea modelos para comprender y visualizar mejor los requerimientos del software y el diseño que los cumplirá.
- Construcción: El equipo de desarrollo comienza la generación manual o automatizada de código, además de las pruebas necesarias para descubrir los errores del software.
- Despliegue: Se entrega el software terminado o un incremento funcional al cliente, el cual lo evalúa y genera un feedback al equipo.
Dependiendo del tamaño del proyecto el equipo evalúa si se puede realizar todo en un solo ciclo o si es necesario desarrollarlo de forma iterativa con entregas incrementales del producto a medida que avanza el proyecto.
Otro punto importante en la práctica de ingeniería de software son los principios propuestos por David Hooker, los cuales son siete principios que se centran en la práctica de la ingeniería de software como un todo, y se enumeran a continuación: (Pressman, 2010)
- Primer principio: “La razón de que exista todo”
Un sistema de software existe por una razón: dar valor a sus usuarios. Todas las decisiones deben tomarse teniendo esto en mente. Antes de especificar un requerimiento del sistema, antes de notar la funcionalidad de una parte de él, antes de determinar las plataformas del hardware o desarrollar procesos, plantéese preguntas tales como: “¿Esto agrega valor real al sistema?” Si la respuesta es “no”, entonces no lo haga. Todos los demás principios apoyan a éste.
...