UNIDAD II GESTION DE UN PROYECTO DE SOFTWARE: SOFTWARE: MÉTRICAS, ESTIMACIÓN Y PLANIFICACIÓN.
No es sufici suficient ente e avanzar avanzar a través través de las etapas etapas tradic tradiciona ionales les del proceso proceso de construcción de software y esperar un producto satisfactorio al final del mismo. El proceso de producción de Software tiene que ser gestionado (administrado) y dirigido de una manera extremadamente rigurosa y cuantitativa. e este modo se podr! podr! veri verififica carr que que el tra"a tra"a#o #o corr corresp espon ondi dien ente te a cada cada fase fase se $a real realiz izado ado completamente dentro de los plazos de tiempo y costo esta"lecido y de acuerdo con est!ndares espec%ficos de calidad. &or lo tanto' las claves del éxito en la gestión de desarrollo se Software Software son una adecuada gestión del proyecto proyecto de desarrollo de Software y una adecuada gestión del proceso de software.
2.1- Gesti! "e #! $%&'e(t& *ué entendemos por gestión del proyecto de desarrollo de Software+ ,a gestión del proyecto proyecto consiste en la utilización utilización de las técnicas y actividades de gestió gestión n requeri requeridas das para conseguir conseguir un product producto o Softw Software are de alta alta calida calidad' d' de acuerdo con las necesidades de los usuarios' dentro de un presupuesto y con una planificación de tiempos esta"lecidos previamente.
T)%e)s T)%e)s C%*ti()s e! +) Gesti! "e #! P%&'e(t& El n-mero de tareas identifica"les a realizar por un director de proyectos' dentro del !rea de gestión de proyectos excede de cien' Sin em"argo' $ay tres que son cr%ti cr%ticas cas y que que de"e de"en n estar estar desa desarro rrollllad adas as correc correcta tame ment nte e si se dese desea a que que el proyecto termine "ien. Estas tareas son
) Esti) Esti)(i (i! ! "e "#%)(i "#%)(i!, !, (&st&, (&st&, ' es#e%/ es#e%/& & necesario para construir el producto. 0 P+)! P+)!i ii( i()(i )(i! ! de tareas a realizar' asignación de personas' tiempos' etc' para construir el producto. durant nte e la real realiz izac ació ión n del del tra" tra"a# a#o' o' para para aseg asegur urar ar el ( Se#iie!t&, dura cumplimient cumplimiento o de lo planificado planificado en cuanto a costos' fec$as' etc. En caso de desviaciones del plan' se de"e tomar las medidas pertinentes.
1
Estimación
planificación
Seguimiento
esarrollo
Re+)(i! e!t%e +)s t)%e)s "e esti)(i! $+)!ii()(i! ' se#iie!t&.
Gesti! Ei()/ ,a gesti gestión ón efic eficaz az de un proy proyect ecto o de Softw Software are se encue encuent ntra ra en tres/ tres/ pes/ pes/ personal, problema y proceso. El orden no es ar"itrario.
Pe%s&!)+: ,a necesidad de contar con personal para el desarrollo del Software altamente preparado y motivado con esencial para cualquier organización. E+ $%&0+e): 0ntes de poder planificar un proyecto' se de"er%an esta"lecer sus o"#etivos' su !m"ito' se de"er%an considerar soluciones alternativas e identificar las dificultades técnicas y de gestión. Si esta información' es imposi"le definir una estimación razona"le (y exactas ) del costo' una valoración efectiva del riesgo' una su"división realista de las tareas del proy proyect ecto o o una una plan planifific icaci ación ón del del proy proyect ecto o aseq asequi ui"l "le e que que propo proporci rcione one una una indicación fia"le del progreso.
E+ $%&(es&: 1n proceso de Software proporciona la estructura desde la que se puede esta"lecer un detallado plan para el desarrollo del software. 1n peque2 peque2o o n-me n-mero ro de actividades actividades esenciale esenciales s se pueden aplicar a todos los proyectos de Software' sin tener en cuenta su tama2o o comple#idad. 2
0 continuación descri"iremos mas en fondo cada uno de estos componentes.
PERSONAL L&s $)%ti(i$)!tes El proceso del Software (y todos los proyectos de Software) lo componen participantes que pueden clasificarse en una de cinco categor%as que definen los aspectos de negocios que a menudo tienen una significativa influencia en el proyecto.
1. Gestiones Superiores,
2. Gestores (técnicos)del proyecto que deben planificar, motivar, organizar, y controlar a los profesionales que realizan el trabao de Soft!are. ". #rofesionales' que proporcionan las capacidades técnicas necesarias para
la ingenier%a de un producto o aplicación. $. %lientes, que especifiquen los requisitos para la ingenier%a del software. &. 'suarios finales, que interaccionan con el Software una vez que se $a entregado para la producción. 3odos los proyectos de Software est! compuestos por los participantes apuntados anteriormente. &ara ser eficaz' el equipo del proyecto de"e organizarse de manera que maximice las $a"ilidades y capacidades de cada persona. 4se es el tra"a#o del #efe de equipo.
L&s ees "e e3#i$& ,a gestión de un proyecto es una actividad intensamente $umana' y por esta razón' los componentes profesionales del Software a menudo no son "uenos #efes de equipo. *ué es lo que "uscamos cuando seleccionamos a alguien para dirigir un proyecto de Software+
M&ti4)(i!.- ,as $a"ilidades para motivar (con un 5tira y arro#a6) al personal técnico para que produzca conforme a sus me#ores capacidades. O%)!i/)(i!.- ,as $a"ilidades para moldear procesos existentes ( o inventar unos nuevos) que permita al concepto inicial transformarse en un proyecto final. I"e)s & i!!&4)(i!.- ,a $a"ilidad para motivar al personal para crear y sentirse creativos incluso cuando de"an de tra"a#ar dentro de los l%mites. El éxito de los gestores de proyectos se "asa en aplicar un estilo de gestión en la resolución de pro"lemas. Es decir' un gestor de proyectos de Software de"er%a de concentrarse en entender el pro"lema que $ay que resolver' gestionando el flu#o de ideas y' al mismo tiempo' $aciendo sa"er a todos los miem"ros del equipo 3
(mediante pala"ras y muc$o m!s importante' con $ec$os) que la calidad es importante y que no de"e verse comprometida.
E+ e3#i$& "e S&t5)%e Existen casi tantas estructuras de organización de personal para el desarrollo de Software como organizaciones que se dedican a ello. &ara "ien o para mal' el organigrama no puede cam"iarse f!cilmente. ,as consecuencias pr!cticas y pol%ticas de un cam"io de organización no est!n dentro del alcance de las responsa"ilidades del gestor de un proyecto de Software. Sin em"argo' la organización del personal directamente involucrado en un nuevo proyecto de Software est! dentro del !m"ito del gestor del proyecto. ,a 7me#or/ estructura de equipo depende del estilo de gestión de una organización' el n-mero de personas que compondr! el equipo' sus niveles de preparación y la dificultad general del pro"lema. 8antei 980N:;< sugiere tres organigramas de equipo genéricos
Des(e!t%)+i/)"& "e&(%6ti(& 7DD. Este equipo de ingenier%a de Software no tiene un #efe permanente. 8!s "ien' 6 se nom"ran coordinadores de tareas a corto plazo y se sustituyen por otros para diferentes tareas6 . ,as decisiones so"re pro"lemas y los enfoques se $acen por consenso del grupo. ,a comunicación entre los miem"ros del equipo es $orizontal. Des(e!t%)+i/)"& (&!t%&+)"& 7DC. Este equipo de ingenier%a de Software tiene un #efe definido que coordina tareas espec%ficas y #efes secundarios que tienen responsa"ilidades so"re su"tareas. ,a resolución de pro"lemas sigue siendo una actividad del grupo' pero la implementación de soluciones se reparte entre su"grupos por el #efe del equipo. ,a comunicación entre su"grupos e individuos es $orizontal. 3am"ién $ay comunicación vertical a lo largo de la #erarqu%a de control. Ce!t%)+i/)"& C&!t%&+)"& 7CC. El #efe del equipo se encarga de la resolución de pro"lemas a alto nivel y la coordinación interna del equipo. ,a comunicación entre el #efe y los miem"ros del equipo es vertical. 8ante% descri"e siete factores de un proyecto que de"er%an considerarse cuando se planifica el organigrama de equipos de ingenier%a del Software • • • • • • •
,a dificultad del pro"lema que $ay que resolver. El tama2o del programa resultante en l%neas de código o puntos de función El tiempo en que el equipo estar! #unto (tiempo de vida del equipo) El grado en que el pro"lema puede ser modularizado. ,a calidad requerida y fia"ilidad del sistema que se va a construir ,a rigidez de la fec$a de entrega El grado de comunicación requerido para el proyecto. 4
EL PRO8LEMA El gestor de un proyecto de Software se enfrenta a un dilema al inicio de un proyecto de ingenier%a de Software. Se requieren estimaciones cuantitativas y un plan organizado' pero no se dispone de información sólida. 1n an!lisis detallado de los requisitos del Software proporcionara la información necesaria para las estimaciones' pero el an!lisis a menudo lleva semanas o meses. 0-n peor' los requisitos pueden ser fluidos' cam"iando regularmente a medida que progresa el proyecto.
90it& "e S&t5)%e ,a primera actividad de gestión de un proyecto de= Software es determinar el !m"ito del Software. El !m"ito se define respondiendo a las siguientes cuestiones
C&!tet&. >ómo enca#a el software a construir en un sistema' producto o contexto de negocios mayor y qué limitaciones se imponen como resultado del contexto+ O0eti4&s "e i!&%)(i!. *ué o"#etos de datos visi"les al cliente (>apitulo ;;) se o"tienen del software+*ué o"#etos de datos son requeridos de entrada+ F#!(i! ' %e!"iie!t&. *ue función realiza el software para y transformar la información de entrada en una salida+ ?ay caracter%sticas de rendimiento especiales que a"ordar+ El !m"ito de un proyecto de Software de"e ser univoca y entendi"le a niveles de gestión y técnico. ,os enunciados del !m"ito del Software de"en estar delimitados.
Des(&$&si(i! "e+ $%&0+e) ,a descomposición del pro"lema' denominado a veces particionado, es una actividad que se asienta en el corazón del an!lisis de requisitos del Software. urante la actividad de exposición del !m"ito no se intenta descomponer el pro"lema totalmente. 8!s "ien' la descomposición se aplica en dos !reas principales (;) la funcionalidad que de"e entregarse y (@) el proceso que se emplear! para entregarlo.
E+ PROCESO ,as fases genéricas que caracterizan el proceso de Software 5 definición' desarrollo' y mantenimiento6 son aplica"les a todo Software. El pro"lema es 5
seleccionar el modelo de proceso apropiado para la ingenier%a del Software que de"e aplicar el equipo del proyecto.
M)"#%)(i! "e+ $%&0+e) ' e+ $%&(es& ,a planificación de un proyecto empieza con la maduración del pro"lema y del proceso' "as!ndose en unos criterios de adaptación. 3odas las funciones que se de"en tratar de tratar dentro de un proceso de ingenier%a por el equipo de Software de"en pasar por el con#unto de actividades estructurales que se $an definido para una organización de Software.
Des(&$&si(i! "e+ $%&(es& 1n equipo de Software de"er%a tener un grado significativo de flexi"ilidad en la elección del paradigma de ingenier%a del Software que resulte me#or para el proyecto y de las tareas de ingenier%a del Software que conforman el modelo de proceso una vez elegido. ,a descomposición del proceso comienza cuando el gestor del proyecto pregunta >ómo vamos a realizar esta actividad E>&+. &or e#emplo' un peque2o proyecto' relativamente simple' requiere las siguientes tareas para la actividad de comunicación con el cliente ;. esarrollar una lista de aspectos que se $an de clarificar @. Aeunirse con el cliente para resolver los aspectos que se $an de clarificar. B. esarrollar con#untamente una exposición del !m"ito del proyecto =. Aevisar el alcance del proyecto cuando se requiera
EL PROYECTO ,os veteranos profesionales de la industria a menudo se refieren a la regla * cuando estudian proyectos de Software particularmente dif%ciles +l primer noventa por ciento de un sistema absorbe el noventa por ciento del esfuerzo y tiempo invertido. +l ltimo diez por ciento se lleva el otro noventa por ciento del esfuerzo y del tiempo asignado 9C0?D=<.
2.2 Esti)(i! P%&0+e6ti() "e+ P%&(es& "e Esti)(i! "e+ S&t5)%e &ara $a"lar de las posi"ilidades actuales de la estimación' primero de"emos revisar su estado actual y explorar las necesidades de la comunidad de desarrollo de Software.
;<#= es +) esti)(i!> 6
ista desde el punto de vista de un diccionario' una estimación es un con#unto aproximado de valores para algo que $a de ser $ec$o. En el mundo de desarrollo de Software' ,arry &utnam $a apuntado que la gestión de desarrollo de Software considera la estimación como una actividad que permite o"tener' principalmente' respuestas aproximadas a las siguientes preguntas >u!nto costar!+ >u!nto tiempo llevar! $acerlo+ ,a respuesta a estas dos preguntas constituye el n-cleo del tema que aqu% se contempla' sin em"argo' y como se puede prever ésta no es tan sencilla. *ué $ace que la estimación no sea tan dif%cil de realizar. ,as razones para esta comple#idad son las siguientes ;. N& eiste #! &"e+& "e esti)(i! #!i4e%s)+ o una formula que pueda ser usada para todas las organizaciones. El $ec$o en que se puedan definir unos principios generales' pero cada interpretación es particular y diferente al resto. >ada organización tiene sus propios recursos' procedimientos e $istoria y es necesario a#ustar los procesos de estimación a esos par!metros -nicos. 0dem!s' a medida que estos par!metros cam"ien' de"en cam"iar los procesos de estimación. @. ?ay #(?)s $e%s&!)s i$+i()")s e! +&s $%&'e(t&s 3#e $%e(is)! "e esti)(i&!es. ,a alta dirección de la empresa necesita las estimaciones para tomar decisiones de negocio so"re la via"ilidad del proyecto y su continuidad a lo largo del desarrollo. ,a dirección del proyecto necesita las estimaciones para ser sugerencias a la alta dirección' para o"tener los resultados necesarios para el desarrollo del proyecto y' para $acer una planificación detallada y controlar el proyecto. B. L) #ti+i")" "e #!) esti)(i! t)0i=! "e$e!"e%6 "e +) et)$) "e "es)%%&++& e! )+) 3#e !&s e!(&!t%e&s. 0l comienzo de un proyecto' normalmente sólo se necesita estimaciones de costo y duración aproximadas. 0 medida que el proyecto madura las estimaciones que se necesitan ser!n m!s exactas. >on lo que una estimación -til al comienzo del proyecto puede no serlo m!s tarde. =. L) esti)(i! ) e!#"& se ?)(e s#$e%i(i)+e!te, sin apreciar el esfuerzo requerido para $acer un tra"a#o. 0dem!s tam"ién se suele dar el caso de que la estimación sea necesaria antes de o"tener las especificaciones de requisitos del sistema. &or esta razón' una situación t%pica en que se presiona a los estimadores para que se apresuren en escri"ir una estimación anticipada del sistema que no comprenden a-n. F. L)s esti)(i&!es (+)%)s, (&$+et)s ' $%e(is)s s&! "i*(i+es "e &%#+)%. Especialmente al inicio del proyecto. ,os cam"ios' adaptaciones y ampliaciones son m!s la regla que la excepción como consecuencia de ello' de"en adaptarse tam"ién las planificaciones y los o"#etivos.
7
G. L)s ()%)(te%*sti()s "e S&t5)%e ' "e #! "es)%%&++& ?)(e! "i*(i+ +) esti)(i!, por e#emplo' el nivel de a"stracción' la comple#idad' el grado de medición del producto y del proceso' los aspectos innovadores.... H. ,a rapidez con la que cam"ia la tecnolog%a de la información y las metodolog%as de desarrollo de Software son pro"lema para +) est)0i+i/)(i! "e+ $%&(es& "e esti)(i!. &or e#emplo' son dif%ciles de predecir la influencia de nuevos "ancos de prue"as' lengua#es de cuarta y quinta generación' estrategias de prototipado' y de técnicas y $erramientas novedosas en general. :. 1n estimador no puede tener muc$a e$e%ie!(i) "e esti)% desarrollos' especialmente de proyectos largos. >u!ntos proyectos largos puede alguien dirigir en' por e#emplo' ;I a2os+ D. Existe #!) te!"e!(i) aparentemente de los desarrolladores $acia la s#0esti)(i!. 1n estimador suele elegir una porción de Software de"er%a tomar para luego extrapolarlo al resto del sistema' normalmente se ignoran los aspectos no lineales del desarrollo de Software' por e#emplo' la coordinación y la gestión. ;I.El estimador estima el tiempo que le llevar%a e#ecutar personalmente una tarea' ignorando el $ec$o de que' a menudo' una parte del tra"a#o la %e)+i/) $e%s&!)+ e!&s e$e%ie!t)"&, con un %ndice de productividad menor. ;;. Existen )+)s i!te%$%et)(i&!es en las relaciones lineales entre la capacidad requerida por unidad de tiempo y el tiempo disponi"le. Esto significa que el Software desarrollado por @F personas en dos a2os podr! ser llevado aca"o por FI personas en un a2o. Esta interpretación es errónea. ;@.El estimador tiende a %e"#(i% en alg-n grado +)s esti)(i&!es para $acer m!s acepta"le la oferta. ;B.Jnfluyen un gran n-mero de factores en el esfuerzo y duración de un desarrollo de Software. Estos factores se llaman 7 "%i4e%s "e (&st&@ o disparadores de costo. E#emplos de estos disparadores son el tama2o y comple#idad del Software' el compromiso y participación del usuario' la experiencia del equipo de desarrollo. En general estos disparadores de costo son dif%ciles de determinar. 0l desarrollar sistemas se estiman con "ase a las siguientes consideraciones. • • • • •
El producto Software que se tiene que desarrollar.
8
DIAGRAMA
B2
Re3#isit&s 3#e "e0e C#$+i% #! 8#e! Esti)"&% *uién de"e realizar el proceso de estimación de un proyecto de Software+ El estimador de"e ser un profesional' que no tenga ning-n interés' directo o indirecto' en los resultados del proceso de estimación y que est! -nicamente guiado por su profesionalidad El principal o"#etivo de un estimador es o"tener unas estimaciones de calidad' las cuales no siempre tienen por qué coincidir con las expectativas de la dirección en términos de costo y tiempo. 1n "uen estimador de"er%a cumplir los siguientes requisitos ;. de"e poseer una importante formación y experiencia profesional que le ayuden a entender y solucionar los pro"lemas de la gestión de proyectos. @. e"e tener una posición en la organización que le permita adoptar un #uicio independiente. B. e"e "asarse en un método que pueda ser explicado' cuestionado' discutido y auditado por otros expertos. =. Siempre que use una $erramienta de estimación' ésta de"e a#ustarse a su propósito de estimación y de"e soportar el método. ,a $erramienta tam"ién de"e estar documentada y controlada. F. e"e ser capaz de descri"ir su experiencia en cada estimación. Es decir' descri"ir los pro"lemas a los que $a tenido que enfrentarse' las soluciones' etc. G. e"e ser capaz de documentar su estimación' incluyendo los resultados o"tenidos u cualquier información necesaria para $acer el proceso de estimación repeti"le y verifica"le. <#= es +& 3#e "e0e&s esti)%> 9
>uando se $a"lo de la definición de estimación' se vieron dos preguntas a las que este proceso de"%a dar respuesta. Estas preguntas eran >u!nto costar!+ >u!nto tiempo llevar! $acerlo+ Esta información constituye información "!sica de todo proceso de estimación. ,os distintos métodos existentes para realizar este proceso proporcionan información adicional para dar respuestas' en función del método' a algunas de las siguientes preguntas >u!nta gente se necesita y que perfil de"e de tener+ >u!les son los riesgos+ >ómo afectan las restricciones impuestas a las estimaciones+ >u!nto tiempo se necesita para realizar cada fase del ciclo de vida+ >ómo impacta este proceso en el resto de los proyectos de la empresa+ >u!l ser! el esfuerzo para mantener este proyecto+ >u!l ser! el tama2o del sistema+ (l%neas de código) >u!ntos defectos tendr! el producto+ >u!nta documentación ser! generada+ >u!l ser! el esfuerzo para confeccionar dic$a documentación+
2. M=t%i()s "e S&t5)%e ,a medición es fundamental para cualquier disciplina de ingenier%a' y la ingenier%a del Software no es una excepción. -as métricas del Soft!are se refieren a un amplio elenco de medidas para el
Software de computadora. ,a medición se puede aplicar al proceso de Software con el intento de me#orarlo so"re una "ase continua. &odemos definir las 8étricas de Software o 8edidas de Software como ,a aplicación continua de técnicas "asadas en las medidas de los procesos de desarrollo de Software y sus productos' para producir una información de gestión significativa y a tiempo. Esta información se utilizar! para me#orar esos procesos y los productos que se o"tienen de ellos. ,as 8étricas de Software implican medir medir involucra n-meros el uso de n-meros para $acer cosas me#or. ,as 8étricas de Software pretenden me#orar los procesos de desarrollo de Software y me#orar' por tanto' todos los aspectos de la gestión de aquellos procesos. Estas medidas son aplica"les a todo el ciclo de vida del desarrollo' desde la iniciación' cuando de"emos estimar los costos' al seguimiento y control de la
10
fia"ilidad de los productos finales' y a la forma en que los productos cam"ian a través del tiempo de"ido a la aplicación de me#oras. ,as medidas del Software y los modelos de medida son entonces -tiles para estimar y predecir costos y para medir la productividad y la calidad del producto. 1n ingeniero del Software recopila medidas y desarrolla métricas para o"tener indicadores.
9%e)s "e A$+i()(i! 0lgunas de las !reas donde se aplican las métricas de Software son
E+ (&!t%&+ "e $%&'e(t&s "e "es)%%&++& "e S&t5)%e a través de medidas en un !rea que esta generando un gran interés. Este es un tema que $a alcanzado un interés relevante con el incremento de contratos a precio fi#o para desarrollar un producto Software y la utilización de cl!usulas de penalización en los mismos en caso de retrasos' so"recostos' etc. L) $%e"i((i! "e +&s !i4e+es "e ()+i")" del Software' a menudo en términos de fia"ilidad' es otra !rea en que las 8étricas de Software tiene un importante papel que #ugar. El uso de las 8étricas de Software es proporcionar #!) 4e%ii()(i! (#)!tit)ti4) "e+ "ise& "e s&t5)%e es otra !rea "ien definida. Estas 8étricas no se van a estudiar en esta 1nidad si no en la 1nidad de ise2o. Aecientemente se $a estudiado e+ ee(t& "e +&s )(t&%es "e+ e!t&%!& en la eficacia de los procesos de desarrollo. Esta opción no esta a"ierta para todas las organizaciones' pero existe una gran preocupación so"re como incrementar la productividad de los procesos de desarrollo introduciendo cam"ios en el entorno en el cual aquellos tienen lugar. ,as medidas pueden ser utilizadas para identificar donde de"er%an concentrarse los cam"ios. ,a utilización de las 8étricas para (&$%)% #!)s &%)!i/)(i&!es (&! &t%)s es un !rea de aplicación muy importante. >S>6 Jndex en Europa y el Software Engineering Jnstitute en E.E.1.1. ofrecen este tipo de servicios a la industria y muc$as organizaciones los utilizan. 1n resultado de esta aplicación es que se puede identificar que se esta $aciendo mal y quién lo esta $aciendo "ien y aprender de esas empresas. Linalmente' el uso m!s com-n de las medidas de Software es la $%&4isi! "e i!&%)(i! "e esti!, que incluye datos acerca de la productividad' calidad y eficacia de los procesos. El valor de esta información est! en analizar los datos de las tendencias' d%a a d%a. Est! me#orando o empeorando la calidad de un equipo de desarrollo+. Si es as%' por qué ocurre+ qué puede $acer la dirección para me#orar la situación+
11
C)%)(te%*sti()s "e +)s M=t%i()s "e S&t5)%e ,a calidad de las medidas de"er%an facilitar el desarrollo de modelos que sean capaces de predecir el comportamiento de determinados par!metros que afectan al desarrollo de productos o procesos. 1na medida ideal de"er%a ser • • • •
•
M"#etiva Sencilla' defini"le con precisión para que puede ser evaluada L!cilmente o"teni"le ( a costo razona"le) alida' la métrica de"er%a medir exactamente lo que se quiere medir y no otra cosa. Ao"usta. e"er%a de ser relativamente insensi"le a cam"ios poco insignificativos en el proceso o en el producto .
0dem!s' para una me#or utilización de estas medidas' a la $ora de realizar estudios anal%ticos o an!lisis estad%sticos de"er%an de tener unos valores que se a#usten a una cierta escala de medida.
C+)sii()(i! "e +)s M=t%i()s "e S&t5)%e ,as 8étricas de Software se pueden clasificar' de una manera general. En 8étricas de producto y 8étricas de proceso. ,as M=t%i()s se P%&"#(t& son medidas de producto Software durante cualquier fase de su desarrollo desde los requisitos $asta la instalación. ,as 8étricas de &roducto pueden medir la comple#idad del dise2o' el tama2o del producto final (fuente u o"#eto) o el n-mero de p!ginas de documentación producida. ,as M=t%i()s "e P%&(es& son medidas del proceso de desarrollo del Software tales como tiempo de desarrollo total' esfuerzo en d%asK $om"re o mes K $om"re de desarrollo del producto' tipo de metodolog%a utilizada o nivel medio de experiencia de los programadores.
M=t%i()s "e P%&"#(t&s 8uc$os de los tra"a#os iniciales realizados so"re las métricas de producto est!n relacionados con las ()%)(te%*sti()s "e+ ("i& #e!te. >onforme se $a ido ganando experiencias con las métricas y los modelos se $a puesto de manifiesto que la información disponi"le durante los primeros momentos del ciclo de desarrollo puede ser de gran valor para controlar el proceso y los resultados. 12
amos a analizar' de todos los tipos de medidas utilizadas en la medición del producto Software' -nicamente aquellas que nos interesen para realizar el proceso de estimación del Software' que ser!n las métricas del tama2o' y en cierto grado las de calidad.
M=t%i()s "e+ t))& ,as 8étricas del Software orientadas al tama2o provienen de la normalización de las medidas de calidad yKo productividad considerando 6el tama2o 6 del Software que se $aya producido. Existen un cierto numero de 8étricas que intentan cuantificar el tama2o del Software. ,a 8étrica m!s utilizada' l%neas de código' tiene el inconveniente o"vio de que sus valores no pueden ser medidos $asta que el proceso de codificación $a finalizado. ,os puntos de función' y los Oang de e 8arco tienen las venta#as de ser medi"les durante los primeros pasos de desarrollo. El estado actual en el estudio de las medidas del tama2o es •
•
•
Existe un cierto consenso en cuanto a las e"i")s "e +&!it#", pero no en cuanto a las medidas de las especificaciones o dise2o. Existen algunos tra"a#os de e"i(i! "e +)s #!(i&!)+i")"es de las especificaciones ( que se aplican igualmente al dise2o y a los programas) Existen muy pocos tra"a#os en cuanto a la e"i") "e +) (&$+ei")" del pro"lema a resolver . Nótese que este concepto es distinto que el de comple#idad computacional' por tanto el tra"a#o $ec$o en esa !rea no sirve.
0 continuación' vamos a analizar las medidas mas utilizadas en la determinación del tama2o del Software. 0) L*!e)s "e C"i&: ,a medida mas utilizada de la longitud del código fuente de un programa es el Numero de ,%neas de >ódigo ( ,ines of >ode en Jnglés' a"reviado ,M>). Sin em"argo esta métrica puede calcularse de muc$as maneras. Estas diferencias afectan ala tratamiento de la l%neas en "lanco y las l%neas de comentarios' las sentencias no e#ecuta"les' las instrucciones m-ltiples por l%nea y las m-ltiples l%neas por instrucción. 0dem!s' de"er%an contarse las l%neas reusa"les del código >uando se intenta utilizar esta medida (l%neas de código) en términos de productividad surgen dos pro"lemas. 0) No se tiene en cuenta el concepto de reutilización.
13
O) No se tiene en cuenta el concepto de costos fi#os ni tareas que se desarrolla que no produce instrucciones
0 Es$e(ii()(i! "e+ Dise& ,a definición de medidas an!logas a la longitud para las especificaciones y los documentos de dise2o no es f!cil. 0l comienzo del ciclo de vida' tales documentos consisten en una infinidad de texto' grafos' diagramas matem!ticos' y s%m"olos. ,a naturaleza de aquellos depender! en particular del estilo el método o la notación utilizada. 1nas especificaciones o un dise2o' est!n compuestos por textos o diagramas' los cuales parecen inmedi"les con relación a la longitud. 1na medida que se $a utilizado para permitir las comparaciones es la del Numero de &aginas. Sin em"argo' la unidad p!gina no puede ser formalmente definida si se desea incluir textos y diagramas.
( P%e"i((i! "e +) +&!it#": Existen una serie de modelos que veremos mas adelante para la predicción del costo que dependen de la $a"ilidad para predecir la longitud ( N,M>) con exactitud con la fase de definición de especificaciones del sistema a implantar. 1n modo intuitivo de predecir la longitud es o"teniendo una relación entre la longitud de diferentes productos o"tenidos durante el ciclo de vida. En particular' una predicción de longitud' se puede o"tener considerando la relación ratio de expansión entre la longitud de las especificaciones o del dise2o y la longitud del >ódigo en proyectos similares en los que se mantienen datos. ?a $a"ido algunos intentos para esta"lecer relaciones emp%ricas entre la longitud del código de programas y la longitud de la documentación.
" F#!(i&!)+i")": El concepto de funcionalidad de un producto se origina a partir de una noción intuitiva de cantidad de funciones que proporciona. ?a $a"ido dos intentos serios para medir la funcionalidad de un producto de Software. 1no de ellos se de"e a 0l"rec$t y corresponde a los &untos de Lunción (FPA, del inglés Lunction &oint 0n!lisis) y otro de"ido a de e 8arco' los Oang' que no $a tenido una gran difusión. El o"#etivo m!s importante es identificar una medida del tama2o de Software que pueda ser la varia"le predominante en los sistemas de predicción de costos y esfuerzo' as% como en la evaluación de la productividad. Este es un o"#etivo encomia"le' ya que una medida de la funcionalidad ser%a claramente preferi"le a la medida del tama2o exclusivamente de la longitud. En am"os casos' los productos cuya funcionalidad est! siendo medida con documentos de especificación' pero que podr%an aplicarse posteriormente a otros productos del ciclo de vida. ,a funcionalidad' a pesar de los pro"lemas existentes' es un atri"uto muy importante del producto y es la me#or aproximación existente $asta la fec$a.
14
M=t%i()s "e C)+i")" El o"#eto primordial de la ingenier%a del Software es producir un sistema' aplicación o producto de alta calidad. &ara lograr este o"#etivo' los ingenieros del software de"en aplicar métodos efectivos con $erramientas modernas dentro del contexto de un proceso maduro de desarrollo del Software. Se puede generar una larga lista de caracter%sticas de la calidad de Software corrección' eficacia' porta"ilidad' manteni"ilidad' fia"ilidad' etc. esafortunadamente' las caracter%sticas a veces se solapan y entran en conflicto unas con otras. &or e#emplo' incrementar la porta"ilidad' que es muy desea"le' puede dar lugar a una eficacia menor. 0unque se $an realizado una gran cantidad de tra"a#os en est! !rea' presenta una gran variedad en los caminos seguidos frente a otras !reas de investigación de las métricas' tales como el tama2o del Software o la comple#idad' cuyo estudio $a sido m!s uniforme. ?an tenido considera"le atención tres !reas •
•
•
C&%%e((i! "e +&s $%&%))s, medida como el n-mero de efectos. 1n programa de"e operar correctamente o proporcionar! poco valor a sus usuarios. ,a corrección es el grado en el que el Software lleva a ca"o su función requerida. Fi)0i+i")" "e+ S&t5)%e, calculada partir del dato anterior. En est! época de intrusos inform!ticos y de virus' la integridad del software $a llegado $a tener muc$a importancia. Este atri"uto mide la $a"ilidad de un sistema para resistir ataques ( tanto accidentales como intencionales ) contra su seguridad. El ataque se puede realizar en cualquiera de los tres componentes del Software' programas' datos' y documentos. M)!te!i0i+i")" "e+ S&t5)%e, que se mide a partir de otro con#unto de métricas' incluidas las de comple#idad ,a facilidad de mantenimiento es la facilidad con la que se puede corregir un programa si se encuentra un error' se puede adaptar si su entorno cam"ia' o me#orar si su cliente desea un cam"io de requisitos.
,a calidad del software es una caracter%stica que' teóricamente al menos' puede ser medida en cada fase del ciclo de desarrollo del Software.
M=t%i()s "e P%&(es&s Estas métricas eval-an el proceso en s% de fa"ricación del producto correspondiente. E#emplos de este tipo de métricas son el tiempo de desarrollo del producto' el esfuerzo que conlleva dic$o desarrollo' el n-mero y tipo de recursos empleados (personas' m!quinas' etc) el costo del proceso. ,a o"tención de este
15
tipo de métricas esta asociada generalmente a alguna técnica de estimación. En el siguiente tema descri"iremos las técnicas "!sicas de estimación' y los métodos que se pueden aplicar.
I!te%)(i! "e +)s M=t%i()s "e!t%& "e+ P%&(es& "e S&t5)%e ,a mayor%a de los desarrolladores de Software todav%a no miden' y por desgracia' la mayor%a no desean ni comenzar. &or qué es tan importante medir el proceso de ingenier%a de Software y el producto (Software) que produce+. ,a respuesta es relativamente o"via. Si no se mide' no $ay una forma real de determinar s% se est! me#orando. P si no se est! me#orando' se est! perdido. 8ediante el uso de la medición para esta"lecer una l%nea "ase del proyecto' cada uno de estos asuntos se $ace m!s f!cil de mane#ar. Pa $emos apuntado que la l%nea "ase sirve como "ase de la estimación. 0dem!s' la recopilación de métricas de calidad permite a una organización 5sintonizar6 su proceso de ingenier%a del Software para eliminar las causas 5 poco vitales6 de los defectos que tienen el mayor impacto en el desarrollo del Software.
2. T=(!i()s "e Esti)(i! 1na vez definidas las métricas de Software podemos entender las diferentes técnicas existentes para la estimación' existen principalmente cuatro técnicas de estimación. ;. ,a opinión de los expertos. Esta técnica se "asa en la experiencia profesional de los participantes en el proyecto de estimación. @. ,a analog%a. Es una aproximación m!s formal que la experiencia de los expertos y se "asa en la comparación directa de uno o m!s proyectos pasados. ,a estimación inicial se a#usta dependiendo de las diferencias entre el proyecto pasado y el nuevo. B. ,a descomposición. >onsiste en la descomposición de un producto en componentes m!s peque2os' o descomponer un proyecto en tareas de nivel inferior. ,a estimación se $ace partir del esfuerzo requerido para producir los componentes m!s peque2os o para realizar las tareas de nivel inferior. ,a estimación glo"al de un proyecto resultar! de sumar las estimaciones de los componentes. =. ,as ecuaciones de estimación. Son fórmulas matem!ticas que esta"lecen la relación de algunas medidas de entrada (que normalmente es la medida del tama2o del producto) y determinan el esfuerzo que se requerir!.
Re3#isit&s "e #! 8#e! M=t&"& "e Esti)(i! 1n método de estimación tendr! éxito s%
16
•
•
•
•
•
,a estimación inicial est! dentro de un BI Q de desviación del costo final real. El método permite el refinamiento de la estimación durante el ciclo de vida del producto Software. El método es f!cil de usar por el estimador. Esto permite una r!pida re6 estimación cuando sea necesario por e#emplo para evaluar distintas alternativas. ,as reglas de la estimación son entendidas por todas las personas a las que afectan los resultados de la misma. ,os directivos se sienten m!s seguros cuando el proceso de estimación es f!cilmente comprensi"le. El método es soportado por $erramientas y est! documentado. ,a disponi"ilidad de $erramientas aumenta la eficacia de cualquier método. Esto es de"ido' principalmente' a que los resultados pueden ser o"tenidos m!s r!pidamente y de una forma est!ndar.
M=t&"&s "e Esti)(i! 1n método de estimación eficaz permitir! ignorar aspectos sin interés y concentrase en los aspectos esenciales. 1n "uen modelo de"er%a poseer capacidades predicitivas' me#or que ser meramente descriptivo o explicativo. ,a validez de las métricas de Software y de los modelos de estimación de"e ser esta"lecida mostrando la coincidencia entre los datos emp%ricos y experimentales. Esto requiere una cuidadosa atención en la toma de medidas y en el an!lisis de los datos. ,os modelos de estimación existentes se pueden clasificar como 8odelos de Estad%sticos' 8odelos "asados en 3eor%as y 8odelos >ompuestos. 0 continuación descri"iremos cada uno de ellos.
M&"e+&s Est)"*sti(&s >.E Ralson y &.>. Lelix' de JO8 utilizaron datos de GI proyectos terminados completamente para desarrollar un modelo simple de calculo del esfuerzo de desarrollo de Software. El principal determinante del esfuerzo de desarrollo fue la métrica ,M>. Se asumió una relación de la forma E a,"' donde , es el n-mero de l%neas de código' en miles y E es el esfuerzo total requerido en mesesK personas. 8ediante una an!lisis de regresión se encontraron los valores apropiados para a y ". ,a ecuación resultante fue E = 5,2 L 0,91
17
,a productividad nominal de programación en ,M> por persona K mes' puede ser calculada como ,KE. Ralston y Lelix tam"ién intentaron desarrollar un %ndice de productividad' J' que podr%a $acer incrementar o disminuir la productividad dependiendo de la naturaleza del proyecto.
M&"e+&s 0)s)"&s e! Te&%*)s: M&"e+& "e P#t!). El modelo m!s importante es el de &utnam. Este modelo asume una distri"ución espec%fica del esfuerzo a lo largo de la vida de un proyecto de desarrollo de Software. El modelo se $a o"tenido partir de distri"uciones de mano de o"ra de grandes proyectos. Sin em"argo' se puede extrapolar a proyectos m!s peque2os. &utnam desarrolló la siguiente relación entre el tama2o del producto Software y el tiempo de desarrollo. E = L3 / (C3T4)
onde , el n-mero de instrucciones fuente producidas E el esfuerzo durante todo el ciclo de vida en a2os K personas. > una constante dependiente de la tecnolog%a 3 el tiempo de desarrollo en a2os. ,os varios tipos > pueden ser > @.III para un entorno po"re de desarrollo de software ( sin metodolog%a' con una documentación y unas revisiones po"res) > :.III para un "uen entorno de desarrollo de Software ( con una "uena tecnolog%a adecuada' documentación y revisiones) > ;.;II para un entorno excelente ( con $erramientas y técnicas autom!ticas). Se puede o"tener la constante > correspondiente al entorno propio a partir de datos $istóricos recopilados so"re los anteriores esfuerzos de desarrollo.
M=t&"&s C&$#est&s Son modelos que utilizan una com"inación de intuición an!lisis estad%stico y #uicio de expertos. 0 continuación se descri"en los m!s importantes.
) M&"e+&s COCOMO "e 8&e?. Es pro"a"lemente el m!s conocido y sólidamente documentado de todos los modelos de estimación de costos. 8as adelante se estudiara en profundidad este modelo' con aplicaciones pr!cticas. 0 SOFTCOST. T)#s5&%t?e: 3rauswort$e' de Tet &ropulsión ,a"oratory' intentó desarrollar una estimación de costo del Software utilizando elementos de los modelos con m!s éxito disponi"les. Este modelo requiere
18
G: par!metros de entrada' cuyos valores se deducen a partir de las respuestas del usuario a =H preguntas acerca del proyecto. ( SPapers Tones $a desarrollado un modelo de estimación de costos llamado Software &roductivity' *uality and Aelia"ility (S&*A). El enfoque del pro"lema es similar al de Ooe$m en su modelo >M>M8M. Est! "asado en @I factores que influyen razona"lemente en el costo y productividad del desarrollo del software y que est!n "ien definidos y otros @F factores que no est!n tan "ien definidos. S&*A es un producto comercial' pero no esta tan "ien documentados como otros modelos. Aequiere responder a m!s de ;II preguntas relacionadas con el proyecto para formular los par!metros de entrada necesarios en el calculo de los costos y los planes. Tones se2ala que con este modelo es posi"le proporcionar estimaciones de costo que estar!n el DIQ de las veces dentro del valor real con una desviación del ;FQ.
" COPMO- T?e0)#t: 3$e"aut propone un modelo de desarrollo de Software que intenta conta"ilizar el esfuerzo requerido cuando los equipos de programación est!n involucrados en grandes proyectos. ,a ecuación general de calculo de esfuerzo es E a U "S U c& "
onde 0'"'c'd' son constantes para ser determinadas a partir de datos emp%ricos mediante an!lisis de regresión S es el tama2o del programa en miles de ,M> & es el medio de personal durante el ciclo de vida del proyecto esafortunadamente' este modelo no requiere uno si no dos par!metros cuyos valores no son conocidos $asta la terminación del proyecto. 0dem!s' las constantes " y c dependientes de la comple#idad del Software no son f!cilmente determina"les. Este modelo presenta una fórmula interesante' pero necesita un mayor desarrollo y a#uste par que sea de interés general.
e%%)ie!t)s A#t&6ti()s "e Esti)(i! ,as técnicas de descomposición y los modelos emp%ricos de estimación descritos en las secciones anteriores se pueden implementar con Software. ,as $erramientas autom!ticas de estimación permiten al planificador estimar 19
costos y esfuerzos' as% como llevar a ca"o an!lisis del tipo Vqué pasa s%W con importantes varia"les del proyecto' tales como la fec$a de entrega o la selección de personal. 0unque existen muc$as $erramientas autom!ticas de estimación' todas ex$i"en las mismas caracter%sticas generales y todas requieren una o m!s clases de datos como los mostrados a continuación ;. 1na estimación cuantitativa del tama2o del proyecto ( por e#emplo' en ,>) o de la funcionalidad ( datos so"re los puntos de función) @. >aracter%sticas cualitativas del proyecto' tales como la comple#idad' fia"ilidad requerida o el grado de criticidad del negocio. B. 0lguna descripción del personal de desarrollo yKo del entorno de desarrollo. 0 partir de estos datos' el modelo implementado por la $erramienta autom!tica de estimación proporciona estimaciones del esfuerzo requerido para llevar aca"o el proyecto' los costos' la carga del personal' la duración y en algunos casos' la planificación temporal del desarrollo y el riesgo asociado.
2.H P+)!ii()(i! "e P%&'e(t&s. El o"#etivo de planificación del proyecto de Software es proporcionar un marco de tra"a#o que permita al gestor $acer estimaciones razona"les de recursos' costo y planificación temporal. Estas estimaciones se $acen dentro de un marco de tiempo limitado al comienzo de un proyecto de Software' y de"er%an actualizarse a medida que progresa el proyecto. 0dem!s' las estimaciones de"er%an definir los escenarios del V me#or caso W y V peor caso W de forma que los resultados del proyecto puedan limitarse . El o"#etivo de la planificación se logra mediante un proceso de descu"rimiento de la información que lleve a estimaciones razona"les.
90it& "e+ S&t5)%e. ,a primera actividad de la planificación del proyecto de Software es determinar el mbito del Soft!are . Se de"en evaluar la función y el rendimiento que se asignaron al Software durante la ingenier%a del sistema. El !m"ito del Software descri"e la función' el rendimiento' las restricciones' las interfases y la fia"ilidad. Se eval-an las funciones descritas en el enunciado del !m"ito' y en algunos casos se refinan para dar m!s detalles antes del comienzo de la estimación. ,a técnica m!s utilizada con frecuencia para acercar al cliente y al desarrollador' y para $acer que comienza el proceso de comunicación es esta"lecer una entrevista preliminar. ,a comunicación con el cliente lleva a una definición de datos ' funciones' y comportamientos a implementarse' y de información so"re el rendimiento y imitaciones que delimitan el sistema.
Re(#%s&s
20
,a segunda tarea de la planificación del desarrollo de Software es la estimación de los recursos requeridos para acometer el esfuerzo de desarrollo de Software.
&ersonas
Componentes del Soft!"e #e$t%l%&!'les
?erramientas ?ard K Soft
En "ase a la pir!mide de recursos se encuentra el entorno de desarrollo* ?ardware y Software6 que proporciona la infraestructura de soporte al esfuerzo de desarrollo. En un nivel m!s alto se encuentra los componentes del Soft!are /eutilizables, los "loques de Software que pueden reducir dr!sticamente los costos de desarrollo y acelerar la entrega. En la parte m!s alta esta el recurso primario6 las personas.
Re(#%s&s #)!&s El encargado de la planificación comienza elevando el !m"ito y seleccionando las $a"ilidades técnicas que se requieren para llevar aca"o el desarrollo. El n-mero de personas requeridas para un proyecto de Software sólo puede ser determinado después de $acer una estimación del esfuerzo de desarrollo ( por e#emplo' personas 5 mes o personas 5 a2os.)
Re(#%s&s "e S&t5)%e Re#ti+i/)0+es. >ualquier estudio so"re recurso de Software estar%a incompleto sin estudiar la reutilización' esto es' la creación y la reutilización de "loques de construcción de software 9?IID;<. 3ales "loques de"en esta"lecerse en cat!logos para una consulta m!s f!cil' estandarizarse para una f!cil aplicación y validarse para tam"ién la f!cil integración. Oernnatan 9OEND@< sugiere cuatro categor%as de recursos de Software que se de"er%an tener en cuenta a medida que se avanza con la planificación. 21
C&$&!e!tes ') "es)%%&++)"&s. El Software existente se puede adquirir de una tercera parte o provenir de uno desarrollado internamente para un proyecto anterior. Estos componentes est!n listos para utilizarse en el proyecto actual y se $an validado totalmente. C&$&!e!tes ') e$e%ie!t)"&s. ,as especificaciones' dise2os' códigos' o datos de prue"as ya existentes y desarrollados para proyectos anteriores que son similares al Software que se va a construir para el proyecto actual. ,os miem"ros del equipo del Software actual ya $an tenido la experiencia completa en el !rea de la aplicación representada para estos componentes' ,as modificaciones' por tanto' requeridas para componentes de total experiencia' tendr! un riesgo relativamente "a#o. C&$&!e!tes (&! e$e%ie!(i) $)%(i)+. ,as especificaciones' los dise2os' códigos o los datos de prue"a existentes ya desarrollados para proyectos anteriores que se relacionan con el Software que se va a construir para el proyecto actual' pero que requerir!n una modificación sustancial. ,os miem"ros del equipo del Software actual $an limitado su experiencia sólo al !rea de aplicación representada por estos componentes. ,as modificaciones' por tanto' requeridas para componentes de experiencia parcial tendr!n "astante grado de riesgo. C&$&!e!tes !#e4&s. ,os componentes de Software que el equipo de Software de"e construir son espec%ficamente para las necesidades del proyecto actual. Re(#%s&s "e e!t&%!& El entorno es donde se apoya el proyecto de Software' llamado a menudo entorno de 0ngeniera de Soft!are (+0S) incorpora ?ardware y Software. El ?ardware proporciona una plataforma con las $erramientas (Software) requeridas para producir los productos que son el resultado de una "uena pr!ctica de la ingenier%a de Software.
1NJ0 JJJ
C&!(e$t&s 86si(&s "e+ "es)%%&++& "e #! Siste) "e I!&%)(i! 3l finalizar el siglo, 4emos descubierto que somos parte de un inmenso sistema* o conjunto de sistemas- que va de las plantas y los animales a las células, las 22
moléculas, los tomos y las estrellas. Somos un eslab5n de la cadena del ser6 como llamaban los antiguos fil5sofos al universo6 7%83907 #3:. iscurso al reci"ir el premio Nó"el de ,iteratura.
&ara Newton' dentro de su concepción mecanicista' un siste) era un mecanismo que opera seg-n leyes inmuta"les. No as% dentro de una visión sistémica. >onforme lo expone Oertalanffy' un sistema puede definirse como un con#unto de elementos f;' f@' ... fn en interacción' definición a la cual' seg-n Aodr%guez elgado convendr%a a2adirle la caracter%stica de poseer una frontera o l%mite6 m!s o menos "orroso6 que separa al sistema de su entorno. Sistema es un todo que tiene una función en un todo m!s grande de lo cual es una parte... todo sistema es parte de un sistema m!s grande.
Siste) "e I!&%)(i!: Es un con#unto de procesos formales integrados a la empresa' que almacena datos en "ase de datos para su posterior an!lisis y tiene como función posterior a la toma de decisiones Xerenciales. ,os sistemas de información son desarrollados con propósitos diferentes dependiendo de las necesidades del negocio. L) !e(esi")" "e+ )!6+isis ' "ise& "e siste)s El an!lisis y dise2o de sistemas' tanto como es e#ecutado por los analistas de sistemas' "usca analizar sistem!ticamente la entrada de datos o el flu#o de datos' el proceso o transformación de datos' el almacenamiento de datos y la salida de información dentro del contexto de un negocio particular. 0dem!s' el dise2o y an!lisis de sistemas es usado para analizar' dise2ar e implementar me#oras en el funcionamiento de los negocios que pueden ser logradas por medio del uso de sistemas de información computarizados. ,a instalación de un sistema sin planeación adecuada lleva a grandes frustraciones' y frecuentemente causa que el sistema de#e ser usado. El an!lisis y dise2o de sistemas lleva estructura al an!lisis y dise2o de sistemas de información' un costoso esfuerzo que de otra forma podr%a $a"er sido $ec$o de modo casual. &uede ser visto como una serie de procesos llevados aca"o sistem!ticamente para me#orar un negocio por medio del uso de sistemas de información computarizados. Xran parte del an!lisis y dise2o de sistemas involucró el tra"a#o con los usuarios actuales y eventuales de los sistemas de información.
A!)+ist)s "e Siste)s: ,os analistas de sistemas generalmente valoran la manera en que funcionan los negocios examinando la entrada' el procesamiento de datos y la salida de información con el propósito de me#orar los procesos organizacionales. 8uc$as me#oras involucran me#or apoyo para las funciones de los negocios por medio del uso de sistemas de información computarizados. Esta definición 23
enfatiza un enfoque sistem!tico y metódico para analizar' y posi"lemente me#orar' lo que esta sucediendo en el contexto espec%fico creado por un negocio. Nuestra definición de un analista de sistemas es necesariamente amplia. El analista de"e ser capaz de tra"a#ar con gente de todas las descripciones y de"e tener experiencia en el tra"a#o con computadoras. El analista desempe2a muc$os papeles' "alanceando varios al mismo tiempo. ,os tres papeles principales del analista de sistemas son consultor' experto de soporte y agente de cam"io.
E+ )!)+ist)s "e Siste)s (&& C&!s#+t&% El analista de sistemas frecuentemente act-a como consultor y' por lo tanto' puede ser contratado espec%ficamente para que se encargue de los asuntos de los sistemas de información dentro de un negocio. Esto puede ser una venta#a' de"ido a que los consultores externos pueden llevar con ellos una perspectiva fresca que no poseen otros miem"ros de la organización. &ero tam"ién puede decirse que los analistas externos est!n en desventa#a' de"ido a que la verdadera cultura organizacional nunca puede ser conocida por un extra2o.
E+ )!)+ist) "e siste)s (&& E$e%t& "e S&$&%te Mtro papel que tal vez requiera desarrollar es el de experto de soporte en un negocio donde se esta empleado regularmente en alguna actividad de sistemas. En este papel el analista se apoya en su experiencia profesional relacionada con el ?ardware y Software de computadora y sus uso en el negocio. Este tra"a#o frecuentemente no es un proyecto de sistema completo' si no solamente peque2as modificaciones o decisiones que afectan un solo departamento. >omo experto de soporte no est! administrando el proyecto' o simplemente est!n sirviendo como un recurso para aquellos que lo mane#an. Si se es una analista de sistemas empleado por una organización de fa"ricación o servicios' muc$as de las actividades diarias pueden ser desarrolladas en este papel.
E+ )!)+ist) "e siste)s (&& Ae!te "e C)0i& El papel m!s compresivo y responsa"le que toma un analista de sistemas es el de agente de cam"io' ya sea externo o interno al negocio. >omo analista se es un agente de cam"io cada vez que se e#ecuta cualquiera de las actividades del ciclo de vida del desarrollo de sistemas ( tratado en la siguiente sección ) y se est! presente en el negocio por un periodo extendido ( de dos semanas $asta m!s de un a2o ). 1n agente de cam"io puede ser definido como una persona que sirve de catalizador para el cam"io' desarrolla un plan para el cam"io y tra"a#a #unto con otras para facilitar ese cam"io.
C#)+i")"es "e+ )!)+ist) "e siste)s
24
0 partir de la descripción anterior de los papeles que desempe2a el analista de sistemas' es f!cil ver que el analista de sistemas exitoso de"e poseer una alto grado de cualidades. 8uc$os tipos de agentes diferentes son analistas de sistemas' por lo que cualquier descripción quedar! corta en alguna forma. Sin em"rago' $ay algunas cualidades que parecen mostrar la mayor%a de los analistas de sistemas. 0ntes que nada' el analista es un solucionador de pro"lemas. Es una persona que ve el an!lisis de los pro"lemas como un reto y que disfruta al encontrar soluciones funcionales. >uando es necesario' el analista de"e ser capaz de atacar sistem!ticamente la situación al mano por medio de la aplicación $!"il de $erramientas' técnicas y experiencia. El analista tam"ién de"e ser un comunicador capaz de relacionarse en forma significativa con la dem!s gente a través de periodos extensos. ,os analistas de sistemas necesitan la suficiente experiencia en computación para programar' comprender las capacidades de las computadoras' para recoger los requerimientos de información de los usuarios y para comunicar lo que se necesita a los programadores. El analista de sistemas de"e ser un individuo auto disciplinado y auto motivado' capaz de mane#ar y coordinar innumera"les recursos del proyecto incluyendo a otras gentes. El an!lisis de sistemas es una carrera que demanda muc$o' pero en compensación es cam"iante y siempre retadora.
EL CICLO DE IDA DEL DESARROLLO DE SITEMAS ?emos $ec$o referencia al enfoque sistem!tico que toma el analista para el an!lisis y dise2o de sistemas de información. 8uc$o de esto esta comprendido en lo que es llamado el ciclo de vida del desarrollo de sistemas ( S,> por sus siglas en inglés). El S,> es un enfoque por fases del an!lisis y dise2o que sostiene que los sistemas son desarrollados de me#or manera mediante el uso de un ciclo espec%fico de actividades del analista y del usuario. ,os analistas no est!n de acuerdo con qué tantas fases exactas $ay en el ciclo de vida del desarrollo de sistemas' pero' por lo general' ala"an su enfoque organizado. 0qu% $emos dividido el ciclo en siete fases. 0unque cada fase es presentada en forma discreta' nunca se lleva aca"o como un paso aparte. En vez de ello' varias actividades pueden suceder simult!neamente' y las actividades pueden ser repetidas. Esta es la razón por lo cual es m!s -til pensar que el S,> se logra en fases ( >on actividades traslap!ndose y luego disminuyendo) y no en pasos separados.
25
26