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.

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:
- Especificación de software: Se debe definir la funcionalidad y restricciones operacionales que debe cumplir el software.
- Diseño e Implementación: Se diseña y construye el software de acuerdo a la especificación.
- Validación: El software debe validarse, para asegurar que cumpla con lo que quiere el cliente.
- Evolución: El software debe evolucionar, para adaptarse a las necesidades del cliente.
Técnicas en el Proceso para el Desarrollo de un Software:
1. Técnica para la Recopilación de Datos.
La
recolección de datos se refiere al uso de una gran diversidad de técnicas y
herramientas que pueden ser utilizadas por el analista para desarrollar los
sistemas de información, los cuales pueden ser la entrevistas, la encuesta, el
cuestionario, la observación, el diagrama de flujo y el diccionario de datos.
Son todas
las formas posibles de que se vale el investigador para obtener la información
necesaria en el proceso investigativo. Todos estos instrumentos se aplicarán en
un momento en particular, con la finalidad de buscar información que será útil
a una investigación en común.
- Entrevista.
- Encuesta.
- Cuestionario.
- Observación.
- Revisión documental.
2. Técnica de Costo-Beneficios.
El análisis
de costo-beneficio es una técnica analítica que enumera y compara el costo neto
de una intervención con los beneficios que surgen como consecuencia de aplicar
dicha intervención. Para esta técnica, los costos y los beneficios de la intervención
se expresan en unidades monetarias.
Sirve como
guía para lograr una respuesta de viabilidad, que si bien nos es para nada
definitiva, aterriza las expectativas que pueden ser profundizadas de ser
necesario.
Lo relevante
es que podemos estar en condiciones de tomar decisiones oportunas con un nivel
de certeza muy razonable, sin invertirle tiempo valioso en analizar muchas
ideas cuando pocas son acogidas e implementadas.
3. Técnica de Planificación y Control de Proyectos
La Planificación y Control de Proyectos
de Software comprende una serie de procedimientos, sin embargo, se mencionaran
solo los más complejos y/o significativos, los cuales son:
- Objeto: En este procedimiento se describe la sistemática a seguir para una correcta planificación del desarrollo de una aplicación de software y de las medidas de control a establecer por el gabinete de programación.
- Alcance: Todas las actividades encamina das a la planeación, programación y control de cada una de las fases requeridas para el desarrollo de una aplicación de software específica.
- Entradas: El proceso da comienzo con la necesidad de desarrollar un nuevo software o modificar uno existente (sub-proyecto) y, por tanto, de realizar una planificación de las actividades necesarias para realizar dicha aplicación.
- Salidas: Este proceso finaliza con la planeación, programación y control de cada una de las actividades en las que consistirá el proyecto de desarrollo de una aplicación de software específica.
- Desarrollo: Para ejecutar un proyecto basado en el desarrollo de software es preciso definir la estructura en que se desglosan cada una de las actividades o tareas a realizar para, finalmente, asignar a cada miembro del equipo su correspondiente cuota de gestión. No solamente se requiere la lista, sino también una descripción de las actividades. Para ello, se asume una estructura concreta con los detalles de la gestión y que se desglosará en tres partes específicas:
- Planificación: Se inicia descomponiendo el proyecto en actividades distintas, después se determinan las estimaciones de tiempo para cada actividad, se construye un diagrama de red (flechas) para estas actividades.
Herramientas en el Proceso de Desarrollo de un Software:
Las Herramientas de Ayuda al
Desarrollo de Sistemas de Información, surgieron para intentar dar solución a
los problemas inherentes a los proyectos de generación de aplicaciones
informáticas: plazos y presupuestos incumplidos, insatisfacción del usuario,
escasa productividad y baja calidad de los desarrollos. Algunas de estas
herramientas se dirigen principalmente a mejorar la calidad, como es el caso de
las herramientas CASE (Computer Aided Software Engineering-Ingeniería de Software
Asistida por Ordenador). Otras van dirigidas a mejorar la productividad durante
la fase de construcción, como es el caso de los lenguajes de cuarta generación
(4GL-Fourth Generation Language).
1. Herramientas para diseñar software.
- Existe al menos 20 herramientas libres para diseñar software totalmente libres.
- Todas utilizan la notación UML
- El nivel de avance entre una y otra es notable, casi todas ofrecen como funcionalidad: Diagramas de caso de uso, Diagramas de clases, Diagramas de secuencia.
- Generación de código en java, c++, python y php.
- Algunas entidad-relación (pero ninguna lo suficientemente avanzada)
- Pocas herramientas permiten ingeniería reversa, y si lo hacen solo es de lenguajes tipo java o c++.
2. Herramientas para modelar bases de datos.
- Algunas de las herramientas case libres permiten modelar bajo Entidad-Relación, sin embargo su funcionalidad es bastante limitada.
- Básicamente existen herramientas orientadas a una db en especifico y estas son MySql y PostgreSQL, el de MySql (MySql WorkBench no es libre).
- Permiten hacer ingeniería reversa de la db para las que fueron diseñadas, algunas otras soportan UnixODBC/Odbc según sea el caso.
- Existen algunos modeladores en línea.
- La documentación que generan es bien básica.
3. Herramientas para Ingeniería de Software Asistida por Computadora
(CASE).
Son un conjunto de
métodos, utilidades y técnicas que facilitan la automatización del ciclo de
vida del desarrollo de sistemas de información, completamente o en alguna de
sus fases.
- El empleo de herramientas Case permiten integrar el proceso de ciclo de vida:
- Análisis de datos y procesos integrados mediante un repositorio.
- Generación de interfaces entre el análisis y el diseño.
- Generación del código a partir del diseño.
- Control de mantenimiento.
Actualmente, la
tendencia en el desarrollo de software está enfocada hacia las microcomputadoras como plataformas de ingeniería de software, que se
interconectan mediante redes para que puedan comunicarse de forma efectiva. La
base de datos del proyecto (también denominada biblioteca del proyecto o
depósito de software), está disponible a través de un servidor de archivos en
red que es accesible desde todas las estaciones de trabajo. Un sistema
operativo que gestiona el hardware, la red y las herramientas, mantiene todo el
entorno unido.
.jpg)
No hay comentarios.:
Publicar un comentario