jueves, 21 de abril de 2011

Ingeniería de Software

En este espacio se presentará un breve recorrido por algunos temas de interés en el amplio mundo de la Ingeniería de software.

Es importante comenzar con la definición de Ingeniería de Software, y hacer una reflexión sobre cuál es la más cercana, según nuestro criterio, a lo que viven los ingenieros que día a día se desempeñan en esta área.

Ø Ingeniería de Software es el estudio de los principios y metodologías para el desarrollo y mantenimiento de sistemas software (Zelkovitz, 1978)
Ø Ingeniería de software es la aplicación práctica del conocimiento científico al diseño y construcción de programas de computadora y a la documentación asociada requerida para desarrollar, operar y mantenerlos.
ØSe conoce también como Desarrollo de Software o Producción de Software (Bohem, 1976).
Ø Ingeniería de Software trata del establecimiento de los principios y métodos de la ingeniería a fin de obtener software de modo rentable, que sea fiable y trabaje en máquinas reales (Bauer, 1972).
Ø Es la aplicación de un enfoque sistemático, disciplinado y cuantificable al desarrollo, operación y mantenimiento del software; es decir, la aplicación de la ingeniería al software (IEEE, 1993).

Las fases suelen ser:
1.-Análisis de los requisitos y su viabilidad: recopilar, examinar y formular los requisitos del cliente y examinar cualquier restricción que se pueda aplicar.
2.-Diseño: requisitos generales y precisos de la arquitectura de la aplicación.
3.-Programación  o desarrollo (programación e implementación): es la implementación de un lenguaje de programación para crear las funciones definidas durante la etapa de diseño.
4.-Prueba de unidad: prueba individual de cada subconjunto de la aplicación para garantizar que se implementaron de acuerdo con las especificaciones.
5.- Integración: para garantizar que los diferentes módulos se integren con la aplicación. Éste es el propósito de la prueba de integración que está cuidadosamente documentada.
6.- Implementación: es la puesta en marcha del sistema
7.-Mantenimiento: para todos los procedimientos correctivos (mantenimiento correctivo) y las actualizaciones secundarias del software (mantenimiento continuo).

Entre los modelos de desarrollo de software más conocidos se encuentran:
Modelos tradicionales:
Cascada
De la fuente
Espiral
Enfoque CPM/SSM
Otros modelos evolutivos y/o incrementales

Modelos/métodos Agiles:
eXtreme Programming (XP)
Scrum
Evolutionary Project Management (Evo)
Crystal Methods (CM)
Feature Driven Development (FDD)
Rational Unified Process (RUP)
Dynamic Systems Development Method (DSDM)
Adaptive Software Development (ASD)
Agile Modeling (AM)
Lean Development (LD)
  
Mitos del software
Ø ¿Por qué cambiar nuestra forma de desarrollar software que utilizamos hace 10 años?
Ø Ya tenemos un libro lleno de estándares
Ø Si fallamos en la planificación podemos añadir más programadores y ganar el tiempo perdido?
Ø Una declaración general de objetivos es suficiente para empezar a hacer programas.
Ø Los requerimientos del proyecto cambian continuamente pero los cambios pueden acomodarse fácilmente ya que el software es flexible.
Ø No hay ningún método de análisis, diseño y programación que funcione bien; yo me voy a mi terminal y empiezo a escribir código.
Ø Cuando hacemos el programa y funciona ya ha terminado mi trabajo
Ø Hasta que no tengo un programa funcionando no se puede saber su calidad....

 http://www.cepeu.edu.py/LIBROS_ELECTRONICOS_3/lpcu097%20-%2001.pdf
Antonio J. Sucre S., Business Development & Consulting GeorgeTown University. 

No hay comentarios:

Publicar un comentario