Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1.- Qu es la ingeniera ?
Segn el Diccionario de la Real Academia de la Lengua Espaola, ingeniera es el conjunto de conocimientos y tcnicas que permiten aplicar el saber cientfico a la utilizacin de la materia y de las fuentes de energa, mediante invenciones o construcciones tiles para el hombre. En esta definicin queda resaltada la necesidad de la utilidad de lo inventado o construido, de donde puede deducirse que en todo trabajo de ingeniera debe subyacer, de forma ltima, la persecucin de un fin social; pero no se expresa otro concepto muy importante en ingeniera y que es el aprovechamiento ptimo de recursos y el logro de fines econmicos. As, la definicin de la Real Academia puede ser reformada y completada con la que se apunta a continuacin: la ingeniera es una actividad profesional que usa el mtodo cientfico para transformar de una manera econmica y ptima, los recursos naturales en formas tiles para el hombre. Segn esta nueva definicin, un ingeniero necesita tener una amplia formacin cientfica y tcnica que le permita abordar, de la forma ms econmica posible y utilizando un mnimo de recursos, los problemas que la sociedad le plantee. Estos problemas tendrn que ser estudiados en sus tres vertientes : tcnica, econmica y humana, para que pueda decirse que las soluciones de ingeniera adoptadas son realmente aceptables. Desde el punto de vista de la Ingeniera del Software, una de las definiciones ms comnmente aceptadas es : el establecimiento y uso de principios de ingeniera robustos, orientados a obtener software econmico que sea fiable y funcione de manera eficiente sobre mquinas reales.
-1-
-2-
Siguiendo la definicin dada por el Diccionario de la Real Academia en su acepcin quinta, un proyecto es el conjunto de escritos, clculos y dibujos que se hacen para dar idea de cmo ha de ser y lo que ha de costar una obra de ingeniera. Lgicamente, una vez concebido un plan para resolver cualquier clase de problema, todo el estudio realizado, las soluciones de diseo adoptadas, las normas a seguir para llevarlas a cabo y su coste previsto deben recogerse en un documento. En el mismo sentido de esta acepcin existe en Espaa una definicin legal aprobada por el Decreto de la Presidencia del Gobierno de 19 de Octubre de 1961 en el que se dice que un proyecto es un conjunto o serie de documentos que definen la obra, de forma tal que un facultativo distinto del autor pueda dirigir con arreglo al mismo las obras o trabajos correspondientes. Evidentemente, y considerando la fecha en que aparece, esta definicin se refiere a la ejecucin de proyectos clsicos, si bien debe quedar apuntado el hecho de que el documento que refleje el proyecto debe ser lo suficientemente claro y detallado como para permitir a otra persona de la misma cualificacin que el autor, comprender los algoritmos que se utilizan, reproducir los programas generados, e instalarlos y mantenerlos adecuadamente. En consecuencia, a esta definicin del proyecto la llamaremos Proyecto Documento. Otra definicin en este sentido que complementa a la anterior en la idea de ordenamiento de la informacin es la siguiente : conjunto o serie de documentos que representan, de forma ordenada, toda la informacin necesaria para la realizacin de una obra o trabajo determinado. Una definicin de proyecto desde el punto de vista de la economa sera una actividad en la que se invertir dinero esperando obtener un rendimiento, y que desde el punto de vista lgico se presta a su planificacin, financiacin y ejecucin como un todo. Todas las definiciones anteriores se ajustan al concepto de proyecto, pero siempre de forma parcial en funcin del punto de vista adoptado, as, una definicin ms general puede conseguirse partiendo de la dada por el Diccionario de la Real Academia para el trmino PROYECTAR que dice : idear, trazar, disponer o proponer el plan y los medios de ejecucin de una cosa. Segn esta definicin se pueden proyectar cosas diversas tales como lneas elctricas, mquinas, centrales nucleares o software, ya que se utiliza el trmino en sentido amplio. Ahondando en la ltima definicin propuesta, proyecto es la combinacin de recursos humanos y no humanos, reunidos en una organizacin temporal para conseguir un propsito determinado. Se introduce as el concepto de uso de los recursos, lo que comprende un planeamiento muy general de lo proyectado que excede a la mera descripcin de aquello que se pretende realizar, incluyendo el tiempo que se ha de tardar, los me-
-3-
dios a emplear, el modo de ejecutarlo y las previsiones sobre cunto costar y la rentabilidad econmica y social que se pretende obtener. Segn la ltima definicin, y compendiando todo lo anterior, el proyecto debe considerarse integralmente desde el momento en el que se concibe como respuesta a una problemtica humana (proyecto idea) y pasando por la fase de elaboracin tcnica como documento, hasta llegar a la fase de ejecucin en la que el tcnico que la dirija tendr tambin una labor de gran responsabilidad, e incluyendo las inversiones econmicas, que junto a lo anterior, permitirn obtener el rendimiento deseado.
-4-
NECESIDAD
SATISFACCIN DE NECESIDADES
ELABORACIN DE PROPUESTAS
EJECUCIN
EVALUACIN DE PROPUESTAS
Figura 1. El proceso de proyecto. En la mayora de los casos el desarrollo de proyectos software tropieza con graves inconvenientes derivados de la incorrecta formulacin de objetivos lo que, generalmente, se debe a falta de comunicacin real entre el cliente y el equipo de desarrollo de software. Adems existe un conjunto de verdades atribuidas al software que dificultan enormemente el establecimiento de los objetivos y que son :
Enunciar someramente las necesidades es suficiente para comenzar a escribir el cdigo: esta es la causa ms comn de proyectos software que no satisfacen la necesidad inicial. En muchos casos el cliente conoce su problema : debe acortar tiempos, organizarse mejor, calcular con ms precisin, disponer de bases de datos fcilmente actualizables... ; pero piensa que la solucin a estos problemas radica en el desarrollo de un nuevo programa para su empresa y as lo encarga al tcnico correspondiente. Si ste se prepara para escribir el programa inmediatamente habr incurrido en el mismo error que su cliente : confundir los deseos con las necesidades. En efecto, el cliente suele sobrevalorar las expectativas que tiene de la informtica y siempre pensar que con un nuevo pro-
-5-
grama todo ira mejor. El primer paso del proyecto estriba precisamente en diferenciar claramente la necesidad real, por lo que se requiere una intensa comunicacin entre tcnico y cliente sobre el tipo de informacin que se maneja en su empresa, la funcin que se le da a la misma, rendimiento actual del sistema, criterios de evaluacin, etc... Slo despus de adquirir toda esta informacin estaremos en condiciones de determinar qu necesita realmente el cliente : puede que necesite un programa nuevo, pero puede que su problema se resuelva utilizando algoritmos ms potentes, mejorando las comunicaciones internas, gestionando mejor los datos o slo trabajando de otra forma, puntos que, entre otros muchos, ser necesario considerar antes de empezar a trabajar. La definicin del problema puede cambiarse de forma dinmica a medida que se desarrolla el software, ya que ste es flexible y se adapta con facilidad : superada la fase anterior debe ponerse especial cuidado en que no haya modificaciones imprevistas ya que, una vez establecidos los recursos, interfaces y funciones a utilizar, los cambios en la definicin del problema suelen obligar a comenzar de nuevo desde el principio. Evidentemente, cuanto ms avanzada est la fase de implementacin (codificacin y prueba) mayor ser el coste derivado de los cambios, hasta tal punto que, en la fase final, suele ser ms barato comenzar de cero que introducir modificaciones en el cdigo. El proceso anterior debe concretarse en dos vertientes : identificacin del problema real (el problema del cliente) y el problema tcnico (la manera de dar satisfaccin a las necesidades). As, la formulacin del problema tcnico pasa por responder a una serie de preguntas, como por ejemplo : existe la tecnologa necesaria para resolver el problema, cul es ? qu recursos se requerirn para dar solucin al problema ? cules son las limitaciones de tiempo y de dinero ? En aquellos casos en que se desarrolle un producto para venderlo a muchos clientes potenciales habr que aadir los siguientes interrogantes : cul es el mercado potencial del producto ? qu ventajas tiene frente a la competencia ? qu lugar ocupa el producto dentro de la lnea general de la compaa o empresa ? La respuesta a este segundo grupo de preguntas suele escapar a la formacin normal del tcnico proyectista, por lo que habr que solicitar la colaboracin de gabinetes especializados o, en su defecto, recurrir a la realizacin de un estudio personal ms modesto basado en estadsticas regionales, nacionales o internacionales.
-6-
a) La empresa cliente que formular el problema del proyecto (falta de eficacia en algunas operaciones, necesidad de modernizacin, disminuir costes de gestin...). b) La empresa de ingeniera, que convertir la formulacin de la necesidad del cliente en una definicin del problema que pueda ser abordada desde el punto de vista tcnico. Evidentemente, al tratarse de un trabajo en equipo, la empresa de ingeniera incidir sobre la formulacin del problema realizada por el cliente corrigindola o aportando ideas que escapan a aquel dada su distinta especializacin. Igualmente, el cliente dar sus ideas sobre la definicin hecha por el equipo tcnico aportando su experiencia en el campo especfico de que se trate. Para que exista una colaboracin eficaz entre ambas partes que d lugar a una identificacin precisa del problema es necesario preparar correctamente las entrevistas o reuniones de trabajo de tal manera que se ahorre tiempo y se obtengan conclusiones concretas, llegando a definirse cuestiones como: Periodo esperado de uso del proyecto. Tipo de usuarios del proyecto. Medios disponibles en la empresa (redes, equipos, perifricos,...). Plazo de ejecucin necesario. Posibilidad de descomponer en subproblemas. Requisitos impuestos por el cliente.
Normativa de aplicacin. La preparacin de la entrevista debe consistir en la elaboracin de un guin o lista de cuestiones en los que se trate de poner de manifiesto las inquietudes del cliente y todos los puntos anejos o ramificaciones que puedan ser de inters, tales como personal disponible, espacio, limitaciones econmicas, etc. Por otro lado no es conveniente tomar el esquema previo como una pauta rgida a seguir, sino ms bien como una gua que nos permita ir abordando los temas a tratar con un orden lgico, sin impedir al cliente que vaya expresando sus inquietudes, pero procurando no apartarnos demasiado de la lnea de informacin deseada. Asimismo, el paso de recogida de informacin con el cliente no suele hacerse en una sola sesin, sino que es ms usual ir avanzando poco a poco en el nivel de detalle realizando entrevistas sucesivas. Lgicamente, es de utilidad que, conforme se vayan sucediendo las reuniones de definicin del problema, vaya interviniendo cada vez personal ms especializado de cada una de las partes.
-7-
Un ejemplo de guin para una entrevista de toma de contacto podra ser: 1) Tipo de trabajo que se solicita: estudio, informe, anteproyecto o proyecto. 2) Formulacin del problema con las palabras y desde el punto de vista del proyectista. 3) Antecedentes: se han realizado estudios previos sobre el tema? estudios de viabilidad? estudios de mercado? 4) Plazos de entrega esperados. 5) Presentacin del proyectista: exposicin de trabajos realizados con anterioridad, colaboradores, medios disponibles, etc... 6) Cuantificacin del problema: estimar los recursos humanos a utilizar, fases principales de realizacin del proyecto, costes del trabajo, informacin necesaria para continuar. Como resultado de la primera entrevista se prepara un informe con: 1) 2) 3) 4) Contenido del proyecto. Plazo propuesto. Coste aproximado del proyecto. Borrador del contrato u hoja de encargo.
-8-
2) Entorno: el siguiente elemento a especificar es el entorno, pero este concepto hay que entenderlo en sentido amplio, es decir: el entorno de programacin que se va a usar, o el interfaz de usuario, pero tambin hay que especificar qu personas van a utilizar el producto que se disea, su preparacin, en qu condiciones va a ser utilizado, incluyendo los ruidos, las vibraciones, temperatura y humedad del ambiente, etc... Aspectos que, en general, condicionarn no slo el software que se disea sino tambin el hardware necesario para ejecutarlo. 3) Vida esperada: ningn producto es eterno, ya que constantemente aparecen tcnicas que ayudan a mejorar el diseo. Con respecto al software, esta aseveracin se hace ms evidente que con respecto a los productos industriales. Por ello, es necesario definir cual va a ser la vida til del producto, ya que en algunos casos puede no merecer la pena realizar un gran esfuerzo en la fase de diseo para un producto que va a ser sustituido en breve. 4) Ciclo de mantenimiento: el software que se entregue al cliente, ser definitivo, o sufrir actualizaciones a lo largo del tiempo? En el caso de que sea necesario ir actualizando el producto, hay que definir la periodicidad y el coste, ya que estos datos influirn decisivamente sobre la calidad del producto y sobre la imagen que el cliente forme de l. 5) Competencia: si existe en el mercado otro producto que puede realizar las mismas tareas que se demandan del proyecto, ser necesario conocer a fondo cuales son sus ventajas e inconvenientes, de tal manera que nunca se ofrezca al cliente algo que sea peor que lo ya existente. 6) Aspecto externo: lo primero que ve el cliente es el aspecto externo del producto, y despus evala su funcionamiento. Respecto al software, el aspecto externo radica, no slo en que el interfaz sea amigable y de manejo intuitivo y ergonmico, sino que tambin es necesario considerar aspectos como la presentacin (discos, CD-ROM, ...), el diseo de la cartula y del envoltorio, el manual de usuario, que debe ser atractivo, fcilmente inteligible y no debe necesitar del apoyo de ninguna documentacin adicional, etc. 7) Estandarizacin: el uso de diseos estndar facilita el trabajo, de tal manera que debe utilizarse siempre que sea posible lo que ya est estipulado, como por ejemplo bibliotecas de funciones matemticas, protocolos de comunicaciones, combinaciones de colores, mens desplegables, tipos de ficheros...
-9-
8) Calidad y fiabilidad: el aseguramiento de la calidad es un campo que va tomando cada vez ms importancia. Desde el punto de vista del diseador del software debe identificarse cuales son los puntos o elementos de riesgo, con ms probabilidad de fallo, e intentar minimizar esta probabilidad con un diseo adecuado. 9) Programa de tareas: ningn plan de diseo estar completo sin que exista un programa detallado de su realizacin a lo largo del tiempo, de tal manera que se determine el plazo disponible para la ejecucin de cada parte del proyecto, los recursos (humanos y materiales) que se emplearn, y el coste aproximado. El equipo de diseo debe conocer esta planificacin y los plazos de que dispone, pero no es eficaz a largo plazo dar a conocer la programacin en todos sus detalles ya que la tendencia del personal es la de agotar al mximo los plazos disponibles. 10) Pruebas: otra de las especificaciones importantes a la hora de disear es la de determinar qu partes del diseo sern sometidas a pruebas, en qu momento, cules son las pruebas y cules son los resultados mnimos esperados para que pueda darse por bueno el diseo. Asimismo, es importante especificar si el usuario final va a tomar parte en las pruebas o no. 11) Seguridad: La seguridad consiste en especificar qu tratamiento se dar a los datos propios del usuario y tambin la seguridad contra copias no permitidas.
-10-
A esta lista de preguntas puramente tcnica hay que aadir otras sobre las limitaciones del diseo que son impuestas por el exterior y que pueden ser de dos tipos : Factores dato : son factores dato aquellos que no pueden ser modificados, como por ejemplo limitaciones de tiempo dadas por el plazo de entrega del proyecto, limitaciones presupuestarias del cliente, tecnologa del hardware existente, etc... Factores estratgicos : son variables de diseo en las que habr que elegir entre dos o ms posibilidades, dependiendo la solucin final que se adopte de la eleccin realizada. Por ejemplo se desea que la solucin generada pueda utilizarse en cualquier equipo, o es necesario disponer de unos requisitos mnimos ? se utilizarn grficos, o slo pantallas de texto ? qu tipo de sistema operativo o entorno es ms adecuado para este caso ?
3.2.1.- Brainstorming.
El brainstorming (tormenta cerebral o tormenta de ideas) consiste en una reunin de trabajo a cargo de un grupo de personas en nmero variable (7 a 12, aunque pueden ser ms) y que han de tener conocimientos en el tema de que se trata y conocer los condicionantes especficos del problema de diseo. Durante cada sesin se expondrn ideas para la posible resolucin del problema estando prohibidas las crticas. Se obtiene as un
-11-
nmero relativamente grande de propuestas que sern evaluadas con posterioridad. Para que la tcnica del brainstorming tenga xito, es necesario que haya un jefe, organizador o moderador que prepare la reunin informando a los participantes del tema que se va a tratar y de los criterios bsicos a utilizar; asimismo tomar nota de las ideas expuestas y las ordenar por afinidad entre ellas. Las propuestas as obtenidas sern evaluadas por un equipo diferente de personas y se seleccionar las ms acertadas. La principal caracterstica de esta tcnica es la carencia de crticas, por lo que se libera el subconsciente de los participantes y se da rienda suelta a la imaginacin obtenindose gran cantidad de sugerencias. Otro factor importante a la hora de profundizar en las soluciones es utilizar las ideas de los dems, procurando mejorarlas o complementarlas, para ello puede ser interesante que participen personas de distintas edades, profesiones y sexo. Por otro lado no tiene sentido realizar una sesin de brainstorming para buscar ideas en un problema de solucin nica. El peligro principal de esta tcnica es la divagacin, ya que el estado mental que se crea en los participantes favorece el desarrollo de las sugerencias ms imaginativas o fantsticas y un alejamiento del tema propuesto inicialmente, por lo que es misin del organizador reconducir el tema tantas veces como estime preciso.
-12-
3.2.3.- La sinctica.
La sinctica es un mtodo de diseo en grupo en el que se explota la habilidad de las personas para encontrar paralelismos o conexiones entre campos aparentemente muy dispares. El grupo de sinctica debe estar formado por un nmero no demasiado elevado de personas (hasta 6), en el cual la mitad puede formar parte del equipo de diseo del proyecto y la otra mitad pueden ser invitados del exterior, procurando siempre que exista la mayor variedad posible de titulaciones y actividades profesionales. El mtodo de trabajo tiene algunas similitudes y diferencias con el brainstorming: el punto principal de contacto es que debe trabajarse en un contexto en el que no existan las crticas, y la diferencia estriba en que, si en el mtodo del brainstorming se trabaja en busca del mayor nmero de soluciones posible, en la sinctica se persigue obtener una nica solucin viable.
-13-
La prctica demuestra que la sinctica funciona bien en la resolucin de problemas reales en los que existe una alta probabilidad de que las soluciones puedan llevarse a la prctica, como por ejemplo en aquellos casos en los que se desee buscar nuevas soluciones mejores y ms eficaces a problemas que ya hayan recibido alguna solucin con anterioridad. Sin embargo, cuando el problema es completamente nuevo y es necesario dar soluciones o adoptar la mejor de un abanico propuesto anteriormente, este mtodo no da buenos resultados. Los cuatro tipos de analogas utilizados son: 1) Analoga directa: en la que se asimila el problema a algo existente en la realidad. 2) Analoga personal: el diseador se imagina a s mismo haciendo las veces u ocupando el lugar de lo que disea, de tal manera que toma una consciencia ms eficaz del problema. 3) Analoga simblica: se realiza una comparacin metafrica en la que lo que se disea se asimila a la totalidad o a parte de algo conocido: rbol de decisin, boca de un ro... 4) Analoga fantstica: este es el tipo ms libre en el que el diseador deja completa libertad a su imaginacin y el problema se asemeja a objetos inexistentes. La sesin de sinctica comienza con una exposicin del problema por parte del director o moderador de la misma de forma que, inicialmente, procure exponer las soluciones previamente existentes o triviales para que sean evitadas desde el principio por los participantes. Adems, debe sugerir alguna lnea principal dentro de los tipos de analogas mencionadas ya que, como puede suponerse, es relativamente frecuente la divagacin. En el caso de que las comparaciones que vayan realizando los participantes se alejen demasiado del problema inicial o sean demasiado fantsticas, debe procurar reconducir la discusin volviendo a resumir los objetivos que se persiguen. Si por el contrario aparecen comparaciones que tengan visos de poder convertirse en nuevas soluciones del problema, se profundizar en ellas hasta tener un prediseo.
-14-
cada uno de sus aspectos simples, de tal manera que estas opciones puedan ser combinadas, y cada combinacin evaluada, con facilidad. Supongamos un problema de diseo en el que hay que decidir sobre dos aspectos y cada uno de ellos slo tiene dos opciones posibles. As, el primer aspecto puede tomar la solucin A o la a, y el segundo la B o la b. Evidentemente, el espectro de posibles soluciones al problema general es AB, Ab, aB y ab. A continuacin se piensa en posibles ventajas que es de esperar que tenga la solucin definitiva, como por ejemplo, transportabilidad, ergonoma, facilidad de manejo o esttica y se oponen a las cuatro soluciones en una tabla, marcando con una X aquella solucin que presente una determinada ventaja (tabla 3). Tabla 3. Tabla de seleccin de ideas combinativas. Transportabilidad Ergonoma Facilidad de manejo Esttica AB X X X Ab X X X X aB X ab
En este caso resulta evidente a primera vista que la solucin a elegir es la AB siempre y cuando el proyectista d la misma importancia a todas las caractersticas o ventajas del problema.
-15-
4) Incrementar al mximo el grado de abstraccin en la formulacin del problema: cuando el problema se define con gran detalle por parte del cliente o del tcnico es posible que en la misma definicin est enmascarada una solucin parcial que concuerda con los deseos del cliente o del diseador. Por ejemplo es posible definir un problema de proyecto como disear una silla cuando el problema es disear un artefacto para sentarse lo que, evidentemente, no tiene por qu ser una silla ni parecerse a una silla. 5) Hacer esquemas, tablas y dibujos: no siempre es posible abstraerlo todo. Poner las ideas en papel ayuda a comparar, decidir y mejorar. 6) Llevar siempre el problema hasta sus lmites: las limitaciones impuestas al problema por condicionantes econmicos o de tiempo ya son suficientes. No debe empobrecerse el resultado slo por no haber explorado todas las vas posibles de solucin. 7) Cumplir las funciones especificadas: una vez realizada la PDS, hay que ajustarse lo ms posible a ella, de tal manera que si se encuentran dificultades en el cumplimiento de alguna funcin siempre es mejor desechar un diseo y empezar de nuevo que dejar especificaciones sin lograr. 8) Explotar al mximo los mtodos y herramientas a nuestro alcance: a menudo, el tcnico se acostumbra a utilizar siempre los mismos criterios y las mismas herramientas, lo que en la mayora de los casos, va en contra de la bsqueda del mejor diseo. 9) Realizar un desarrollo lgico del proceso de diseo: empezar por lo general y terminar por lo particular. Suele ser de utilidad realizar una justificacin detallada de cada una de las decisiones de diseo que se tomen, de tal manera que pueda observarse una ilacin lgica de unas a otras. 10) Hacerse preguntas: el diseador debe adoptar una actitud de incredulidad respecto a la bondad de lo que disea, de tal manera que constantemente se est preguntando: es necesaria esta parte? cmo puede fallar esto? por qu lo estamos haciendo as?
-16-
puestas. Sin embargo no es fcil determinar qu opcin es la ms adecuada en cada caso ya que suelen existir criterios de valoracin a menudo contrapuestos: quiz la solucin econmicamente ms aceptable no es la mejor desde el punto de vista tcnico o viceversa, sin olvidar otros elementos de valoracin tales como la esttica o la imagen externa, condicionantes legales o de cualquier otra ndole que puedan ser de aplicacin. Por otra parte, la solucin que satisfaga de forma ptima uno de los criterios quiz ni siquiera alcance un mnimo en alguno de los dems, por lo que es necesario renunciar a la perfeccin en aras de conjuntar todos los criterios en una solucin de compromiso. El proceso bsico a seguir en la comparacin tcnico-econmica de soluciones consiste en identificar en primer lugar el coste de desarrollo del prototipo en contraposicin con los beneficios que se espera obtener (inputs y outputs); establecer cuales van ser los criterios o ndices de decisin, tales como ndices econmicos, tcnicos o combinacin de ambos y, por ltimo tener en cuenta la incertidumbre o riesgo que se corre al realizar el estudio basndose en estimaciones a priori, por lo que habr que considerar tambin este aspecto utilizando un estudio de probabilidades o, al menos, un abanico de estimaciones optimistas y pesimistas. As, se hace necesario contar con herramientas de valoracin que pongan de manifiesto las virtudes y defectos de las soluciones para llegar a decidir cul se adapta mejor al problema. A continuacin se exponen las tcnicas ms usuales.
-17-
-18-
VALORACIN
P1 5 3 1 5 3 1 5 3 1 5 3 1 5 3 1 5 3 1 5 3 1 5 3 1 5 3 1 5 3 1 5 3 1 5 3 1 5 3 1 X
G 5
PXG K1
2.- FUNCIONALIDAD
10
K2
3.- ORIGINALIDAD
10
K3
4.- PRECIO
K4
5.- EMPRESA
K5
6.- MODULARIDAD
K6
7.- ESTTICA
10
K7
8.- ERGONOMA
10
K8
K9
10.- TECNOLOGAS
K10
11.- PRESUPUESTO
10
K11
10
K12
10
K13 Ki
Es vlido cualquier valor intermedio. Si un criterio no se valora por carecer de datos se puntuar con cero. X es el nmero de respuestas no nulas.
-19-
V=
ki 4N
+ (N/10)2 -1 > 10
La valoracin de las distintas soluciones en funcin del valor V obtenido se muestra en la tabla 7. Tabla 7. Valoracin de las soluciones.
VALORACIN (V) V>8.5 8.5>V>7.0 7.0>V>6.0 6.0>V>5.0 5.0>V CALIFICACIN EXCELENTE MUY BUENA BUENA NORMAL REGULAR
Adems debe dejarse parte de la valoracin a criterios puramente tcnicos con un informe complementario.
-20-
proceso proyectual y se refleja en varios paradigmas o mtodos prcticos de aplicarlo: el ciclo de vida clsico, la construccin de prototipos, y los modelos en espiral.
-21-
Anlisis de requisitos: una vez identificado el sistema en su totalidad, pasaremos a realizar el anlisis de requisitos, que representa el segundo escaln en el proceso del proyecto. Concretamente deben identificarse aqu las funciones que deber realizar el software, el rendimiento esperado y los interfaces necesarios. Los requisitos deben ser revisados con el cliente o usuario antes de ser dados por vlidos. Diseo: el diseo del software no se refiere a la realizacin o codificacin del programa, sino a la determinacin de sus caractersticas formales generales, tales como la estructura de los datos, la arquitectura y la caracterizacin del interfaz. As, una vez diseado el software, debe asegurarse que este diseo cumple con todos los requisitos de calidad exigidos en el punto anterior. Codificacin: consiste en traducir el diseo realizado a lenguaje inteligible por la mquina. Este paso debe ser mecnico, ya que los problemas generales de diseo han sido resueltos con antelacin. Prueba: es el ltimo paso de la codificacin, en el que se comprueba la sintaxis correcta de las sentencias y el buen funcionamiento de las funciones, de tal manera que todas las entradas posibles generen las salidas deseadas. Mantenimiento: una vez entregado al cliente, el software puede sufrir modificaciones debidas a falta de adaptacin real a las necesidades, variaciones del entorno tales como nuevas exigencias de rendimiento, o utilizacin de nuevos perifricos. En la fase de mantenimiento habr que aplicar de nuevo cada uno de los pasos del ciclo de vida general, pero con el diseo ya existente en lugar de con un diseo nuevo. Antes de continuar es necesario establecer un paralelismo entre el proceso general de proyecto y lo que hemos llamado el ciclo de vida clsico: el establecimiento de necesidades se corresponde con la ingeniera del sistema, en esta fase se realizan las entrevistas oportunas para llegar a definir correctamente los objetivos, tanto desde el punto de vista del cliente como desde el del tcnico, terminando con una memoria resumen de necesidades. El anlisis de requisitos, si bien es misin del equipo tcnico que vaya a desarrollar el software, no debe excluir la relacin con el cliente, por lo que es de utilidad realizar aqu una segunda tanda de entrevistas ms complejas, en las que intervenga tambin personal tcnico o usuarios directos de la empresa cliente, por lo tanto esta fase estara englobada dentro del establecimiento general de necesidades del proceso proyectual. Las dos siguientes fases del proceso general se corresponden con la fase de diseo del ciclo de vida clsico y en ellas deben aplicarse las tcnicas de elaboracin de propuestas y evaluacin de soluciones que se vieron en los apartados correspondientes.
-22-
Es necesario prestar gran atencin en esta fase, ya que los errores que se detecten aqu sern mucho ms fciles y econmicos de solucionar que los que aparezcan en fases posteriores, por otro lado iniciar la codificacin sin realizar un diseo detallado de las estructuras de datos, arquitectura y diseo procedimental, es justamente lo contrario de lo que debe hacerse y sera como pedir a un arquitecto que construya una casa sin haber estudiado antes el terreno, los materiales y las normas de urbanismo, por ejemplo. Por otro lado, tal como se ha especificado en los procedimientos de diseo, al quedarse con una nica solucin en alguna de las etapas de diseo sin haber comparado las posibilidades que ofrece cada una de las alternativas, se corre el riesgo de optar por soluciones no adecuadas al problema en cuestin. Las fases de confeccin del proyecto y ejecucin son equivalentes a la de codificacin, aunque la primera de ellas se corresponde ms con una redaccin de la documentacin del proyecto y la segunda tiene parte en comn con la fase de prueba, ya que tanto la codificacin como las pruebas forman parte de la ejecucin formal del proyecto. Por ltimo, la evaluacin del grado de satisfaccin de las necesidades del cliente logrado con el proyecto realizado pertenece tanto a las pruebas del software como al mantenimiento del mismo una vez instalado. Evidentemente, tanto en el proceso general del proyecto como en el ciclo de vida clsico del software, el ciclo es cerrado, lo que significa que en cualquier momento del proceso es posible volver a replantear un estudio de necesidades, o una nueva elaboracin de propuestas, aunque esto no es deseable y debe evitarse por medio de la aplicacin lo ms detallada posible de las tcnicas del diseo. El ciclo de vida clsico es un mtodo muy utilizado, sin embargo presenta ciertas dificultades en su aplicacin: 1. Es difcil realizar un seguimiento secuencial de los pasos del proceso de desarrollo de proyectos reales, ya que todas las fases interaccionan entre s. Por lo tanto, la vuelta atrs mencionada anteriormente est casi asegurada, no tanto porque existan errores en el proceso como por la dificultad de definirlo todo desde el primer momento con el suficiente nivel de profundidad. 2. Se necesita que el cliente especifique todos los requisitos, existiendo fuertes penalizaciones de tiempo y dinero en el proceso de diseo si aparecen nuevos requisitos con el proceso avanzado. 3. Hasta las ltimas fases del proceso no existir una versin del programa capaz de ser utilizado, de tal manera que los posibles errores de diseo o de definicin de requisitos tienen consecuencias graves cuando se realizan las pruebas.
-23-
ELABORACIN DE PROPUESTAS
EVALUACIN DE PROPUESTAS
Anlisis y Diseo
Codificacin
EJECUCIN
Prueba
SATISFACCIN DE NECESIDADES
Mantenimiento
Figura 3. Correspondencia entre el proceso general del proyecto y el ciclo de vida clsico. En cualquier caso el mtodo es interesante como gua en el proceso de diseo ya que responde a una metodologa racional del estudio del proyecto.
-24-
que anlisis, diseo, codificacin y prueba se realizan de forma interactiva y simultnea. Para ello debe partirse de la construccin de un prototipo sobre el que establecer el primer paso del ciclo, este prototipo puede realizarse en papel, explicando cmo ser inicialmente el interfaz, con un programa que implemente parte de los requerimientos y subrutinas o con un programa preexistente que debe ser mejorado para cumplir con todos los requisitos. En la figura 4 se muestra el esquema general del proceso de construccin de prototipos. Al igual que en el ciclo de vida clsico, debe comenzarse con la especificacin de requisitos por parte del cliente, a continuacin el ingeniero del software realizar un diseo rpido en el que se centrar en la entrada y salida de datos y, en general, en los aspectos del software visibles para el usuario.
Revisin
Figura 4. Esquema general del mtodo de construccin de prototipos. Construido un prototipo, se pasar a evaluar ste con el usuario, que definir nuevos requisitos o redefinir los anteriores. Los problemas bsicos que presenta el modelo de construccin de prototipos es que el cliente a menudo ve programas funcionando que para el diseador son slo fases del proceso ya que an no han sido depurados, no se ha optimizado el uso de la memoria o no se ha estructurado el manejo de los datos, de tal manera que el cliente solicita la en-
-25-
trega inmediata del software. Por otro lado es posible que el diseador, por tratarse de un prototipo, utilice herramientas o lenguajes de programacin inadecuados con la intencin de modificarlos con posterioridad, pero a lo largo del proceso, quiz influido por las presiones del cliente, se d por satisfecho an a sabiendas de la falta de optimizacin. La solucin a estos problemas es relativamente fcil: establecer al principio un protocolo de trabajo con el cliente en que se informe al mismo del mtodo de generacin de prototipos y de que los primeros pasos slo deben servir para la definicin de los requisitos de tal manera que el software definitivo es objeto de un proceso ms largo.
-26-