Entrega parcial Trabajo de grado I - Trabajos de Grado | Ingeniería

Anuncio
Propuesta de un modelo de análisis para estimación del tamaño del software y gestión
de costos y riesgos a partir de requerimientos funcionales.
Sandra Patricia Forigua, Oscar Arturo Ballesteros
Presentado a: Luis Carlos Díaz
Pontificia Universidad Javeriana
Departamento de Ingeniería de Sistemas
Bogotá – Diciembre 1 de 2006
1
Índice
Risk Management Capability
3
Risk Assessment Methodology
4
Metodologías para la evaluación y análisis de riesgos
5
Comparación de métodos de análisis de riesgos
9
Comparación de herramientas computacionales de métodos de análisis de riesgos
12
Bibliografía
14
2
RISK MANAGEMENT CAPABILITY
CMM: Capability Maturity Model for Software
Según Hall[1] puede establecerse que el CMM es un modelo de desarrollo de
 Framework que describe elementos clave de un proceso de software
efectivo.
 Identifica risk management key practices en algunas de las denominadas
Key Process Areas KPA.
 Plan de administración del riesgo de un proyecto.
Camino hacia la capacidad de la administración del riesgo
Este mapa esta constituido por cinco estados incrementales [1], estos son:
1.
2.
3.
4.
5.
Problema
Mitigación
Prevención
Anticipación
Oportunidad
Dicho mapa consiste de un plan detallado que puede sobrevivir a pesar de dificultades que
se puedan presentar en el proyecto [1], tales como: rotación de personal y cancelación del
proyecto. El mapa de administración de riesgos puede facilitar:
-
Lay the foundation: cada estado del mapa construye una capacidad necesaria
para el siguiente estado. Se puede utilizar el mapa de administración de
riesgos como una manera de determinar dónde se está y si algunos pasos han
sido omitidos.
- Facilita la transición: Comenzando desde el principio el mapa guiará hasta
dónde se desea llegar en el proceso de administración de riesgos.
Estado
Descripción
Problema
Falta d e comunicación, falta de
coordinación.
La estimación de riesgos no es una
prioridad y los miembros del equipo no se
interesan en problemas futuros que puedan
ocurrir.
Mitigación
La administración de proyectos involucra la
administración de riesgos cómo una manera
de conocer eventuales amenazas sin todavía
enfrentarlas.
Prevención
Es un estado transicional donde se pretende
evitar algunos síntomas con el fin de
identificar y eliminar la causa raíz del
problema.
Anticipación
Describe el cambio cuando la
3
Oportunidad
administración del riesgo pasa de ser algo
subjetivo a algo cuantitativo
Visión positiva de la administración del
riesgo que es utilizado para innovar y dar
forma al futuro antes incierto del proyecto.
RISK ASSESSMENT METHODOLOGY
En [2] se plantea que el primer paso en la administración del riesgo consiste en el risk
assessment. El resultado que se debe obtener de este proceso debe ayudar en la
identificación de controles apropiados para la reducción o eliminación del riesgo durante su
fase de mitigación. The Risk Assessment Methodology agrupa nueve pasos básicos [1] los
cuales se mencionan a continuación:
Paso 1: Caracterización del sistema
Paso 2: Identificación de amenazas
Paso 3: Identificación de vulnerabilidad
Paso 4: Análisis de control
Paso 5: Determinación de probabilidad
Paso 6: Análisis del impacto
Paso 7: Determinación del riesgo
Paso 8: recomendaciones de control
Paso 9: Documentación de resultados
4
Metodologías para la evaluación y análisis de riesgos
1. Metodología de análisis de riegos COBRA
Es una metodología para el análisis de un rango dado de riesgos y una herramienta para
la evaluación de riesgos en seguridad [9]. Se encuentra directamente relacionada con
otras metodologías de evaluación de riesgos tales como la cuantitativa y la cualitativa
(ver tabla 1).
Por otro lado, esta metodología permite evaluar la importancia relativa de todos los
riesgos y vulnerabilidades entorno al sistema. Además genera recomendaciones y
soluciones apropiadas, reporta evaluaciones escritas y niveles de riesgo.
COBRA como una metodología para el análisis de riesgos permite [8]:
-
Identificar amenazas del sistema, vulnerabilidades y exposiciones.
-
Medir el grado de riesgo actual para cada área del sistema y relacionarlo
directamente con el posible impacto que pueda generar sobre el negocio.
-
Ofrece soluciones detalladas y recomendaciones para reducir los riesgos.
Proceso de evaluación de riesgos usando COBRA
En [8] “The Risk Assessment Process” se describen los tres estados generales que
involucra el proceso de análisis de riesgos utilizando COBRA:
a. Construcción de cuestionario:
Construye un cuestionario de riesgo de acuerdo con el sistema. En
consideración. Los cuestionarios individuales de cada módulo del sistema son
seleccionados desde la base de conocimiento del sistema. El proceso de
construcción del cuestionario puede llevarse a cabo de dos maneras. Manual o
automáticamente.
- Elaboración Manual del cuestionario: Mediante este tipo de elaboración, el
sistema crea un cuestionario que se acomoda específicamente al sistema del
usuario, esto después de que otros cuestionarios iniciales (cuestionario de
impacto y cuestionario de negocio) son finalizados. Los cuestionarios de
impacto y de negocio determinan qué módulos deben ser seleccionados para
ser incluidos detalladamente en el cuestionario.
- Elaboración automática del cuestionario: Se debe aplicar dadas las
siguientes razones [8]:
- Consideración de un aspecto específico de riesgos.
- Realización de la evaluación de riesgos en varios escenarios propuestos.
- Análisis de todas las áreas de riesgos, incluso si algunas de ellas no se
consideran de gran significancia para la organización.
5
b. Inspección del riesgo:
En este estado se maneja el proceso de finalización del cuestionario: “Los
módulos cuestionados son completados individualmente por el personal
apropiado” [8]. Finalmente los resultados son reunidos en la etapa de
generación del informe.
c. Generación de reporte:
Es utilizado para mostrar los resultados desde el cuestionario completo. Estos
resultados pueden ser interpretados de forma técnica o no. Las secciones que
provee el reporte son:
- Soluciones recomendadas a los problemas identificados, así como
sugerencias adicionales de seguridad.
- Una evaluación descriptiva y nivel cuantitativo de riesgos en cada
área considerada.
- Un análisis del impacto por cada área.
- Relación entre las áreas de riesgo y las posibles implicaciones de
tipo financiero y de negocio.
2. Item Quantitative Risk Assessment System (iQRAS)
Es una herramienta de software construida sobre el sistema operativo Windows, Modela
funciones nominales de un sistema, el tiempo y la probabilidad de dichas desviaciones y
potenciales consecuencias [7].
La elaboración de un proyecto sobre esta herramienta incluye tres pasos principales [7]
que se mencionan a continuación:
a. Establecimiento de un Diagrama Principal Lógico (Master Logia Diagram) e
Iniciación de Eventos.
Consiste en construir una jerarquía del sistema que se quiere analizar,
considerando el nivel más bajo como el componente que lo integra.
Una vez construida la jerarquía, el siguiente paso es la identificación
de la Iniciación de Eventos que pueden tener lugar en los elementos de
los componentes o niveles más bajos del sistema [7]. Tales eventos
comprenden cualquier falla del subsistema o componente del sistema.
b. Desarrollo de escenarios de riesgos mediante Diagramas de Secuencia de
Eventos (Event Sequence Diagrams).
Diagramas de Secuencia de Eventos
Estos diagramas describen eventos y su transición a estados finales del
sistema. De estas maneara cada camino que se establece entre la
Iniciación de Estados a un estado Final se denomina escenario [7].
6
Consiste en el desarrollo de escenarios de riesgo utilizando Diagramas
de Secuencia de Eventos [7].
c. Cuantificación de eventos.
Consiste en la cuantificación de eventos mediante valores
normalizados, también conocidos como árboles de fallas o datos de
distribución. Utilizando estos datos es posible establecer la
probabilidad de cada Iniciación de Eventos y PE que puedan ocurrir.
d. Análisis.
Teniendo en cuenta que existen diferentes opciones de análisis
dependiendo del objetivo del proyecto, es posible presentar una línea
base desde donde todos los futuros cuestionamientos son comparados
para establecer si el riesgo incrementa o decrece.
Con este fin IQRAS [7] como metodología para el análisis de riesgos
provee un análisis de sensibilidad:“donde la probabilidad de un evento
es dada en un rango con el fin de determinar qué tan sensible resulta el
modelo ante un evento específico.”
3. Metodología CORAS
El proyecto CORAS [5] desarrolló una metodología soportada por una herramienta
computacional basada en modelos de análisis de riesgos de sistemas críticos en
seguridad.
4. The Operationally Critical Threat, Asset, and Vulnerability Evaluation
(OCTAVESM)
Metodología que define los componentes esenciales de la evaluación de riesgos en
seguridad de manera sistemática y comprensiva. Este método le puede permitir a una
organización tomar decisiones de protección entorno a su información en aspectos tales
como: confiabilidad, integridad, disponibilidad.
La elaboración de un proyecto sobre esta herramienta incluye tres fases principales [6]
que se mencionan a continuación:

Fase 1: Construcción de la evaluación basada en perfiles de riesgos.
Dentro de esta fase se evalúan áreas distintas del sistema para identificar
información importante de los activos, las amenazas a dichos activos, los
requerimientos de seguridad y las acciones que actualmente se encuentra
desarrollando la organización para proteger sus activos de información
así como sus debilidades y vulnerabilidades.
7

Fase 2: Identificación de las vulnerabilidades en la infraestructura: es una
evaluación de la infraestructura de la información. Aquí los componentes de
la infraestructura de la información son evaluados teniendo en cuenta sus
debilidades y vulnerabilidades.

Fase 3: Desarrollo de estrategia y planes de seguridad.
Los resultados de las evaluaciones generados en las dos fases anteriores
son analizados para identificar los riesgos y evaluar su impacto
dependiendo del objetivo del sistema.
8
Comparación de métodos de análisis de riesgos
A continuación se muestra un comparativo entre las metodologías descritas anteriormente.
Metodología
Cualitativa
Análisis de riesgo
preliminar
Descripción
-
-
-
Análisis de la secuencia
de eventos que podrían
transformarse en un
riesgo potencial.
Posibles eventos
indeseables o inesperados
primero son identificados
y luego analizados
separadamente.
La idea es formular
posibles mejoras o
medidas preventivas para
cada evento o posible
amenaza.
Estudios de operabilidad
y riesgo
Modo de fracaso y
análisis de efectos
Ventaja
Provee una base en la
determinación de las
categorías de riesgos
que deberían ser
investigadas más a
fondo junto con los
métodos de análisis
más convenientes.
Los diagramas de
frecuencia y
consecuencia pueden
ayudar
- Riesgos pueden ser
clasificados según
categoría, frecuencia y
severidad
- Ofrece una base de
datos de porcentaje de
fallas que puede ser
consultada para acceder
a la frecuencia potencial
de amenazas.
Es un procedimiento
mediante el cual cada falla
potencial de un sistema es
analizado para determinar sus
efectos sobre éste y
clasificarlo de acuerdo con su
severidad.
Técnicas basadas en árbol
Análisis de árbol de fallas -
-
Es un diagrama lógico el
cual muestra una relación
entre las fallas del
sistema y las fallas de los
componentes del sistema.
Es una técnica basada en
Puede ser utilizado en
la fase de diseño así
como en fases
operacionales del
sistema.
Un evento indeseado es
primero definido
mientras que las
relaciones causales de
las fallas asociadas a
9
lógica deductiva.
Análisis de árbol de
efectos
Es un método para ilustrar la
secuencia de salidas o
resultados que pueden
presentarse después de la
ocurrencia de un evento
inicial seleccionado.
Análisis de causa –
consecuencia
-
-
Management Oversight
Risk Tree
Técnicas para sistemas
dinámicos
Método GO
Es un método para
ilustrar la secuencia de
salidas o resultados que
pueden presentarse
después de la ocurrencia
de un evento inicial
seleccionado.
Utiliza un análisis de
consecuencia
ese evento son luego
identificadas.
Un evento indeseado es
primero definido
mientras que las
relaciones causales de
las fallas asociadas a
ese evento son luego
identificadas
Un evento
indeseado es
primero definido
mientras que las
relaciones causales
de las fallas
asociadas a ese
evento son luego
identificadas.
Brinda una vista
general de las causas
del acontecimiento
primero de descuidos
de administración y
omisiones o de riesgos
asumidos o los dos.
 Utiliza 17 operadores que  Operadores
ayudan en la construcción
independientes son
del modelo.
usados para
modelar
 Presenta tres tipos básicos
componentes que
de operadores:
no requieren
independiente,
entradas.
dependiente y lógico.

Operadores
 Es utilizada en
dependientes
aplicaciones prácticas
requieren de por lo
donde las condiciones
menos una entrada
limitantes para el sistema
con el propósito de
a ser modelado están bien
obtener una salida.
definidas mediante
esquema o diseños del
 Operadores lógicos:
sistema.
con los datos
probabilísticos de
cada operador
10
independiente y
dependiente, la
probabilidad de
éxito de la
Modelado de Markov
-
-
Es una técnica de
modelado clásico
utilizada para estimar el
comportamiento
dependiente del tiempo
de algunos sistemas
dinámicos.
Esta metodología incluye
el tiempo explícitamente
y pude extenderse parea
cubrir situaciones en
donde los parámetros del
problema son
dependientes del tiempo.
11
Comparación de herramientas computacionales de métodos de análisis de riesgos
Metodología y
herramientas
Descripción
-
Herramienta de
software en Windows
para la evaluación
probabilística de
riesgos.
-
Modela funciones
nominales de un
sistema, el tiempo y
la probabilidad de
dichas desviaciones y
potenciales
consecuencias.
Item Software iQRAS [7]
Ventaja
Ayuda en el
entendimiento de los
riesgos asociados al
sistema mediante la
generación de
estimaciones cuantitativas
de niveles de riesgo.
Provee capacidades
para modelar evaluaciones
probabilísticas de riesgos
(PRA en sus siglas en
inglés) así como de
análisis cuantitativo y
cualitativo.
Permite modelar
fallas del sistema para ser
modeladas en forma de
diagramas de secuencia de
eventos y árboles de
fallos.
Operationally Critical Threat,
Asset, and Vulnerability
Evaluation (OCTAVE)
Framework, Version 1.0 [6]
Framework para la
identificación y manejo de
riegos de seguridad de la
información.
Es además un método de
evaluación que permite a
una organización los
elementos (activos) de
información, las amenazas
frente a estos elementos,
- Provee una interfaz
gráfica que incluye editores
para árboles de fallos
combinadas con pantallas
de análisis que proveen
resultados en formato
tabular y gráfico.
 Mediante la
identificación de
amenazas y
vulnerabilidades la
organización puede
empezar a entender qué
información está en
riesgo.
 Con este entendimiento
la organización puede
12
CORAS [5]
Metodología para los
aspectos que integran
modelos basados en la
estimación de riesgos de
seguridad.
Herramienta basada en la
metodología para el
análisis de modelos de
riesgos de sistemas de
seguridad críticos.
diseñar e implementar una
estrategia de protección
para reducir el panorama
de riesgos expuesto en su
activo de información.

Resulta útil en el
desarrollo de nuevos
sistemas y en el
mantenimiento y
mejoramientos de
sistemas legacy.

Provee una
especificación basado
en el lenguaje UML.

Provee un
repositorio de paquetes
de experiencias
reusables.

COBRA[8]
Es una herramienta que
trabaja sobre el sistema
operativo Windows.
 Permite identificar
vulnerabilidades y
amenazas al sistema.
 Mide el grado de riesgo
actual para cada área o
aspecto del sistema
relacionándolo
directamente al impacto
potencial del negocio.
 Ofrece soluciones
detalladas para reducir los
riesgos.
 Provee reportes
técnicos.
Provee un reporte
de las vulnerabilidades
encontradas.
 Customización
automática: El análisis de
los riesgos es capaz de
acomodarse al entorno de
la organización y el
sistema, mediante la
generación de
cuestionarios dinámicos
desde la base del
conocimiento de módulos
existentes de la
organización o que hacen
parte del entorno del
sistema
 Flexibilidad: permite
la estructuración del
análisis de riesgos según
los módulos en los que se
divide organización.
 La herramienta permite
generar reportes.
13
Estimación del Tamaño del Software
Esta actividad se refiere a la necesidad de saber a ciencia cierta que tan grande va a ser un
software que voy a realizar, y poder poner de manera tangible el costo de desarrollar un
sistema basándose en una medición acertada acerca del tamaño del software.
La estimación del tamaño del software se puede realizar en diferentes etapas del proyecto, y
dependiendo en que periodo de tiempo se haga, se podría decir que se puede determinar su
correspondencia con el tamaño real del software, por ejemplo si la estimación se realiza al
final del proyecto se puede realizar una estimación por así decirlo 100% acertada, ya que en
este momento ya se conoce cuanto duro el proyecto, ya se conoce la cantidad de código
escrito, y si la estimación se realiza en etapas tempranas del proyecto se podría decir que la
estimación que se realizaría esta bastante alejada de la realidad, pero esto no es del todo
cierto ya que las estimaciones dependen de múltiples factores, pero lo que si es totalmente
cierto es que entre mas temprano se realice la estimación mayo será la incertidumbre acerca
de todos los factores que afecten el proyecto.
Lo realmente en la estimación no es necesariamente que esta debe ser 100% confiable, si
no el hecho de la realización de la misma, lo cual ayuda como ya se menciono el la
determinación del costo del proyecto, por lo cual se recomienda que durante todo el
desarrollo del proyecto se realicen estimaciones y se corrijan las anteriores con la
información que valla arrojando el proyecto, lo que a largo plazo ayuda a que las
estimaciones que se hagan sobre proyectos futuros sean cada vez mas acertadas.
Al igual que los procesos de software en donde las organizaciones son categorizadas en
niveles de madurez, lo mismo también ocurre en cuanto al nivel de las empresas para
estimar el tamaño de un software en desarrollo, para esta medición de la madurez se tienen
5 niveles en donde se caracteriza principalmente que las organizaciones que se encuentran
del nivel 1 al 3 los métodos usados para realizar la estimación no requieren el uso de datos
históricos de proyectos pasados, en cambio las organizaciones que se encuentran en el
nivel 4 y 5 usan métodos que requieren de información histórica y además integran a estos
métodos sus mejores practicas y lecciones aprendidas.
Principalmente las técnicas mas usadas para la estimación del tamaño del software son el
conteo de líneas de código del programa producido, y el conteo de puntos de función que se
refiere al conteo de partes lógicas del programa a producir, pero en este tipo de
estimaciones no se tienen en cuenta los documentos que se deben generar cuando se esta
construyendo un software, dichos documentos también requieren tiempo y recursos, que
incrementan el tamaño del software en desarrollo.
14
Metodologías de Estimación del Tamaño del Software
A continuación se presenta una descripción de cada una de las metodologías de estimación
del tamaño que consideramos las mas importantes y mas usadas por la industria, como ya e
menciono anteriormente existen básicamente 2 aproximaciones a esta estimación el conteo
de líneas de código y el conteo de puntos de función, a continuación describiremos dichas
aproximaciones.
Estimación Basada en Líneas de Código.
Esta estimación se podría catalogar como de tipo tardío, ya que el numero total de líneas de
código solo se puede conocer cuando el producto este terminado, aunque la tarea no es tan
sencillo como contar la longitud de cada archivo, se debe acordar un formato, en donde se
especifique se es lo que se va a contar y que no, por ejemplo los comentarios escritos en el
código no deberían ser contados, por lo cual solo se debe contar, lo que se especifique a ser
contado.
Dentro de esta categoría existen varias metodologías las cuales usan las líneas de código
como base para la realización de su estimación, a continuación se explican algunas de estas
metodologías.
Estimación por Conteo de Bloques
Este enfoque se basa en estimar el número de funciones esperadas que tendrá el sistema,
como se puede notar esta es un enfoque de estimación temprana ya que se estima el numero
de funciones esperadas, y como es de suponerse cuando se tiene poca información acerca
del proyecto las estimaciones no podrían ser muy exactas, y a medida que avanza el
proyecto se esperaría que las estimaciones cada vez se fueran volviendo mas coherentes
con la realidad.
Este método también puede ser aplicado usando componentes de software en cambio de
bloques de código, lo cual hace que el método pueda ser aplicado en diferentes grados de
detalle.
Adicionalmente al método se le pueden agregar funciones estadísticas para encontrar una
estimación mas precisa, para esto se usa la desviación estándar, la cual se obtiene a partir de
la información de proyectos pasados ya realizados, lo cual mejora en gran parte las
estimaciones para esa compañía.
15
Ahora se describirá un poco los paso que se siguen en el uso de este método.
1. Estimar el número de bloques, o componentes de software esperados.
2. Multiplicar el número de bloques por el tamaño esperado de cada tipo de
bloque.
3. Calcular la desviación estándar para dicho proyecto.
4. Aplicar el método repetidamente para los diferentes niveles de detalle, y
así obtener una estimación mas precisa.
Estimación del Tamaño Estadística
Este método se basa en la estimación del tamaño a partir del tamaño de cada uno de los
componentes que integran el sistema, o cual posibilita que se estime el sistema completo,
como cada uno de sus componentes por separado, a su vez el método se encarga de
disminuir la incertidumbre acerca de las estimaciones de os componentes individuales, para
de esta manera tener una estimación mucho mas segura del sistema completo, para esto el
método se basa en la estimación por analogía, en la cual se compara el proyecto actual con
otros anteriores ya realizados, lo cual quiere decir que dentro de la organización se debe
mantener una base de datos con la información acerca de todos estos proyectos anteriores
que servirán para la estimación del proyecto en curso.
A continuación se listaran los pasos para estimar el tamaño del software con este método.
1. Determinar las funciones que compondrán el nuevo sistema.
2. Buscar Información acerca del tamaño de funciones similares ya
desarrolladas.
3. Identificar las diferencias entre las funciones similares y las nuevas.
4. Para cada componente o función a estimar, se deben estimar tres parámetros,
el menor, medio y máximo tamaño de cada uno de los componentes o
funciones.
5. Calcular la media estadística y desviación estándar de cada uno de los
números obtenidos en el numeral anterior.
6. Tabular cada uno de estos datos obtenidos.
7. Calcular la media total del proyecto, y la desviación estándar del proyecto.
Estimación por Lógica Difusa
Este método se basa en dividir los proyecto de software en categorías de tamaño, en las
cuales dependiendo en la cantidad de líneas de código cada proyecto haya producido, por
ejemplo se podrían poner las categorías, grande, mediano y pequeño, para encasillar a cada
uno de los proyectos de software.
Para realizar esta categorización se requiere tener información de proyectos anteriores con
los cuales se puedan generar los grupos antes descritos.
16
Y como es de suponerse para realizar la estimación del nuevo proyecto se debe juzgar en
que categoría quedaría el nuevo proyecto, lo cual daría un rango de líneas de código que el
nuevo proyecto podría producir.
Un problema que presenta este método, es que el cambio tecnológico hace que la magnitud
en líneas de código de un proyecto varié, lo cual podría hacer que los grupos realizados
cambien.
Estimación Basada en Puntos de Función
Este método se diferencia a los basados en líneas de código en que, no se basa en la
longitud de programa si no en la funcionalidad que presta, lo cual hace a este método
independiente del lenguaje.
El método realiza su estimación contando el número de componentes de cada clase de
punto funcional, luego se estima la complejidad de cada uno de los componentes que seria
media , alta ,baja, según sea el caso, luego se multiplica cada contador de puntos de función
por el valor adecuado, y se suma el total de puntos de función.
Cada uno de los tipos de puntos de función se describe a continuación.
1. Entradas externas: Datos o entradas de control al sistema que causan que el
sistema lleve a cabo algún procesamiento.
2. Salidas Externas: datos o salidas de control que salen del sistema, luego de que
un procesamiento a sido llevado a cabo.
3. Peticiones Externas: Solicitudes del sistema que requieren inmediata atención.
4. interfaces Externas: Archivos o programas que salen del sistema.
5. Archivos Internos: agrupamiento lógico de información almacenada en el
sistema.
Con cada uno de estos elementos se determina que tan grande va a ser el sistema a
desarrollar.
Salidas Externas
17
Estimación de Costos
El costo del tamaño del software es básicamente, el propósito de estimar cualquier
parámetro acerca de un proyecto de software, ya que esta el la manera de retribuir el
esfuerzo realizado al crear un sistema de software, y de una buena estimación del costo de
un sistema depende que se obtengan ganancias o perdidas al final del desarrollo de un
proyecto.
Como es de suponerse el costo de un proyecto esta completamente ligado al tamaño del
mismo, ya que el tamaño determina en la mayoría de los casos la duración del proyecto y la
dificultad de realizar dicho sistema, estos son algunos de los factores que deben ser tenidos
en cuenta al momento de realizar una buena estimación del costo de un proyecto, pero no
los únicos que deben ser tenidos en cuenta, ya que se debe tener en cuenta muchos otros
factores como es el caso del personal que realizar dicho proyecto, y los recursos necesarios
para dicho proyecto.
Lo anterior nos deja una clara visión acerca de los múltiples aspectos que deben ser tenidos
en cuenta al momento de realizar una estimación apropiada del costo de un proyecto, así
como el método a usar para dicha estimación.
A continuación se hará una breve descripción de los tipos y métodos mas importantes para
estimar el consto de un proyecto de software.
Metodologías de Estimación del Costo de un Proyecto de Software
En general existen 2 tipos de métodos para la estimación del costo de un proyecto, estos
son los métodos algorítmicos y no algorítmicos, los métodos no algoritmos se basan por lo
general en la experiencia en proyectos anteriores, como en la conveniencia hacia el cliente,
por un determinado precio.
Métodos no algorítmicos
Costos por Analogía
Requiere que al menos se tenga información de un proyecto anterior similar, se usa los
datos de las anteriores estimaciones y sus resultados para lograr una estimación mas
precisa.
18
Juicio Experto
Se requiere consultar a uno o más expertos en la estimación del tamaño de software,
donde cada uno realiza una estimación diferente y luego se llega a un consenso sobre
esta.
Pasos :
1. Se presenta a coda estimador, se realiza la estimación en la base de los
compañeros.
2. Cada experto llena una forma con los resultaos obtenidos.
3. El Cordinador prepara un resumen sobre cada una de as estimaciones.
4. Se Repiten los 2 últimos aspectos, hace lograr consenso entre los expertos.
Parkinson
Se estima sobre el volumen de la producción del cliente, en la cual se produce con os
recursos que este puede generar, se ajusta el presupuesta para cumplir el presupuesto
del cliente.
Precio a Ganar
Se cuadra el valor del proyecto para que sea el mejor de todos, sin tener en cuenta el
tamaño, toma en cuenta el presupuesto del cliente.
Bottom UP
Se estima cada no de los componentes del sistema por separado, y luego se hace una
estimación sumando todas las estimaciones pequeñas.
Too-down
Se Obtiene una estimación global a partir de las características de todo el sistema, para
luego realizar basado en esto, la estimación de cada parte del sistema.
19
Métodos Algorítmicos
Estos métodos se basan en la aplicación de una función, a las propiedades del sistema
para obtener una estimación formal de proyecto a realizar.
Factores de Costo
Trata de estimar mas factores a demás del tamaño del producto, existen 5 tipos:
 Factores de Producto
 Factores Computacionales.
 Factores Personales
 Factores del Proyecto
Modelos Lineales
Basado en la sumatoria de los aspectos que son relevantes al proyecto.
Tiene por desventaja que, la mayoría de veces el desarrollo de un proyecto en cuanto al
precio no se comporta de forma lineal
Modelos Multiplicativos
Se multiplican los factores importantes del software que determinan, el costo total del
proyecto.
Modelos basados en funciones de potencia.
Relaciona el tamaño del software, con otros factores de costo que influyen en el costo
del desarrollo del proyecto.
COCOMO
Modelo basado en funciones de potencia, en donde los coeficientes dependen de la
complejidad del proyecto a desarrollar, y los factores de costo asociados en el modelo
SLIM
Se basa en la distribución de poder hombre y los descubrimientos en proyectos
anteriores, se usa la ecuación de software, en donde se relaciona, el tiempo de entrega,
factores ambientales, en los cuales se refleja la capacidad de desarrollo de la compañía,
mediante el uso de información de proyectos pasados.
20
Modelos discretos
Estos modelos son del tipo modular en donde se relaciona el esfuerzo, duración y
dificultad y otros factores de costo, son fáciles de usar.
21
6. BIBLIOGRAFÌA
[1] Hall, E., “Managing Risk Methods For Software Systems Development”, Canada, 1998.
[2] Stoneburner, G., Goguen, A., Feringa, A., “Risk Management Guide for Information
Technology Systems”, National Institute Standards and Technology, Estados Unidos, 2002.
[3] T. Hiap Keong, “Risk Analysis Methodologies,” Jul.1997;
http://home1.pacific.net.sg/~thk/risk.html
[4] Rasche, T., “Risk Analysis Methods – A Brief Review”, The University of Queensland,
2001.
[5] Coras Project, “A Platform for Risk Analysis of Security Critical Systems”, Junio 2001;
http://www2.nr.no/coras
[6] C.Alberts, A.Dorofee “An Introduction to the OCTAVESM Method”, 30 Junio. 2001;
Software Engineering Institute, Carnegie Mellon University,
http://www.cert.org/octave/methodintro.html
[7] “Item Software iQRAS”, Diciembre 2002; NASA, http://www.itemsoft.com/qras.shtml
[8]
“Security
Risk
Analysis
&
Limited,http://www.riskworld.net/thanks.htm
Assessment”,
Systems
Security
[9] “Introduction to Security Risk Analysis”, Introduction to Security Risk Analysis,
http://www.security-risk-analysis.com
22
Documentos relacionados
Descargar