Untitled 1

download Untitled 1

of 29

Transcript of Untitled 1

CaptuloiQU ES EL ANLISIS Y DISEO?

INTRODUCCINBienvenido al captulo 1. En este captulo introductorio veremos el propsito del anlisis y diseo, as como las caractersticas de un buen analista y un buen diseador. Para poner las bases de los captulos que vienen a continuacin, se revisar la tendencia hacia la especializacin en nuestra industria, se tratar ei debate de la metodologa de cascada contra la espiral y se sugerirn algunos criterios sobre lo que hace que una metodologa sea buena". Finalmente, daremos una panormica de las tcnicas que comprenden al resto del libro, en particular las actividades y productos para el anlisis y diseo de sistemas cliente/servidor con interfaces grficas de usuario.&

2Captulo 1 / QU ES EL ANLISIS Y EL DISEO?F:L PROPSITO DEL ANLISISY DISEOI .l anlisis es el proceso de determinar qu se necesita hacer, antes de decidir cmo debe hacerse. i/j enseo es el proceso de determinar cul de muchas posibles soluciones es la mejor para lograr lo que se necesita hacer, respetando las restricciones tecnolgicas y de presupuesto dei prnyWMO. bl enseno escoge un como espeemeo para anlicarlo al qu. El anlisis es el acto deII escubrimiento. fcl diseo es el arte del comprom i so.Tiv.dicionalmente, los esfuerzos de anlisis han tenido una dudosa reputacin en el desarrollo del software. Casi todos saben de algn proyecto al que se le dedicaron incontables meses (o a veces aos) dibujando miles de burbujas, flechas, cuadros y lneas, slo para ser abandonado en un librero y comenzar a codificar apresuradamente. Tal vez tambin haya sabido de algn proyecto que se salt cualquier pretensin de anlisis y comenz la codificacin desde el primer da.La construccin del software es similar a la construccin de una casa. Muy poca gente en sus cabales comprara un terreno, contratara a quince carpinteros y les dira: construyanme una casa", dejndolos en el campo con un montn de madera y una caja de clavos para que lo hagan a su rea! saber y entender. (Los carpinteros no estaran muy preocupados, debido a que ya han construido casas, por lo tanto, si se presentan dudas sobre los detai les. tales como la cantidad de cuartos o pisos que se requieren, con seguridad seran capaces de resolverlos entre ellos.)El costo de tal tontera podra estar entre los cien o doscientos mil dlares y producira una estructura bastante extraa. Es muy probable que el propietario no estar completamente satisfecho con el resultado, y es posible que la casa sea completamente inhabitable.Aunque parezca tan loca la historia de :ste propietario de casa con sus retos arquitectnicos. no es nada en comparacin a los millones de dlares perdidos cada ao en proyectos de software, los cuales fallan para entregar lo que los usuarios necesitan, o se derrumban completamente sin entregar nada. As como seria tonco culpar a los carpinteros por su falla para producir una casa decente bajo esas circunstancias, es raro el caso en que un proyecto de desarroilo de software falle debido a la falta de habilidades tcnicas por parte del personal de programacin. La mayora de los proyectos que fracasan io nacen por falta de una buena administracin del proyecto y por fallas en el anlisis de las necesidades del negocio y para disear una solucin antes de realizar la construccin del producto.Se podra decir que el propsito del anlisis y diseo es, al menos, evitar que se caiga el proyecto, y lo ptimo, que articule completamente las necesidades del negocio con base en una comprensin de sus problemas actuales y que encuemre la solucin que mejor satisfaga las necesidades y se ajuste a las restricciones presupustales de recursos y tiempo impuestas por el propio negocio. Un arquitecto residencia! determina los deseos, gustos, problemas paniculares, necesidades y presupuesto del propietario de la casa y luego explora las soluciones de diseo para verificar y validar los requerimientos antes de construir. El analista de software define la naturaleza del problema del negocio y el diseador de software explora las diversas soluciones. tomando decisiones bien informadas para llegar a un producto que dejar a los usuarios satisfechos.1 Analista y diseador son ppelos. Pueden ser la misma persona, personas diferentes o equipos cnmpluios de personas, dependiendo del tamao de! proyecto y del conjunto de conocimientos del personal.

LAS HABILIDADES DE UM ANALISTA3Esto se reduce a un concepto muy simple: Encuentre lo que el negocio requiere que se haga ames de comenzar a imaginarse cmo hacerlo."El factor que complica todo es que los negocios no son simples y sus problemas intrnsecos crecen por la presencia de personas con diferentes opiniones sobre la manera de resolverlos (o incluso si siquiera deben resolverse), y todo el lo est coronado con un laberinto inexpugnable de sistemas heredados muy enfermos.-LAS HABILIDADES DE UN ANALISTAEl papel del analista es ir y encontrar qu problemas existen en 1 negocio y determinar lo que desean que suceda quieneifCSTrtinrcargo ciel mismoTEste es un papel y un conjunto de respon- sabiltralt!, ladicamLMlc! diferentes a las de, por ejemplo, un programador, cuyo trabajo es escribir cdigo confiable. Es razonable entonces que las habilidades que se requieren en el analista sean diferentes de las que se requieren en el programador.No me terminan de gustar los trminos analista de negocios y analista de software, debido a que los analistas exitosos son una mezcla de ambos. Como analista necesita estar consciente en forma muy precisa de la manera en que un negocio hace dinero. Como veremos en el captulo 2, los sistemas de informacin de negocios existen para contribuir a ello. Por otro Indo, el objetivo del juego es construir el software. Por esta razn, el analista no puede desentenderse completamente de los principios bsicos de la automatizacin. Necesita estar profundamente consciente de lo que es posible, factible y prctico en lo que se refiere a la computacin en los negocios.En trminos generales, el analista es un investigador, ya que el anlisis es un proceso de descubrimiento. El analista debe estar a gusto en el papel de arquelogo, desenterrando gemas de datos desconocidos de entre el naufragio de los archivos planos de un sistema heredado, o descifrando los jeroglficos de un antiguo algoritmo de algn programador que ya ha muerto. Muchas veces el analista se convierte en un socilogo que es forzado a aventurarse y vivir entre la tribu para aprender sus costumbres y dialectos y para separar su mitologa de la realidad.Tambin son de gran importancia las buenas habilidades para la comunicacin. El anlisis no es una actividad sosegada y sin sobresaltos". En la fase de anlisis de un proyecto se pasar gran parte del tiempo sacando informacin de los posibles usuarios del sistema, reorganizando lo que aprende y volvindolo a presentar para su validacin. Tal vez sea llamado para hacer diplomacia, resolviendo conflictos y dando soluciones entre facciones del negocio que estn en guerra, o pasar tiempo en el papel de consejero de campamento aliviando el miedo que los usuarios tienen al cambio.Algunas empresas de IT (tecnologa de informacin) tienen la creencia de que si una persona se pasa dos aos encerrada en su cubculo dando mantenimiento a cdigo COBOL, obtiene mgicamente el conjunto de habilidades mencionadas anteriormente y asciende a un orden de existencia superior: analista-programador". Desgraciadamente esto no es cierto. Al igual que muchas otras habilidades en la vida, un buen analista se crea por medio de prctica dedicada y aptitud pura el trabajo. El analista necesita el entrenamiento adecuado y un ambiente en donde pueda pulir su talento por medio de la repeticin de las tcnicas analticas.:Los sisicntjs heredados snn aquellos que ya existen en In compaa, incluyendo ios sistemas que se vayana reemplazar. Por lo general, lian sido desarrollados nace algn tiempo con tecnologa vieja.

4Captulo 1 ! QU ES EL ANLISIS Y EL DISEO?JO TE ?Z.CC'J?. t>\CSSJ &U SrA S UNA PAy. iiftiijirirv; Esto significa que una gran pane del diseo externo debe ser escrita en una forma no muy tcnica. Las especificaciones internas de lo que sucede tras hamhnlinr>< pc r>rrn asunto, su pblico se miia a la comunidad de la T que debe construir, probar y mantener el sistema. La especificacin interna debe ser escrita directamente para esta audiencia.'4. TJiia buena metodologa de diseo crea productos diferenciados que son mensurables. Una de las tareas ms difciles de cualquier proyecto es estimar cundo ss terminara Para hacer una estimacin e! gerente de proyecto debe tomar medidas, la cual involucra el conteo de cosas que necesitan hacerse y la aplicacin de algn tipo de medida sobre de ellas para estimar qu tanto tiempo se llevar el hacerlas. La medicin viene, por supuesto, de haber contado esias cosas en el pasado y haber medido qu tanto tard el hacerlas anteriormente (o plagiando el sistema de medidas de otra persona). Por lo tanto, una metodologa de diseno debe producir componentes discretos lo ms pronto posible. Qu tamas tablas tenemos? Qu tantas ventanas se requerirn para la interfaz? Qu tantos repones se requieren? Cul es la cantidad de objetos que necesitamos disear y construir?1Tan pronto como e! gerente pueda tener producios firmes que contar, puede comenzar a refinar las estimaciones de los esfuerzos requeridos y los conjuntos de habilidades necesarias para lograr la tarea. Conforme el proveen*avanza tendr producios intermedios con los que se pueda medir el avance. Cuntas ventanas se han diseado? Cuntas faltan de disear? Cul es la tasa de productividad del equipo? Cul es c tiempo promedio que se lleva codificar y probar una ventana y sus funciones de fondo? Cmo influye esto en nuestra estimacin originai?"

GUE ES LO QUE HACE QUE UNA METODOLOGA SEA "BUENA"?175. Por ltimo, pero no menos importante, el diseo debe ser fcilmente aprovechado en ei producto final. Debe expresar el uso ^fTstructura del sistema en una forma muy cercara al resultado pretendido. Este punto puede parecer obvio, pero lie visto proyectos que trataron de usar tcnicas de diseo que fueron completamente inadecuadas para el lenguaje de destino en el que se codific el sistema. Usted no querra que su arquitecto casero le presentara un plano que fuera tan esotrico que no le diera idea de la forma que tendra la casa en su terreno. El lema del diseador es: hacer un mapa de h tcnica hacia el destino. Si el sistema va a operar con una base de datos re acin al se deben escoger tcnicas que sean particularmente adecuadas para el diseo de bases de datos relacinales. Si el sistema emplear un lenguaje orientado a objetos, entonces se debern usar tcnicas de diseo orientado a objetos para las panes del sistema que requieren objetos para lograr sus tareas. Si el sistema incluir componentes ms tradicionales, tales como funciones estructuradas en las anias cliente o por lote en el servidor, entonces son adecuadas tcnicas de diseo estructurado ms tradicionales para esas partes dei sistema.Muchos de los sistemas de negocios cliente/servidor actuales incluyen todos los paradigmas del lenguaje anteriormente mencionados, tratando valientemente de vivir en armona. Si esto es cierto para su sistema, entonces su documento de diseo incluir una diversidad de tcnicas de diseo que van desde la relaciona! y la orientada a objetos, hasta la tradicional, cada una establecida de acuerdo con sus respectivas partes de destino en el sistema.Caractersticas de las buenas metodologas de anlisisEl anlisis consiste en comprender y documentar las necesidades del usuario. La comprensin tfiene de hacer pTeguntas y escribir las respuestas, examinar las respuestas y hacer ms preguntas. Un analista que no hace preguntas est realizando un anlisis dudoso. Un analista que no escribe nada no ha hecho ningn anlisis, sino que simplemente est en un curso de auto- ayuda expandiendo su conocimiento personal del negocio. La falta de documentacin de los descubrimientos analticos sabotea los cinco beneficios de un anlisis exitoso. El resultado no es ni analtico, ni completo, ni verificable, ni mensurable, ni aprovechable. Suponiendo entonces que un buen anlisis est escrito, una metodologa de anlisis exitosa presentar las siguientes caractersticas:i. Una lcnica de anlisis debe motivar ei acto del descubrimiento proporcionando un marco ae traoajo en el que 1 analista puede escribir lo que ellos saben y evaluar lo que tienen que aprender. Esto incluye el tener inventiva para guiar el anlisis. Por ejemplo, a tcnica de anlisis del modelado de informacin indica que ei analista descubre la poltica del negocio para los cuatro puntos cardinales de cada relacin.6 El modelo proporciona un lugar para registrar esta informacin y el resultado est a la vista para su revisin en el diagrama entidad-relacin.* Los concepios sobre e! modelado lie informacin se ciibrcn sn el captulo 5.

Captulo 1 / QU ES EL ANLISIS Y EL DISEO?La metodologa de anlisis debe ser completa respecto a que cubra adecuadamentec.Lomoveremosposteriormenteencesamiento y comportamiento definible. La metodologa de anlisis necesita ser lo suficientemente rica para modelar los tres puntos de vista. Debido a que ningn modelo puede servir adecuadamente en todas las situaciones, necesitamos emplear un conjunto de modelos entrelazados, especializados que nos permita cambiar nuestra perspectiva para cada faceta del dominio del problema.un pblico dual. Los usuarios son el pblico principal para aprobar los documentos como una representacin precisa de sus necesidades. La mayora de los modelos de in-va a descubrir una relacin de cardinalidad que no sea exacta en un modelo de informacin, como tampoco va a poner en duda el empleo de la herencia mltiple en los diagramas de clase orientados a objetos. En vez de sujetar a los usuarios a los mode-Es imperativo que los usuarios comprendan lo que ha descubierto el analista. El anlisis no debe realizarse en los calabozos oscuros del departamento de IT y enviar el tomo resultante para que los usuarios lo firmen. En vez de ello, los usuarios necesitan estar involucrados personalmente con el proyecto desde el inicio y, en la medida de lo posible. deben unirse a las JAR {Sesiones de Requisitos de la Aplicacin) y el analista debe realizar revisiones e inspecciones peridicas del anlisis en presencia de un grupo de usuarios. Un analista experto no se detendr por nada para asegurarse de que los usuarios estn en la misma frecuencia que ei equipo dei proyecto. Yo le llamo a esto la parle de danza interpretativa" del proyecto, en donde puede encontrarse enfrascado en gesticulaciones, pegando imgenes prediseadas encima de un diagrama entidad-relacin o invitando a los usuarios a llenar datos reales con plumones de colores er. los ace- lutos en los que aparecen las ventanas.III otro pblico del documento de anlisis es. por supuesto, el propio equipo del proyec- m. I a calidad del anlisis impactar a ia calidad del diseo. Las tcnicas de anlisis necesitan ser precisas y no ambiguas de forma tal que el diseador pueda concebir una solucin sin tener que volver a hacer todo el proceso de anlisis.I..i metodologa de anlisis tambin debe crear unidades medibles para el gerente dei proyecto. Al inicio de la eiapa de anlisis, el tamao y alcance del proyecto pueden ser nn poco difusos. El negocio quiere saber cundo se le entregar el software y el "' i < * 111 o del proyecto todava no conoce la dimensin del problema. Los modelos deimli:iis .mranos ptii1d,',p '""'hr rr111'- pira i-*^:1'rgn--.liir I .ios comeos iniciales se utilizan para extrapolar el esfuerzo que se requiere para