![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#21
|
||||||||||||||
|
||||||||||||||
|
Bueno... esto lo que yo entiendo...
Cita:
Cita:
Vale. Entendido... es que ya me ha pasado en otras ocasiones en que nadie me termina entendiendo y puede que en alguna de éstas le "salten los tapones" (espero que nunca suceda) por hacerme sentar cabeza. Cita:
Cita:
Cita:
Cita:
Cita:
Cita:
Cita:
Cita:
Cita:
Cita:
Cita:
[Neftali] El problema para mí, es que no se cómo expresar eso en palabras. Creo que más o menos todos tenemos en la cabeza las mismas ideas sobre Modularización, pero ¿cómo cuantificarlo? [/Neftali] ¡Bingo! Si bien todos lo han dicho... y yo también... no hay una única manera de responder. Por eso inicié este debate: yo quiero saber ¡hasta que punto le podrían asignar un valor! Cita:
Se puede generalizar... hasta cierto punto. Hay técnicas de inferencia para determinarlo... y como ya se ha dicho... depende de la experiencia. Veamos, una frase que decimos mucho: Si se sabe que un producto realizado de una manera es similar a otro... pues... lo resolvemos de la misma manera. ¿Se me entiende a lo que quiero llegar? Creo que este thead es el má largo que escribí... pero sigamos. No se de que manera lo harán ustedes, yo por mi parte voy a compartir lo que mi pequeño, novato, e infantil cerebro me ha permitido elaborar: Por cada función/procedimiento/método: 1. Calculo su complejidad ciclométrica 2. Calculo su complejidad computacional 3. Obtengo su ancho de banda: cantidad de parámetros de entrada y salida 4. Obtengo su ancho de operatividad: cantidad de variables y constantes 5. Obtengo las siguientes métricas: 5.1. Utilización de Banda: relación de banda de entrada respecto al ancho total. 5.2. Utilización procedimental: relación de uso de memoria (1- (Variables/Ancho de operatividad)). Cuanto más alto sea el valor se penaliza. En lo posible, tratar de que sea bajo. 5.3. Razonabilidad operacional: determina la relación de uso de memoria respecto al ancho de banda. Ro = Ancho de Banda/Ancho de operatividad Este valor lo utilizo para diagnosticar la cantidad de variables que podrían estar en exceso, o que podrían ser eliminadas. Claro está, que al final es un valor subjetivo... eliminar alguna variable intermedia tal vez dificulte el entendimiento del código. Y en ocasiones no se puede eliminar la/s variable/s. 6. Calculo la productividad: 6.1. Productividad de Banda: que determina el rendimiento de los parámetros con respecto a la complejidad ciclométrica. 6.2. Productividad Operacional: que determina el rendimiento de la memoria interna respecto a la complejidad ciclométrica. 6.3. Productividad General: el promedio entre las dos anteriores. También se puede calcular la productividad en base a las líneas de código. Cone esto trato de averiguar que "tanto se usa" los parámetros y las variables durante la ejecución del algoritmo. Trato en lo posible de que tener pocos parámetros y menos uso de memoria con el menor código posible. 7. analizo el diagrama de flujo de la función y determino los casos de prueba. Desarrollo los casos de prueba y determino los posibles errores y defectos que tiene la unidad. 8. Con estos datos, y la cantidad de líneas de código obtengo otras métricas. 9. Cuando finalizo con todas las funciones, saco un valor estimativo (media ponderada) para determinar el valor asociado al módulo. A nivel de módulos calculo un valor de la modularidad prediciendo el valor de cohesión. Una estimación que aplico es determinar la utilización que se da a los parámetros y variables que se "pasan" entre módulos. Aquel tipo que predomine... se le asigno al modulo a estos valores lo pondero entre todos los módulos. Cuanto más bajo sea... es preferible. También calculo la razón entre el ancho y largo de la carta de estructura. En lo posible trato de que el valor esté en el medio. Yo me impongo que mi límite de esfuerzo sea del 80%, de modo que el otro 20% se lo dedicaré al posterior mantenimiento. Con todos estos valores... los promedio (media ponderada y con pesos obtenidos de otros resultados anteriores) y lo normalizo con respecto al tiempo invertido. Por ejemplo si para toda la actividad me tomo 30 días y el valor ponderado es de 12, tengo que: 80% de 30 = 24. Por tanto: 12/24 = 0,5 o 50%. Este fué mi esfuerzo... podría haber mejorado. A todos estos valores los voy registrando y haciendo cálculos estadísticos de tendencia y reajusto los pesos de las operaciones... y el ciclo comienza de nuevo. Calculo otras métricas pero no viene al caso. Si quieren saber quien tiene la culpa de que la locura por estos números: Roger S. Pressman, Yourdon, Craig Larman, y otros loquitos que andan sueltos. Y claro... yo... por hacerles caso. Se que puede ser un poco extremo... no se... a veces me asusto a mi mismo por la obseción de saber que tan bien hago mi trabajo... Creo que me hace falta unas buenas vacaciones... bien lejos de una máquina. Saludos, disculpen por el semejante rollo que me he escrito. Escucho comentarios, incluídos los del tipo: "estas loco man... " |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Programas que calculan la complejidad operacional | Delphius | Varios | 5 | 19-01-2007 10:34:34 |
| cual seria el componente correcto? | DM2005 | Varios | 0 | 04-07-2006 21:55:39 |
| Cual seria lo ideal? | Coco_jac | Gráficos | 1 | 10-06-2005 01:38:42 |
| Cual seria el equivalente de AllTrim (clipper) | Alfredo | OOP | 2 | 04-03-2005 15:58:44 |
| cual seria la mas adecuado base de datos... | ronimaxh | Firebird e Interbase | 8 | 23-04-2004 17:47:15 |
|