jueves, 8 de marzo de 2007

Modelos Evolutivos

Se adaptan más fácilmente a los cambios introducidos a lo largo del desarrollo.

Iterativos

En cada iteración se obtienen versiones más completas del SW.

Modelos Evolutivos:
–Modelo Incremental
–Modelo en Espiral
–Modelo de Desarrollo Basado en Componentes
–Modelo WINWIN
–Modelo de Desarrollo Concurrente


Modelo Incremental

Iteración de Lineal Secuencial.
Cada iteración devuelve un “Incremento” o versión operativa.
Útil cuando no se está seguro de cumplir con plazos de tiempo o se tiene una fecha imposible de cambiar.


Desarrollo Basado en Componentes

Basado en modelo en Espiral (evolutivo e iterativo) + Tecnologías de Objetos.
Enfatiza la Reusabilidad.


Modelo de Métodos Formales

Usan notación rigurosa.
Especificaciones sin ambigüedades.
Utiles para sistemas críticos.
Demostraciones formales de propiedades.
Dificulta validación con cliente => combinación con otras técnicas semi-formales.
Buen nivel de manejo de Lógica y Algebra.


Técnicas de Cuarta Generación (T4G)

Herramientas que facilitan la realización de especificaciones a alto nivel -> código fuente.
Basadas en Lenguajes de 4ta Generación (L4G).
Ventajas: Reducción en tiempo de desarrollo.

Modelo de Desarrollo Rápido de Aplicaciones (DRA)



•Lineal secuencial con ciclo extremadamente corto.


•Candidatos: sistemas que se pueden modularizar => equipos de desarrollo paralelos.


•Basado en el uso de componentes y T4G

Niveles de Madurez del Proceso

Nivel 1: Inicial
Nivel 2: Repetible
Nivel 3: Definido
Nivel 4: Gestionado
Nivel 5: Optimizado

Modelo Construccion de Prototipos


Modelo Lineal Secuencial


Objetivos de la Planificacion del Proyecto


El objetivo de la Planificación del proyecto de Software es proporcionar un marco de trabajo que permita al gestor hacer estimaciones razonables de recursos costos y planificación temporal. Estas estimaciones se hacen dentro de un marco de tiempo limitado al comienzo de un proyecto de software, y deberían actualizarse regularmente medida que progresa el proyecto. Además las estimaciones deberían definir los escenarios del mejor caso, y peor caso, de modo que los resultados del proyecto pueden limitarse.

El Objetivo de la planificación se logra mediante un proceso de descubrimiento de la información que lleve a estimaciones razonables

Estimacion Basada en el Proceso

Es la técnica más común para estimar un proyecto es basar la estimación en el proceso que se va a utilizar, es decir, el proceso se descompone en un conjunto relativamente pequeño de actividades o tareas, y en el esfuerzo requerido para llevar a cabo la estimación de cada tarea.

Al igual que las técnicas basadas en problemas, la estimación basada en el proceso comienza en una delineación de las funciones del software obtenidas a partir del ámbito del proyecto. Se mezclan las funciones del problema y las actividades del proceso. Como ultimo paso se calculan los costos y el esfuerzo de cada función y la actividad del proceso de software.

Ambito del Proyecto

Es la primera actividad de llevada a cabo durante la planificación del proyecto de Software.

En esta etapa se deben evaluar la función y el rendimiento que se asignaron al Software durante la Ingeniería del Sistema de Computadora para establecer un ámbito de proyecto que no sea ambiguo, e incomprensible para directivos y técnicos.

Describe la función, el rendimiento, las restricciones, las interfaces y la fiabilidad, se evalúan las funciones del ámbito y en algunos casos se refinan para dar mas detalles antes del comienzo de la estimación. Las restricciones de rendimiento abarcan los requisitos de tiempo de respuesta y procesamiento, identifican los limites del software originados por el hardware externo, por la memoria disponible y por otros sistemas existentes.

El Ambito se define como un pre-requisito para la estimación y existen algunos elementos que se debe tomar en cuenta como es:

La Obtención de la Información necesaria para el software. Para esto el analista y el cliente se reúnen sobre las expectativas del proyecto y se ponen de acuerdo en los puntos de interés para su desarrollo.

Modelo de Cascada


El modelo de cascada considera cada actividad del proceso como una actividad discreta.

miércoles, 7 de marzo de 2007

Puntos para la Gestion Eficaz de un Proyecto ( Espectro de la Gestion)

a) Personal.- Se necesita contar con personal para el desarrollo altamente preparado y motivado.

b) Producto.- El desarrollador de Software y el cliente deben de reunirse para definir los objetivos del producto y el ambito.

c) Proceso.- Un proceso de software proporciona la estructura desde la que se puede establecer un detallado plan para el desarrollo de software.

d) Proyecto.- Se deben de eludir un conjunto de señales de peligro comunes, comprender los factores del exito criticos que conducen a la gestion correcta del proyecto y desarrollar un enfoque de sentido comun para planificar, supervisar y controlar el proyecto.

Recursos

Recursos Humanos.-La Cantidad de personas requeridas para el desarrollo de un proyecto de software solo puede ser determinado después de hacer una estimación del esfuerzo de desarrollo (por ejemplo personas mes o personas años), y seleccionar la posición dentro de la organización y la especialidad que desempeñara cada profesional.

Recursos de Software reutilizables.- La ingenieria de software basada en componentes destaca la reutilizacion, esto es la creacion y la reutilizacion de bloques de construccion de software.

Recursos de Entorno.-El entorno es donde se apoya el proyecto de Software, llamado a menudo entorno de Ingeniería de Software, incorpora Hardware y Software.
Cuatro categorías de recursos de software que se deberían tener en cuenta a medida que se avanza con la planificación:

Componentes ya desarrollados.
Componentes ya experimentados.
Componentes con experiencia Parcial.
Componentes nuevos.

El Hardware proporciona una plataforma con las herramientas (Software) requeridas para producir los productos que son el resultado de la buena practica de la Ingeniería del Software, un planificador de proyectos debe determinar la ventana temporal requerida para el Hardware y el Software, y verificar que estos recursos estén disponibles. Muchas veces el desarrollo de las pruebas de validación de un proyecto de software para la composición automatizada puede necesitar un compositor de fotografías en algún punto durante el desarrollo. Cada elemento de hardware debe ser especificado por el planificador del Proyecto de Software

Ambito del Software

Describe el control y los datos a procesar, la funcion, el rendimiento, las restricciones, las interfaces y la fiabilidad.

Se evaluan las funciones descritas en la declaracion del ambito, y en algunos casos se refinan para dar mas detalles antes del comienzo de la estimacion.

Definiciones de Medida, Metrica e Indicador

Medida.- Proporciona una indicación cuantitativa de la extensión, cantidad, dimensiones, capacidad o tamaños de algunos atributos de un producto o proceso.

Métrica.- Se define como una medida cuantitativa del grado en que un sistema, componente o proceso posee un atributo dado.

Indicador.- Es una métrica o combinación de métricas que proporcionan una visión profunda del proceso de software, del proyecto de software o del producto en si.

Participantes que colaboran en el Proceso de Software

a) Gerentes Superiores
b) Gerentes (Tecnicos) del Proyecto
c) Profesionales
d) Clientes
e) Usuarios Finales

martes, 6 de marzo de 2007

Modelo en Espiral



Representa un enfoque dirigido por el riesgo para el análisis y estructuración del proceso software.



lunes, 5 de marzo de 2007

El Proceso de Software

Conjunto estructurado de actividades requeridas para desarrollar un sistema de software.

Especificación.
Diseño.
Validación.
Evolución.


Las actividades varían dependiendo de la organización y del tipo de sistema a desarrollarse.

Debe estar explícitamente modelado si va a ser bien administrado.

Definiciones de Procesos, Metodos y Herramientas

Proceso.- Punto de unión entre métodos y herramientas. Definen la secuencia en la que se aplican los métodos, cómo usar las herramientas, las entregas que se requieren, controles de seguimiento y calidad, guías para facilitar la labor de gestores y desarrolladores, etc.

Metodo.- Definen cómo construir el software desde el punto de vista técnico.

Herramientas.- Proporcionan un soporte automático o semi-automático para los métodos.

.

Definicion de Ingenieria del Software

Es el establecimiento y uso de principios robustos de ingenieria a fin de obtener economicamente software que sea fiable y que funcione eficientemente en maquinas reales.

Mitos del Software

Mitos de Gestion
Mitos del Cliente
Mitos del Desarrollador

Aplicaciones del Software

a) Software de Sistemas
b) Software de Tiempo Real
c) Software de Gestion
d) Software de Ingenieria y Cientifico
e) Software Empotrado
f) Software de Computadoras Personales
g) Software Basado en Web
h) Software de Inteligencia Artificial

Caracteristicas del software

a) El software se desarrolla, no se fabrica.

b) El software no se estropea, pero se deteriora.

c) La mayoria del software se construye a medida.