Conceptos Fundamentales de Ingeniería de Software: Componentes, Modelos y Metodologías Ágiles


Ingeniería de Software Basada en Componentes (ISBC)

La Ingeniería de Software Basada en Componentes (ISBC) parte de la idea de la integración de componentes de software ya existentes, promoviendo un desarrollo ascendente o bottom-up.

Fases de la Ingeniería y Construcción de Software

Este modelo propone una única fase de construcción y adaptación de la ingeniería, que incluye las siguientes actividades:

Fases del Modelo

  • Comunicación con el Cliente: Tareas requeridas para establecer comunicación entre el desarrollador y el cliente.
  • Planificación: Tareas requeridas para definir recursos, el tiempo y otra información relacionada con el proyecto.
  • Análisis de Riesgos: Tareas requeridas para evaluar riesgos técnicos y de gestión.
  • Construcción y Adaptación de la Ingeniería.
  • Evaluación del Cliente: Tareas requeridas para obtener la reacción del cliente según la evaluación de las representaciones del software creadas durante la etapa de ingeniería e implementadas durante la etapa de instalación.

Metodologías y Procesos de Desarrollo

Metodología SCRUM

SCRUM es un marco de trabajo para la gestión y desarrollo de software basado en un proceso iterativo e incremental. Estaba enfocado a la gestión de procesos de desarrollo de software, y puede ser utilizado en equipos de mantenimiento de software o en una aproximación de gestión de programas, como SCRUM de SCRUMs.

Programación Extrema (XP)

La Programación Extrema o Extreme Programming (XP) es una metodología de desarrollo de la ingeniería de software.

Agile Unified Process (AUP)

El Proceso Unificado Ágil de Scott Ambler o Agile Unified Process (AUP) en inglés es una versión simplificada del Proceso Unificado de Rational.

Modelo Ganar-Ganar

El Modelo Ganar-Ganar extiende el Modelo Espiral, haciendo énfasis en la identificación de las condiciones de ganancia para todas las partes involucradas.

Ciclos del Modelo Ganar-Ganar

Se consideran cuatro ciclos, cada uno compuesto de cuatro actividades:

  • Ciclo 0 (Grupos de Aplicación): Se determina la viabilidad de un grupo apropiado de aplicaciones.
  • Ciclo 1 (Objetivos del Ciclo de Vida de la Aplicación): Se desarrollan los objetivos del ciclo de vida, incluyendo prototipos, planes y especificaciones de aplicaciones individuales, y se verifica la existencia de al menos una arquitectura viable para cada aplicación.
  • Ciclo 2 (Arquitectura del Ciclo de Vida de la Aplicación): Se establece una arquitectura del ciclo de vida detallada, se verifica su viabilidad, y se determina que no existen riesgos mayores en satisfacer los planes y especificaciones.
  • Ciclo 3 (Capacidad de Operación Inicial): Se alcanza una capacidad operacional inicial para cada etapa crítica del proyecto en el ciclo de vida del software.

Proceso Unificado

El Proceso Unificado considera como aspecto esencial del desarrollo de software una visión que parte de la arquitectura del sistema.

Ingeniería Web

La Ingeniería Web es una aplicación de software que permite al usuario recuperar y visualizar documentos de hipertexto, comúnmente descritos en HTML.

Categorización de Sitios Web

Los sitios web pueden ser categorizados de la siguiente forma:

  • Sólo Estático: Se enfoca en la organización de la estructura y el contenido, en la forma como se va a presentar la información y que sea fácil de manejar para cualquier usuario, pero debe tener en cuenta la eficiencia y la confiabilidad.
  • Sitio Estático con Formularios de Entrada: Este sitio tiene las mismas características que el anterior, adicionándole que permite a los usuarios la interacción por medio de cuestionarios, comentarios y sugerencias.
  • Sitio con Acceso de Datos Dinámicos: Aquí, además de las características antes mencionadas, cuenta con bases de datos en las cuales el usuario puede realizar consultas y búsquedas.
  • Sitio Creado Dinámicamente: En este sitio los requerimientos son parecidos, pero deben suplir con las necesidades de cada usuario; creando sitios dinámicos que sean compatibles con el entorno de navegación de cada usuario.
  • Aplicación de Software Basada en la Web: Este sitio puede tener todas las características antes mencionadas, pero logrando un parecido con una implementación cliente/servidor, comúnmente conocido que a un sitio web estático.

Principios de las Metodologías Ágiles

Las Metodologías Ágiles nacen en febrero del 2001 en una reunión celebrada en Utah, EE. UU.

Ideas Principales de la Metodología Ágil

  • Se encarga de valorar al individuo y las iteraciones del equipo más que a las herramientas o los procesos utilizados.
  • Se hace mucho más importante crear un producto software que funcione que escribir mucha documentación.
  • El cliente está en todo momento colaborando en el proyecto.
  • Es más importante la capacidad de respuesta ante un cambio realizado que el seguimiento estricto de un plan.

Tipos de Requerimientos de Software

Requerimientos Funcionales

Hacen referencia a la descripción de las actividades y servicios que un sistema debe proveer. Normalmente este tipo de requerimientos están vinculados con las entradas, las salidas de los procesos y los datos a almacenar en el sistema.

Requerimientos No Funcionales

Describen otras prestaciones, características y limitaciones que debe tener el sistema para alcanzar el éxito.

Especificación de Requerimientos de Software (SRS)

Documento clave para formalizar los requerimientos.

Dejar un Comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *