Please enable JavaScript.
Coggle requires JavaScript to display documents.
Introducción a la ingeniería de software - Coggle Diagram
Introducción a la ingeniería de software
Qué es ingeniería?
Aplicación de conjunto de conocimientos y técnicas científicas
Qué es software?
Elemento lógico de la computadora
Componentes
Documento especifico de requerimientos
Documento de diseño
Código
Manual de usuario
Manual técnico
Características
Producto y vehículo
Lógico no físico
Se desarrolla no se fabrica
No se desgaste se deteriora
Hecho a medida y se reusa
Mitos de sofware
Administrador del proyecto
Estándares y procedimientos es lo único que se necesitan
Ultima generación de tecnología es lo único que se necesita
Plantificación mal, mas personas mas rápido fecha de entrega
Calidad = gastos
Usuario final o cliente
Declaración general de los objetivos del cliente es lo necesario para programar
El software es flexible
Desarrollo
Programa funcionando, fin del trabajo del ing. de software
La calidad dell software depende de la ejecución en una maquina
Lo único que se entrega es el programa funcionando
Que es el software de calidad?
Requerimientos especificadas
Necesidades o expectativas del cliente o usuario
Qué es Ing. de software?
Disciplina tecnológica - administrativa dedicada a la producción de productos de programación de calidad y presupuesto definido
Como tecnología multicapa
Herramientas
Proporcionan un enfoqué automático o semi para el proceso y para los métodos
Métodos
Como construir técnicamente el software
Proceso
Fundamento de Ing. Soft., objeto de estudio
Un enfoque de calidad
Apoyo de un compromiso de calidad. Materializado en el sistema de calidad de la organización de desarrollo
Objetivo
Proceso de desarrollo de software
Conjunto de etapas con la intención de lograr un software de calidad en tiempo y presupuesto definido
Ciclo de vida del software
Fases genéricas
Fase de definición
Ánalisis
Planificación
Fase de desarrollo
Diseño
Codificación
Pruebas
Fase de mantenimiento
Preventivo
Correctivo
Adaptativo
Perfectivo
Modelo de Proceso de software (Plan del proyecto)
Estrategia de desarrollo que los ing. de software emplean para resolver problemas de la industria de software.
SCRUM
equipo es una unidad
equipo autodirigido
negocio fija prioridades
decide si los objetivos fueron alcanzados
todos pueden ver el trabajo de desarrollo real
RUP
personas
necesitan formación, entrenamiento y experiencia
cada uno tiene responsabilidad y se encarga de un conjunto de actividades
producto
artefactos de ingeniería y de gestión
colección de modelos
proyecto
El sistema evoluciona
con iteraciones
Patrón organizativo
herramientas
Mantienen una estructura
proceso mas formal y preciso
deben ser faciles de utilizar y permite la reutilización
Lineal secuencial
Modelo clásico
Modelo en cascada
+antiguo
+usado
Enfoque sistémico secuencial
Dirigido por documentación
Usar cuando todos los requerimientos han sido establecidos claramente de entrada
Desarrollo rápido de aplicaciones(DRA)
para sistemas que se pueden modularizar
Lineal secuencial
Sistemas cortos
Criticas
Proyectos grandes con gran cantidad de personas
Alto compromiso con el tiempo
No apto para todo sistema
desaconsejable cuando existen riesgos tecnológicos
Construcción de prototipos
Requerimientos no claros desde el principio
Iterativo
Criticas
Cliente se cree el sistema
Difícil de administrar
costoso
Ventajas
Se detectan defectos
Staff de desarrollo encuentra inconsistencias
base de la especificación para la producción de un sistema de calidad
Usara cuando los requerimientos no están claros, no ceder a la presión del cliente
Incremental
Lineal secuencial
Útil cuando no se esta seguro de cumplir plazos
Ventajas
retroalimentación
disminución de errores, riesgos, tiempo de entrenamiento al usuario
uso del sistema sin estar en la etapa final
Criticas
definición del contrato
documentación en cada incremento
los incrementos se adaptan a la parte del sistema acabada
Espiral
ventajas
Útil para proyectos grandes
permite usar el prototipado en todas las etapas de la evolución para reducir riesgo
mantiene los pasos por el lineal secuencia pero incorpora el marco iterativo
Criticas
requiere mucha habilidad, experiencia
no ha sido utilizado tanto
XP
evolución del modelo incremental
Principios
simplicidad
comunicación
retroalimentación
coraje o valentía
respeto
caracteristicas
desarrollo iterativo e incremental
pruebas unitarias continuas
programación en parejas
integración del equipo de programación con el cliente
corrección de todos los errores
refactorización del código
propiedades del código compartida
simplicidad en el código
Basados en componentes
basado en el modelo espiral
ventajas
especificaciones consistentes
útiles para sistemas críticos
criticas
dificulta la validación con el cliente
su ejecución requiere tiempo y esfuerzo
métodos formales
Prototipo evolutivo
Ventajas
desarrollo rápido
sistemas pequeños y de vida corta
cliente no sabe lo que quiere
desventajas
requiere técnicas y herramientas especiales
los cambios corrompen la estructura
los sistemas son de vida corta
usar para sistemas pequeños de vida corta, usar cuando es difícil conocer los requerimientos
Métodos agiles y pesados
Métodos agiles
a los individuos por encima de los procesos y las herramientas
software que funciona por encima de la documentación exhaustiva
colaboración con el cliente por encima de la negociación contractual
respuesta al cambio por encima del seguimiento de un plan
El problema es escoger el modelo a utilizar
todos los modelos definen
Que tareas hacer? actividades
quien las hace? roles
cuando se hace? workflow
que generar? artefactos