Introducción
a la ingeniería del Software
El desarrollo de software no es sin dudas una tarea
fácil. Como resultado a este problema ha surgido una alternativa desde hace
mucho: la Metodología. Las metodologías imponen un proceso disciplinado sobre
el desarrollo de software con el fin de hacerlo más predecible y eficiente. Lo
hacen desarrollando un proceso detallado con un fuerte énfasis en planificar
inspirado por otras disciplinas de la ingeniería.
Las metodologías ingenieriles han estado presentes
durante mucho tiempo. No se han distinguido precisamente por ser muy exitosas.
Aún menos por su popularidad. La crítica más frecuente a estas metodologías es
que son burocráticas. Hay tanto que hacer para seguir la metodología que el
ritmo entero del desarrollo se retarda.
Hoy en día existen numerosas propuestas metodológicas que
inciden en distintas dimensiones del proceso de desarrollo. Un ejemplo de ellas
son las propuestas tradicionales centradas específicamente en el control del
proceso. Estas han demostrado ser efectivas y necesarias en un gran número de
proyectos, sobre todo aquellos proyectos de gran tamaño (respecto a tiempo y
recursos).
Sin embargo la experiencia ha demostrado que las
metodologías tradicionales no ofrecen una buena solución para proyectos donde
el entorno es volátil y donde los requisitos no se conocen con exactitud,
porque no están pensadas para trabajar con incertidumbre.
Aplicar metodologías tradicionales nos obliga a forzar a
nuestro cliente a que tome la mayoría de las decisiones al principio. Luego el
coste de cambio de una decisión tomada puede llegar a ser muy elevado si
aplicamos metodologías tradicionales.
Es por ello que varios problemas como los que a
continuación mencionamos han sido detectados:
Retrasos en la planificación: llegada la fecha de
entregar el software éste no está disponible.
Sistemas deteriorados: el software se ha creado pero
después de un par de años el coste de su mantenimiento es tan complicado que
definitivamente se abandona su producción.
Tasa de defectos: el software se pone en producción pero
los defectos son tantos que nadie lo usa.
Requisitos mal comprendidos: el software no resuelve los
requisitos planificados inicialmente.
Cambios de negocio: el problema que resolvía nuestro
software ha cambiado y nuestro software no se ha adaptado.
Falsa riqueza: el software hace muchas cosas técnicamente
muy interesantes y divertidas, pero no resuelven el problema de nuestro
cliente, ni hace que éste gane más dinero.
Cambios de personal: después de unos años de trabajo los
programadores comienzan a odiar el proyecto y lo abandonan.
Como respuesta a los problemas aplicando metodologías
tradicionales surgieron otras metodologías que tratan de adaptarse a la
realidad del desarrollo de software.
El encanto de estas metodologías ágiles es su reacción
ante la burocracia de las metodologías monumentales. Estos nuevos métodos
buscan un justo medio entre ningún proceso y demasiado proceso, proporcionando
simplemente suficiente proceso para que el esfuerzo valga la pena.
El resultado de todo esto es que los métodos ágiles
cambian significativamente algunos de los énfasis de los métodos ingenieriles.
La diferencia inmediata es que son menos orientados al documento, exigiendo una
cantidad más pequeña de documentación para una tarea dada. De muchas maneras
son más bien orientados al código: siguiendo un camino que dice que la parte
importante de la documentación es el código fuente.
Concepto: Ciencia de
la Computación, que ofrece métodos y técnicas para desarrollar y mantener
software de calidad que resuelven problemas de todo tipo.
Qué es Ingeniería de Software?
Es una disciplina o área de la Informática que ofrece
métodos y técnicas para desarrollar y mantener software de calidad que
resuelven problemas de todo tipo. Existen varias definiciones sobre esta
ciencia de la computación que permiten describir este proceso.
El término ciclo de vida del software describe el
desarrollo de software, desde la fase inicial hasta la fase final. El propósito
de este programa es definir las distintas fases intermedias que se requieren
para validar el desarrollo de la aplicación, es decir, para garantizar que el
software cumpla los requisitos para la aplicación y verificación de los
procedimientos de desarrollo: se asegura de que los métodos utilizados son
apropiados.
El producto
El software de computadora se ha convertido en el alma
máter. Es la máquina que conduce a la toma de decisiones comerciales. Sirve
para la investigación científica moderna y de resolución de problemas de
ingeniería. Es el factor clave que diferencia los productos y servicios
modernos. Está inmerso en sistemas de todo tipo: de transportes, médicos, de
telecomunicaciones, militares, procesos industriales, entretenimientos,
productos de oficina, la lista es casi interminable. El software es casi
ineludible en un mundo moderno. A medida que nos adentremos en el siglo XXI,
será el que nos conduzca a nuevos avances en todo, desde la educación elemental
a la ingeniería genética.
El proceso
Como el software, al igual que el capital, es el
conocimiento incorporado, y puesto que el conocimiento está inicialmente
disperso, el desarrollo del software implícito, latente e incompleto en gran
medida, es un proceso social de aprendizaje.
El proceso es un diálogo en el que se reúne el
conocimiento y se incluye en el software. El proceso proporciona una
interacción entre los usuarios y los diseñadores, entre los usuarios y las
herramientas de desarrollo, y entre los diseñadores y las herramientas de
desarrollo [tecnología]. Es un proceso interactivo donde la herramienta de
desarrollo se usa como medio de comunicación, con cada iteración del diálogo se
obtiene mayor conocimiento de las personas involucradas.
Modelos de desarrollo de software
Existen varios modelos, paradigmas y filosofías de
desarrollo, en los cuales se apoya la ingeniería de software para la
construcción del software, entre ellos se puede citar:
Modelo en cascada (modelo tradicional)
Modelo repetitivo
Este modelo guía el proceso de desarrollo de software en
repeticiones. Proyecta el proceso de desarrollo de forma cíclica repitiendo
cada paso después de cada ciclo en el proceso de SDLC.
Modelo Espiral
Modelo V
El mayor inconveniente del modelo de cascada es que solo
se pasa a la siguiente fase cuando se completa la anterior, por tanto no es
posible volver atrás si se encuentra algún error en las etapas posteriores. El
Modelo V aporta opciones de evaluación del software en cada etapa de manera
inversa.
Modelo Espiral
Modelo Big Bang
Este modelo es el modelo con la forma más simple.
Requiere poca planificación, mucha programación y también muchos fondos. Este
modelo se conceptualiza alrededor de la teoría de creación del universo 'Big
Bang'. Tal como cuentan los científicos, después del big bang muchas galaxias,
planetas y estrellas evolucionaron. De la misma manera, si reunimos muchos
fondos y programación, quizá podemos conseguir el mejor producto de software.
TOMADO: http://es.ccm.net/contents/223-ciclo-de-vida-del-software
IMAGENES:https://www.google.com.co/search?q=%C2%AD+Cual+es+el+ciclo+de+vida+de+un+software?&biw=1242&bih=606&tbm=isch&tbo=u&source=univ&sa=X&ved=0ahUKEwiG7sCT857OAhXH7SYKHcHeCzUQsAQILQ&dpr=1.1#imgrc=a1x7nkes-vOsnM%3A
Muy buen el Documento, me serviría mucho para mí desarrollo de Software
ResponderEliminarMuchísimas gracias...