Documentos de Académico
Documentos de Profesional
Documentos de Cultura
0
Introducción
El software se encuentra presente en nuestras vidas desde el despertador del teléfono
hasta el ascensor que tomamos para llegar al piso 5 de la fiuba. Los dados son ejemplos de
proyectos que han llegado a buen puerto pero existen una cantidad importante de
proyectos que nunca llegan a la etapa de producción ya sea por no saber captar bien lo
pedido por el cliente y luego no ser utilizado o por no poder cumplir con la entrega lo que
puede hacer que un cliente poco convencido y mal informado del estado del proceso
decida cancelarlo.
Se fueron atracando los problemas accidentales (aquellos que tiene solución) ejemplos de
esto fueron la creación del OOP, los lenguajes de alto nivel, el advenimiento de los IDE’s,
etc., pero en el desarrollo aun hay problemas llamados esenciales que son los
infranqueables tales como el hecho de que hay que tratar con humanos lo que incluso con
gente capacitada y las herramientas correctas se tienen presiones y ansiedades que hay
que manejar y tratar de disminuir.
Ingeniería de software
Aplica las técnicas de ingeniería al desarrollo de software con varios pasos comunes a cada
proceso:
Ingeniería de requerimientos
Se encarga de tomar las funciones y objetivos que deba cumplir el sistema y la transforma
en especificaciones a nivel de ingeniería de software, dicho de otra forma se encarga de
responder a la pregunta ¿Que se va a desarrollar?
Existe una cuestión entre el modelado ágil que es más informal en el cual se crean algunos
modelos simples y se comienza inmediatamente la programación y la ingeniería basada en
modelos que es un nivel superior de abstracción que describe cómo se comporta el
software y a partir de ellos se puede hacer la transición inmediata al ejecutable. De alguna
forma remite a la cuestión del TDD vs MDD.
El software se desarrolla mejor de forma iterativa (cada cierto tiempo se tiene una
versión) e incremental (se va mejorando/creando de a pocas características). El ciclo de
vida en cascada es el más aplicado a lo largo de la historia con sus diferentes variantes
tales como que cada fase se relacione estrechamente con la anterior y todas
preferentemente en paralelo dentro de los posible determinado por la fase dominante de
desarrollo. Algunos ejemplos son