Ingeniería del Software
Herramientas
UML (Unified Modeling Language),
Lenguaje para crear una sintaxis notacional para expresar modelos orientados a objetos
Gráficas para representar varias relaciones y son una fuente de información para el diseño de pruebas
Planes bien analizados con la finalidad de comprender correctamente lo que hay que hacer
Diversos elementos gráficos, los cuales presentan diversas perspectivas de un sistema
Lenguaje de programación, pero, permite hacer una transición del modelo al código
IDEF0 (Integration Definition for Function Modeling)
Define procesos de negocio dentro de una empresa
Presenta un modelo de proceso que facilite exactitud, detalle, y claridad en la descripción.
Ideal a usar cuando el proceso posee cierta complejidad.
Serie jerárquica de diagramas que describe las funciones especificadas en sus diferentes niveles
La descomposición en niveles jerárquicos facilita la determinación del mapa de procesos y posibilita visualizar al nivel más alto
caracteristicas
Representar de manera gráfica el negocio
Plataforma objetiva para tomar decisiones
Mecanismos para medir la efectividad del cambio
Propiedades definidas por el usuario.
RUP (Rational Unfied Process)
forma disciplinada de asignar tareas y responsabilidades en una empresa de desarrollo
Divide en cuatro fases
Inicio - define el alcance del proyecto
Construcción - es la implementación
Transición - fin del proyecto y puesta en producción
Elaboración - incluye la definición, análisis y diseño
unifica a todos los integrantes del equipo de desarrollo y manteniene una buena comunicación
Auxilia
- Obtener requerimientos
- Organizarlos
- Documentar requerimientos de funcionalidad
- Documentar decisiones
- Comunicar requerimientos del negocio
PSP (Personal Software Process)
Proporciona metodos detallados para estimar y planear
explica procesos defindos
TSP (Team Software Process)
Enfoca a la iniciativa del equipo
analiza interacción de abajo arriba del equipo de trabajo
Modelo de procesos desarrollo de software
Prototipado
Permite al desarrollador comprender mucho mejor lo que el cliente necesita
El desarrollador y el cliente trabajan en los objetivos globales para el software
Un cliente, define un conjunto de objetivos generales para el software, pero no identifica los requisitos detallados de entrada, proceso o salida.
El responsable del desarrollo del software puede no estar seguro de la eficacia o capacidad de un algoritmo
inicia recolectando los requerimientos
Modelo en cascada o modelo lineal secuencial
El desarrollador y el analista comprendan totalmente los requerimientos del software
Diseño - En esta etapa el desarrollo de software se centra en cuatro atributos
- estructura de datos
- arquitectura de software
- presentación de la interfaz
- detalle procedimental
Generación de código - Etapa del diseño donde comienza la programación del software.
Pruebas - cuando el software ha sido programado se continua con la fase de pruebas para detectar posibles errores y validar que el software cumpla con los requerimientos.
Mantenimiento - Después de entregado el software al cliente es posible que tenga que sufrir alguna modificación para adaptarse a nuevas necesidades del cliente
Enfoque sistemático lineal y es Utilizado cuando los requerimientos se han entendido correctamente
proyectos son pequeños
Análisis de los requisitos del software
Desarrollo evolutivo
Modelo entrelaza las actividades de especificación, desarrollo y validación.
Existen dos tipos de desarrollo evolutivo:
Desarrollo exploratorio - donde el objetivo es trabajar con el cliente para explorar sus requerimientos.
Prototipos desechables - donde el objetivo es comprender los requerimientos del cliente y desarrollar una definición mejorada de los requerimientos del sistema.
Refina el proyecto basándose en las peticiones del cliente para producir un sistema que satisfaga sus necesidades y contenga calidad.
Los requerimientos del usuario pueden cambiar en cualquier momento del proyecto
Se recomienda solo para sistemas pequeños y de tamaño medio (hasta 500 000 líneas de código).
Modelo Espiral
El software se desarrolla en versiones incrementales combinando la construcción de prototipos con el modelo lineal secuencial.
DRA (Desarrollo rápido de aplicaciones)
Modelo de proceso del desarrollo del software lineal secuencial que enfatiza un ciclo de desarrollo extremadamente corto
No todos los tipos de aplicaciones son apropiados para DRA.
Enfoque de construcción basado en componentes
Clientes y desarrolladores comprometidos en las rápidas actividades necesarias para completar un sistema en un marco de tiempo corto
requiere recursos humanos suficientes como para crear el numero correcto de equipos
compromiso, por ninguna de las partes constituyentes, los proyectos fracasaran.
si se comprenden bien los requisitos y se limita el ámbito del proyecto permite al equipo de desarrollo crear un sistema completamente funcional dentro de periodos cortos de tiempo
El desarrollo se realiza a un nivel de abstracción mayor.
- Mayor flexibilidad.
- Menor codificación manual.
- Mayor involucramiento de los usuarios.
Estándares y modelos de calidad
ISO/IEC 15504
establece y mejora la capacidad de madurez de los procesos
proporciona un marco de trabajo para la evaluación del proceso
MoProSoft
Estandariza y mejora los procesos de desarrollo de software
Basado en ISO 9001:2000, en las áreas de procesos de los niveles 2 y 3 de CMM-SW: CMM-SW v.1.1 y en el marco general ISO/IEC15504 entre otros
CMM
evalúa la capacidad de los proveedores de software del gobierno de los Estados Unidos.
Modelo desarrollado con el objetivo de mejorar y evaluar los procesos de desarrollo de software
CMMI
Basa en prácticas ajustables a cualquier dominio de producción
implenta de una forma sencilla el aseguramiento de la calidad.
COMPETISOFT
incrementa el nivel de competitividad de las PyMEs iberoamericanas productoras de software
mediante la creación y difusión de un marco metodológico común que ajustado a sus necesidades específicas
Programación extrema
metodología de desarrollo ligera (o ágil) basada en una serie de valores y de buenas prácticas
Medida con cuatro valores
Comunicación- Crear software requiere de sistemas comunicados.
Retroalimentación - Del sistema, del cliente, y del equipo
Simplicidad- Empezar con lo necesario y requerido y trabajar desde ahí
Coraje - Programa para hoy y no para mañana
caracteristicas
Recomendable emplearlo solo en proyectos a corto plazo
Altas comisiones en caso de fallar.
Grupo pequeño y muy integrado (máximo 12 personas)
Los requisitos pueden (y van a) cambiar
Mejorar la productividad de los proyectos.
Garantizar la Calidad del Software desarrollando, haciendo que este supere las expectativas del cliente.
Estilo que maneja:
Orientada hacia quien produce y usa el software
Reduce el costo del cambio en todas las etapas del ciclo de vida del sistema.
Mejores practicas para desarrollar software, y las lleva al extremo