Skip to content

LuciaMartinezGavier/ing-soft-1

Repository files navigation

Desarrollo de cualquier software y en el proceso que conlleva. Como desarrollar software de solidez industrial.
Hacer código entendible es tan importante como hacer código ejecutable.

Profes

Bibliografía

Pankaj Jalote "An Integrated Approach to Software Engineering" 3ra ed., Springer, 2005

Plan de estudios

  • Objetivo: Planear, ejecutar y administrar un software de tamaño pequeño.
  • El dominio del problema
  • El desafío de la Ingeniería del Software
  • El enfoque de la Ingeniería del Software
  • Procesos, Modelo de procesos. Componentes. Enfoque ETVX.
  • Características deseadas del proceso del software: Predecible y repetible. Tolerante a cambios, Testeable y Mantenible.
  • Proceso de desarrollo del software, etapas fundamentales.
  • Modelos de procesos de desarrollo: Cascada, Prototipado, Iterativo.
  • Otros procesos del software: Administración del proyecto, Proceso de inspección, Administración de configuración, Administración de cambios, Administración del proceso (CMM).
  • Requerimientos del software, Necesidad de la especificación de requerimientos, Proceso de requerimientos.
  • Análisis del problema: Enfoque informal, Modelo de flujo de datos (DFD), Modelo orientado a objetos (UML), Prototipado.
  • Especificación de los requerimientos del software: Características, Componentes, Lenguajes de especificación, Estructura de un documento.
  • Especificación funcional con Casos de Uso: Conceptos, Estructura, Abstracción.
  • Validación
  • Métricas: Tamaño, Calidad
  • Rol de la arquitectura del software
  • Vistas: Módulos, Componentes y conectores, Asignación de recursos
  • Vista de Componentes y Conectores (C&C). Estilos arquitectónicos para C&C: Tubos y Filtros, Datos compartidos, Cliente-Servidor, Estratificados,
  • Documentación del diseño arquitectónico.
  • Arquitectura en comparación con el diseño. Preservación de la integridad de una arquitectura.
  • Evaluación de las arquitecturas (método de análisis ATAM)
  • Planeamiento del proceso
  • Estimación del esfuerzo: Incertidumbres, Construcción de los modelos (estimaciones top-down y bottom-up), el modelo COCOMO.
  • Planificación y recursos humanos: Planificación global y detallada, estructura del equipo de trabajo
  • Plan del control de calidad: Introducción y eliminación de errores, enfoques, plan
  • Administración del Riesgo: Conceptos, Evaluación, Control
  • Planeamiento del Seguimiento del proyecto: Mediciones, seguimiento observacional, registro del seguimiento.

Diseño orientado a funciones

  • Niveles en el proceso de diseño
  • Principios del diseño: Particionado y jerarquía, Abstracción, Modularidad. Estrategias top-down y bottom-up
  • Acoplamiento y cohesión
  • Notación y especificación del diseño
  • Metodología de diseño estructurado: Cuatro pasos elementales, heurísticas de diseño, análisis de transacción.
  • Verificación
  • Métricas: de red, de estabilidad y de flujo de información

Diseño orientado a objetos

  • Conceptos de orientación a objetos: Clases, Objetos, Relación entre objetos, herencia, polimorfismo.
  • Conceptos de diseño: Acoplamiento, cohesión, principio abierto-cerrado, c UML
  • Una metodología de diseño: Modelado dinámico, modelado funcional, definición de clases y operaciones, Optimización.
  • Métricas
  • Lenguaje de diseño de procesos (PDL). Diseño lógico (del algoritmo). Modelo de estado de clases (Autómatas de estado nito). Refinamiento en abstracciones de datos e invariantes de representación.
  • Verificación: Recorrido del diseño, Revisión crítica (bajo proceso de inspección), verificación de consistencia y uso de técnicas formales
  • Métricas. Complejidad Ciclomática, Vínculos de datos, Métricas de cohesión
  • Principios y pautas para la programación: Errores comunes, Programación estructurada, ocultamiento de la información, prácticas de programación, estándares de codificación
  • Proceso de codificación: Incremental, Dirigido por test, Programación de a pares, Control del código fuente y construcción (build).
  • Refactorización: Conceptos básicos, Malos olores, refactorizaciones comunes,
  • Verificación: Inspección del código, test de unidad, Análisis estático, métodos formales
  • Conceptos fundamentales: Defecto y desperfecto (fault & failure), oráculos, casos de test y criterios de selección, psicología del test.
  • Testing de caja negra: Particionado por clases de equivalencia, Análisis de valores limites, gramfo de causa-efecto, testing de a pares, casos especiales, testing basado en estados (Máquinas de esteado finitas)
  • Testing de caja blanca: Criterios basados en el flujo de control, criterios basados en flujo de datos,
  • Testing por mutacion, generación de casos de test y herramientas de soporte.
  • El proceso de testing: Nivles, Plan, Especificación de los casos de test, ejecución de los casos de test, Análisis, Registro de defecros y seguimmiento
  • Análisis y prevención de los defectos.
  • Métricas. Estimación de la ¿ con habilidad

** Se toma SIEMPRE testing

Aspectos profesionales y sociales

  • Computación y sociedad
  • Propiedad intelectual, licencia de software y contratos informáticos
  • Aspectos legales
  • Responsabilidad y ética profesional.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published