Fundamentos de Ingeniería de Software: Modelos, Arquitectura y el Ciclo de Vida del Desarrollo de Sistemas (SDLC)

Ciclo de Vida del Desarrollo de Sistemas (SDLC)

El Ciclo de Vida del Desarrollo de Sistemas (SDLC) es el proceso por el cual los analistas de sistemas, los ingenieros de software, los programadores y los usuarios finales elaboran sistemas de información y aplicaciones informáticas.

Fase 1: Planificación

Esta fase consta de 3 etapas clave:

  1. Solicitud: Antes de considerar cualquier solicitud, esta debe examinarse para determinar con precisión lo que se desea.
  2. Estudio de Factibilidad: Evaluación de la viabilidad económica, tecnológica y operativa del proyecto.
  3. Aprobación de la Solicitud: Una vez aprobada la solicitud de un proyecto, se estima su costo, el tiempo para terminarlo y las necesidades de personal.

Fase 2: Determinación de los Requerimientos del Sistema

En esta fase se busca dar respuesta a preguntas fundamentales sobre el sistema:

  • ¿Qué es lo que se hace?
  • ¿Cómo se hace?
  • ¿Con qué frecuencia se presenta?
  • ¿Cuán grande es el volumen de transacciones o de decisiones?

Fase 3: Diseño de Sistemas

El diseño de sistemas se divide en dos fases principales:

  1. Diseño Físico o Diseño Técnico-Funcional del Sistema.
  2. Diseño Lógico: Es una descripción de los requerimientos de usuario. Incluye plantear el propósito de cada elemento del sistema sin relación con consideraciones de hardware o software.

Especificaciones del Diseño Lógico

El diseño lógico detalla los siguientes componentes:

  • Entradas
  • Salidas
  • Procesamiento
  • Archivos y Bases de Datos
  • Telecomunicaciones
  • Procedimientos
  • Controles y Seguridad
  • Diseño de Personal y Empleos

Diseño de Entradas

Se especifican los tipos, formato y contenido que ingresarán al sistema. Métodos de entrada comunes incluyen teclado, OCR, MICR, tarjetas perforadas, etc.

Diseño de Salida

Es una descripción de todas las salidas del sistema e incluye sus tipos, formato, contenido y frecuencia (pantalla, impresoras, audio, CD-ROM, etc.).

Diseño de Procesamiento

Los tipos de cálculo, comparaciones y manipulaciones de datos en general que requiere el sistema se determinan durante esta fase.

Diseño de Archivos y Bases de Datos

Objetivos:
  • Almacenar eficientemente los datos.
  • Mantener la integridad de los datos.
  • Actualizar y recuperar la información eficientemente.

Diseño de Telecomunicaciones

Durante el diseño lógico es necesario especificar los sistemas de redes y telecomunicaciones.

Diseño de Procedimientos

Todo el sistema de información requiere procedimientos para la ejecución de aplicaciones y la solución de los problemas que surjan.

Diseño de Controles y Seguridad

Implica determinar la frecuencia y las características necesarias de los sistemas de respaldo.

Diseño de Usuarios (Personal)

En este paso se definen los diferentes niveles de usuario. Adicionalmente, se estima si es conveniente contratar empleados adicionales o simplemente modificar las tareas relacionadas con uno o más empleados existentes.

Diseño Físico

El Diseño Físico define la forma en que se lograrán las tareas del sistema, incluyendo la manera de conjuntar sus componentes y las funciones que realizará cada uno de estos. Se especifican las características de los componentes del sistema requeridos para poner en práctica el diseño lógico. Deben delinearse las características de los siguientes componentes:

  • Diseño de Hardware: Se debe informar al equipo sobre el hardware que habrá que usar.
  • Diseño de Software: Deben especificarse las características de todo el software.
  • Diseño de Base de Datos: Hay que detallar el tipo, la estructura y sus funciones. Las relaciones definidas en el diseño lógico deben reflejarse también en el diseño físico.
  • Diseño de Telecomunicaciones: Deben especificarse las características necesarias del software, medios y dispositivos de telecomunicaciones.
  • Diseño de Usuarios: Especificación de las tareas por niveles de usuarios. Incluye especificar los antecedentes y experiencia de los individuos que más probablemente satisfagan las descripciones de usuarios incluidas en el diseño lógico.
  • Diseño de Controles y Procedimientos: Detallar la forma en que se ejecuta cada aplicación y las medidas para minimizar las probabilidades de delitos o fraudes. Incluye métodos de auditoría, soporte y distribución de salidas.

Arquitectura de Software

La Arquitectura de Software es el conjunto de metodologías y patrones que proporcionan un marco de referencia necesario para guiar la construcción del software para un sistema de información automatizado. Tiene que ver con el diseño y la implementación de estructuras de software de alto nivel. Se selecciona y se diseña con base en objetivos y restricciones.

Objetivos

Además de los objetivos funcionales prefijados para el sistema de información, se incluyen aquellos relacionados con:

  • Mantenibilidad
  • Auditabilidad
  • Flexibilidad
  • Interacción con otros sistemas de información

Restricciones

Limitaciones derivadas de las tecnologías disponibles para implementar dicho sistema de información.

Funciones de la Arquitectura

  • Definir los módulos principales.
  • Definir las responsabilidades que tendrá cada uno de estos módulos.
  • Definir la interacción que existirá entre dichos módulos.

Conceptos Fundamentales de Ingeniería de Software

Ciclo de Vida del Software

Periodo de tiempo que comienza al concebir la idea de un nuevo sistema de software y termina cuando este se retira y deja de funcionar.

Estándar ISO/IEC (Gestión e Ingeniería del Software)

Propósito: Establecer un estándar en la gestión e ingeniería del software, proporcionando un marco y un lenguaje común en la disciplina del software. Este marco incluye:

  • Adquisición, suministro, desarrollo, operación y mantenimiento del software.
  • Gestión, control y mejora del marco.
  • Servir como base de referencia para el trabajo e intercambio entre organizaciones de software.

Ingeniería de Software

Disciplina tecnológica relativa a la producción y mantenimiento de productos de software que son desarrollados y modificados en el tiempo y con los costos estimados. Una de sus tareas esenciales es el modelado de software.

Modelado de Software

Representación de un proceso con el objetivo de que pueda ser examinado. Permite dar una idea de lo que ocurrirá en la realidad y usarse como base del desarrollo.

Modelos de Desarrollo de Software

  1. Modelo en Cascada: Está marcado por la sucesión escalonada de las etapas que lo componen: requisitos, diseño, codificación, pruebas e integración.
  2. Modelo en Espiral: Presenta un desarrollo evolutivo. También introduce como elemento distintivo la actividad de «gestión de riesgo» para guiar la evolución del proceso de desarrollo.
  3. Modelo V: Tiene un procedimiento uniforme para el desarrollo de productos para las TIC. Describe las actividades y los resultados que se producen durante el desarrollo del software.
  4. Modelo Evolutivo: Compuesto por varios ciclos de desarrollo. Cada uno de ellos produce un sistema completo con el que se operará en el entorno de operación. La información acumulada en el desarrollo de cada sistema, y durante su fase de operación, sirve para ampliar o mejorar los requisitos y el diseño del siguiente.

Prototipado y Concurrencia

Prototipado

Consiste en la construcción de modelos de prueba que simulen el funcionamiento que se pretende conseguir en el sistema. Su principal objetivo es la experimentación con un entorno similar al pretendido, para obtener retroalimentación del cliente que ayuda en la concreción de los requisitos.

Los prototipos pueden ser:

  • Ligeros: Dibujos de pantallas de interfaz con simulación de funcionamiento por enlaces a otros dibujos.
  • Operativos: Módulos de software con funcionamiento propio que se desarrollan sin cubrir las funcionalidades completas del sistema.

Concurrencia

Solapamiento de un proceso sobre otro. Implica que se comience con una fase sin haber terminado por completo la anterior. La concurrencia puede aportar beneficios sobre la planificación de un proyecto de software, o por el contrario, ser origen o consecuencia de problemas.

Gestión y Éxito de Proyectos de Software

Principales Causas de Problemas en un Proyecto

  • Requisitos deficientes.
  • La planificación de agendas y estimaciones de costos no se realizaron en base a los requisitos.
  • Deficiencias en la aplicación de procesos y desconocimiento del ciclo de vida del proyecto.

Criterios para Determinar el Éxito de un Proyecto

  • Sin desviaciones en las fechas previstas.
  • Sin desviaciones en los costos estimados.
  • Que el producto final cubra las expectativas y necesidades del cliente.
  • Que funcione correctamente.

Estrategias Organizacionales y Externalización

Integración Vertical

Adquisición o fusión de una organización con un proveedor, distribuidor o cliente. La organización introduce así dentro de sus fronteras funciones y operaciones que anteriormente quedaban fuera de sus límites. La integración vertical puede ser:

  • Retrógrada: Hacia sus proveedores.
  • Anterógrada: Hacia sus usuarios, distribuidores o consumidores.

Integración Horizontal

Ocurre cuando una organización se fusiona o adquiere firmas de la competencia. Las adquisiciones o fusiones horizontales también pueden ocurrir fuera del sector o mercado primario de la empresa, y en este caso se denomina diversificación.

Outsourcing (Externalización)

Herramienta de gestión que designa un área o actividad de trabajo de nuestra organización para ser gestionada por otra empresa externa, especializada en el servicio demandado.

Tipos de Outsourcing
  • Total: Comprende la externalización completa de una actividad o función de una o más unidades de la organización.
  • Parcial: Se lleva a cabo por regiones, sucursales u oficinas.
  • Selectivo: Solo implica las funciones o actividades menos importantes que no aportan un valor añadido a la organización, pero cuya gestión impide un desarrollo adecuado de las actividades vitales de la empresa.

Organizaciones Virtuales y Colaboración Digital

Empresa Virtual (Organización en Red)

Es una nueva forma de organización funcional, conformada por individuos o empresas cuya estructura organizativa se apoya en el uso de Internet para ampliar sus transacciones y operaciones.

Ventajas de la Organización Virtual
  • Origina una nueva forma de trabajo: el teletrabajo.
  • Origina la base para una nueva economía (economía digital).
  • Fomenta nuevas formas de asociación virtual sin importar la ubicación real de los socios.
  • Puede estar localizada en cualquier parte del mundo.
  • Crea ventaja competitiva.
Desventajas de las Organizaciones Virtuales
  • Requiere un alto grado de autodisciplina.
  • Dificultad para motivar a los trabajadores a distancia, lo que puede llevar a que la compañía pierda parte de su fuerza corporativa.
  • El recurso humano no genera derechos permanentes en la empresa (la contratación se basa en subcontrataciones).

Groupware

Aplicaciones informáticas que integran en un solo proyecto el trabajo de muchos usuarios concurrentes, conectados a través de una red. Permiten capturar, almacenar, coordinar, recoger, distribuir y gestionar el conocimiento de una organización.

Tipos de Groupware (Según Tiempo-Espacio)
  • Herramientas de Colaboración-Comunicación: Envían mensajes, archivos, datos o documentos entre personas y facilitan la compartición de información.
  • Herramientas de Conferencia: Facilitan la compartición de información de forma interactiva (colaboración síncrona).
  • Herramientas de Gestión Colaborativa o en Grupo: Calendarios, agendas, gestión de proyectos, control de flujo, gestión del conocimiento, soporte a redes sociales.
Tipología de Groupware (Según Campo de Actuación)
  • Herramientas de gestión del conocimiento.
  • Herramientas de creación de conocimiento.
  • Herramientas de distribución de la información.
  • Herramientas de gestión de proyectos colaborativos.

Teletrabajo

Desarrollo de una actividad laboral remunerada en la que se utilizan las TIC como herramienta básica de trabajo, y en la que no existe una presencia permanente en el lugar físico de trabajo de la empresa.

Equipos Virtuales

Equipos de trabajo temporales o permanentes, dispersos geográficamente, que se comunican por medio de tecnologías (email, grupos de discusión, conferencias de audio/video/datos, votación electrónica y trabajo colaborativo).

Tipos de Comunicación en Equipos Virtuales
  • Sincrónica: Las personas realizan las diferentes tareas en el mismo periodo de tiempo.
  • Asincrónica: Se realizan las tareas en periodos de tiempo distintos.

Oficina Virtual

Espacio virtual en el que pueden desarrollarse actividades similares a las de una oficina, con el fin de prestar servicios a los clientes. Sustituyen o complementan los canales tradicionales de comunicación en el acceso a información y en la prestación de servicios.

Sistema Interempresarial o Interorganizativo (IOS)

Sistema de información que va más allá de las barreras de una organización, incluyendo de manera indefinida a diversas empresas, con el fin de satisfacer las necesidades estratégicas de estas.

Beneficios de los Sistemas Interempresariales
  • Reducción de costos y tiempo de transacciones.
  • Aumento del flujo y calidad de la información compartida.
  • Eliminación del papeleo y reducción de errores.
  • Agilización del proceso comercial.

Deja una respuesta

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.