Características del Software

  • El software no se desgasta y no es sensible a los problemas ambientales.
  • Un fallo en el software suele indicar un error de diseño o de aplicación.
  • El mantenimiento de software es más complejo que el de hardware.
  • Actualmente, el software se orienta a objetos y fomenta la reutilización, lo que reduce costos y mejora los diseños.

Componentes de un Sistema Informático

  • Hardware
  • Software
  • Información
  • Usuarios
  • Tareas
  • Documentación

Tipos de Aplicaciones de Software

  • Software Básico
  • Tiempo Real
  • Comerciales
  • Ciencia e Ingeniería
  • Software Embebido
  • Software para Computadoras Personales
  • Inteligencia Artificial (IA)

Definición de Ingeniería de Software

La Ingeniería de Software es el establecimiento y uso de principios de ingeniería para poder obtener económicamente un software que sea confiable y funcione eficientemente en máquinas reales.

Paradigmas de la Ingeniería de Software

Cuatro paradigmas principales de la Ingeniería de Software:

  • Ciclo de Vida Clásico (Modelo de Cascada)
  • Prototipos
  • Espiral
  • Técnicas de Cuarta Generación (4GL)

Modelo de Cascada (Ciclo de Vida Clásico)

Basado en el diseño clásico de las fases de ingeniería.

Fases

  • Ingeniería de Sistemas
  • Análisis de Requisitos
  • Definición
  • Diseño
  • Codificación
  • Pruebas
  • Mantenimiento

Problemas

  • Los proyectos reales rara vez siguen el flujo secuencial propuesto por el modelo.
  • Es difícil establecer todos los requisitos de forma explícita al comienzo del proyecto.
  • Siempre hay una incertidumbre natural al inicio del proyecto, y el cliente debe tener paciencia.
  • Una versión ejecutable del software solo está disponible en una etapa avanzada de desarrollo.
  • Los desarrolladores a menudo están innecesariamente inactivos debido a estados de bloqueo.

Modelo de Prototipos

Proceso

  1. Obtención de los requisitos.
  2. Diseño rápido.
  3. Construcción del prototipo.
  4. Evaluación del prototipo.
  5. Refinamiento del prototipo.
  6. Iteración (el prototipo construido puede adaptarse a las necesidades del usuario, puede descartarse o formar parte del producto final).

Problema

  • El cliente insiste en que, con ligeras modificaciones, las decisiones y soluciones improvisadas formen parte del producto final.

Modelo Espiral

Fases

  • Definición de los objetivos: Especificación de los objetivos específicos de esta fase.
  • Evaluación de riesgos: Identificación y resolución de los principales riesgos.
  • Desarrollo y validación.
  • Planificación.

Lenguajes de Cuarta Generación (4GL)

Herramientas de Alto Nivel de Especificación (4GL)

  • Consulta de bases de datos.
  • Generación de informes.
  • Manipulación de datos.
  • Definición e interacción con pantallas.
  • Generación de código.

Dominio Predominante

  • Sistemas de información empresarial.
  • Sistemas de buena productividad para pequeñas y medianas empresas.

Problemas Específicos

  • Para sistemas grandes, requiere mucho tiempo.
  • Sigue siendo necesaria la gestión de proyectos.

Calidad y Productividad en Ingeniería de Software

Definiciones

  • Calidad: La capacidad del producto para satisfacer las necesidades explícitas e implícitas, y las condiciones especificadas.
  • Productividad: La capacidad de optimizar costos y rendimiento.
  • La garantía de calidad es la medida de la madurez de la ingeniería de software, llevando a la organización a comprometerse con la calidad.

Causas de Inmadurez y Soluciones

  • Causas de inmadurez: Problemas de presupuesto, tiempo excedido, problemas con la calidad del producto.
  • Solución: La implementación de un método y un proceso con las herramientas adecuadas, y la evolución constante de este proceso de desarrollo.

CMM – Capability Maturity Model

El CMM (Capability Maturity Model) es un modelo para evaluar la madurez de los procesos de software de una organización y para identificar las prácticas clave que son necesarias para aumentar la madurez de estos procesos.

Niveles de Madurez

  • 1 – Inicio: Proceso incontrolado e impredecible.
  • 2 – Repetible: Procesos disciplinados.
  • 3 – Definición: Proceso consistente y estandarizado.
  • 4 – Gestionado: Proceso predecible y controlado.
  • 5 – Optimización: Proceso de mejora continua.

CMMI Nivel 2

Acciones para la Implementación de la Metodología

  • Capacitación en Gestión Conceptual de Proyectos.
  • Definición de las herramientas que componen la metodología.
  • Establecimiento de un calendario de aplicación de la metodología.
  • Formación de gestores de proyectos.
  • Implementación de la metodología.

Formas de Ajustar la Metodología

  • Cronograma para la aplicación.
  • Indicadores.