Está en la página 1de 30

Sistema experto para cotizar

proyectos de software
Nelther Galaz Pérez
Francisco Antonio Ramírez Ríos
Planteamiento del problema

El problema de los proyectos de software radica en la incógnita del monto a


cobrar al terminar y entregar un proyecto de software. Cuáles son los
aspectos a evaluar, el material utilizado, los hombres que intervinieron en el
proyecto y principalmente el tiempo dedicado.

Los actuales modelos de estimación se basan en una amplia formación o


experiencia para usarlos efectivamente.
Hipótesis

El uso del sistema experto reducirá la necesidad de experiencia para


determinar el esfuerzo necesario para realizar el proyecto.
Objetivo General

Desarrollar un sistema experto difuso para estimar el esfuerzo necesario para


realizar un proyecto de software
Objetivos específicos

- Implementar Lógica difusa en el desarrollo

- Representar el conocimiento del experto en un lenguaje formal

- Estimar correctamente el esfuerzo requerido para el desarrollo de un


proyecto

- Implementar una interfaz intuitiva para el usuario


Justificación

La estimación de costos para proyectos de software es un proceso complejo para personas con
poca experiencia, actualmente los métodos de estimación de costos se basan en el cálculo del
esfuerzo requerido para desarrollar el proyecto, es por eso que se va a desarrollar un Sistema
Experto difuso que toma como base el modelo de estimación de costos COCOMO II.
Metodos de Estimacion
Método Tradicional
COCOMO II

El Modelo Constructivo de Costos es un modelo matemático de base empírica


utilizado para estimación de costos de software. Está orientado a la magnitud
del producto final, midiendo el "tamaño" del proyecto.
COCOMO II
Post-arquitectura.

Se realiza la estimación para el desarrollo en términos de puntos de función o


líneas de código (similar al anterior) pero ahora considerando 17 factores
agrupados en cuatro categorías (producto, plataforma de desarrollo, personal
y proyecto).
COCOMO II
● Factores del software: Se refieren a las restricciones y requerimientos
sobre el producto a desarrollar.

● Factores del Hardware: Estos factores analizan la complejidad de la


plataforma subyacente.

● Factores del personal: Estos factores están referidos al nivel de


habilidad que posee el equipo de desarrollo.

● Factores del proyecto: Estos factores se refieren a las condiciones y


restricciones bajo las cuales se lleva a cabo el proyecto.
Inteligencia Artificial
La inteligencia artificial (IA) es una de las ramas de la Informática, con fuertes
raíces en otras áreas como la lógica y las ciencias cognitivas.

Máquinas Capaces de:

- Actuar como las personas

- Razonar como las personas

- Razonar racionalmente

- Actuar racionalmente.
Áreas de estudio de la IA
Sistema experto
Es un programa que tiene la capacidad para dar respuestas semejantes a las
que daría un experto en la materia.
Lógica Difusa

Es una rama de la teoría de conjuntos borrosos.

La lógica difusa es un conjunto de principios matemáticos para la


representación de conocimiento con base en los grados de pertenencia en
lugar de los valores binarios de la lógica clásica.
Conjuntos Difusos
La idea básica de la teoría de conjuntos difusos es que un elemento pertenece
a un conjunto difuso con un cierto grado de pertenencia. Por lo tanto,un
elemento no es verdadero o falso, pero puede ser parcialmente verdadero o
parcialmente falso. Este grado de pertenencia se toma generalmente como un
número real en el intervalo [0,1].
Conjunto clasico vs Conjunto difuso
Conjuntos Difusos en la Computadora
Para representar conjuntos difusos en la computadora necesitamos
expresarlo como una función y luego mapear sus elementos a su respectivo
valor de membresía.
Variable Lingüística

Una variable lingüística es una variable difusa, en los sistemas expertos


difusos las variables son usadas en las reglas difusas.
Sistema Experto Difuso

Un sistema experto difuso es el resultado de implementar lógica difusa en el


desarrollo de un sistema experto reemplazando la lógica de primer orden.

El modo de realizar inferencias sigue el siguiente proceso difuso:


Desarrollo
Base de Conocimiento Difusa
La base de conocimientos consiste en una "base de reglas" y "base de datos". En esta etapa se
definen las reglas y contiene el conocimiento asociado con el dominio del experto en la forma
de un conjunto de reglas para tener un mayor control del sistema y realizar una toma de
decisiones.

• Archivos Binarios • Soporte para modelos triangulares y


trapezoidales
• Genérica
• Módulo de adquisición de conocimiento
• N número de variables con N número de
modelos difusos • Archivos de texto como entrada para la
matriz Fam
Modelo difuso de la variable software
Reglas Difusas
Matriz Fam

Reglas Lógicas

pb ^ prmb ^ hmb ^ smb → ezn


pb ^ prmb ^ hmb ^ sb → ezn
pb ^ prmb ^ hmb ^ sn → eza
pb ^ prmb ^ hmb ^ sa → ezma
Defusificación.
Tiene como objetivo convertir los valores reales en difusos, asignando un grado de pertenencia a
cada variable de entrada con relación al conjunto difuso. Utilizando las siguientes fórmulas
dependiendo de la variable de entrada (x):

Para la defusificación lo que se necesita es leer los 2 archivos binarios que son de variables y
etiquetas para realizar el cálculo del avance tomando como base las 2 fórmulas anteriores.
Inferencia

Es el método mediante el cual obtenemos una salida difusa dependiendo de


los valores de entrada para cada variable difusa, en esta sección se ven
involucradas las funciones de pertenencia y las reglas generadas en la base de
conocimientos.

Para obtener las salidas difusas se ha implementado el método MIN-MAX


Desfusificación
Es el último paso que se encarga de transformar el valor difuso obtenido por
las etapas anteriores a un valor real de acuerdo a la base de conocimiento.

Se pueden utilizar varios métodos matemáticos para obtener el resultado


real, en este caso se utiliza el método del Centro de Gravedad:
Ejemplo
CONCLUSIÓN
Como conclusión podemos mencionar que con este sistema experto para
cotizar proyectos de software se busca abrir las puertas y ampliar el
panorama para que los alumnos y recién egresados aún sin experiencia
laboral cuenten con la herramienta necesaria para cobrar de una manera
justa por su trabajo elaborado.

También podría gustarte