Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
4
Ingeniería de software
5
Ingeniería de software
6
Proceso de software
7
Modelo de Proceso de software
8
Costos de la ingeniería de software
9
Costos de la ingeniería de software
10
Métodos de la ingeniería de software
11
Herramientas CASE (Computer Aided Software
Engineering, Ingeniería de Software Asistida por
Computadora)
Se puede definir a las Herramientas CASE como un
conjunto de programas que dan asistencia a los
analistas, ingenieros de software y desarrolladores,
durante todos los pasos del Ciclo de Vida de desarrollo de
un Software.
Su finalidad es aumentar la productividad en el desarrollo
de software reduciendo el costo de las mismas en
términos de tiempo y de dinero.
12
Las herramientas CASE, en función de las fases del ciclo de
vida del software, se pueden agrupar de la forma siguiente:
14
Atributos del software de calidad
15
1.2 Fases de la Ingeniería de software
Fases Genéricas de la Ingeniería del Software
Fase de Definición: se centra sobre el qué.
qué información ha de ser procesada,
qué función y rendimiento se desea,
qué comportamiento del sistema,
qué interfaces van a ser establecidas,
qué restricciones de diseño existen,
qué criterios de validación se necesitan para definir
un sistema correcto. 16
Fase de Desarrollo: se centra en el cómo.
18
Durante la fase de mantenimiento se encuentran
cuatro tipos de cambios:
Corrección. Incluso llevando a cabo las mejores
actividades de garantía de calidad, es muy probable
que el cliente descubra los defectos en el software. El
mantenimiento correctivo cambia el software para
corregir los defectos.
Adaptación. Con el paso del tiempo, es probable que
cambie el entorno original para el que se desarrolló el
software. El mantenimiento adaptativo produce
modificación en el software para acomodarlo a los
cambios de su entorno externo. 19
Mejora. Conforme se utilice el software, el
cliente/usuario puede descubrir funciones adicionales
que van a producir beneficios. El mantenimiento
perfectivo lleva al software más allá de sus
requisitos funcionales originales.
Prevención. El software de computadora se deteriora
debido al cambio, y por esto el mantenimiento
preventivo también llamado reingeniería del
software, se debe conducir a permitir que el software
sirva para las necesidades de los usuarios finales.
20
21
Análisis de requisitos
Mientras que los clientes piensan que ellos saben lo que el
software tiene que hacer, se requiere de habilidad y experiencia
en la ingeniería de software para reconocer requisitos
incompletos, ambiguos o contradictorios. El resultado del
análisis de requisitos con el cliente se plasma en el documento
ERS, Especificación de Requerimientos del Sistema,
cuya estructura puede venir definida por varios estándares.
22
Diseño y arquitectura
Se refiere a determinar como funcionará de forma general
sin entrar en detalles. Consiste en incorporar
consideraciones de la implementación tecnológica, como
el hardware, la red, etc.
Se definen los Casos de Uso para cubrir las funciones
que realizará el sistema, y se transforman las entidades
definidas en el análisis de requisitos en clases de diseño,
obteniendo un modelo cercano a la programación
orientada a objetos.
23
Programación
24
Pruebas
Consiste en comprobar que el software realice
correctamente las tareas indicadas en la especificación.
Una técnica de prueba es probar por separado cada
módulo del software, y luego probarlo de forma integral,
para así llegar al objetivo.
Se considera una buena practica 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. 25
Hay dos formas de organizar un área de pruebas:
Metodología en cascada: el
estilo del modelo en cascada, es
que no podrás avanzar a la
siguiente fase, si la anterior no se
encuentra totalmente terminada,
pues no tiene porque haber
vuelta atrás. 30
Modelo de Prototipos: Consiste
básicamente en que en base a los
requerimientos y necesidades que
tiene el cliente, se realiza de forma
rápida un prototipo, este no vendrá
completo ni mucho menos
terminado, pero si permitirá contar
con las bases necesarias para que
cualquier programador pueda seguir
trabajando en él hasta llegar al
código final.
31
Modelo Incremental: Se trata de la combinación del modelo de
cascada y prototipos. Consiste en completar varias iteraciones de lo que
es el modelo de cascada, pero sin completar ninguna, haciendo
iteraciones lo que se hace es crear una evolución en el producto,
permitiendo que se agreguen nuevas especificaciones, opciones,
funciones y lo que el usuario requiera después de cada iteración.
32
Modelo en Espiral: consiste en ciertas fases que se van
realizando en modo de espiral, utilizando procesos de la misma
forma en que se utilizan en el modelo de cascada, sin embargo
aquí estos no son obligatorios y no llevan precisamente el orden
establecido.
El modelo en espiral es
principalmente utilizado
para el desarrollo de
grandes proyectos como
la creación de un sistema
operativo. 33
1.3 Metodologías del Desarrollo del Software
1.3.2 Ágiles
49
Sprint Retrospective. Para concluir, el Sprint Retrospective,
permite al equipo analizar los objetivos cumplidos, si se
cometieron errores, visualizarlos y tratar de no cometerlos
nuevamente mas adelante.
50
Equipos que componen un proceso Scrum
51
52
Equipos que componen un proceso Scrum
55
Cliente. El cliente también
forma parte del equipo. En
la metodología Scrum, el
cliente tiene la capacidad
para influir en el proceso,
debido a que siempre estará
empapado de él, ya sea que
proponga nuevas ideas o
bien haciendo algún tipo de
comentario.
56
57
Metodología Kanban
59
Principios Básicos de Kanban
68
Metodología XP (Programación eXtrema)
Valores
• Comunicación.
• Simplicidad.
• Retroalimentación.
• Respeto.
69
Características que componen la metodología XP
70
Equipo de Trabajo dentro de una Metodología XP
• Programador. Es el encargado del código del sistema y
además de hacer las pruebas unitarias que se solicitan.
71
Equipo de Trabajo dentro de una Metodología XP