sábado, 30 de noviembre de 2013

Modelos Operativos Prescriptivos





Estos modelos estan fundamentados en ordenar el caos en el desarrollo de software. Al desarrollar un sofware siempre se busca sea de buena calidad es por eso que se utilizan  modelos prescriptivos los cuales mediante la aplicación adecuada de actividades, tareas y acciones lo hacen posible.



Tipos de modelos Prescriptivos :

CASCADA PURA 

En este modelo el proyecto progresa a traves de una ordenada de pasos partiendo del concepto inicial del software hasta la prueba del sistema y se realiza una revision al final de cada etapa para determinar si esta preparada para la siguiente.Los productos principales que se pasan de etapa a etapa son documentos, este modelo funciona bien en proyectos complejos que se entienden correctamente ya que genera beneficios al enfrentarse a la complejidad de forma ordenada.
Desventajas: La dificultad para especificar claramente los requerimientos al comienzo de proyecto.
CASCADA CON FASES SOLAPADAS

Permite un solapamiento minimo entre las etapas,favoreciendo el avance del proyecto y de esta manera no esperar terminar completamente con una etapa para avanzar a la siguiente este enfoque permite hacer mas dinamico el desarrollo del proyecto de manera integral aumentando la interaccion entre etapas y logrando una reduccion de tiempo total de desarrollo del proyecto.

CASCADA CON SUBPROYECTOS


El riesgo principal de este enfoque es la presencia de interdependencias imprevistas.Se pueden tener parcialmente, o esperar hasta despues del diseño detallado par dividir el proyecto en subproyectos.Este sistema se divide en subsistemas independientes entre si, estos se pueden desarrollar separado y en consecuencia en paralelo con los demas cada uno tendra fechas de terminacion distintas.al terminar todos se uniran y se prueba todo en conjunto.La ventaja es tener mas gente trabajando en paralelo de forma eficiente.

CASCADA CON REDUCCION DE RIESGOS    

Se requiere comprender totalmente los requerimientos antes de comenzar el diseño global,desarrolllar un prototipo de interfaz con el usuario,utilizar cuadernos,tener entrevistas,crear cintas de video donde los usuarios interactuan con un sistema mas antiguo o utilizar metodos que consideren apropiados para la identificacion de los requerimientos.
 MODELO CODIFICAR Y CORREGIR (Code-And-Fix) 

Es un modelo poco util pero muy comun.Se indica mediante una idea a nivel general que lo que se va a desarrollar se va a trabajar.Tienen la ventaja de no conllevar a ninguna gestion : no se pierde tiempo en planificacion,documentacion,en control de calidad,en el cumplimiento de estandares o en cualquier otra actividad que no sea la codificacion,propia para programas pequeños.Si al llevar el trabajo ya faltando poco para culminar y se descubre que el diseño es incorrecto,no hay mas solucion que desechar el trabajo y empezar uno nuevo.
MODELO ESPIRAL 
Modelo de proceso evolutivo.Se debe entender la manera ciclica en incremental como se va avanzzando en cada etapa,buscando en todo momento disminuir el riesgo que se puede presentar en cualquier momento.Se entrega en una serie evolutiva.

MODELO PROTOTIPADO

Es lo concerniente a la construccion o desarrollo de prototipos de vez en cuando es el preferido por usuarios ycdesarrolladores.

ENTREGA POR ETAPAS

Es un modelo de ciclo de vida en el que el software se muestra al cliente en etapas refinadas sucesivamente.Tambien llamado "Implementacion Incremental".

ENTREGA EVOLUTIVA

En esta se crea una version inicial,se lelleva al cliente para que observe y recomiende cambios o mejoras y con esto se garantiza que el objetivo se cumpla con lo estipulado inicialmente.
DISEÑO DE PLANIFICACION

Se desarrolla por etapas sucesivas pero el producto se da todo para la ultima entrega.

DISEÑO POR HERRAMIENTAS

Este modelo se puede combinar haciendo uso de un espiral,con la entrega por etapas,la entrega evolutiva y el diseño por planificacion.



Gestión de Proyectos de Software


Significa planificar,supervisar,y controlar el personal,los procesos y eventos mientra se construye un software garantizando calidad.

Se fundamenta en 4 :

PERSONAL:Dede ser biem seleccionado (Prepardo y altamente calificado); Ya que de este depende la construccion del proyecto.Una buena comunicacion con el personal es la prioridad.
PRODUCTO : Los requisitos exigidos por el cliente.Para acordar detalle del producto y tener claro los objetivos.
PROCESO : Tener claro el marco de trabajo o actividades, el desarrollo del software.
PROYECTO: Se debe realizar planificadamente,con una supervision constante, y un control riguroso para el exito del proyecto.

EL PRINCIPIO W5HH
Este principio se basa en una serie de preguntas que conducen a una definicion de caracteristicas.Why,What,When,Who,Where,How,Wow.
  1. Por que se desarrolla el sistema.
  2. Que se realizara y cuando.
  3. Cuando se terminara.
  4. Quien es el responsable de una funcion.
  5. Donde estan situados organizacionalmente.
  6. Como estara realizado el trabajo desde el punto de vista tecnico y de gestion.
  7. Cuanto se necesita de cada recurso.

Métricas para Proyectos de Software

Medidas cuantificables que buscan la eficiencia del proyecto.Las métricas de proceso requieren de tiempo paciencia y concentración para evitar errores.

FACTORES QUE INFLUYEN EN LA CALIDAD DEL SOFTWARE

Habilidad    -   Motivacion   
"Del personal que trabaja en el desarrollo del software"

MÉTRICAS O MEDIDAS CUANTIFICABLES

Requieren:
Tiempo    -    Esfuerzo

FINALIDAD DE LAS METRICAS DE PROCESO 

Las métricas de proceso se emplean con el fin de minimizar el tiempo de desarrollo haciendo los ajustes necesarios para evitar demoras y reducir los problemas y riesgos potenciales

Medicion del Software :se clasifica en dos:
  1. Medidas directas del proceso de software:costo y esfuerzo aplicados
  2. Medidas indirectas del producto : incluye funcionalidad, calidad,complejidad, eficiencia, confiabilidad, facilidad de mantenimento.

FACTORES QUE  AFECTAN LA  CALIDAD DE SOFTWARE

Se dividen en dos: 
 
  1.  Los que se miden directamente :Defectos descubiertos durante la prueba.
  2.  Los que sólo se miden indirectamente: Facilidad de uso o de mantenimiento.

Estimación de Proyectos de Software

La estimacion permite determinar cuanto dinero,esfuerzo,recursos y tiempo tomara construir un sistema o producto especifico basado en software
El objetivo de la planificacion del proyecto de software es proporcionar un marco de trabajo que permita al gestor estimar razonablemente recursos,costo y programa de trabajo.
El planificador debe estimar tres factores antes de comenzar el proyecto
  • Cuanto tiempo tomara
  • Cuanto esfuerzo requerira
  • Cuanto personal esta involucrado   
TECNICAS DE ESTIMACION
 
Descomposicion:Requieren un bosquejo de las principales funciones del software, seguidas por estimaciones.
Tecnicas Empiricas: Usan expresiones para esfuerzo y tiempo obtenidas  de la ingenieria del software.

Calendarización de Proyectos


Crear una red de tareas de ingeniería de software que permita tener el trabajo listo a tiempo y asignar responsabilidades a cada tarea asegurándose de que se realiza.Seguimiento del proyecto de software.
COMO SE REALIZA : A cada tarea se la asigna esfuerzo y duración y se crea una red de tareas o red de actividades.Se anotan las interdependencias de las tareas , se asigna esfuerzo y tiempo a cada tarea,definen responsabilidades resultados e hitos.

OBJETIVO DE LA CALENDARIZACION
Cronograma de actividades que permitira determinar que tareas se realizaran en un punto dado en el tiempo.

Gestion de Riesgo


Se dividen en:

REACTIVO : Se presenta cuando ya se esta desarrollando el proyecto (dentro de).
PROACTIVO : Comienza mucho antes de que se inicie el trabajo técnico, se identifican riesgos potenciales.

RIESGOS DE SOFTWARE

Todo riesgo que se presente en el software afectara directamente el proyecto, por lo cual se debe tener presente una excelente planeacion del proceso y comunicacion con el equipo de trabajo y el cliente para determinar riesgos y plan de contingencia adecuado a su control.

IDENTIFICACION DE RIESGOS DENTRO DE UN PROYECTO DE SOFTWARE

Lo primero es identificar los riegos habidos y por haber para evitarlos y controlarlos.Lo principal es evitar el riesgo antes de que suceda si no se puede,desarrollar un plan que permita controlar el riesgo cuando se presente.
Existen dos tipos de Riesgos:
Genéricos: Son una amenaza demasiado grande que involucra a todo el proyecto de software.
Específicos del Proyecto : Se pueden identificar solamente si se tiene el conocimiento especifico de la tecnología utilizada en el desarrollo del proyecto, del personal y sobre todo de todo el entorno que rodea la construccion del software.

PROYECCIÓN DE RIESGOS "Estimación de Riesgos"

En esta proyección se busca identificar la probabilidad de que el riesgo ocurra realmente y su alto,medio o bajo grado de consecuencias imprevistas.Los riesgos se miden por:
  • Alta probabilidad de que ocurra
  • Media probabilidad de que ocurra
  • Baja probabilidad de que ocurra
REFINAMIENTO DE RIESGOS
Durante las primeras etapas de la planificacion del proyecto,un riesgo puede ser declarado de un modo muy general.
Condición - Transición - Consecuencia
"Forma de descubrir un riesgo"
REDUCCION,SUPERVISION Y GESTION DE RIESGO
Tres aspectos importantes para desarrollar un proyecto : 
  1. Evitar el riesgo
  2. Supervisar el riesgo
  3. Gestionar el riesgo y planes de contingencia
Estos pasos generan gastos o costos adicionales dentro del proyecto.Pero estos costos pueden llegar hacer mas altos en caso de un riesgo no controlado.
EL PLAN RSGR
Reduccion, supervision y gestion del riesgo.La reduccion del riesgo es una actividad de seguimiento del proyecto con tres objetivos principales:
  1. Evaluar cuando un riesgo ocurra.
  2. Observar que los procedimientos se esten aplicando correctamente
  3. Tener presente informacion de proyectos que se han desarrollado los cuales sirven como base para solucionar otros proyectos.




Gestión de Cambio


EL DEPOSITO DE ELEMENTOS DE CONFIGURACION DE SOFTWARE

Se trata de donde y como se guarda la información y anteriormente se guardaba los documentos en papel  y después era difícil encontrar el documento y no se sabia los cambios realizados.Actualmente se guardan en base de datos que facilitan lo anterior.
Lo que se busca es facilitar la gestion de las bases de datos, permite la validacion de la entrada,modificacion y salida de la informacion cuando se requiera.
Ventajas:
  • Compartir información
  • Integra herramientas
  • Integracion de los datos
  • Fortalecer la metodología
  • Estandarización de los documentos
EL PROCESO DE LA GESTIÓN DEL CAMBIO DEL SOFTWARE

Para este progreso es necesario que el equipo de desarrollo de software de respuesta objetiva a los siguientes interrogantes.
  • ¿Como identifica un equipo de software los elementos discretos de una configuracion de software?
  • ¿Como gestiona una organizacion las numerosas versiones existentes de un programa,permitiendo que el cambio se acomode eficientemente?
  • ¿Como controla una organizacion los cambios antes y después de que el software se libere al cliente?
  • ¿Quien tiene la responsabilidad de aprobar y clasificar los cambios?
  • ¿Como garantizar que los cambios se hayan realizado adecuadamente?
  • ¿Con que mecanismo se valoran otros cambios que se realizan?
GESTIÓN DE LA CONFIGURACION PARA INGENIERÍA WEB

Aqui se prentende satisfacer necesidades en todo lo concerniente al desarrollo web.Se busca mejor facilidad de uso,buena presentacion,excelente manera de navegar y mayor seguridad

PROBLEMAS EN LA GESTION DE LA CONFIGURACION PARA WEBapps

Tacticas para configuracion web:
  • Contenido:Organizar toda la informacion para garantizar un buen uso.La informacion puede ser texto,video,tablas.
  • Personal:Muchos creadores de contenidos web realizan el trabajo sin conocimiento alguno de lo que es ingenieris de software e ignorando en su totalidad la gestion de configuracion.
  • Escalabilidad:"Habilidad para reaccionar y adaptarse sin perder calidad,estar preparado para hacerse mas grande sin perder calidad en los servicios ofrecidos"
  • Politicas: Hay que resolver los siguientes interrogantes
¿Quien asume la responsabilidad de la precision de la informacion en el sitio web?
¿Quien asegura que se han seguido los procesos de control de calidad antes de que la informacion se publique en el sitio?
¿Quien es el responsable de realizar cambios?
¿Quien asume el costo del cambio?
con la solucion  estos interrogantes se determina la persona idonea para la gestion de configuracion para webapps
OBJETOS DE CONFIGURACION DEL WEBapps

Abarcan texto,graficos,imagenes,videos,audio entre otros.Con esto se define la presentacion y organizacion que sea util para el usuario final.

GESTION DE CONTENIDO

Se utiliza cuando se desarrolla una pagina dinamica,organiza la informacion que coincida y luego la muestra al usuario para la toma de decisiones.

EL SUBSISTEMA DE GESTION

La informacion debe ser guardada en un deposito, catalogarse y etiquetarse para definir su estado actual.se debe tener en cuenta lo siguientes pasos o elementos:
  • Base de datos de contenido:Estructura para almacenar datos.
  • Capacidades de las bases de datos: Estructura para almacenar datos
  • Funciones de gestion de configuracion:Gestion de cambio
ANALISIS DE PERSONAL
La calidad del producto depende de la calidad con la que se desarrolle el proyecto y el proyecto de la buena gestion,estimacion y medicion que se realice al proyecto en general se requiere de una buena recopilacion y evaluacion de requisitos que permitan una excelente realizacion y ejecucion.