Documentos de Académico
Documentos de Profesional
Documentos de Cultura
una visin general sobre los diferentes conceptos relacionados al diseo y desarrollo de software.
El alcance del curso es proporcionar una comprensin
Audiencia
Estudiantes,
profesionales y desarrolladores que desean conocer acerca de los fundamentos de los principios de ingeniera de software y sus metodologas.
Pre-requisitos
Conocimientos de programacin Experiencia codificando aplicaciones usando uno o ms
lenguajes de programacin.
actividades
de
anlisis
de
Describir las funciones y componentes de una SRS Definir las diferentes actividades para llevar a cabo el anlisis de riesgo
Resumen
Se present un una visin global de los objetivos del
curso y la agenda
Empecemos
Objetivos de Aprendizaje
Explicar el software como un producto y proceso Definir la ingeniera de software y explicar su importancia Discutir las ventajas y desventajas de diversos modelos de proceso de software Discutir acerca de los Modelos Evolutivos y Secuenciales
Introduccin
La ingeniera de software provee metodologas y tcnicas que ayudan a desarrollar sistemas de software a tiempo La ingeniera de software asegura que el desarrollador cumpla con las expectativas de calidad y presupuesto Las metodologas de la ingeniera de software fomentan un enfoque sistemtico a lo largo del ciclo de vida del software
Confiable
Portable
Robusto
Evolutivo
Reutilizable
Eficiente
Mantenible
Tiempo Real
Incorporadas
Negocio
Ingeniera y Cientficas
Proceso de Software
El conjunto de tareas, que tienen que ser realizadas para generar un producto de software de alta calidad.
Es el proceso que se sigue para construir el producto de software desde la concepcin de una idea, hasta la entrega y el retiro final del sistema.
PROCESO
ACTIVIDAD 1 ACTIVIDAD n
TAREA 1
TAREA X
TAREA 1
Visibilidad
Confiabilidad
Facilidad de Aceptacin
Facilidad de Verificacin
Rapidez
Fase de Desarrollo:
- Diseo de Software - Codificacin - Prueba
Fase de Mantenimiento
Modelo de Cascada
Ingeniera de Sistema
Anlisis de Requerimientos
Diseo
Codificacin
Prueba
Mantenimiento
Modelo de Cascada
Ventajas:
Desventajas:
El cliente debe proporcionar todos los requerimientos de una sola vez Es difcil para los usuarios anticipar si el sistema final va a satisfacer sus requerimientos Cualquier cambio que se haga durante la implementacin puede causar confusin.
Equipo 1
Especificaciones Parciales
Diseo
Codificacin
Pruebas
Lanzamiento
Equipo 2
Especificaciones Parciales
Diseo
Codificacin
Pruebas
Lanzamiento
Equipo 3
Especificaciones Parciales
Diseo
Codificacin
Pruebas
Lanzamiento
Equipo 4
Especificaciones Parciales
Diseo
Codificacin
Pruebas
Lanzamiento
Diseo Rpido
Refinar Requerimientos
Prototipo
Evaluar Prototipo
Lanzamiento e Ingeniera
Modelo Incremental
Estudio del Sistema y Anlisis de Requerimientos
Anlisis Parcial
Diseo Restringido Codificacin Pruebas
Modelos Evolutivos
Retroalimentacin
Anlisis Incremental
Diseo Incremental
Codificacin
Pruebas
Retroalimentacin
Anlisis Incremental
Diseo Incremental
Codificacin
Pruebas
Retroalimentacin del Incremento Anterior Diseo Incremental Codificacin Lanzamiento incremento final Fin del lanzamient o del producto Inicio del mantenimiento
Pruebas
Modelo Espiral
Planificacin del Proyecto Anlisis de Riesgo
Modelos Evolutivos
Modelo Espiral
Ventajas:
Modelos Evolutivos
Las ltimas iteraciones tienen ms probabilidad de tener una versin final rpidamente Este modelo se puede usar an despus de que el software es entregado Usa el prototipo como un mecanismo de reduccin de riesgo
Desventajas:
Demanda una experiencia considerable de valoracin del riesgo por parte del cliente Los clientes son generalmente aprensivos de si el enfoque evolutivo puede ser controlado o no.
Resumen
Se explic el software como un producto y un proceso
Se defini qu es la ingeniera de software y explicar su importancia
Unidad 2:
Especificacin de los Requerimientos de Software
Objetivos de Aprendizaje
Discutir la naturaleza y la importancia de los requerimientos Definir los requerimientos de software y el trmino SRS Describir las actividades del anlisis de requerimientos
Modelado de Sistema
Especificacin de Requerimientos Negociacin de Requerimientos Refinamiento de Requerimientos Anlisis de Requerimientos Levantamiento de Requerimientos
Levantamiento de Requerimientos
Proceso de recibir un conjunto de requerimientos de:
- el cliente - el usuario - la gerencia
Problema de Alcance
Detalles Innecesarios
Problema de Volatilidad
Problema de Comprensin
Mala comunicacin Clientes Inseguros de sus Necesidades Pobre Dominio del Conocimiento Cambia en el Tiempo Nmero de Requerimientos Requerimientos Volatiles en s Mismos
Anlisis de Requerimientos
Los requerimientos se analizan para ser categorizados y organizados.
Especificacin de Requerimientos
Una Especificacin de Requerimiento puede involucrar uno de los siguientes:
Documento escrito Modelo grfico Modelo formal (base matemtica) Casos de uso Prototipos
Modelado el Sistema
Modelar el sistema es un paso recomendado para lograr un buen entendimiento del sistema Para sistemas que estn siendo abordados por primera vez, se recomienda que sean modelados Modelar el sistema es un anlisis ms profundo del mismo
Validacin de Requerimientos
No-ambigedad
Consistencia
Completitud
Administracin de Requerimientos
Trata de un conjunto de actividades conectadas con el control, identificacin y rastreo de requerimientos durante la implementacin Se ocupa de los cambios en los requerimientos
Contenido de la SRS
Una SRS debe incluir una descripcin concisa, de la totalidad de la interfaz externa del sistema con su ambiente, incluyendo otros software, puertos de comunicacin , hardware y usuarios
Rastreable
Consistente
Integra Comentada
Facilidad de Modificacin
Comprensible
Resumen
Se discuti la requerimientos naturaleza e importancia de los
Objetivos de Aprendizaje
Explicar brevemente el proceso de diseo
Explicar los enfoques top-down y bottom-up Discutir los principios y objetivos del diseo Discutir los conceptos de cohesin y acoplamiento
Introduccin
El diseo de software busca planear una solucin para un problema especificado en la SRS
Es el primer paso para avanzar del dominio del problema al dominio de la solucin Es la primera de tres actividades tcnicas en el proceso de ingeniera de software Comienza poco tiempo despus del anlisis y la especificacin de requerimientos
Diseo de interfaz
Diseo de componentes
Abstraccin
Refinamiento
Modularidad
Abstraccin
Es el proceso mediante el cual el diseador se concentra
slo en aquellos aspectos que son relevantes, e ignora los detalles irrelevantes
Los niveles ms altos de abstraccin esconden los
Refinamiento
Es bsicamente una forma de elaboracin El refinamiento ayuda al diseador a revelar detalles
Modularidad
El software puede ser dividido en componentes
simplifica
Diseo Modular
El diseo modular es una de las metodologas de diseo ms usadas La implementacin del diseo modular ayuda a:
A ejecutar el cambio
Permitir una implementacin ms sencilla
Tipos de Mdulos
Mdulo secuencial
Modulo incremental
Mdulo paralelo
Independencia Funcional
Desarrollar mdulos con funciones singulares
Desarrollar mdulos que no tengan una tendencia hacia una interaccin extra con otros mdulos
En el software cada mdulo se debe ocupar de una sub-funcin especfica de requerimientos La interfaz de cada mdulo debe verse simple, desde otras partes del la estructura del programa
Cohesin
Es la propiedad por la cual las cosas que son similares
se mantienen juntas
Un mdulo se considera completamente cohesivo slo si realiza una nica funcin o tarea
propsitos de diseo
Acoplamiento
El acoplamiento es la medida de interconexin entre diferentes mdulos dentro de una estructura de software
Depende de:
- La complejidad de la interfaz entre dos mdulos diferentes - La manera en que se hace una referencia al mdulo - La manera en que los datos se pasan a travs de la interfaz
Resumen
Se explic el proceso de diseo en pocas palabras Se explicaron los enfoques top-down y bottom-up Se discutieron los principios y objetivos del diseo Se discutieron los conceptos cruciales de cohesin y acoplamiento
Objetivos de Aprendizaje
Describir los diferentes pasos que tiene el planeamiento de un proyecto Discutir las diferentes actividades que abarca el anlisis de riesgos
Introduccin
La administracin de un proyecto tiene tres fases:
Anlisis de culminacin
Para desarrollar un plan para desarrollar software, los objetivos de un proyecto deben ser cumplidos exitosamente y eficientemente
Planeamiento de un Proyecto
Anlisis de Riesgo
Riesgo se refiere a las posibilidades que pudieran afectar el costo, la calidad o el cronograma de un desarrollo de software Factores como el mtodo de implementacin u operacin de un programa/aplicacin, el tipo de herramientas usadas, el nmero de personal involucrado, etc.
Relacin Trabajo-Personas
A medida que el tamao del proyecto se incrementa, ms se necesitar ms personas para alcanzar el resultado final en un periodo de tiempo dado Si el proyecto esta retrasado, incrementar el nmero de programadores seguramente acelerar el proceso Incrementar en el nmero de desarrolladores tambin incrementar los canales de comunicacin dentro del sistema, y por lo tanto incrementa la complejidad de los procesos de comunicacin
Una vez que los requerimientos han sido identificados y revisados, las actividades de diseo y planeamiento de pruebas se llevan en paralelo
Distribucin de Esfuerzo
El esfuerzo de distribucin de un proyecto est dirigido slo por las caractersticas de ese proyecto particular Generalmente el anlisis de requerimiento constituye slo un 10 a 25 % del esfuerzo del proyecto El esfuerzo del planeamiento del proyecto es usualmente slo 2 a 3 % del total de esfuerzo del proyecto El esfuerzo gastado en prototipo o anlisis usualmente se incrementa en proporcin directa al tamao y complejidad del proyecto
Decisiones de Adquisicin
El software puede ser comprado o licenciado El software puede ser comprado y luego personalizado a las necesidades El software puede ser tambin hecho a la medida dando el desarrollo a un contratista externo
Re-ingeniera
Ciertas aplicaciones de software pueden haber sido desarrolladas con un diseo en particular Las diferentes adiciones y actividades de mantenimiento podran haber afectado el diseo original
Administracin de Configuracin
Documentar las caractersticas funcionales y fsicas de los elementos de configuracin
Auditar elementos para verificar la conformidad con las especificaciones, diagramas, documentos de control de interfaces y requerimientos contractuales
Identificacin
Control
Administracin de Configuracin
Ahorro de Costos
Verificacin
Resumen
Se describieron los diferentes pasos que tiene el planeamiento de un proyecto