Planificación de Proyecto del Software
Planificación de un proyecto de sistemas
El Proyecto: Es el proceso de gestión para la creación de un sistema o software
Objetivos de la Planificación del Proyecto: Es proporcionar un marco de trabajo que permita al gestor hacer estimaciones razonables de recursos costos y planificación temporal.topic
Actividades asociadas al proyecto de software
Ámbito del Software: Es la primera actividad de llevada a cabo durante la planificación del proyecto de Software.
Recursos: Es la estimación de los recursos requeridos para acometer el esfuerzo de desarrollo de Software
Características:
Descripción del Recurso
Informes de disponibilidad
Fecha cronológica en la que se requiere el recurso
Tiempo durante el que será aplicado el recurso
Recursos Humanos: La cantidad de personas requeridas se determinara después de hacer una estimación del esfuerzo de desarrollo
Recursos o componentes de software reutilizables:Esto es la creación y la reutilización de bloques de construcción de Software.
Recursos de entorno:Es donde se apoya el proyecto de Software (incorpora Hardware y Software)
ESTIMACION DEL PROYECTO DE SOFTWARE: Hoy en día el Software es el elemento más caro de la mayoría de los sistemas informáticos
Para realizar estimaciones seguras de costos y esfuerzos tienen varias opciones posibles:
Deje la estimación para más adelante
Base las estimaciones en proyectos similares ya terminados
Utilice técnicas de descomposición relativamente sencillas para generar las estimaciones de costos y esfuerzo del proyecto
Desarrolle un modelo empírico para él cálculo de costos y esfuerzos del Software
Estimación basada en el Proceso:Es basar la estimación en el proceso que se va a utilizar
Diferentes modelos de estimación
Los Modelos Empíricos: Donde los datos que soportan la mayoría de los modelos de estimación obtienen una muestra limitada de proyectos.
El Modelo COCOMO: Jerarquía de modelos de estimación de Software
Herramientas Automáticas De Estimación: Permiten al planificador estimar costos y esfuerzos, así como llevar a cabo análisis del tipo
ANALISIS DE SISTEMAS DE COMPUTACION: Es un conjunto o disposición de procedimientos o programas relacionados de manera que juntos forman una sola unidad
Objetivos del Análisis
Identificación de Necesidades
Reconocimiento del problema
Evaluación y Síntesis
Modelado
Especificación
Revisión
Estudio de Viabilidad
Viabilidad económica
Viabilidad Técnica
Viabilidad Legal
Alternativas
Análisis Económico y Técnico: El análisis económico incluye lo que llamamos, el análisis de costos – beneficios
Modelado de la arquitectura del Sistema: Se concentran en lo que debe hacer el sistema no en como lo hace
Especificaciones del Sistema: Describe la función y rendimiento de un Sistema basado en computadoras y las dificultades que estarán presentes durante su desarrollo
DISEÑO DE SISTEMAS DE COMPUTACIÓN:Es el proceso de aplicar ciertas técnicas y principios con el propósito de definir un dispositivo, un proceso o un Sistema
Etapa del Diseño del Sistema
El diseño de los datos: Trasforma el modelo de dominio de la información, creado durante el análisis, en las estructuras de datos necesarios para implementar el Software.
El Diseño Arquitectónico: Define la relación entre cada uno de los elementos estructurales del programa.
El Diseño de la Interfaz: Describe como se comunica el Software consigo mismo
El Diseño de procedimientos: Transforma elementos estructurales de la arquitectura del programa.
Diseño de la Salida: Se refiere a los resultados e informaciones generadas por el Sistema
Diseño de Archivos: Incluye decisiones con respecto a la naturaleza y contenido del propio archivo
Diseño de Interacciones con la Base de Datos: El diseñador no construye la base de datos sino que consulta a su administrador para ponerse de acuerdo en el uso de esta en el sistema.
Herramientas para el Diseño de Sistemas: Apoyan el proceso de formular las características que el sistema debe tener para satisfacer los requerimientos detectados durante las actividades del análisis:
Herramientas de especificación: Apoyan el proceso de formular las características que debe tener una aplicación
Herramientas para presentación: Se utilizan para describir la posición de datos, mensajes y encabezados sobre las pantallas de las terminales, reportes y otros medios de entrada y salida.
Herramientas para el desarrollo de Sistemas: Nos ayudan como analistas a trasladar diseños en aplicaciones funcionales.
Herramientas para Ingeniería de Software: Apoyan el Proceso de formular diseños de Software
Generadores de códigos: Producen el código fuente y las aplicaciones a partir de especificaciones funcionales bien articuladas.
Herramientas para pruebas: Apoyan la fase de la evaluación de un Sistema o de partes del mismo contra las especificaciones.
IMPLANTACION, EVALUACION Y PRUEBAS
IMPLANTACION: Es la última fase del desarrollo de Sistemas. Es el proceso instalar equipos o Software nuevo.
Capacitación de Usuarios del Sistema: Es enseñar a los usuarios que se relacionan u operan en un proceso de implantación.
Objetivos de la Capacitación: Es lograr que los usuarios tengan el Dominio necesario de las cosas básicas acerca de las maquinarias y procesos que se emplean para su operación de manera eficiente y segura.
La Evaluación del Sistema: Se lleva a cabo para identificar puntos débiles y fuertes del Sistema implantado.
Evaluación operacional: Es el Momento en que se evalúa la manera en que funciona el Sistema
Impacto Organizacional: Identifica y mide los beneficios operacionales para la Empresa en áreas tales como, Finanzas (Costos, Ingresos y Ganancias), eficiencia en el desempeño laboral e impacto competitivo, Impacto, rapidez y organización en el flujo de Información interna y externa.
Desempeño del Desarrollo: Es la evaluación del Proceso de desarrollo adecuado tomando en cuentas ciertos criterios como, Tiempo y esfuerzo en el desarrollo.
Prueba de Sistemas: Dependiendo del tamaño de la Empresa que usara el Sistema y el riesgo asociado a su uso.
Documento ERS
Objetivos de la ERS: Ayudar a los clientes a describir claramente lo que se desea obtener mediante un
determinado software.Ayudar a los desarrolladores a entender qué quiere exactamente el cliente. Ayudar a los desarrolladores a entender qué quiere exactamente el cliente. Servir de base para desarrollos de estándares de ERS particulares para cada
organización
Características de una buena ERS
Corrección: La ERS es correcta si y sólo si todo requisito que figura en ella refleja alguna necesidad
real.
Ambigüedad: Un documento es no ambiguo si y solo si cada requisito descrito tiene una única
interpretación.
Completitud:
Una ERS es completa si:
- Incluye todos los requisitos significativos del software (relacionados con la funcionalidad, ejecución, diseño, atributos de calidad o interfaces externas).
- Existe una definición de respuestas a todas las posibles entradas, tanto válidascomo inválidas, en todas las posibles situaciones.
- Cumple con el estándar utilizado. Si hay alguna parte del estándar que no se utiliza, se debe razonar suficientemente el porqué no se ha utilizado dicho apartado.
- Aparecen etiquetadas todas las figuras, tablas, diagramas, etc, así como definidos todos los términos y unidades de medida empleados.
Verificabilidad: Un requisito se dice que es verificable si existe algún proceso no excesivamente costoso por el cual una persona o una máquina pueda chequear que el software satisface dicho requerimiento.
Consistencia: Una ERS es consistente si y sólo si ningún conjunto de requisitos descritos en ella son
contradictorios o entran en conflicto.
· Requisitos que describen el mismo objeto real utilizando distintos términos.
· Las características especificadas de objetos reales. Un requisito establece que todas las luces son verdes y otro que son azules.
· Conflicto lógico o temporal entre dos acciones determinadas. Se llega a unpunto en el que dos acciones serían perfectamente válidas (¿sumar o
multiplicar?)
Clasificación: No todos los requisitos son igual de importantes. Los requisitos pueden clasificarse por diversos criterios
· Importancia: Pueden ser esenciales, condicionales u opcionales.
· Estabilidad: Cambios que pueden afectar al requisito.
Modificabilidad: Una ERS es modificable si cualquier cambio puede realizarse de manera fácil, completa y consistente.
Explorabilidad (traceability): Una ERS es explorable si el origen de cada requerimiento es claro tanto hacia atrás como hacia delante
Utilizable durante las tareas de mantenimiento y uso: En la ERS también se deben tener en cuenta las necesidades de mantenimiento.
Esquema de la ERS definida en el IEEE 830-1998
Introducción
Propósito
Ámbito del Sistema
Definiciones, Acrónimos y Abreviaturas
Referencias
Visión general del documento
Descripción General
Perspectiva del Producto
Funciones del Producto
Características de los usuarios
Restricciones
Suposiciones y Dependencias
Requisitos Futuros
Requisitos Específicos
Interfaces Externas
Funciones
Requisitos de Rendimiento
Restricciones de Diseño
Atributos del Sistema
Otros Requisitos
Apéndices
Índice
Ingeniería de Requerimiento: Sirve como Base Solida en el proceso de desarrollo de Software.
Que son Requerimientos: Una condición o necesidad de un usuario para resolver un problema o alcanzar un objetivo
Tipos de Requerimiento
requerimiento Funcional
Requerimiento no Funcionales
Características:
- Especificado por escrito
- Posible de Comprobar o Verificar
- Conciso
- Completo
- Consistente
- No Ambiguo
Dificultades para definir los requerimientos: a continuación se presenta un listado con los problemas
más comunes en este proceso:
- Los requerimientos no son obvios y vienen de muchas fuentes.
- Son difíciles de expresar en palabras (el lenguaje es ambiguo).
- La cantidad de requerimientos en un proyecto puede ser difícil de manejar.
- Un requerimiento puede cambiar a lo largo del ciclo de desarrollo.
- El usuario no puede explicar lo que hace
- Tiende a recordar lo excepcional y olvidar lo rutinario
- Hablan de lo que no funciona
- Los usuarios tienen distinto vocabulario que los desarrolladores.
Ingeniería de requerimientos: El proceso de recopilar, analizar y verificar las necesidades del cliente o usuario para un sistema.
Importancia de la ingeniería de requerimientos
Permite gestionar las necesidades del proyecto en forma estructurada
Mejora la capacidad de predecir cronogramas de proyectos, así como sus resultados
Disminuye los costos y retrasos del proyecto
Mejora la calidad del software
Mejora la comunicación entre equipos
Evita rechazos de usuarios finales
Actividades de la ingeniería de requerimientos: Se dice que dentro de la IRexisten cuatro actividades básicas que se tienen que llevar a cabo para completar el proceso
Extracción
Análisis
Especificación
Validación
Técnicas y herramientas utilizadas en la ingeniería de requerimientos
Técnicas utilizadas en las actividades de IR
Entrevistas y Cuestionarios: Las entrevistas y cuestionarios se emplean para reunir información proveniente de personas o de grupos.
Sistemas existentes: Esta técnica consiste en analizar distintos sistemas ya desarrollados que estén relacionados con el sistema a ser construido.
Lluvia de ideas (Brainstorm): Este es un modelo que se usa para generar ideas.
Prototipos: Durante la actividad de extracción de requerimientos
Casos de Uso: Los casos de uso son una técnica para especificar el comportamiento de un sistema.
Herramientas automatizadas para la Administración de Requerimientos: En el desarrollo de software se cuenta con una ventaja proporcionada por las herramientas CASE.
RequisitePro: RequisitePro es la herramienta que ofrece Rational Software para tener un mayor control sobre los
requerimientos planteados por el usuario y todos aquellos requerimientos técnicos o nuevos requerimientos de usuario que surjan durante el ciclo de vida del proyecto.