EL Ee
EL Ee
EL Ee
Cualidades o características
deseables para un software
Factores de Calidad
del Software
-Factores evolutivos
Los factores evolutivos son aquellos que indican si el software se puede
trasladar con facilidad a otra máquina o a otro producto de base (SO, SGBD, etc.),
o incrementar sus prestaciones:
a. Portabilidad: facilidad para migrar el software de un entorno de operación
a otro.
b. Capacidad de reutilización: grado en el que un programa o parte del
mismo se puede utilizar en otras aplicaciones.
c. Capacidad de interoperación: esfuerzo necesario para que un software
opere conjuntamente con otros sistemas.
El rol “Función que alguien o algo cumple” que uno o más usuarios
desempeñan dentro del desarrollo de un Sistema de Información es de suma
importancia, ya que los sistemas se desarrollan para satisfacer las necesidades
particulares del o los clientes; los roles son necesarios para cubrir todas las
especificaciones necesarias para cumplir un proceso, ya que no todos tienen las
mismas cualidades y experiencias, por lo que al asignar roles, se definen objetivos
y actividades únicas para cada usuario, evitando que alguna actividad no sea
asignada o que dos personas realicen el mismo trabajo (en esta última puede
haber excepciones).
Los roles para el Proceso de Desarrollo de Software se asignan de acuerdo
a las capacidades de cada persona, así como también su especialización,
experiencia e interés. El Software o programa se construye y se desarrolla en
equipo. Los roles más comunes son:
1. Gerente de proyecto: Tiene por función presentar informes sobre
litigaciones de riesgos, hacer cumplir los plazos y lleva el control de los
costos. También organiza el equipo, realiza planificación y estima el tiempo
de las actividades. En conclusión, resuelve problemas.
2. Analista de requerimientos: Se encarga del revelamiento de los
requerimientos esenciales para el Desarrollo de Software, la documentación
de los requerimientos para así el resto del equipo lo pueda consultar en
cualquier momento. Debe ser una persona con capacidad de abstracción y
análisis.
3. Desarrollador de Software o programador: Encargado de la concepción
y el diseño, escribe el código, prueba lo que construye y se encarga de
hacer el mantenimiento del código.
2. Modelo de espiral: Fue definido por primera vez por Barry Boehm en 1986,
utilizado generalmente en la Ingeniería del Software. Las actividades de
este modelo se conforman en una espiral, en la que cada bucle o iteración
representa un conjunto de actividades. Las actividades no están fijadas a
ninguna prioridad, sino que las siguientes se eligen en función del análisis
de riesgo, comenzando por el bucle anterior.
3. Modelo V: Define un procedimiento uniforme para el desarrollo de
productos para las TIC. Fue desarrollado para regular el Proceso de
Desarrollo de Software por la Administración Federal Alemana. Describe las
actividades y los resultados que se producen durante el desarrollo de
software. Tiene como propósito 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 procesos de desarrollo; se asegura que los métodos
usados sean los apropiados. Fue diseñado por Alan Davis.
4. Prototipos: Pertenece a los modelos de desarrollo evolutivo. El prototipo
debe ser construido en poco tiempo, usando los programas adecuados y no
se debe usar muchos recursos. El diseño rápido se centra en una
representación de aquellos aspectos del software que serán visibles para el
cliente o usuario final. Este diseño conduce a la construcción de un
prototipo, el cual es evaluado por el cliente para una retro alimentación;
gracias a ésta se refinan los requisitos del software que se desarrollará. La
interacción ocurre cuando el prototipo se ajusta para satisfacer las
necesidades del cliente; esto permite que al mismo tiempo el desarrollador
entienda mejor lo que se debe hacer y el cliente vea resultados a corto
plazo.
-Metodologías:
Un proceso de software detallado y completo suele denominarse
“Metodología”. Las metodologías se basan en una combinación de los modelos de
proceso genéricos (cascada, evolutivo, espiral, incremental, modelo-V, entre
otros.). Adicionalmente una metodología debería definir con precisión los
artefactos, roles y actividades involucrados, junto con prácticas y técnicas
recomendadas, guías de adaptación de la metodología al proyecto, guías para uso
de herramientas de apoyo, etc. Habitualmente se utiliza el término “método” para
referirse a técnicas, notaciones y guías asociadas, que son aplicables a una (o
algunas) actividades del proceso de desarrollo, por ejemplo, suele hablarse de
métodos de análisis y/o diseño.
La comparación y/o clasificación de metodologías no es una tarea sencilla
debido a la diversidad de propuestas y diferencias en el grado de detalle,
información disponible y alcance de cada una de ellas. A grandes rasgos, si
tomamos como criterio las notaciones utilizadas para especificar artefactos
producidos en actividades de análisis y diseño, podemos clasificar las
metodologías en dos grupos: Metodologías Estructuradas y Metodologías
Orientadas a Objetos. Por otra parte, considerando su filosofía de desarrollo,
aquellas metodologías con mayor énfasis en la planificación y control del proyecto,
en especificación precisa de requisitos y modelado, reciben el apelativo de
Metodologías Tradicionales (o también denominada Metodologías Pesadas, o de
Peso Pesado). Otras metodologías, denominadas Metodologías Ágiles, están más
orientadas a la generación de código con ciclos muy cortos de desarrollo, se
dirigen a equipos de desarrollo pequeños, hacen especial hincapié en aspectos
humanos asociados al trabajo en equipo e involucran activamente al cliente en el
proceso.
Las metodologías a explicar son:
1. Metodologías Estructuradas: Las metodologías estructuradas
comenzaron su desarrollo a finales de los años 70 con la Programación
Estructurada; a mediados de los 70 aparecieron técnicas para el Diseño
(por ejemplo: el Diagrama de Estructura), primero y posteriormente para el
Análisis (por ejemplo: Diagrama de Flujo de Datos). Estas metodologías
son particularmente apropiadas en proyectos que se usan para la
implementación de lenguajes de 3ra (tercera) y 4ta (cuarta) generación.