Ingeniería de Software: Desarrollo, Tipos y Procesos

Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 9,59 KB

Ingeniería de Software

La Ingeniería de Software es una disciplina de la Ingeniería que concierne a todos los aspectos de la producción de software. Los Ingenieros de Software adoptan un enfoque sistemático para llevar a cabo su trabajo y utilizan las herramientas y técnicas necesarias para resolver el problema planteado, de acuerdo a las restricciones de desarrollo y recursos disponibles.

Ingeniería de Software vs. Computación

La computación concierne a la teoría y fundamentos de cualquier sistema de cómputo, sea de hardware o de software. La Ingeniería de Software concierne solo al desarrollo de sistemas o productos de software. La Ingeniería de Software todavía está lejos de ser una ciencia como lo son la Química, la Ingeniería Civil o la Electrónica.

Ingeniería de Sistemas vs. Ingeniería de Software

La Ingeniería de Sistemas concierne a todos los aspectos del desarrollo de sistemas basados en cómputo, que incluyen hardware, software y el proceso de Ingeniería. La Ingeniería de Software es solo parte de este proceso.

¿Qué es el Software?

Programas de cómputo y su documentación asociada. Sistemas o productos de software grandes y complejos.

Contenido del Software

  • Líneas de código de algún lenguaje
  • Instrucciones de computadora
  • Descripción de las estructuras de datos
  • Algoritmos
  • Procedimientos y funciones
  • Componentes de software

Tipos de Software

Por su estructura:

  • Funcionales
  • Orientados a objetos
  • Orientados a listas
  • Orientados a componentes

Por su función:

  • Programas o Sistemas de Usuario
  • Interfaces Hombre-Máquina
  • Herramientas de Software
  • Librerías
  • Sistemas de uso genérico: Compiladores, S.O’s, Procesadores de Texto, etc.
  • Bases de Datos
  • Sistemas basados en Web

Por su plataforma de cómputo:

  • Sistemas embebidos
  • Sistemas de cómputo distribuido
  • Sistemas de cómputo paralelo
  • Sistemas de tiempo real
  • Sistemas basados en Chips
  • Wearable computing systems
  • Sistemas de cómputo ubicuos

Costo del Software

El costo del software varía dependiendo de su complejidad, funcionalidad y plataforma.

Desarrollo de Software

El desarrollo de software sigue un proceso específico que incluye la especificación, diseño, manufactura, prueba, instalación y mantenimiento.

Calidad del Software

La calidad del software se mide por su mantenibilidad, confiabilidad, eficiencia y utilización adecuada.

Productos de Software

Productos Genéricos

Productos que son producidos por una organización para ser vendidos al mercado.

Productos Hechos a Medida

Sistemas que son desarrollados bajo pedido a un desarrollador específico.

Características de los Productos de Software

  • Mantenibles: Debe ser posible que el software evolucione y que siga cumpliendo con sus especificaciones.
  • Confiabilidad: El software no debe causar daños físicos o económicos en el caso de fallos.
  • Eficiencia: El software no debe desperdiciar los recursos del sistema.
  • Utilización adecuada: El software debe contar con una interfaz de usuario adecuada y su documentación.

Proceso Genérico de Software

  1. Especificación: Establecer los requerimientos y restricciones del sistema.
  2. Diseño: Producir un modelo en papel del sistema.
  3. Manufactura: Construir el sistema.
  4. Prueba: Verificar que el sistema cumpla con las especificaciones requeridas.
  5. Instalación: Entregar el sistema al usuario y asegurar su operacionalidad.
  6. Mantenimiento: Reparar fallos en el sistema cuando sean descubiertos.

Características del Proceso

  • Entendible: ¿Se encuentra el proceso bien definido y es entendible?
  • Visible: ¿El proceso es visible al exterior?
  • Soportable: ¿Puede el proceso ser soportado por herramientas CASE?
  • Aceptable: ¿El proceso es aceptado por aquellos involucrados en él?
  • Confiable: ¿Los errores del proceso son descubiertos antes de que se conviertan en errores del producto?
  • Robusto: ¿Puede continuar el proceso a pesar de problemas inesperados?
  • Mantenible: ¿Puede el proceso evolucionar para cumplir con los objetivos organizacionales?
  • Rapidez: ¿Qué tan rápido puede producirse el sistema?

Requerimientos

Tipos de Requerimientos

  1. Requerimientos Funcionales: Una función es algo que hará el sistema. Describen una interacción entre el sistema y su ambiente.
  2. Requerimientos No Funcionales: Describen restricciones que limitan las opciones de solucionar el problema. Restricciones cuantitativas o precisión.
  3. Seudorequerimientos: Requerimientos impuestos por el cliente que restringen la implementación del sistema.

Determinación de Requerimientos

Proceso que tiene como objetivo capturar, documentar y definir las condiciones o características que debe cumplir un sistema dado: la especificación del sistema.

  1. Obtención de requerimientos: Captura de requerimientos con el objetivo de definir qué es el sistema.
  2. Documentación de requerimientos: Los requisitos han de reflejarse en un documento como registro del proceso de captura con el objetivo de fijar una base para clientes y desarrolladores.
  3. Validación: Es el proceso por el cual se determina si la especificación es consistente, es decir, si los requerimientos satisfarán las necesidades del cliente.

Prototipado

  • Un prototipo es un modelo de sistema eventual que se puede utilizar para demostrar las características de lo que el sistema puede ofrecer. 2 métodos: P. desechable, P. evolutivo.

Especificación de Requisitos del Sistema

  1. Introducción
  2. Alcance. Relación con otros sistemas
  3. Definiciones
  4. Historial. Infraestructura existente
  5. Descripción de alto nivel. Esquema del problema
  6. Requerimientos Funcionales (Forma atómica y con identificador)
  7. Requerimientos No Funcionales (Forma atómica y con identificador y vinculados a los funcionales que soportan)
  8. Restricciones específicas

Participantes en el Proceso

  • Supervisores del contrato, sugieren hitos de control y cronogramas que disciplinan el desarrollo del sistema.
  • Clientes y usuarios, deben comprender y trasmitir adecuadamente los requerimientos del sistema.
  • Gerentes de negocios, para calibrar el impacto de construir y utilizar el sistema.
  • Diseñadores que usarán los requerimientos como base del desarrollo.
  • Verificadores encargados de las sesiones de prueba destinadas a asegurar que el sistema cumple los requerimientos.

Modelado de Proceso

Método de análisis vertical (up-down) para establecer la composición funcional del área para la cual se propone el sistema.

  • Utilizado primordialmente en el área de la Ingeniería de Procesos y relacionado a la Gestión de Procesos de Negocios. Útil también para el desarrollo de Sistemas de Información.

Modelado del Negocio

  • Utilizado primordialmente en el área de la Ingeniería de Software, aunque actualmente es utilizado en el ámbito administrativo.

Herramientas para Modelado de Procesos

  • Mapa de Procesos
  • BPM (Business Process Management)
    • BMPI
    • BPMN
    • BMPL, BEPEL
    • BPQL
  • BMM(S)
  • BMM

Aplicaciones Orientadas al Negocio: Modelo de Procesos

  • Ingeniería de procesos
  • Diseño organizacional
  • Cambio organizacional
  • Planeación estratégica
  • Desarrollo organizacional
  • Gestión del conocimiento organizacional

Sistemas ERP

Los sistemas de planificación de recursos empresariales, o ERP, son sistemas de información gerenciales que integran y manejan muchos de los negocios asociados con las operaciones de producción.

Sistemas CRM

CRM (customer relationship management) o Administración basada en la relación con los clientes.

Herramientas CASE

Las herramientas CASE (Computer Aided Software Engineering, Ingeniería de Software Asistida por Computadora) son diversas aplicaciones informáticas destinadas a aumentar la productividad en el desarrollo de software.

Licencia Pública General de GNU

La Licencia Pública General de GNU o más conocida por su nombre en inglés GNU General Public License o simplemente sus siglas del inglés GNU GPL, es una licencia creada por la Free Software Foundation en 1989.

Sistemas Operativos

AIX (Advanced Interactive eXecutive) es un sistema operativo UNIX.

Solaris es un sistema operativo de tipo Unix desarrollado desde 1992.

Entradas relacionadas: