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

  • Laura Brandán: [email protected]
  • Santiago Ávalos
  • Matías Lee
  • Diego Lis
  • Gonzalo Peralta
  • Leandro Ramos

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