Sei sulla pagina 1di 3

QUE ES UN PROCESO DE DESARROLLO DE SOFTWARE: El proceso de desarrollo del software Un proceso de desarrollo de software tiene como propsito la produccin

eficaz y eficiente de un producto software que rena los requisitos del cliente. Dicho proceso, en trminos globales se muestra en la Figura 2 [3]. Este proceso es intensamente intelectual, afectado por la creatividad y juicio de las personas involucradas [4]. Aunque un proyecto de desarrollo de software es equiparable en muchos aspectos a cualquier otro proyecto de ingeniera, en el desarrollo de software hay una serie de desafos adicionales, relativos esencialmente a la naturaleza del producto obtenido. A continuacin se explican algunas particularidades asociadas al desarrollo de software y que influyen en su proceso de construccin.

Cul es el modelo de proceso ms adecuado?


Cada proyecto de software requiere de una forma de particular de abordar el problema. Las propuestas comerciales y acadmicas actuales promueven procesos iterativos, donde en cada iteracin puede utilizarse uno u otro modelo de proceso, considerando un conjunto de criterios (Por ejemplo: grado de definicin de requisitos, tamao del proyecto, riesgos identificados, entre otros).

COMPONENTES Y CARACTERISTICAS Un proceso define quien esta haciendo que, cuando, y como alcanzar un determinado objetivo. En la Ingeniera del Software el objetivo es construir un producto software o mejorar uno existente. Un proceso efectivo proporciona normas para el desarrollo eficiente de software de calidad. Captura y presenta las mejores practicas que el estado actual de la tecnologa permite. En consecuencia, reduce el riesgo y hace el proyecto mas predecible. El efecto global es el fomento de una visin y una cultura comunes. Es necesario un proceso que sirva como gua para todos los participantes clientes, usuarios, desarrolladores y directivos ejecutivos. No nos sirve ningn proceso antiguo; necesitamos uno que sea el mejor proceso que la industria pueda reunir en este punto de su historia. Por ultimo necesitamos un proceso que este ampliamente disponible de forma que todos los interesados puedan comprender su papel en el desarrollo en el que se encuentran implicados. Un proceso de desarrollo de software debera tambin ser capaz de evolucionar durante muchos aos. Durante esta evolucin debera limitar su alcance, en un momento del tiempo dado, a las realidades que permitan las tecnologas, herramientas, personas y patrones de organizacin.

1.

Tecnologas: El proceso debe construirse sobre las tecnologas lenguajes de programacin, sistemas operativos computadores, estructuras de red, entornos de desarrollo, etc disponibles en el momento en que se va a emplear el proceso. Por ejemplo hace varios aos el modelado visual no era realmente de uso general. Era demasiado caro. En aquellos tiempos, un creador de un proceso prcticamente tenia que asumir que se usaran diagramas hechos a mano. Esa suposicin limitaba mucho el gado en el cual el creador del proceso poda establecer el modelado dentro del proceso.

2.

Herramientas: Los procesos y las herramientas deben desarrollarse en paralelo. Las herramientas son esenciales en el proceso. Dicho de otra forma, un proceso ampliamente utilizado para soportar la inversin necesaria para crear las herramientas que lo soporten.

3.

Personas: Un creador del proceso debe limitar el conjunto de habilidades necesarias para trabajar en el proceso a las habilidades que los desarrolladores actuales poseen, o apuntar aquellas que los desarrolladores puedan obtener rpidamente. Hoy es posible empotrar las herramientas software tcnicas

que antes requieran amplios conocimientos, como la comprobacin de la consistencia en los diagramas del modelo. 4. Patrones de Organizacin: Aunque los desarrolladores de software no pueden ser expertos tan independientes como los msicos de unas orquestas, estn muy lejos de los trabajadores autmatas en los cuales Frederick baso su Direccin Cientfica hace cien aos. El creador del proceso debe adoptar el proceso a las realidades del momento hechos como mezcla (en empresas pequeas recin montadas) de socios de la empresa, empleados asalariados, trabajadores de obra y subcontratas de outsourcing y la prolongada escasez de desarrolladores de software. Los ingenieros del proceso deben equilibrar estos cuatro conjuntos de circunstancias. Adems el equilibrio debe estar presente no solo ahora, sino tambin en el futuro. El creador del proceso debe disear el proceso de forma que pueda evolucionar, de igual forma que el desarrollador de software intenta desarrollar un sistema que no solo funciona este ao, sino que evoluciona con xito en los aos venideros. Un proceso debe madurar durante varios aos antes de productos comerciales manteniendo a la vez un nivel razonable de riesgo de utilizacin. El desarrollo de un producto nuevo es bastante arriesgado en el mismo como para aadirle el riesgo de un proceso puede ser estable. Sin este equilibrio de tecnologias, herramientas, personas y organizacion, el uso del proceso seria bastante arriesgado. Fuente Original: Grady Booch, Ivar Jacobson, James Rumbaugh. El Proceso Unificado de Desarrollo de Software. Addison Wesley. 2000

ESTANDARES 1. Especificacin de software: Se debe definir la funcionalidad y restricciones operacionales que debe cumplir el software. 2. Diseo e Implementacin: Se disea y construye el software de acuerdo a la especificacin. 3. Validacin: El software debe validarse, para asegurar que cumpla con lo que quiere el cliente. 4. Evolucin: El software debe evolucionar, para adaptarse a las necesidades del cliente. Adems de estas actividades fundamentales, Pressman [1] menciona un conjunto de actividades protectoras, que se aplican a lo largo de todo el proceso del software. Ellas se sealan a continuacin:

Seguimiento y control de proyecto de software. Revisiones tcnicas formales. Garanta de calidad del software. Gestin de configuracin del software. Preparacin y produccin de documentos. Gestin de reutilizacin. Mediciones.

TIPOS DE Modelos de proceso software(SEGN Sommerville [4])

Codificar y corregir

Modelo en cascada Desarrollo evolutivo Desarrollo formal de sistemas Desarrollo basado en reutilizacin Desarrollo incremental Desarrollo en espiral

CODIFICAR Y CORREGIR (CODE-AND-FIX) Este es el modelo bsico utilizado en los inicios del desarrollo de software. Contiene dos pasos:

Escribir cdigo. Corregir problemas en el cdigo.

Se trata de primero implementar algo de cdigo y luego pensar acerca de requisitos, diseo, validacin, y mantenimiento. MODELO EN CASCADA El primer modelo de desarrollo de software que se public se deriv de otros procesos de ingeniera [8]. ste toma las actividades fundamentales del proceso de especificacin, desarrollo, validacin y evolucin y las representa como fases separadas del proceso. El modelo en cascada consta de las siguientes fases: 1. 2. Definicin de los requisitos: Los servicios, restricciones y objetivos son establecidos con los usuarios del sistema. Se busca hacer esta definicin en detalle. Diseo de software: Se particiona el sistema en sistemas de software o hardware. Se establece la arquitectura total del sistema. Se identifican y describen las abstracciones y relaciones de los componentes del sistema.

DESARROLLO EVOLUTIVO 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. Existen dos tipos de desarrollo evolutivo:

Desarrollo Exploratorio: El objetivo de este enfoque es explorar con el usuario los requisitos hasta llegar a un sistema final. El desarrollo comienza con las partes que se tiene ms claras. El sistema evoluciona conforme se aaden nuevas caractersticas propuestas por el usuario. Enfoque utilizando prototipos: El objetivo es entender los requisitos del usuario y trabajar para mejorar la calidad de los requisitos. A diferencia del desarrollo exploratorio, se comienza por definir los requisitos que no estn claros para el usuario y se utiliza un prototipo para experimentar con ellos. El prototipo ayuda a terminar de definir estos requisitos.

DESARROLLO FORMAL DE SISTEMAS Este modelo se basa en transformaciones formales de los requisitos hasta llegar a un programa ejecutable. DESARROLLO BASADO EN REUTILIZACIN Como su nombre lo indica, es un modelo fuertemente orientado a la reutilizacin. Este modelo consta de 4 fases Las ventajas de este modelo son:

Disminuye el costo y esfuerzo de desarrollo. Reduce el tiempo de entrega. Disminuye los riesgos durante el desarrollo.

Potrebbero piacerti anche