Está en la página 1de 7

Proceso del Desarrollo de Software.

Los procesos de desarrollo de software poseen reglas preestablecidas, y


deben ser aplicados en la creación del software de mediano y gran porte, ya que
en caso contrario lo más seguro es que el proyecto o no logre concluir o termine
sin cumplir los objetivos previstos, y con variedad de fallos inaceptables (fracasan,
en pocas palabras).
Entre tales «procesos» los hay ágiles o livianos xp, pesados y lentos ejemplo
rud y variantes intermedias; y normalmente se aplican de acuerdo al tipo y porte
del software a desarrollar, a criterio del líder (si lo hay) del equipo de desarrollo
Cualquiera sea el proceso utilizado y aplicado al desarrollo del software (RUP,
FDD, etc), y casi independientemente de él, siempre se debe aplicar un «modelo
de ciclo de vida.
Un proceso de desarrollo de software tiene como propósito la producción
eficaz y eficiente de un producto software que reúna los requisitos del cliente. Este
proceso es intensamente intelectual, afectado por la creatividad y juicio de las
personas involucradas . Aunque un proyecto de desarrollo de software es
equiparable en muchos aspectos a cualquier otro proyecto de ingeniería, en el
desarrollo de software hay una serie de desafíos adicionales, relativos
esencialmente a la naturaleza del producto obtenido. A continuación se explican
algunas particularidades asociadas al desarrollo de software y que influyen en su
proceso de construcción.
Un producto software en sí es complejo, es prácticamente inviable conseguir
un 100% de confiabilidad de un programa por pequeño que sea. Existe una
inmensa combinación de factores que impiden una verificación exhaustiva de las
todas posibles situaciones de ejecución que se puedan presentar (entradas,
valores de variables, datos almacenados, software del sistema, otras aplicaciones
que intervienen, el hardware sobre el cual se ejecuta, etc.).
El proceso de desarrollo de software no es único. No existe un proceso de
software universal que sea efectivo para todos los contextos de proyectos de
desarrollo. Debido a esta diversidad, es difícil automatizar todo un proceso de
desarrollo de software.
A pesar de la variedad de propuestas de proceso de software, existe un
conjunto de actividades fundamentales que se encuentran presentes en todos
ellos [4]:

1. Especificación de software: Se debe definir la funcionalidad y restricciones


operacionales que debe cumplir el software.
2. Diseño e Implementación: Se diseña y construye el software de acuerdo a la
especificación.

3. Validación: El software debe validarse, para asegurar que cumpla con lo que
quiere el cliente.

4. Evolución: El software debe evolucionar, para adaptarse a las necesidades del


cliente.

Además de estas actividades fundamentales, Pressman menciona un conjunto de


“actividades protectoras”, que se aplican a lo largo de todo el proceso del software.
Ellas se señalan a continuación:

· Seguimiento y control de proyecto de software.

· Revisiones técnicas formales.

· Garantía de calidad del software.

· Gestión de configuración del software.

· Preparación y producción de documentos.

· Gestión de reutilización.

· Mediciones.

· Gestión de riesgos.
Un proceso de desarrollo de software, también conocido como un ciclo
de desarrollo de software (SDLC), es una estructura impuesta en el desarrollo de
un software del producto. Términos similares incluyen el ciclo de vida del software
y el proceso de software. A menudo se considera un subconjunto de sistemas de
ciclo de vida del desarrollo . Hay varios modelos de estos procesos, cada uno de
los enfoques que describen a una variedad de tareas o actividades que tienen
lugar durante el proceso. Algunas personas consideran que un modelo de ciclo de
vida de un término más general y un proceso de desarrollo de software es un
término más específico. Por ejemplo, hay muchos procesos específicos de
desarrollo de software que "ajuste" del modelo de ciclo de vida en espiral. ISO /
IEC 12207 es un estándar internacional para los procesos de ciclo de vida del
software. Su objetivo es ser el estándar que define todas las tareas necesarias
para el desarrollo y mantenimiento de software.

O también

Proceso de desarrollo de software

Un proceso, se define como una serie de operaciones usadas en la creación de un


producto. Un proceso de software se puede definir de las siguientes formas:

Un proceso de software define el conjunto de tareas, que tienen que ser realizadas
para producir un producto de software de alta calidad. En otras palabras, este es
el enfoque que se toma para el desarrollo del software.

Es el proceso que se sigue para construir el producto de software desde la


concepción de una idea, hasta la entrega y el retiro final del sistema.

Las características de un proceso de software se resumen a continuación:


Comprensión: Este requiere claridad y declaración de la naturaleza explicita de la
definición del proceso.

Visibilidad: Se refiere a la capacidad de observar la salida de arias actividades del


proceso, de manera que se mida el proceso del progreso.

Confiabilidad: Se refiere a la capacidad del proceso para evadir errores o detectar


errores y manejarlos antes de que estos avancen en el producto.

Robustez: Se refiere a la capacidad del proceso de no detenerse a pesar de


problemas inesperados.

Facilidad de mantenimiento: Se refiere a la cantidad de modificaciones que


pueden hacerse al sistema de software sin introducir errores.

Facilidad de verificación: Un proceso es verificable si sus propiedades pueden ser


fácilmente verificadas.

Rapidez: Se refiere a la agilidad y rapidez del proceso para ser capaz de entregar
un producto final a partir de las especificaciones.

Facilidad de soporte: Se refiere a la posibilidad de que las actividades del proceso


sean soportadas por un conjunto de herramientas automatizadas.

Facilidad de aceptación: Se refiere a la capacidad del proceso a ser aceptado y


usado por el equipo de ingenieros.

Facilidad de adaptación: Se refiere a la capacidad del proceso a ser modificado


para satisfacer las necesidades de cambio en el ambiente de desarrollo.

Después de haber discutido las características del proceso de desarrollo de


software, se presenta a continuación las diferentes fases del proceso de desarrollo
de software.

Fase de definición esta fase se concentra principalmente en que tiene que ser
completado por el proceso de software.
Fase de desarrollo esta fase enfoca en el cómo los requerimientos de un sistema y
el software serán completados.

Fase de mantenimiento esta fase se enfoca en cambio, el mantenimiento incluye


la corrección de errores y la adaptación, conforme evoluciona el entorno del
software.

Metodología Proceso Unificado (UP)

En la actualidad, se habla muchísimo sobre las metodologías ágiles y lo buenas que


son para el desarrollo de software. Pero para creernos esto o no debemos investigar
también otras metodologías existentes, y no me refiero a las clásicas metodologías
en cascada, incremental, etc. sino a otras como por ejemplo la que vamos a hablar en
el presente artículo.

La metodología de Proceso Unificado (UP) se está debatiendo aún si considerarla


como una metodología ágil o una pesada, puesto que se caracteriza por estar dirigida
por casos de uso, centrado en la arquitectura y además es iterativa e
incremental.

El caso de que sea iterativa e incremental no implica que sea una metodología ágil
pero eso de que haya fases de planificación y documentación, hace que no sea del
todo claro decidirse.

Características principales
Entonces voy a definir las características principales de esta metodología de una
manera mucho más clara:

1. Iterativo e incremental: cada iteración tiene 4 fases inicio, elaboración, construcción y


transición. Estas iteraciones de estas fases, producen un incremento en el producto resultante
añadiendo mejoras y nuevas funcionalidades.
2. Dirigido por casos de uso: Estos se utilizan para obtener los requisitos funcionales
del sistema y así definir el contenido de cada una de las iteraciones. Así, la idea consiste en
coger casos de uso o escenarios y desarrollar el proceso a través de las distintas disciplinas
(diseño, implementación, pruebas…).
3. Centrado en la arquitectura: Se asume que no existe un modelo único que cubra
todos los aspectos del sistema, tal y como pasa con un edificio (hay diferentes planos para
cada servicio).
¿Qué es UML?
El Lenguaje Unificado de Modelado (UML) fue creado para forjar un
lenguaje de modelado visual común y semántica y sintácticamente rico
para la arquitectura, el diseño y la implementación de sistemas de
software complejos, tanto en estructura como en comportamiento. UML
tiene aplicaciones más allá del desarrollo de software, p. ej., en el flujo de
procesos en la fabricación.

Es comparable a los planos usados en otros campos y consiste en


diferentes tipos de diagramas. En general, los diagramas UML describen
los límites, la estructura y el comportamiento del sistema y los objetos
que contiene.

UML no es un lenguaje de programación, pero existen herramientas que


se pueden usar para generar código en diversos lenguajes usando los
diagramas UML. UML guarda una relación directa con el análisis y el
diseño.

Tipos de diagramas UML


UML usa elementos y los asocia de diferentes formas para formar diagramas que
representan aspectos estáticos o estructurales de un sistema, y diagramas de
comportamiento, que captan los aspectos dinámicos de un sistema.

Diagramas UML estructurales

 Diagrama de clases El diagrama UML más comúnmente usado, y la base principal


de toda solución orientada a objetos. Las clases dentro de un sistema, atributos y
operaciones, y la relación entre cada clase. Las clases se agrupan para crear diagramas
de clases al crear diagramas de sistemas grandes.

 Diagrama de componentes Muestra la relación estructural de los elementos del


sistema de software, muy frecuentemente empleados al trabajar con sistemas complejos
con componentes múltiples. Los componentes se comunican por medio de interfaces.

 Diagrama de estructura compuesta Los diagramas de estructura compuesta se


usan para mostrar la estructura interna de una clase.
 Diagrama de implementación Ilustra el hardware del sistema y su software. Útil
cuando se implementa una solución de software en múltiples máquinas con
configuraciones únicas.

 Diagrama de objetos Muestra la relación entre objetos por medio de ejemplos del


mundo real e ilustra cómo se verá un sistema en un momento dado. Dado que los datos
están disponibles dentro de los objetos, estos pueden usarse para clarificar relaciones
entre objetos.

 Diagrama de paquetes Hay dos tipos especiales de dependencias que se definen


entre paquetes: la importación de paquetes y la fusión de paquetes. Los paquetes
pueden representar los diferentes niveles de un sistema para revelar la arquitectura. Se
pueden marcar las dependencias de paquetes para mostrar el mecanismo de
comunicación entre niveles.

Diagramas UML de comportamiento

 Diagramas de actividades Flujos de trabajo de negocios u operativos representados


gráficamente para mostrar la actividad de alguna parte o componente del sistema. Los
diagramas de actividades se usan como una alternativa a los diagramas de máquina de
estados.

 Diagrama de comunicación Similar a los diagramas de secuencia, pero el enfoque


está en los mensajes que se pasan entre objetos. La misma información se puede
representar usando un diagrama de secuencia y objetos diferentes.

 Diagrama de panorama de interacciones Hay siete tipos de diagramas de


interacciones. Este diagrama muestra la secuencia en la cual actúan.

 Diagrama de secuencia Muestra cómo los objetos interactúan entre sí y el orden de


la ocurrencia. Representan interacciones para un escenario concreto.

 Diagrama de máquina de estados Similar a los diagramas de actividades, describen


el comportamiento de objetos que se comportan de diversas formas en su estado
actual.

 Diagrama de temporización Al igual que en los diagramas de secuencia, se


representa el comportamiento de los objetos en un período de tiempo dado. Si hay un
solo objeto, el diagrama es simple. Si hay más de un objeto, las interacciones de los
objetos se muestran durante ese período de tiempo particular.

 Diagrama de caso de uso Representa una funcionalidad particular de un sistema. Se


crea para ilustrar cómo se relacionan las funcionalidades con sus controladores (actores)
internos/externos.

También podría gustarte