martes, 2 de abril de 2019

ENSAYO MOPROSOFT Y CMMI

Introducción de MoProSoft

Para comenzar hablaremos de MoProSoft, este es un modelo de referencia de
procesos conformados por el conjunto de buenas prácticas y procesos de gestión
e ingeniería de software, que contribuyen a que las organizaciones dedicadas al
desarrollo y mantenimiento de software mejoren su forma de trabajar y gestionar
sus proyectos y por consiguiente incrementar sus niveles de capacidad y
competitividad. También proporciona un conjunto de procesos integrados, con sus
flujos de trabajo, roles y productos, que pueden servir de marco de referencia para
las empresas de la industria de software.
Antes de que esto existiera hasta 2005 las Micro, Pequeñas y Medianas
empresas (MiPyME) dedicadas al desarrollo de software no contaban con un
modelo o estándar de procesos que se adecuara a sus características y que les
permitiera desarrollar software de calidad a través de la implantación, y que no
representara una elevada inversión en tiempo, dinero y esfuerzo que los frustrará
en el intento de adaptarlo a la organización. Por estas razones en el 2002 la
secretaria de economía creo el programa para el desarrollo de la industria de
software su acrónimo es PROSOFT. Su principal objetivo es fortalecer a la
industria del desarrollo de software en el país, dentro de PROSOFT se crearon
cinco estrategias a cumplir:
  • Formación de capital humano especializado en tecnologías de la información y en innovación en los sectores estratégicos.
  • Generación de investigación aplicada, desarrollo tecnológico e innovación en los sectores estratégicos
  • Financiamiento para las empresas de los sectores estratégicos para el desarrollo y adopción de tecnologías de la información e innovación.
  • Generación de infraestructura para el desarrollo y adopción de las tecnologías de la información y la innovación.
  • Generación y difusión de conocimiento en materia de TI e innovación a través de estudios y eventos.

En base a PROSOFT se creo un modelo de procesos para la industria de software
(MoProSoft) el cual servirá como el documento base para la norma mexicana
NMX-059 bajo el nombre Tecnología de la Información-Software-Modelos de
procesos y de evaluación para desarrollo y mantenimiento de software.
La definición oficial dice que MoProSoft es el Modelo de Procesos para la
industria del software de México y fue desarrollado con la finalidad de fomentar la
estandarización de su operación a través de la incorporación de las mejores
prácticas en gestión e ingeniería de software. Este modelo se basa en los
procesos orientados a las pequeñas y medianas empresas que permite acceder a
prácticas de ingeniería de software de clase mundial. Si una empresa adopta el
modelo aumentara la capacidad de la organización para ofrecer servicios de
calidad y alcanzaría niveles altos de competitividad.
Este modelo es fácil de aprender, fácil de aplicar y no es muy costoso en su
aplicación, este modelo compite fácilmente con las normativas ISO 9000:2000 o
CMM V1.1.

Estructura de MoProSoft
Siendo un modelo para el desarrollo de software que está enfocado en procesos
básicos de una empresa, considera tres niveles de organización: la Alta dirección,
la Gerencia y Operación. De esta forma el modelo apoya a la estandarización de
las prácticas, así como en la evaluación de su efectividad y la integración de la
mejora continua.
Dentro de la alta dirección se encuentran los procesos de la gestión de
negocios, en la gerencia están la gestión de los procesos, la gestión de los
proyectos, y la gestión de los recursos. Dentro de esta ultima actividad contiene a
su vez otras tres actividades la cuales son: Recursos Humanos y Ambiente de
Trabajo, Bienes Servicios e Infraestructura y Conocimiento de la Organización.

Finalmente, está la operación, esta categoría contiene los procesos administración
de proyectos específicos y el desarrollo y mantenimiento de software.



A continuación, muestro una lista de los beneficios establecidos de MoProSoft:

  • Está orientado a mejorar los resultados en las organizaciones de desarrollo de software, contribuyendo a los objetivos del negocio y no sirve solamente como marco de referencia para una certificación o evaluación.
  • Está dirigido a organizaciones dedicadas al desarrollo y/o mantenimiento de software.
  • No se requiere de una estructura de organización compleja para poder aplicarlo.
  • Sirve de base para las organizaciones que no cuentan con procesos establecidos.
  • Sirve de referencia para las organizaciones que ya tienen procesos establecidos.
  • Ayuda a las organizaciones a mantener la excelencia en los recursos humanos.
  • Establece un mecanismo para mantener el capital intelectual.
  • Está basado en los principales estándares internacionales, que aplican a la
  • industria de software, pero siendo práctico.

Niveles de maduración de MoProSoft
Actualmente existen seis niveles de madures de un proyecto implementado con el
modelo MoProSoft los cuales describiré a continuación.
  • Nivel 0: el proceso no esta implementado aun, en este nivel no hay evidencia de algún logro sistemático del proceso.
  • Nivel 1: en este nivel el proceso que se esta implementando alcanza su propósito.
  • Nivel 2: El proceso ejecutado descrito anteriormente está ya implementado de forma gestionada (planificado, supervisado y ajustado).
  • Nivel 3: El proceso gestionado descrito anteriormente está ahora implementado usando un proceso definido que es capaz de alcanzar sus resultados de proceso.
  • Nivel 4: El proceso establecido descrito anteriormente ahora se ejecuta dentro de límites definidos para alcanzar sus resultados de proceso.
  • Nivel 5: El proceso predecible descrito anteriormente es mejorado de forma continua para cumplir con los metas empresariales presentes y futuros.
Evaluación de MoProSoft
La empresa que ocupe el modelo de MoProSoft puede evaluar los procesos para
dos propósitos: ya sea para determinar la capacidad o madurez de sus procesos o
para mejorar los procesos es decir diseñar un ciclo de mejoras que logren mas
niveles de capacidad de sus procesos. A continuación, muestro los beneficios de
estas evaluaciones:

  • Facilita el conocimiento de sus fortalezas, debilidades y riesgos asociados a los procesos.
  • Proporciona una base que se puede emplear en la mejora de los procesos y en la determinación de la capacidad.
  • Toma en cuenta el contexto en el cual se implementan y ejecutan los procesos evaluados.
  • Produce la calificación de un conjunto de procesos seleccionados.
  • Toma como referencia la habilidad de los procesos para lograr su propósito.
  • Es adecuada a través de todos los dominios de aplicación y tamaños de la organización.
  • Puede proporcionar una comparación objetiva entre las organizaciones.
Conclusión

Este modelo esta diseñado para las micro, pequeña y medianas empresas que se
dediquen al desarrollo de software con el fin de crear estándares en sus proyectos
y puedan ser competitivas en contra de las grandes empresas entregando
productos de calidad a nivel de las normativas ISO, esto se logra gracias a que su
implantación no es muy complicada y no requiere una inversión alta y sus
resultados se logran apreciar en un corto o mediano plazo.



Introducción de CMMI

CMMI son las siglas de Modelo de Madurez de Capacidades de Integración, se
trata de un modelo que contiene buenas practicas y que provee a las
organizaciones de elementos esenciales para los procesos de negocios para que
sean mas efectivos. Fue desarrollo para procesos relativos al desarrollo de
software por la Carnegie-Mellon University, se creó en 1987 con el nombre de
Capacibility Maturity Model, este modelo se inspiró en el modelo de madurez
Manufacturig Maturity Model de Crosby.

Al principio este modelo se usaba para programas de defensa, pero fue
tanta su aceptación que fue sometido a varias revisiones e interacciones y fue llevado
a aplicarse fuera del desarrollo de software. Solo que hubo un problema en su
implementación ya que se extendió la creación de varios modelos de desarrollo de
software, fue así como se reestructuro este modelo a lo que actualmente lo
conocemos como CMMI.

Algunos de los objetivos del CMMI son que los productos y servicios deben
ser de alta calidad, crear valor para los accionistas, mejorar la satisfacción del
cliente, incrementar la participación del mercado y ganar reconocimiento de la
industria.

El propósito de un modelo CMMI varía según el enfoque, es decir, si
buscamos en los libros de texto encontraremos que el propósito de este modelo es
hacer la evaluación de la madurez de los procesos de una organización, para así
poder proporcionar una orientación referente a cómo se pueden llevar a cabo las
mejoras de aquellos procesos que darán lugar a mejores productos.

Otro enfoque es el de los mismos creadores que dicen que CMMI es
modelo para la administración de riesgos y que a su vez indica la capacidad que
tiene una determinada organización para administrar esos riesgos. Esta indicación
es precisamente el indicio de la probabilidad con la que una organización puede cumplir con sus promesas o brindar productos de alta calidad que resulten
atractivos para el mercado.

Existe otro enfoque en el cual se dice que el modelo proporciona un buen
indicador sobre el cómo una organización actuará ante determinadas situaciones
de estrés. Una organización que cuente con una gran madurez, así como con
altas capacidades, de seguro afrontará las situaciones inesperadas y de estrés
con calma.

Niveles de madurez
A continuación, se describe la lista de niveles de madures de este modelo:

  • Nivel 1: No Confiable- Ambiente impredecible donde las organizaciones no tienen actividades de control y no están diseñadas.
  • Nivel 2: Informal- Las actividades de control existen, pero no se ponen en práctica. Los controles dependen básicamente de las personas. No hay un entrenamiento formal ni comunicación de las actividades de control.
  • Nivel 3: estandarizado- Las actividades de control existen y están diseñadas, han sido documentadas y comunicadas a los empleados, las desviaciones de las actividades de control probablemente no se detecten.
  • Nivel 4: Monitoreado- Se utilizan herramientas en una forma limitada para soportar las actividades de control
  • Nivel 5: Optimizado- Es una estructura integrada de control interno con un monitoreo en tiempo real por la gerencia, así como mejoras continuas-auto control, se encuentran cambios más rápidos al momento de detectar errores en los manejos de las actividades o en las personas.
Así mismo las organizaciones no pueden ser certificadas CMMI. Por el
contrario, una organización es evaluada por medio de estos niveles, estas
evaluaciones tienen dos propósitos, Para determinar que tan bien los procesos de
la organización se comparan con las mejores prácticas CMMI y determinar qué
mejoras se pueden hacer. O bien Como requisito del cliente en licitaciones
públicas o concursos privados.

Beneficios del modelo CMMI
Este modelo no solo permite optimizar los procesos de negocio, sino que también
tiene otros beneficios como, por ejemplo, La gestión y la ingeniería de las
actividades se encuentran entrelazadas de una manera explícita, tan es así que
facilita el reconocimiento de los objetivos del negocio. Otro más es que Permite
hacer la incorporación de la experiencia adquirida en otras zonas de las mejores
prácticas. También Poder aplicar prácticas de alta madurez mucho más robustas.
Por último, pero incluso aún más importante trata de Cumplir de forma mucho más
completa con las normas ISO.

Disciplinas del modelo
CMMI presenta cuatro áreas de conocimiento para lograr sus objetivos los cuales
describiré a continuación:

  • Ingeniería de sistemas: este abarca el desarrollo total del sistema, aunque tal vez no incluya el desarrollo de software.
  • Ingeniería de software: en este se cubre el desarrollo de software, así como también su mantenimiento.
  • Desarrollo integrado de productos y procesos: es el enfoque sistemático de la colaboración de los involucrados a través del producto.
  • Acuerdo con los proveedores: este apartado se requiere en proyectos complejos ya que se necesita de proveedores para ejecutar funciones o incluso añadir modificaciones al producto.
En cuanto a sus representaciones, CMMI posee dos; ya sea por etapas o de forma continua, estas permiten llevar a cabo diferentes objetivos de mejora según el que escojamos. Pero a pesar de que la presentación y la organización de la información es diferente el contenido es el mismo en ambas.
CMMI por etapas da una secuencia probada para mejorar en donde cada una es base para la siguiente fase, es posible migrar esta representación a CMMI-SW. Seleccionando esta obtendremos una secuencia de las mejoras desde la administración básica hasta los niveles altos de madures, también permite la comparación de organizaciones por medio de los niveles de madurez. CMMI continuo toma como referencia a cada nivel que la vuelve una plataforma para evolucionar, también existen cinco niveles de madurez, Si seleccionamos este es porque nos centraremos en los problemas, la mitigación de riesgos, también permite la comparación de las áreas del proceso.

Conclusión
Como todo modelo de buenas prácticas, la adecuación lo es todo. No tiene sentido
convertir toda la empresa al modelo CMMI de la noche a la mañana, quizá ni
siquiera lo tenga nunca. La auténtica utilidad de CMMI es compararlo con nuestra
gestión de procesos real, intentar entender las diferencias y ver qué
consecuencias positivas y negativas aportaría la recomendación de CMMI.

Cuadro comparativo entre ambos modelos






sábado, 30 de marzo de 2019

MÉTRICAS POR CASOS DE USO

MÉTRICAS POR CASOS DE USO


 

Software de aeropuerto (usuario)


Las siguientes tablas, se utilizan para poder medir el esfuerzo necesario para poder realizar el software, de forma que se realizara de la siguiente forma:
Hora por persona: 5 horas
lunes a viernes(por semana): 20
Numero de empleados:4
Resultado: 4.27
4 meses y una semana para poder realizar este software enfocado a el usuario. 



Los casos de uso serán medidos desde simples hasta complejos 5-15 en ese mismo orden, en nuestro proyecto tiene 2 casos de uso de cada nivel. 

Nuestro actor llamado sql server hace referencia a la interacción de nuestra base de datos con el sistema el cual es simple según las normas establecidas.
Nuestro actor llamado compra de boletos tiene una complejidad media, pues esta necesita interacción con el sistema y humana.
Nuestro actor llamado consultas tiene una complejidad alta, pues es necesario una interacción avanzada entre el sistema y el usuario, donde se necesita una verificación por ambas partes.
Nuestro actor llamado cancelar compra tiene una complejidad media , el usuario realiza una solicitud y el sistema realiza una respuesta, de forma que cumple con la interacción usuario-sistema

martes, 12 de marzo de 2019

PRODUCTO: MÉTRICAS DE SOFTWARE

PRODUCTO: MÉTRICAS DE SOFTWARE


APLICACIÓN DE AEROPUERTO

esta aplicación busca gestionar toda la información que se genere dentro de un aeropuerto como lo es la creación de nuevos vuelos, agregar nuevos pilotos así como asignarlos a los aviones y vuelos, del lado del cliente este podrá conocer los vuelos disponibles así como comprar sus boletos.


EJEMPLO POR LINEA DE CÓDIGO (GESTOR DE AEROPUERTO)

Proyecto
LDC
Esfuerzo
Costo
Doc.
Errores
Defectos
personal
Alfa
200
10
3000
0
15
6
2
beta
230
26
3450
0
7
2
2


EJEMPLO POR PUNTO DE FUNCIÓN (GESTOR DE AEROPUERTO)
Calculo cuenta total:
Valor dominio
Cuentas
Grado complejidad
resultado
Entrada de usuario
8
Promedio (4)
32
Salidas de usuario
3
Simple (3)
9
Peticiones de usuario
3
Simple (3)
9
Archivos
3
Simple (7)
21
Interfaces externas
1
Simple (5)
5
Factor de ajuste:
39
Total:
76


Factor de ajuste
Comunicación de datos
3
Procesamiento distribuido
4
Perfomance
1
Configuración del equipamiento
1
Volumen de transacciones
3
Entrada de datos on-line
5
Interfase con el usuario
3
Actualización on-line
3
Procesamiento complejo
2
Reusabilidad
3
Facilidad de implementación
2
Facilidad de operación
3
Múltiples locales
3
Facilidad de cambios
2


Cuenta total

PF=76 x [.65 +.01 x 39] =79.04

PRESUPUESTO

152 hh / 2 =76 hh por persona 8 horas diarias entre 19 días =2.375
84.36 x 2.375 = 199.5

Costo = ( 3 * 1.97 * 12,000) + 7000 = 77,920 para el desarrollo.


CAPTURAS DE PANTALLA













martes, 26 de febrero de 2019

UTILERIAS: PROCESSDASH Y ENTERPRISE ARCHITEC


UTILERIAS: PROCESSDASH Y ENTERPRISE ARCHITEC

PROCESS DASHBOARD

es una iniciativa de código abierto para crear una herramienta de soporte PSP. PSP y el TSP son tecnologías notables que pueden cambiar la cara de la industria del software, y compartimos el entusiasmo de SEI para promover su uso generalizado.


Fue desarrollado originalmente en 1998 por la Fuerza Aérea de los Estados Unidos, y ha continuado evolucionando bajo el modelo de código abierto. Está disponible gratuitamente para descargar bajo las condiciones de la Licencia Pública GNU

Process dashboard soporta:
  • Recopilación de datos - Tiempo, defectos, tamaño; plan vs. datos reales
  • Planificación : scripts, plantillas, formularios y resúmenes integrados, PROBE, valor ganado
  • Seguimiento - Potente soporte de valor ganado
  • Análisis de datos : los gráficos e informes ayudan en el análisis de las tendencias de datos históricos.
  • Exportación de datos - Exportar datos a Excel, o exportar datos a formato de texto para su uso con herramientas externas.
Las principales fortalezas del Process dashboard son:
  • Facilidad de uso
    • Optimiza la facilidad de recopilación de las métricas más frecuentes (tiempo y defectos)
    • Otras ayudas de proceso (scripts, formularios, plantillas y resúmenes) están a solo un clic del mouse
    • Su pequeña huella en pantalla permite que la herramienta coexista con entornos de desarrollo integrados
    • Las tareas se organizan jerárquica mente, reflejando la estructura de desglose del trabajo del proyecto.
  • Flexibilidad / extensibilidad
    • Se pueden agregar nuevos procesos y nuevos tipos de datos sin programación
    • Los scripts, plantillas, formularios y resúmenes de procesos son HTML y, por lo tanto, se pueden crear con cualquier editor HTML.






ENTERPRISE ARCHITECT



es una herramienta de diseño y modelado visual basada en OMG UML . La plataforma soporta: el diseño y construcción de sistemas de software; modelado de procesos de negocio; y modelado de dominios basados ​​en la industria. Es utilizado por empresas y organizaciones no solo para modelar la arquitectura de sus sistemas, sino también para procesar la implementación de estos modelos en todo el ciclo de vida del desarrollo de la aplicación.

características principales:


Gestión de requisitos


Las características comunes de la gestión de requisitos soportada por Enterprise Architect incluyen la personalización de cómo se documentan los requisitos, vincular los requisitos a los detalles de diseño e implementación, y proporcionar la Trazabilidad de los requisitos a través de las fases de diseño y construcción. Estos requisitos pueden estar sujetos a gestión de cambios, procesamiento del flujo de trabajo, comparación de referencia y auditoria.

Modelado y análisis de negocios

Enterprise Architect admite varios métodos de modelado de procesos de negocios utilizando UML como el lenguaje de modelado de base. Los lenguajes principales para el modelado y análisis de negocios incluyen BPMN y BPEL 





Simulación

La simulación de modelo es compatible con:

  • Diagramas de comportamiento:
    • Máquinas de estado
    • Interacción (diagramas de secuencia)
    • Ocupaciones

Desarrollo del sistema

De acuerdo con los principios de diseño de Model Driven , Enterprise Architect admite transformaciones MDA de estructuras de clase PIM a estructuras de clase PSM , ingeniería de ida y vuelta de código para 10 lenguajes de software y varios lenguajes de sistemas HDL incrustados Ada , VHDL y Verilog ). También es compatible con la generación de código de modelos de comportamiento.
Idiomas soportados:
  • ActionScript
  • do
  • C # (para .NET 1.1 y .NET 2.0)
  • C ++ (estándar, más las extensiones de C ++ administradas por .NET)
  • Delphi
  • Java (incluyendo Java 1.5, Aspectos y Genéricos)
  • PHP
  • Pitón
  • Visual Basic
  • Visual Basic .NET

Métricas de diseño de componentes.

Métricas de diseño de componentes.


Trabajo: sensor anti-steal Prime
Integrantes:
      José de Jesús Cortezano Arellano.
      Velasco Amaya Vicente Ananías.
      López Mesa Alejandro Daniel.
      Palafox Méndez Vicente.
      Martinez Dominguez Edzon Carlos.



Programa

Las métricas de diseño de software tienen como finalidad entregar un producto con mejorar la calidad, de forma que se puedan pulir ciertos aspectos, que, de primeras, un usuario común no tomaría en cuenta. Pues tomando estas métricas podrás lograr pulir aspectos que de primeras no parecerían muy importantes, pero que, sin embargo, a la hora de la practica si tienen un gran peso, de forma que el producto que entregues, tenga mayor fiabilidad y confianza.

4.1.6 FURPS
(Funcionality, Usability, Reliability, Performance, Supportability)
Hewlett-Packard ha desarrollado un conjunto de factores de calidad de software al
que se le ha dado el acrónimo de FURPS:
•          Funcionalidad. Se aprecia evaluando el conjunto de características y
capacidades del programa
•          Usabilidad (facilidad de empleo o uso) Se valora considerando factores
humanos, la estética, consistencia y documentación general.
•          Fiabilidad. Se evalúa midiendo la frecuencia y gravedad de los fallos, la
exactitud de las salidas (resultados)

Debido a que este será un proyecto con la finalidad de que los usuarios que lo adquieran obtengan una mayor seguridad en cuestión de sus artículos personales., esta métrica nos podría ayudar ya que estudiaremos la forma en la que el dispositivo sea fácil de manejar, así como que tenga una respuesta rápida y efectiva y con las ayudas de este el articulo tenga la oportunidad de ser cada vez más efectivo es su tarea.



4.5 Métrica de pruebas.
Estas métricas tienen como objetivo, realizar un test complejo, de forma que el software quede aprobado en cualquier ámbito, para evitar la existencia de fallos no previstos.
La mayoría de las métricas propuestas se concentran en el proceso de pruebas, no en las características técnicas de las pruebas mismas, pueden usarse para predecir el esfuerzo global.

 Las métricas de diseño de alto nivel proporcionan información sobre facilidad o dificultad asociada con la prueba de integración y la necesidad de software especializado de prueba.
Explicación: Consiste en hacer una inversión, de forma que el programa pase por un conjunto de pruebas, de forma que la versión final, salga con la menor cantidad de errores posible.
De forma que utilizamos esta norma, para entregar una prueba al cliente de que nuestro producto realizara su tarea correctamente sin errores, pues esta fue sometida a una gran cantidad de pruebas, por lo que los errores no van a ser comunes, así tendrán la seguridad de que este trabaja correctamente.




4.4.- Métricas de código fuente.

Esta consiste en optimizar el código, de forma de que este sea rápido y eficiente, además de neutralizar todos los fallos.

Usaremos esto en nuestro proyecto, ya que arduino requiere la menor cantidad posible de código, además de que nuestro proyecto debe tener respuesta inmediata, debido a su temática principal, el robo. Por lo que pulir el código debe ser una prioridad dentro del proyecto.