- Técnicas de estimación
- Métricas de estimación para software hipermedia
- Conclusión
- Bibliografía
- Anexo
La administración efectiva de un proyecto de software depende de planear completamente el progreso del proyecto. El administrador del proyecto debe anticiparse a los problemas que podrían surgir, así como preparar soluciones tentativas a esos problemas.
La planeación es un proceso iterativo que solamente se completa cuando el proyecto mismo se termina. Conforme la información se hace disponible, el plan debe revisarse regularmente. Las metas globales del negocio son un factor importante que debe considerarse cuando se formula el plan del proyecto. Conforme esto cambie, los cambios en el proyecto serán necesarios.
El proceso de planeación del proyecto inicia con una valoración de las restricciones que afectan el proyecto (fecha de entrega requerida, personal disponible, presupuesto global, etc.). Ésta se lleva a cabo con una estimación de los parámetros del proyecto como su estructura, tamaño y distribución de funciones. Entonces se definen los hitos de progreso y productos a entregar. En ese momento, el proceso entra en un ciclo. Se prepara un calendario para el proyecto y las actividades definidas en el calendario inician o continúan. Después de algún tiempo (por lo general 2 o 3 semanas), se revisa el proyecto y señalan las discrepancias. Debido a que las estimaciones iniciales de los parámetros del proyecto son tentativas, el plan siempre deberá actualizarse.
Las estimaciones están asociadas con el esfuerzo y el tiempo con las actividades identificadas del proyecto. Los administradores del proyecto deben estimar las respuestas a las siguientes preguntas:
- ¿Cuánto esfuerzo (personal necesario) se requiere para completar una actividad?
- ¿Cuánto tiempo se necesita para completar una actividad?
- ¿Cuál es el costo total de una actividad?
La estimación y la realización del cronograma del proyecto se llevan a cabo de forma conjunta. Sin embargo, en las primeras etapas del proyecto se requieren algunas estimaciones de costos, antes que se tenga el cronograma detallado. Estas estimaciones son necesarias para establecer un presupuesto para el proyecto o para asignar un precio para el software de un cliente.
Una vez que el proyecto se comienza a ejecutar, las estimaciones se actualizan de forma regular. Esto ayuda al proceso de planeación y permite la utilización efectiva de los recursos. Si el gasto real es significativamente más grande que las estimaciones, entonces el administrador del proyecto debe tomar algunas acciones. Éstas pueden ser: solicitar recursos adicionales para el proyecto o modificar el trabajo a realizar.
Existen tres parámetros involucrados en el cálculo del costo total de un proyecto de desarrollo de software:
- los costos de hardware y software, incluyendo el mantenimiento;
- los costos de viajes y capacitación;
- los costos de esfuerzo (los costos de pago a los ingenieros de software).
Para muchos proyectos, el costo dominante es el costo del esfuerzo. Las computadoras que son suficientemente poderosas como para desarrollar el software son relativamente baratas. Aunque los costos de viajes pueden ser importantes si un proyecto se desarrolla en sitios distintos, son relativamente bajos para muchos proyectos. Además, el uso de correo electrónico, los chat, fax y teleconferencias reduce los viajes requeridos.
Los costos del esfuerzo no son simplemente los relacionados a los salarios de los ingenieros de software involucrados en el proyecto. Las organizaciones calculan los costos de esfuerzo en función de los costos de sobrecarga donde se toma en cuenta el costo total de hacer funcionar la organización y dividen éste entre el número de personas productivas. Por lo tanto, los siguientes costos son parte de los costos de esfuerzo totales:
- los costos de proveer, calentar e iluminar las oficinas;
- los costos del personal de apoyo como los contadores, secretarias, limpiadores y técnicos;
- los costos de las redes y comunicaciones;
- los costos de los recursos centralizados como las bibliotecas, los recursos recreativos, etc.;
- los costos de seguridad social y de beneficio de empleados como las pensiones y los seguros de salud.
Debido a las consideraciones organizacionales involucradas, asignar precio del proyecto por lo general le concierne al administrador principal de la organización, así como a los administradores del proyecto de software.
El proceso de desarrollo de aplicaciones hipermedia al igual que el de cualquier producto de software, requiere la aplicación de métricas de estimación para garantizar resultados más precisos en su ciclo de vida.
El objetivo de este trabajo es investigar acerca de las técnicas de estimación que existen para los productos hipermedia, presentando métricas para estimación de costos dadas por varios autores de artículos, especialistas en el asunto de aplicaciones hipermedia y web.
1. Técnicas de estimación
No existe una forma simple de calcular el esfuerzo requerido para desarrollar un sistema informático. Las estimaciones iniciales se hacen bajo la base de la definición de requisitos de usuario de alto nivel.
Pero en una primera etapa del proyecto es difícil producir una estimación precisa de los costos de desarrollo del sistema.
Por ese motivo la estimación se utiliza para definir si el presupuesto del proyecto y el producto se ajusta para que las cifras del presupuesto se cumplan. No se conocen informes de experimentos controlados sobre los costos de los proyectos donde los costos estimados no se utilicen para ajustar el experimento. Un experimento controlado no revelaría la estimación del costo al administrador del proyecto. Los costos reales tendrían que compararse con los estimados del proyecto.
A pesar de esto, las organizaciones necesitan calcular esfuerzos de software y estimaciones de los costos. Para hacerlo, se utilizan una o más de las técnicas descritas en la tabla 1 (Boehm, 1981).
Estos enfoques para la estimación del costo se pueden abordar utilizando enfoque descendente o ascendente. Un enfoque descendente inicia en el nivel de sistema. La estimación comienza examinando la funcionalidad total del producto y cómo es que esa funcionalidad se propaga al interactuar con las subfunciones. Se toman en cuenta los costos de las actividades del nivel del sistema tales como la integración, la administración de la configuración y la documentación.
El enfoque ascendente, en contraste, inicia en el nivel de componente. El sistema se divide en componentes y se calcula el esfuerzo requerido para desarrollar cada uno de éstos. Estos costos se suman para dar el esfuerzo requerido del desarrollo del sistema completo.
Las desventajas del enfoque descendente son las ventajas del ascendente y viceversa. La estimación descendente subestima los costos de resolver problemas técnicos difíciles asociados con componentes específicos como las interfaces para hardware no estándar. No existe justificación detallada de la estimación que se produce. En contraste, la estimación ascendente produce tal justificación y considera cada componente. Sin embargo, este enfoque tiende a subestimar los costos de las actividades del sistema como la integración. La estimación ascendente también es más costosa. Debe haber un diseño inicial del sistema para identificar los componentes a evaluar.
Tabla 1 – Técnicas de estimación de costos
Técnica | Descripción |
Modelado del algoritmo de costos | Se desarrolla un modelo utilizando información histórica de costos que relaciona alguna métrica de software (por lo general, su tamaño) con el costo del proyecto. Se hace una estimación de esa métrica y el modelo predice el esfuerzo requerido. |
Opinión de expertos | Se consultan varios expertos en las técnicas de desarrollo de software propuestas y en el dominio de aplicación. Cada uno de ellos estima el costo del proyecto. Estas estimaciones se comparan y discuten. El proceso de estimación se itera hasta que se acuerda una estimación. |
Estimación por analogía | Esta técnica es aplicable cuando otros proyectos en el mismo dominio de aplicación se han completado. Se estima el costo de un nuevo proyecto por analogía con estos proyectos completados. Myers (1989) da una descripción muy clara de este enfoque. |
Ley de Parkinson | La Ley de Parkinson establece que el trabajo se extiende para llenar el tiempo disponible. El costo se determina por los recursos disponibles más que por los objetivos logrados. Si el software se tiene que entregar en 12 meses y se dispone de cinco personas, el esfuerzo requerido se estima en 60 personas-mes. |
Asignar costos para ganar | El costo del software se estima dependiendo de lo que el cliente esté dispuesto a pagar por el proyecto. El esfuerzo estimado depende del presupuesto del cliente y no de la funcionalidad del software. |
Cada técnica de estimación tiene sus propias fortalezas y debilidades. Para proyectos grandes, se deben utilizar varias técnicas de estimación de costos y comparar sus resultados. Si éstos predicen costos radicalmente diferentes, esto indica que no se tiene suficiente información para generar los costos. Se debe buscar más informaciones y repetir el proceso hasta que la estimación converja.
Estas dos técnicas de estimación son aplicables cuando existe un documento de requisitos para el sistema. Éste define a todos los usuarios y los requisitos del sistema. Por lo tanto, se puede generar una estimación razonable de la amplitud de la funcionalidad del sistema a desarrollar. En general, los proyectos grandes de ingeniería de sistemas normalmente tendrán tal documento de requisitos.
Sin embargo, en muchos casos, los costos de muchos proyectos se tienen que estimar utilizando solamente un borrador de solicitudes del usuario del sistema. El análisis y la especificación de requisitos son costosos y los administradores de la compañía necesitan de una estimación inicial del costo del sistema antes de que puedan generar un presupuesto aprobado para este proceso.
Bajo estas circunstancias, "asignar costos para ganar" es una estrategia utilizada comúnmente. La noción de "asignar precios para ganar" parece no ser ética y poco apropiada para los negocios. Sin embargo, tiene algunas ventajas. Un costo del proyecto se acuerda en base a un borrador de la propuesta. Entonces, las negociaciones se llevan a cabo con el cliente para determinar una especificación detallada del proyecto. Esta especificación se restringe por el costo acordado. El comprador y el vendedor deben acordar la funcionalidad aceptable del sistema. El factor clave en muchos proyectos no son los requisitos del proyecto, sino el costo. Los requisitos se cambian de tal forma que no se exceda el costo.
Cuando se estiman los costos de software, los administradores deben tomar en cuenta que existen diferencias importantes entre los proyectos anteriores y los futuros. Una gran variedad de nuevos métodos y técnicas de desarrollo han aparecido en los últimos diez años. Muchos administradores tienen poca experiencia en estas técnicas o poco conocimiento de cómo éstas afectan los costos de los proyectos. Algunos ejemplos de los cambios que afectan las estimaciones de acuerdo con la experiencia son:
- Desarrollo orientado a objetos en lugar de desarrollo orientado a funciones;
- Sistemas cliente-servidor en lugar de sistemas basados en "mainframes";
- Utilización de componentes de software comerciales en lugar de desarrollo de componentes;
- Desarrollar y reutilizar en lugar de desarrollar todas las partes del sistema;
- La utilización de herramientas CASE (Ingeniería de Software Asistida por Computadora) y generadores de programas en lugar de desarrollar software sin ayuda.
Todos estos factores hacen más difícil que los administradores produzcan estimaciones precisas de los costos de producción del software. Su experiencia previa no es relevante para ayudarles a estimar los costos del proyecto de software.
2. Métricas de estimación para software hipermedia
Un proyecto hipermedia reúne diversos profesionales con distinta formación, interés y visión, tales como ingenieros, diseñadores, publicistas, fotógrafos, escritores, locutores, productores, artistas, programadores, psicólogos, etc. Todos tienen su propio lenguaje técnico, sus propias prioridades y cada uno debe usar herramientas ad hoc a sus funciones dentro del proyecto [Solar2000].
Las aplicaciones hipermedia son centradas en tres pilares: datos, funcionalidad y navegación en perspectivas diferentes de acuerdo con la aplicación que está siendo desarrollada [Mendes2002].
Las empresas desarrolladoras de softwares reconocen la importancia de la utilización de métricas de estimación para el desarrollo de los proyectos. Para los productos hipermedia no se tiene excepciones. Una estimación realista en las etapas tempranas del ciclo de vida de un proyecto hipermedia garantiza a gerentes y desarrolladores en una organización manejar la información de manera efectiva.
Este trabajo reúne una revisión bibliográfica en materiales publicados en la internet acerca de las estimaciones y métricas que existen para los productos hipermedia, como los libros electrónicos, sitios web para cursos, softwares educativos, etc. Para la comprensión de algunos trabajos se hizo necesaria una explicación de modelos e investigaciones previas a la utilización de las métricas.
Solar en su artículo "Un Modelo Para Diseñar Storyboard en Proyectos Multimedia" propone un modelo para apoyar el diseño de guiones basado en métodos generados a partir de modelos de proceso de Ingeniería de Software, utilizando grafos dirigidos y describe sus componentes genéricos a través de un modelo de objetos. Aprovechando la información contenida en el grafo diseñado, es presentado un modelo para obtener reportes sobre los medios descritos en cada nodo, resumen sobre la totalidad de la aplicación, así como también el cálculo de una aproximación del tiempo de desarrollo de una aplicación, el costo de desarrollo del proyecto, y el espacio de almacenamiento requerido para el producto final, información de gran utilidad en la toma de decisiones en la fase de diseño de un producto con tecnología Multimedia.
El modelo denominado Generación Gráfica de Guiones (GGG o G3) se basa en la propuesta de Verdugo (1997), basado en los métodos desarrollados por Jadue (1993) y Montilva (1996), define formalmente una aplicación multimedia (MM) utilizando grafos dirigidos y describe sus componentes genéricos a través de un modelo de objetos (figura 1), independiente de las herramientas de autoría existentes para implementar y desarrollar aplicaciones MM [Nemetz, 1995]. Emplea técnicas de análisis y diseño orientado a objetos, que permiten el modelado de estructura y contenido más natural, elegante y de fácil comprensión que aquel alcanzado con métodos imperativos convencionales [Nielsen, 1990].
Para ver el gráfico seleccione la opción "Descargar" del menú superior
Figura 1: Descripción de una aplicación MM empleando grafos dirigidos
Se define formalmente un grafo dirigido G(N, E), donde N es el conjunto de nodos de descripción de información y E es el conjunto de arcos (llamados enlaces), donde cada uno conecta dos nodos {n1, n2}Î N. Los nodos de información describen o se refieren a un objeto del dominio de la aplicación.
Estructuralmente, un nodo es un objeto compuesto por un conjunto de ítems de descripción de información MM (i.e. texto, gráfico, imagen, pistas de audio, clips de videos, etc.).
Un enlace conecta un nodo inicio a otro de destino. Este enlace es un objeto que describe el tipo de interacción que debe existir para pasar del nodo inicio al de destino. Interacciones posibles son click sobre un botón, presionar una tecla, una variable, un tiempo transcurrido, etc. Al ocurrir la interacción se indica que debe activarse el objeto o unidad de destino, produciendo la presentación o despliegue visual, según los medios que lo compongan.
2.1.1. Estimación de Costos, Tiempo de Desarrollo y Almacenamiento
Tal vez, ésta es una de las estimaciones más difíciles en la definición de un proyecto MM y en Ingeniería de Software en general. Se aprecia que las tareas no son pocas ni triviales, y la cantidad y perfil profesional de los integrantes del equipo de producción son multidisciplinarios, por lo que es necesario coordinar las tareas y el personal de producción en forma óptima.
Para estas estimaciones se emplea como base la información contenida en el grafo G(N, E) generado por el storyboard del modelo Generación Gráfica de Guiones (GGG). Cada nodo nÎ G(N, E) define una cantidad de medios y tiene asociado valores de tiempo de desarrollo y espacio de almacenamiento según naturaleza y complejidad.
Al recorrer el grafo en su totalidad, se puede obtener el total de los medios contenidos en la aplicación diseñada, y se puede deducir a partir de esto, el tiempo de desarrollo del proyecto, su costo asociado, como también el almacenamiento total requerido por el producto final. A continuación, se presenta la obtención de esta información, añadida a la información contenida en el grafo G(N, E) generado en el diseño con las tablas de costos asociadas a cada uno de los medios.
2.1.2. Pesos Asociados a los Medios
Cada medio tiene asociado tareas y un profesional que las realiza, para lo cual se define una tabla que contiene los tiempos de producción de cada medio (tabla 2), junto con el valor hora del tipo de profesional asociado. También, se define una tabla para almacenar ponderadores que afectan el tiempo de desarrollo de cada medio de acuerdo a la pericia o experiencia del profesional a cargo (tabla 3). Ambas tablas poseen valores expresados en unidades numéricas.
Con la tabla 3 se puede asignar a cada medio, profesionales con mayor o menor pericia en el tema. A nivel de software, es un módulo complementario al de diseño, donde se puede agrupar los medios, y a su vez, dividir estos grupos por capítulos o subtemas. Así, el coordinador del proyecto puede asignar a cada medio, uno o varios profesionales (uno por capítulo) con distintos niveles, definidos por su pericia o por el hardware utilizado. Por ejemplo, si el grafo diseñado indica un total de diez ambientaciones(secuencias de medios) por desarrollar, el tiempo total de producción dependerá de la capacidad del profesional a cargo, que puede ser de nivel medio, que según la tabla 3, aplica un ponderador p6 al tiempo definido en tabla 2. Así, el tiempo total de desarrollo del medio "ambientación" será de t6× k6× p6 horas/hombre. Este nivel medio puede definirse a un profesional altamente capacitado, pero con hardware no apropiado que le produce retrasos, por ejemplo, un "scanner" de tres pasadas y baja resolución.
Tabla 2: Medios y valores asociados
Medio | Tiempo (H.H) | Costo HH | Espacio promedio |
Texto | t1 | k1 | a1 |
Video | t2 | k2 | a2 |
Música | t3 | k3 | a3 |
Locución | t4 | k4 | a4 |
Efectos | t5 | k5 | a5 |
Ambientación | t6 | k6 | a6 |
Esquemas | t7 | k7 | a7 |
Fotografías | t8 | k8 | a8 |
Animación 2D | t9 | k9 | a9 |
Animación 3D | t10 | k10 | a10 |
Tabla 3: Ponderadores según conjunto Profesional/Hardware
Medio | Desarrollador | Ponderador |
Texto | Alto | p1 |
Texto | Medio | p2 |
Video | Alto | p3 |
Video | Medio | p4 |
Ambientación | Alto | p5 |
Ambientación | Medio | p6 |
Locución | Alto | p7 |
… | … | … |
Animaciones 3D | Alto | pn-1 |
Animaciones 3D | Medio | pn |
Es posible asignar más de un profesional por medio, pero se debe considerar que la mínima división es por capítulos o temas, fundamentalmente porque las labores son usualmente artísticas, las que son altamente sensibles al cambio de creador. Así, es recomendable contar con un experto encargado de la producción de uno o varios medios, pero no varios expertos para un solo medio.
Para calcular los costos nodo por nodo se debe recorrer el grafo en profundidad. A medida que se avanza se calculan los valores de acuerdo al reporte deseado, el que tiene las modalidades (que se aprecian en la tabla 4. Se puede obtener reportes sobre tiempos de desarrollo y costos por temas o por medios. Para reportes por temas se definen los nodos niÎ G(N, E), que representan el punto de partida de cada tema para iniciar la búsqueda y cálculos. Para reportes por medios, el cálculo comienza desde la raíz del grafo, recorriéndolo en forma exhaustiva.
Tabla 4: Tabulación de tiempos
| Medio 1 | Medio 2 | Medio 3 | …. | Medio N | t por capítulo |
Tema 1 | T11 | T12 | T13 | … | T1N | |
Tema 2 | T21 | T 22 | T 23 | … | T2N | |
Tema 3 | T 31 | T 32 | T 33 | … | T 3N | |
… | … | … | … | … | … | … |
Tema C | T C1 | T C2 | T C3 | … | T CN |
|
t por medio | … |
2.1.4. Formalización del Cálculo de Tiempo y Costos
El cálculo de horas-hombre Ti para el medio i (Mi) en una aplicación es el producto entre cantidad de elementos Mi y tiempo ti para realizarlo, aplicando el ponderador pi dependiente del conjunto profesional/hardware (ec. 1).
(1)
Para el cálculo por capítulos se divide la cantidad Mi en tantos grupos como temas hayan. El término Mi (total de medios i) se convierte en Mij, que representa cantidad de medios i en capítulo j. En el cálculo de tiempo de desarrollo Tij del capítulo j para el medio i (ec. 2) aparece el término pij (ponderador de Mi en capítulo j) posibilitando asignar distintos profesionales a diferentes temas.
(2)
De ecuación 2 se deduce la ecuación general para calcular el tiempo total Tim para el medio i, reflejada en ecuación 3, donde C es el número de capítulos en la aplicación.
(3)
Al organizar el proyecto por capítulos, el análisis de tiempo y costo de capítulos se enfoca desde otro punto de vista. El punto de partida es el mismo, dado que a contar de la ecuación 1 y 2, se desarrolla de manera horizontal los medios, que serán barridos en el término i, que corresponde al medio, manteniendo constante el término j que es el capítulo (ec. 4). El tiempo total TjC del capítulo j es el producto entre cantidad Mi en capítulo j y tiempo ti asociado a Mi, por el ponderador pij de tiempo de Mi en el capítulo j. La ec. 4 recorre todos los medios del capítulo j, donde M es el número total de medios definidos en el modelo.
(4)
Para el cálculo de horas TP totales para desarrollar el proyecto (no implica tiempo lineal) se suma totales obtenidos por capítulos o por medios (ec. 5), deduciéndose la ecuación 6.
(5)
(6)
Al contar con las horas-hombre para realizar las tareas del proyecto, el cálculo de costo de éste no es complejo, dado que puede traducirse éstas horas-hombre en costo. No toda la mano de obra tiene el mismo costo (diseñador, cineasta e ingenieros son distintos), por lo tanto para obtener costo del proyecto se calcula las horas-hombre por medio (igual valor), luego se suman los medios del proyecto. En ecuación 7 se observa incorporación de costo de hora-hombre ki para obtener el costo de producir Mi en el proyecto.
(7)
Análogamente para obtener costo por capítulos (costo de capítulo j) en ecuación 8 se incorpora el valor hora-hombre ki según Mi. El costo total del proyecto queda definido por la ecuación 9.
(8)
(9)
2.1.5. Cálculo del Almacenamiento
El cálculo del espacio de almacenamiento es también una medida estimativa, dado que no es posible conocer a priori el tamaño de medios que tienen asociado los métodos de compresión. Por ejemplo, un tamaño y cantidad de "frames" dada en un video posee un tamaño fijo, pero comprimido, su tamaño final depende del método de compresión y las características del video.
Considerando lo anterior, el espacio de almacenamiento requerido por el producto final de la aplicación, se obtiene en forma similar a los tiempos. Se requiere la tabla 2, que contiene el tamaño promedio de cada medio. Así, al recorrer el grafo se obtiene el tamaño (ec. 10), donde el espacio de almacenamiento Ap del producto final se define como la suma de los medios de todos los capítulos multiplicados por cada espacio según Mi.
2.2 – Estimación de métricas para Hipermedia Web y Esfuerzo de autoría
Mendes en su artículo "Measurement, prediction and risk analysis for web applications" presenta un modelo de predicción para aplicaciones hipermedia de autoría y web durante un estudio de casos realizado con un proyecto asignado a los estudiantes en el curso de hipermedia y multimedia de la Universidad de Auckland. Reúne una serie de métricas de la literatura de ingeniería de software y multimedia con adaptaciones.
Fueron aplicados dos cuestionarios (ver Anexo) para recolectar los datos. El primero cualifica la experiencia de los diseñadores en cinco escalas que va de ninguna experiencia (1) hasta muy buena experiencia (5). El segundo cuestionario mide las características de las aplicaciones desarrolladas y el esfuerzo involucrado en el diseño y autoría de estas aplicaciones.
El proceso utilizado sigue los pasos del diagrama 1. El análisis de los requisitos no fue considerada en este modelo.
Para ver el gráfico seleccione la opción "Descargar" del menú superior
Fijaremos nuestra atención en el conjunto de métricas utilizadas para el trabajo que reúne bibliografías de diversos autores sobre aplicación de métricas a los productos hipermedia.
Las métricas colectadas durante el estudio de caso representan atributos de 4 tipos de Entidades:
- Aplicaciones Web
- Procesos de diseño Web y autoría
- Desarrollador
- Herramientas de autoría.
Cada tipo de entidad tiene un conjunto de métricas organizadas en 5 categorías de acuerdo con las tablas que siguen: métricas de tamaño, reusabilidad, complejidad, esfuerzo y factores de confusión, siendo que esta última consiste en verificar los factores que, si no son controlados, pueden influir en la validez de la evaluación.
2.2.1. Métricas de tamaño (Size Metrics)
Tabla 5 Metric Description
Tipo de entidad | Métrica | Descripción |
Aplicaciones Web | Cantidad de Páginas (Page Count *) | Número de html o shtml utilizados en la aplicación Web. |
Cantidad de "Media" (Media Count *) | Número de "media" utilizadas en la aplicación. | |
Cantidad de Programa (Program Count) | Número scripts CGI, Archivos Javascript, applets de Java usados en la aplicación. | |
Espacio total usado por las paginas (Total Page Allocation *) | El espacio total (Mbytes) asignado para todos los html o páginas shtml usadas en la aplicación. | |
Memoria o espacio total de "media" (Total Media Allocation *) | El espacio total (Mbytes) asignado para todos los archivos de "media" usados en la aplicación. | |
Total de líneas de código (Total Code Length) | El número total de líneas de código para todos los programas usados por una aplicación. |
2.2.2. Métricas de reusabilidad (Reusability Metrics)
Tabla 6ption
Tipo de entidad | Métrica | Descripción |
Aplicaciones Web | Cantidad de "media" reutilizable * | Número de archivos de "media" reutilizadas/modificadas en la aplicación. |
Cantidad de programa reutilizable | Número de programa reutilizado/modificado en la aplicación. | |
Memoria "media" reutilizada Reused Media Allocation *) | El espacio total (Mbytes) asignado para todos los archivos de "media" reutilizadas usados en la aplicación. | |
Total de líneas de código reutilizable (Total Reused Code Length) | El número total de líneas de código para todos los programas reutilizados por una aplicación. |
2.2.3. Métricas de Complejidad (Complexity Metrics)
Tabla 7pe
Tipo de entidad | Métrica | Descripción |
Aplicaciones Web | Conectividad* (Connectivity *) | Numero total de links internos. No incluye links generados dinámicamente. |
Densidad de la Conectividad (Connectivity Density [2] *) | Conectividad/Cantidad de páginas. | |
Total de Complejidad de la Página (Total Page Complexity *) | ||
Complejidad Ciclomática (Cyclomatic Complexity [2] *) | (Conectividad – Cantidad Paginas) + 2. (Connectivity – Page Count) + 2. | |
Estructura * | Mide como la estructura principal (backbone) de la aplicación está organizada: secuencia, jerarquia, o red. |
2.2.4. Métricas de Esfuerzo (Effort Metrics)
Tabla 8
Tipo de entidad | Métrica | Descripción |
Diseño de Aplicaciones Web y procesos de autoría | Esfuerzo Total (Total Effort) | Sumatoria de todas las métricas aplicadas para medir el esfuerzo. SE + IE + IP + IB + LTE + MTE (Esfuerzo de Estructuración + Esfuerzo de Conectividad + Planeación de la Interfaz + Construcción de la Interfaz + Esfuerzo en los Tests de Links + Esfuerzo en los Tests de "Media") |
Esfuerzo de Estructuración Structuring Effort (SE) | Tiempo estimado (numero de horas) que lleva para estructurar una aplicación. | |
Esfuerzo de Conectividad (enlaces) InterLinking Effort (IE) * | Tiempo estimado (numero de horas) que lleva una persona para conectar las páginas a través de los enlaces (links) para construir la estructura de la aplicación. | |
Planeación de la Interfaz Interface Planning (IP) | Tiempo estimado (numero de horas) que lleva una persona para planear la interfaz de la aplicación. | |
Construcción de la Interfaz Interface Building (IB) | Tiempo estimado (numero de horas) que lleva una persona para implementar la interfaz de la aplicación. | |
Esfuerzo en los Tests de Links Link Testing Effort (LTE) * | Tiempo estimado (numero de horas) que lleva una persona para probar todos los enlaces (links) en la aplicación. | |
Esfuerzo en los Tests de "Media" Media Testing Effort (MTE) * | Tiempo estimado (numero de horas) que lleva una persona para probar toda la "media" en la aplicación. |
E2.2.5. Factores de confusion (Confounding Factors)
Tabla 9
Tipo de entidad | Métrica | Descripción |
Desarrollador | Experiencia | Mide la experiencia del autor/diseñador utilizando una escala de 0 (ninguna experiencia) a 4 (muy buena experiencia). |
Herramienta | Tipo | Mide, a través de cuestionarios (ver Anexo), el tipo de herramienta utilizada por el autor/diseñador de la página: WYSIWYG, semi-WYSIWYG o basada en texto. |
Las empresas de informática de todo el mundo desarrollan aplicaciones comerciales y educativas con características que las clasifican en productos hipermedia o aplicaciones Web. Pero, desarrollar estos tipos de productos es caro, exige mucho tiempo y personal calificado.
Analizando la literatura existente sobre el asunto se concluye no existir un estándar para la planificación de costos de los productos hipermedia. Pero los especialistas ya se dieron cuenta de la extrema necesidad de una investigación más profunda en este tema bien como una adecuada utilización de las métricas para las características especiales que poseen los softwares hipermedia y las aplicaciones Web.
[Verdugo, 1997] P. Verdugo, "Definición de un Modelo para el Desarrollo de Proyectos de Tecnología Multimedia." Tesis de Magister, DPTO. Ing. Informática, de Chile, Universidad de Santiago, 1997.
[Jadue, 1993] J. Jadue, "Implementación de Laboratorio de Multimedios orientado a mejorar calidad de docencia en Universidad de Santiago de Chile." Trabajo de Título, Ing. de Ejecución en Computación e Informática, DPTO. Ing. Informática, Universidad de Santiago de Chile, 1993.
[Montilva, 1996] J. Montilva, "Aplicando Modelos de procesos de software al desarrollo de aplicaciones hipermedia." XXII CLEI-Panel 96, Santafé de Bogotá, Colombia, 1996.
[Solar, 2000] Solar, M., Verdugo, P., Parada, P., "Un Modelo para Diseñar Storyboard en Proyectos Multimedia" – International Journal on Computer Applications in Engineering Education, Vol. 8, num. 3 and 4, pp. 221-228, 2000.
[Mendes, 2001] Mendes, E., Fewster, R., "Web Metrics-Estimating Design and Authoring Effort", IEEE MultiMedia, special issue on Web Engineering, January-March 2001, pp. 50-57, 2001.
[Mendes, 2001] Mendes, E., Fewster, R., "Measurement, prediction and risk analysis for web applications", Proceedings of IEEE Metrics Symposium -7th International Software metrics Symposium, IEEE CS Press, 2001.
[Mendes, 2002] Mendes, E., Mosley, N., Counsell, S., "The Application of Case-Based Reasoning to Early Web Project Cost Estimation", IEEE 26th Annual International Computer Software and Applications Conference – COMPSAC, 2002.
[Mendes, 2002] Mendes, E., Mosley, N., Counsell, S., "A Comparison of Size Measures for Predicting Web Design and Authoring Effort", Jornal Paper IEE Proc. Software, 2002.
[Hihn, 1991] Hihn, J., Habid-agahi, H., "Cost Estimation of software intensive projects: a survey of current practices", Proc. 13th Int. Conf. On Software Engineering. Austin TX, ACM Press. (cap. 23), 1991.
[Boehm, 1981] Boehm, B., "Software Engineering Economics", Englewood Cliffs, NJ: Prentice Hall. (cap.23), 1981.
http://www.cs.auckland.ac.nz/~emilia/Assignments/exp-questionnaire.html
415.708 – Hypermedia and Multimedia Systems
Experience Questionnaire used for Assignment 2
The objective of this questionnaire is to gather information about your Web authoring experience before developing the Web application in assignment 2.
Accuracy is a key component to completing this form correctly.
Top of Form 1
Id: spacee-mail:
Name: spaceSurname:
Rate your authoring experience before developing the Web application given in assignment 2:
spaceNone
spaceLittle
spaceAverage
spaceGood
spaceVery good
Bottom of Form 1
GLOSSARY
No experience – group zero
This level of experience means that you have not had any previous contact with using or authoring on the Web.
Little experience – group one
This level of experience means that you have used the Web for browsing and have authored a Web page using basic HTML: images, links, paragraphs, lists
Average experience – group two
This level of experience means that you have used everything described for group one plus: use of frames, tables, colors, background, bookmarks, animated gifs, and knowledge of difference between jpg, gif98a.
Very Good experience – group three
This level of experience means that you have used everything described for group two plus: use of image maps (client/server), meta tags, knowledge of HTTP, HTTPS, FTP, etc, basic java Applets and Javascript.
Very good experience – group four
This level of experience means that you have use everything described for group three plus: use of complex meta-tags, special characters (e.g., ), cgi scripts, java Applets, Javascript, DHTML and XML.
http://www.cs.auckland.ac.nz/~emilia/Assignments/questionnaire.html.
415.708 – Hypermedia and Multimedia Systems
Questionnaire used for Assignment 2
The objective of this questionnaire is to gather information about your Web authoring experience and also information about the Web application that you have developed as part of assignment 2.
Accuracy is a key component to completing this form correctly.
Note: All the time-related questions should be answered using number of hours.
Please use decimals for fractions (e.g. 1.5 hours).
Top of Form 1
IDENTIFICATION
Id: spacee-mail:
Name: spaceSurname:
EXPERIENCE
Rate your perceived authoring experience (refer to Glossary) after developing the Web application given in assignment 2:
spaceNone
spaceLittle
spaceAverage
spaceGood
spaceVery good
AUTHORING THE APPLICATION
How long did it take you to plan the Structure?
hours
How long did it take you to inter-link (link) the pages in order to build the structure? hours
How long did it take you to plan the interface? hours
How long did it take you to implement the interface? hours
How long did it take you to test the links? hours
How long did it take you to test the media? hours
AUTHORING TOOLS
What authoring tools did you use?
spaceWord for Windows
spaceNotepad or a similar text editor
spaceFirstPage
spaceArachnophilia
Graphics editor:
Audio editor:
Video editor:
Animation editor
STRUCTURE OF THE APPLICATION
Would you classify the structure of your application as mainly:
spaceSequential
spaceHierarchical
spaceNetwork
FILES TO DOWNLOAD
Download the file media-file.xls (Microsoft excel) and fill in the information about each media type, other than text, created or reused
Download the file page-file.xls (Microsoft excel) and fill in the information about each html page you created or reused
Download the file language-file.xls (Microsoft excel) and fill in the information about each programming language (other than html) used
Finally, draw on an A3 sheet a graph representing the structure of your application and hand it in to Emilia with your name and id-number.
Bottom of Form 1
GLOSSARY
Authoring Experience
No experience – group zero
This level of experience means that you have not had any previous contact with using or authoring on the Web.
Little experience – group one
This level of experience means that you have used the Web for browsing and have authored a Web page using basic HTML: images, links, paragraphs, lists
Average experience – group two
This level of experience means that you have used everything described for group one plus: use of frames, tables, colors, background, bookmarks, animated gifs, and knowledge of difference between jpg, gif98a.
Very Good experience – group three
This level of experience means that you have used everything described for group two plus: use of image maps (client/server), meta tags, knowledge of HTTP, HTTPS, FTP, etc, basic java Applets and Javascript.
Very good experience – group four
This level of experience means that you have use everything described for group three plus: use of complex meta-tags, special characters (e.g., ), cgi scripts, java Applets, Javascript, DHTML and XML.
Structuring the application
Structuring the application represents organising the information collected into nodes (what content to include on each Web page) and identifying the appropriate links and where to create them.
- Structure
The structure represents the way in which the nodes are linked when considering the backbone (core) of the application. The structure can be sequential, hierarchical or in a network shape, corresponding respectively to nodes linearly (sequentially) linked, nodes linked in a tree shape and nodes linked in a net shape.
Design the Interface
Deciding what sort of layout the Web pages should have, where information should be included, what html templates to use, what colors to use, what types of media to include and how to organise it without cluttering the page. Involves planning the interface and implementing it.
- Plan the Interface
Organise the interface of each page in order to keep the "look and feel" as similar as possible throughout the application (use of templates). Where to include different types of media, which colors to use, font size, any appearance considerations would also be part of planning.
- Implement the Interface
Adds the content to the templates developed. The decision regarding what content to include on each Web page is accomplished at the phase entitled "Structuring the Application"
Test the application
Checks if links and different types os media work. Testing occurs after the application has been developed.
- Test Links
Test whether the links are dangling or if they are still valid
- Test Media
Test whether the different types of media work
Lic. Vanessa Teixeira de Oliveira Sandi
Aspirante al título de Máster por el Instituto Superior Politécnico José Antonio Echeverría –
Havana – Cuba
Prof: Dra. Sofia Alvarez Cárdenas
Categoria: Ingeniería de Software
CIUDAD UNIVERSITARIA
"JOSÉ ANTONIO ECHEVERRÍA"
CUJAE
CEIS – Centro de Estudios de Ingeniería de Sistemas
Ciudad de La Habana. Cuba.