Sunteți pe pagina 1din 31

Desarrollo de software:

procesos y estndares
03: Complejidad del software
Eugenio Jacobo Hernndez Valdelamar
20!
09/2014 EJHV - Dev sw: Procesos y Estndares 2
Contenido

El software es cosa compleja

"edici#n de la complejidad

$%ara &u' medir(

"'tricas )tama*o+ estructura , flujo-

$.u' tan dif/cil es medir un deseo(

Estimaci#n de esfuerzo de un pro,ecto de


software
09/2014 EJHV - Dev sw: Procesos y Estndares 3
0emario
1ituaci#n nacional e internacional
%rocesos de
desarrollo de
software
"odelos de
mejora del
proceso 2
%ersonal+
ad&uisici#n+
desarrollo+
ser3icio
4esarrollo de
software
)&u' es+
&ui'n lo 5ace+
c#mo lo 5ace
&u' 5ace-
t
6ndustrializaci#n
del
desarrollo
de software
)fbricas ,
colaboraci#n-
Calidad
09/2014 EJHV - Dev sw: Procesos y Estndares 4
7El terreno da lugar a las mediciones+ 'stas dan
lugar a las 3aloraciones+ las 3aloraciones a
los clculos+ 'stos a las comparaciones+ , las
comparaciones dan lugar a las 3ictorias87
1un 0zu+ El arte de la guerra
09/2014 EJHV - Dev sw: Procesos y Estndares 5
Complejidad

1istema8 Conjunto de elementos interralacionados entre s/ , &ue


tienen un objeti3o com9n8

Complejidad : Complicado+ dif/cil+ conjunto de 3arias cosas


interrelacionadas8

1oftware 2; 1istema 2; Complejidad

6ndica la cantidad de elementos de un sistema )complejidad


cuantitati3a-8

6ndica las interacciones potenciales )conecti3idad- , el n9mero de


estados posibles &ue se producen a tra3's de 'stos )3ariedad+
3ariabilidad-8

Variedad8 <9mero de elementos discretos en un sistema8

Variabilidad8 =ndice m>imo de relaciones posibles


)5ipot'ticamente n?-8
09/2014 EJHV - Dev sw: Procesos y Estndares 6
$%or &u' es complejo el software(

@a complejidad se deri3a de cuatro elementos )Aooc5-:

4ominio del problema )< re&uisitos+ comunicaci#n con el


usuario+ especificaci#n+ cambios-

4ificultad para gestionar el proceso de desarrollo )selecci#n


, duraci#n del ciclo de 3ida+ cantidad , disposici#n de
recursos dedicados-

Ble>ibilidad &ue se puede alcanzar a tra3's del software


)normas , estndares de construcci#n-

%roblemas en la caracterizaci#n del comportamiento en


sistemas discretos )3ariables+ estados+ combinaciones+
afectaci#n por e3entos e>ternos-
09/2014 EJHV - Dev sw: Procesos y Estndares
C por si esto fuera poco888

Complejidad esencial )in5erente-

El software intenta simplificar un problema dificil8

El problema &ue se trata de solucionar es 7dificil de trabajar7 , 7no


es di3ertido78

El conte>to es un laberinto de reglas+ e>cepciones , casos


especiales8

Complejidad incidental )accidental- 2 pro3ocada

Elecci#nDuso de la 5erramienta e&ui3ocada )usa un desarmador


para cla3ar un cla3o-

Elecci#nDuso de abstracciones err#neas )un registro de in3entario


no es un post de un blog-

<o elegirDusar abstracciones )sin una abstracci#n de alto ni3el


adecuada+ todo &ueda e>presado en c#digo de bajo ni3el-
09/2014 EJHV - Dev sw: Procesos y Estndares !
"edici#n de la complejidad del
software

@a complejidad incremental de las aplicaciones de


software modernas tambi'n aumenta la dificultad de 5acer
&ue el c#digo sea confiable , fcil de mantener8

En a*os recientes+ se 5an desarrollado muc5as


mediciones de software+ conocidas como m'tricas de
c#digo+ &ue pueden a,udar a los programadores a saber
d#nde se debe re3isar el c#digo o realizar ms pruebas8

@as m'tricas Ede complejidad del softwareF son


simplemente medidas cuantitati3as de ciertas
caracter/sticas de un pro,ecto de desarrollo8
09/2014 EJHV - Dev sw: Procesos y Estndares 9
$%ara &ue medir(

Es importante disponer de 5erramientas &ue nos permitan


tratar con la complejidad8 En particular+ es deseable
disponer de procedimientos para medir algunos de sus
aspectos+ de cara a identificar programas especialmente
complejos+ para tratar de 5acerlos ms sencillos8

Gl analizar mediante m'tricas las especificaciones , los


primeros documentos del dise*o+ podemos estimar de una
forma ms e>acta el tiempo de desarrollo8

0ambi'n es importante relacionar estas medidas con


parmetros fundamentales del desarrollo software+ como
tiempo de desarrollo+ de pruebas+ dificultad de
mantenimiento+ n9mero pre3isible de errores+ etc8
09/2014 EJHV - Dev sw: Procesos y Estndares 10
"'tricas de complejidad del
software )c#digo-

"'tricas del tama*o del programa8

<9mero de l/neas8

"'tricas de Halstead8

"'tricas de la estructura , el flujo de datos8

6nter3alo entre referencias a datos8

%ar de uso segmento2global8

"edida . de C5apin8

"'tricas del flujo de control8

<9mero ciclomtico )"cCabe-

E>tensi#n de ",ers al n9mero ciclomtico


09/2014 EJHV - Dev sw: Procesos y Estndares 11
HI+ mides $, luego(

%roponer una m'trica no solo es especificar un procedimiento8

Es importante contar con elementos &ue permitan interpretar


los resultados despues de aplicar el pocedimiento8

Ejemplo: e3aluaci#n de riesgo a partir del n9mero ciclomtico )


;-
09/2014 EJHV - Dev sw: Procesos y Estndares 12
Caso de estudio: estimaci#n de
esfuerzo

Especificaci#n:

Jn grupo de consultorios m'dicos desea sistematizar su


control de citas , pacientes para poderlos atender en sus
diferentes localidades8

El usuario podr mantener la informaci#n de citas+ pacientes


, m'dicos8

%odr imprimir los listados de las citas diarias8

4esea &ue la aplicaci#n les indi&ue errores+ lo mismo &ue


a,uda a ni3el pantalla+ pero no podr mantener el arc5i3o de
errores ni el de a,uda8 Estos son mantenidos por otra
aplicaci#n8
09/2014 EJHV - Dev sw: Procesos y Estndares 13
Estimen+ por fa3or )en 0 minutos-
El resultado debe estar en 5oras
09/2014 EJHV - Dev sw: Procesos y Estndares 14
Kesultados
09/2014 EJHV - Dev sw: Procesos y Estndares 15
J,+ Lacaba de 5ablar el cliente?

.ue lo &uiere web , mutiplataforma8

.ue solo tiene infraestructura para soportar CM6Ns asi &ue debe
estar 5ec5o en C8

.ue 3a a necesitar su informaci#n &ue tiene en Gccess en la


nue3a A4 )no puede capturar todo de nue3o+son muc5os
registros+ muc5os-8

.ue a la entrega definirn la imagen institucional8

.ue necesita &ue 7los recursos7 est'n en sitio )0ijuana-

.ue anda apretado de presupuesto+ asi &ue espera &ue no


salga mu, caro8

.ue 3a a re&uerir soporte de OD2!


09/2014 EJHV - Dev sw: Procesos y Estndares 16
Estimen+ por fa3or )de nue3o-
El resultado debe estar en 5oras
09/2014 EJHV - Dev sw: Procesos y Estndares 1
1egunda tanda
09/2014 EJHV - Dev sw: Procesos y Estndares 1!
Gnlisis de resultados

$.u' tipos de complejidad se plantean en el caso(

">imo , m/nimo de la estimaci#n

">imo , m/nimo de la estimaci#n 2

$.u' tanto 3ariaron la primera , la segunda


estimaci#n(

$.u' estimaron(
09/2014 EJHV - Dev sw: Procesos y Estndares 19
1olo por curiosidad888

$Han 5ec5o esto alguna 3ez(

$1aben como estimar esfuerzo de un pro,ecto de


software(

$C#mo le 5acen(

$Ha, alguien ms &ue 5ace esto en su empresa(


Hjala no sea un 3endedor8

$@es suena el t'rmino 7estimaci#n de alto ni3el7(


09/2014 EJHV - Dev sw: Procesos y Estndares 20
71i no puedes ser fuerte+ pero tampoco
sabes ser d'bil+ sers derrotado87
7@a in3encibilidad es una cuesti#n de
defensa+ la 3ulnerabilidad+ una cuesti#n
de ata&ue87
1un0zu P El arte de la guerra
09/2014 EJHV - Dev sw: Procesos y Estndares 21
Baceted Beature Gnal,sis
5ttp:DDbo>esandarrows8comDfaceted2feature2anal,sisD
%ermite determinar complejidad+
pero no es claro el clculo de
esfuerzo8
09/2014 EJHV - Dev sw: Procesos y Estndares 22
Jse Case %oints
5ttp:DDwww8ibm8comDde3eloperworQsDrationalDlibrar,DedgeD0RDmar0RDcollarisSdeQQerD
09/2014 EJHV - Dev sw: Procesos y Estndares 23
El error del repostero

Gl repostero le encargan 0 pasteles8

El repostero determina &ue debe cobrar lo &ue consuma de


5arina+ lec5e+ az9car+ frutas+ le3adura+ crema8

$.u' pasa si no toma en cuenta(

El gas+ electricidad+ el transporte

1u esfuerzo )o de &uen lo a,ude-

El tiempo &ue tarda en 5acer los pasteles , la fec5a de


entrega

El conocimiento de su 7receta secreta7

@a pregunta del mill#n: $gana o pierde(


09/2014 EJHV - Dev sw: Procesos y Estndares 24
1eg9n el sapo888
09/2014 EJHV - Dev sw: Procesos y Estndares 25
@e,es adicionales

@e, de %arQinson

El trabajo se e>pande para llenar el tiempo


disponible8

@e, de ArooQ

Gsignar ms personas a un trabajo retrasado+ solo


atrasar ms el trabajo8
09/2014 EJHV - Dev sw: Procesos y Estndares 26
"odelo de estimaci#n
5ttp:DDwww8&pmg8comDimagesDc5atSestimatingSsoftware8jpg
09/2014 EJHV - Dev sw: Procesos y Estndares 2
"'todos de estimaci#n

"'todos 5eur/sticos

Juicio del e>perto

Gnalog/a

Estimaci#n por descomposici#n en tareas

Estimaci#n basada en puntos de funci#n

B% @ite

Earl, and .uicQ Bunction %oints )ET.B%-

%untos de casos de uso )JC%- );-

"odelos param'tricos de estimaci#n );-

CHCH"H )Constructi3e Cost "odel- 66

1@6" )1oftware @6fec,cle "anagement-


09/2014 EJHV - Dev sw: Procesos y Estndares 2!
Comentarios finales

El software es complejo8

%ero las soluciones a poblemas complejos


generan 3alor8

@a complejidad es continua durante todo el


pro,ecto+ asi &ue el esfuerzo por mitigarla+
tambi'n debe ser continuo8

09/2014 EJHV - Dev sw: Procesos y Estndares 29


0area

Kealizar la estimaci#n de esfuerzo )Mantt- del sistema de control de


citas , pacientes de un consultorio m'dico )ejemplo al final de
5ttp:DDingsw8ccbas8uaa8m>DsitioDimagesDmaterialDmetricasBp85tm-

Hbtener el costo monetario a partir de la estimaci#n )c#mo(-

.u' 5acer si el cliente dice &ue es caro(

.u' 5acer si el cliente cambia lo &ue &uiere(

.u' 5acer si el cliente acepta la propuesta(

.u' 5acer si el cliente rec5aza la propuesta(

.ui'n decide si se tomaDejecuta el pro,ecto( .u' implica aceptar(

%or &u' parece &ue la 7competencia7 siempre tiene costos menores(


09/2014 EJHV - Dev sw: Procesos y Estndares 30
Keferencias

"'tricas de Complejidad del 1oftware );-

"'tricas giles , cuadro de mandos integral para 1crum );-

Gnlisis de puntos de funci#n );-

1oftware comple>it, anal,sis for Ja3a1cript projects );-

Comple>it, 05eor, for 1oftware 4e3elopers );-

Comple>it, Keduction in 1oftware Engineering )Crui1E- );-

"astering t5e AlacQ Grt of 1oftware %roject Estimation );-

1oftware estimation b, e>ample );-

Concrete Estimation )size+effort+sc5edule- );-


09/2014 EJHV - Dev sw: Procesos y Estndares 31
Keferencias )2-

Arajes5 Iumar 1ing5 and G I "isra8 Grticle:


1oftware Effort Estimation b, Menetic Glgorit5m
0uned %arameters of "odified Constructi3e
Cost "odel for <G1G 1oftware %rojects8
6nternational Journal of Computer Gpplications
UR)R-:2222V+ 4ecember 2028

S-ar putea să vă placă și