Beruflich Dokumente
Kultur Dokumente
Proceso
Antes de definir lo que es un proceso de desarrollo de software, entendamos lo
que es un proceso. Una definicin sencilla de proceso es serie de acciones que
conducen a un final. Esta definicin parece coincidir con las ideas generales
de la gente sobre procesos, pero deja muchas preguntas abiertas. El proceso
es la forma en que la organizacin opera desde mercadotecnia hasta
recursos humanos o es la forma en que un desarrollador disea, produce
cdigo, o prueba el software? El proceso se refiere a administracin,
ingeniera, o ambas? El proceso implica demasiada documentacin y nos
abstiene de desarrollar el producto objetivo?
La respuesta a stas puede variar dependiendo de la perspectiva. Sin embargo,
siempre que para alcanzar algn fin deseado necesitemos ejecutar una serie
de acciones, y estas acciones tengan cierto orden, dependencias, roles
Proceso de software
La meta de la ingeniera de software es construir productos de software, o
mejorar los existentes; en ingeniera de procesos, la meta es desarrollar o
mejorar procesos.
Un proceso de desarrollo de software es un conjunto de personas, estructuras
de organizacin, reglas, polticas, actividades y sus procedimientos,
componentes de software, metodologas, y herramientas utilizadas o creadas
especficamente para definir, desarrollar, ofrecer un servicio, innovar y
extender un producto de software.
Un proceso de software efectivo habilita a la organizacin a incrementar su
productividad al desarrollar software:
El ciclo de vida del desarrollo Software (SDLC en sus siglas inglesas), es una secuencia
estructurada y bien definida de las etapas en Ingeniera de software para desarrollar el
producto sofware deseado.
describe el desarrollo de software, desde la fase inicial hasta la fase final. El propsito de este
programa es definir las distintas fases intermedias que se requieren para validar el desarrollo
de la aplicacin, es decir, para garantizar que el software cumpla los requisitos para la
aplicacin y verificacin de los procedimientos de desarrollo: se asegura de que los mtodos
utilizados son apropiados.
Estos programas se originan en el hecho de que es muy costoso rectificar los errores que se
detectan tarde dentro de la fase de implementacin. El ciclo de vida permite que los errores se
detecten lo antes posible y por lo tanto, permite a los desarrolladores concentrarse en la
calidad del software, en los plazos de implementacin y en los costos asociados.
El ciclo de vida bsico de un software consta de los siguientes procedimientos:
Integracin: para garantizar que los diferentes mdulos se integren con la aplicacin.
ste es el propsito de la prueba de integracin que est cuidadosamente documentada.
Prueba beta (o validacin), para garantizar que el software cumple con las
especificaciones originales.
Documentacin: sirve para documentar informacin necesaria para los usuarios del
software y para desarrollos futuros.
Implementacin
Integracin: para garantizar que los diferentes mdulos se integren con la aplicacin.
ste es el propsito de la prueba de integracin que est cuidadosamente documentada.
Prueba beta (o validacin), para garantizar que el software cumple con las
especificaciones originales.
Documentacin: sirve para documentar informacin necesaria para los usuarios del
software y para desarrollos futuros.
Implementacin
Mantenimiento: para todos los procedimientos correctivos (mantenimiento correctivo)
y las actualizaciones secundarias del software (mantenimiento continuo).
Modelo de cascada
Este modelo asume que todo se lleva a cabo y tiene lugar tal y como se
haba planeado en la fase anterior, y no es necesario pensar en asuntos
pasados que podran surgir en la siguiente fase. Este modelo no
funcionar correctamente si se dejan asuntos de lado en la fase previa.
Caracteristicas:
Para pasar de una fase a otra es necesario conseguir todos los objetivos de la etapa
previa
Ayuda a prevenir que se sobrepasen las fechas de entrega y los costes esperados
Modelo repetitivo
Este modelo gua el proceso de desarrollo de software en repeticiones.
Proyecta el proceso de desarrollo de forma cclica repitiendo cada paso
despus de cada ciclo en el proceso de SDLC.
El software primero se desarrolla en menor escala y se siguen y tienen
en consideracin todos los pasos. Entonces, por cada repeticin, ms
mdulos y caractersticas son diseados, codificados, evaluados y
aadidos al software. Cada ciclo produce un sotware completo, con ms
caractersticas y capacidad que los previos.
Modelo en espiral
El modelo en espiral es una combinacin de ambos modelos, el
repetitivo y uno del modelo SDLC. Se puede ver como si se combina un
modelo de SDLC combinado con un proceso cclico (modelo repetitivo).
Caractersticas:
Se evitan proyectos largos y se entrega "algo de valor" a los usuarios con cierta frecuencia.
Dificil de aplicar a los sistemas transaccionales que tienden a ser integrados y a operar
como un todo.
Ventajas:
Ventajas:
Este modelo es til cuando el cliente conoce los objetivos generales para el software,
pero no identifica los requisitos detallados de entrada, procesamiento o salida.
Tambin ofrece un mejor enfoque cuando el responsable del desarrollo del software
est inseguro de la eficacia de un algoritmo, de la adaptabilidad de un sistema operativo o
de la forma que debera tomar la interaccin humano-mquina.
1. Procesos de Software
Un proceso del software es un conjunto de actividades que conducen a la creacin de un
producto software. Estas actividades pueden consistir en el desarrollo de software desde
cero en un lenguaje de programacin estndar como Java o C. Sin embargo, cada vez
ms, se desarrolla nuevo software ampliando y modificando los sistemas existentes y
configurando e integrando software comercial o componentes del sistema.
Los procesos del software son complejos y como todos los procesos intelectuales y
creativos, dependen de las personas que toman decisiones y juicios. Debido a la
necesidad de juzgar y crear, los intentos para automatizar estos procesos han tenido un
xito limitado. Las herramientas de ingeniera del software asistida por computadora
pueden ayudar a algunas actividades del proceso. Sin embargo, no existe posibilidad
alguna, al menos en los prximos aos, de una automatizacin mayor en el diseo
creativo del software realizado por los ingenieros relacionados con el proceso del
software.
Una razn por la cual la eficacia de las herramientas est limitada se halla en la inmensa
diversidad de procesos del software. No existe un proceso ideal y muchas organizaciones
han desarrollado su propio enfoque para el desarrollo del software. Los procesos han
evolucionado para explotar las capacidades de las personas de una organizacin, as
como las caractersticas especficas de los sistemas que se estn desarrollando. Para
algunos sistemas, como los sistemas crticos, se requiere un proceso de desarrollo muy
estructurado. Para sistemas de negocio, con requerimientos rpidamente cambiantes, un
proceso flexible y gil probablemente sea ms efectivo. Aunque existen muchos procesos
diferentes de software, algunas actividades fundamentales son comunes para todos ellos:
1.1.
Se debe validar el software para asegurar que hace lo que el cliente desea.
1.4.
El software debe evolucionar para cubrir las necesidades cambiantes del cliente.
2. Modelo del Proceso del Software
Cada modelo de proceso representa un proceso desde una perspectiva particular y as
proporciona slo informacin parcial sobre ese proceso. Estos modelos generales no son
descripciones definitivas de los procesos del software. Ms bien, son abstracciones de los
procesos que se pueden utilizar para explicar diferentes enfoques para el desarrollo de
software. Puede pensarse en ellos como marcos de trabajo del proceso que pueden ser
extendidos y adaptados para crear procesos ms especficos de ingeniera del software.
Los Modelos de procesos que se incluyen son:
2.1.
Llamado algunas veces ciclo de vida bsico o modelo en cascada, el modelo lineal
secuencial sugiere un enfoque sistemtico, secuencial, para el desarrollo del software que
comienza en un nivel de sistemas y progresa con el anlisis, diseo, codificacin, pruebas
y mantenimiento.
Es un ciclo de vida en sentido amplio, que incluye no slo las etapas de ingeniera si no
toda la vida del producto: las pruebas, el uso (la vida til del software) y el mantenimiento.
2.1.1. Ingeniera del sistema
Es donde se desarrolla el anlisis de las caractersticas y el comportamiento del sistema del
cual el software va a formar parte.
2.1.2. Anlisis
Es donde se debe comprender cules son los datos que se van a manejar, cul va ser la
funcin que tiene que cumplir el software, cules son sus interfaces requeridas y cul es el
rendimiento.
2.1.3. Diseo
Prueba
La idea detrs de este modelo es el desarrollo de una implantacin del sistema inicial,
exponerla a los comentarios del usuario, refinarla en N versiones hasta que se desarrolle el
sistema adecuado.
Una ventaja de este modelo es que se obtiene una rpida realimentacin del usuario, ya que
las actividades de especificacin, desarrollo y pruebas se ejecutan en cada iteracin.
2.2.1. Identificar los requerimientos conocidos:
Los analistas y los usuarios trabajan juntos para identificar los requerimientos conocidos que
tienen que satisfacerse. Se debe determinar los fines del sistema y el alcance de su
capacidad.
2.2.2. Desarrollar modelo que funcione
Es donde los desarrolladores deben de explicar a los usuarios el mtodo, las actividades a
realizar, la secuencia en que se llevar a cabo, la responsabilidad de cada participante.
2.2.3. Utilizar el prototipo:
La responsabilidad de trabajar con el prototipo y evaluar sus caractersticas y operacin es del
usuario. Es donde se debe experimentar el sistema bajo condiciones reales para poder
determinar los cambios, mejoras o eliminar caractersticas innecesarias.
2.2.4. Revisar prototipo
Se realiza la evaluacin y con la informacin obtenida se levantan las caractersticas que debe
llevar la siguiente versin del prototipo.
2.2.5. Prototipo terminado?
Los pasos anteriores se repiten varias veces entre 4 o 6 iteraciones cuando los usuarios y
desarrolladores estn de acuerdo en que el sistema ha evolucionado lo suficiente e incluye
todas las caractersticas necesarias.
2.3.
Los objetos de datos definidos en la fase del modelado de datos quedan transformados para
lograr el flujo de informacin necesario para implementar una funcin de gestin.
2.3.4. Generacin de aplicaciones
El DRA asume la utilizacin de tcnicas de cuarta generacin. Trabaja para volver a utilizar
componentes de programas ya existentes o crear componentes reutilizables.
2.3.5. Pruebas y entrega
Como el proceso DRA enfatiza la reutilizacin, ya se han comprobado muchos de los
componentes de los programas. Esto reduce el tiempo de pruebas. Sin embargo, se deben
probar todos los componentes nuevos y se deben ejercitar todas las interfaces a fondo.
2.4.
Se definen los objetivos, se definen las restricciones del proceso y del producto. Se realiza un
diseo detallado del plan administrativo, se identifican los riesgos y se elaboran las estrategias
alternativas dependiendo de estos.
2.4.2.2.Evaluacin y reduccin de riesgos
Se realiza un anlisis detallado de cada riesgo identificado. Pueden desarrollarse prototipos
para disminuir el riesgo de requisitos dudosos.
2.4.2.3.Desarrollo y validacin
Se escoge el modelo de desarrollo despus de la evaluacin del riesgo. El modelo que se
utilizar depende del riesgo identificado para esa fase.
2.4.2.4.Planificacin
Se determina si continuar con otro ciclo. Se planea la siguiente fase del proyecto.
2.4.2.5.Actividades del modelo en espiral
cliente.
proyecto.