Educación

Página 1 de 12

Consideraciones y Perspectivas Sobre el Desarrollo de Sistemas Informáticos.
Eugenio Jacobo Hernández Valdelamar. E-mail: jackhv@hotmail.com Fundación Arturo Rosenblueth.

RESUMEN
En este trabajo se expone una perspectiva del desarrollo de sistemas, analizando su problemática y proponiendo algunas soluciones, con base en la infraestructura con la que cuentan muchas empresas y desarrolladores independientes que practican esta actividad, así como el impacto de la tecnología por venir. Tambien se comenta la importancia de un marco legal que regule el desarrollo y uso de productos de software, sobre todo si se toma en cuenta que poco a poco nos estamos integrando a una comunidad global que depende de estos recursos, y por lo tanto, la exigencia en la adopción de normas de calidad que aseguren el rendimiento de los productos.

Introducción.
El objeto de un análisis a fondo sobre el estado y perspectivas del desarrollo de sistemas (de cómputo específicamente) no solo debe hacerse por mero entretenimiento, sino para crear una consciencia y plantear estrategias para mejorar y superar los logros obtenidos entre aquellos que comparten el interés y la responsabilidad de esta especialidad, así como aquellos que se benefician de los resultados (usuarios). Dicho análisis debe abarcar aspectos tan variados como la formación académica, las necesidades del mercado, la aparición de nuevas tecnologías, la interacción con otras áreas del conocimiento, así como el impacto social provocado (la esencia de la teoría general de sistemas). Varios son los puntos sobre los que pueden discutirse, aunque a mi criterio solo algunos son vitales: Areas de desarrollo. Plataformas de desarrollo. Herramientas de desarrollo. Nuevas técnicas de solución de problemas. Legislación.

file://D:\edu\edujhv13.htm

07/03/2006

Educación

Página 2 de 12

Estas cinco áreas contienen la mayor parte de la problemática que cualquier profesionista o estudiante de la computación e informática, debe conocer, entender y tratar de solucionar. Además, desde una perspectiva real, todos estos factores inciden directamente en el ejercicio de la profesión, por lo que es oportuno tener la oportunidad de ofrecer una opinión al respecto.

I. Areas de desarrollo.
Cuando se le pregunta a un estudiante la razón de su elección por una carrera relacionada a la computación, por lo general suelen responder específicamente: "quiero aprender a programar para hacer juegos de..." "quiero aprender a construir una computadora..." "es lo de moda, un pariente o amigo hacen lo mismo" o simplemente "no lo sé" Después de 4 ó 5 años en la escuela, ¿dónde lo van a aplicar? Tenemos básicamente tres grandes clases de fuentes de trabajo: las empresas públicas, las empresas privadas y las instituciones de educación. Aunque el azar y la necesidad son los principales factores para que un individuo se desarrolle en cualquiera de estos sectores, ¿acaso sabe lo que va a ser?, ¿Cuales son los requisitos para obtener un empleo?, o ¿qué se hace en esos lugares? El aparente divorcio entre las necesidades del sector productivo (industria y comercio) y la formación educativa, provoca que tales cuestiones impresionen demasiado. Sin embargo, aunque algunas instituciones tienen excelentes planes de estudio, y varias están en el proceso de actualizarse, no es posible que se afirme que conseguiremos empleo por que sistemas descontinuados necesitan mantenimiento o actualizaciones. Esta actitud es la que nos hace parecer como técnicos (de los cuales aunque hay una gran demanda), cuando en realidad son licenciados e ingenieros, cuyas capacidades a veces quedan veladas por este tipo de circunstancias. Algunas de las áreas de conocimiento con más demanda son: - Redes y telecomunicaciones. - Desarrollo de sistemas de información. - Manejo de aplicaciones especializadas. - Soporte técnico y mantenimiento. - Capacitación y docencia.

file://D:\edu\edujhv13.htm

07/03/2006

Educación

Página 3 de 12

- Reingeniería de procesos. Sin embargo, debe estarse consciente de que la tendencia de la cultura informática apunta a que todo mundo pueda utilizar una computadora de manera provechosa, por lo que los especialistas en informática ¿donde quedan? No hay que preocuparse mucho, pues entre las nuevas necesidades generadas por miles de usuarios, el desarrollo y la adopción de nuevas tecnologías, y el mantenimiento de las ya existentes, prometen mantenernos bastante ocupados, aunque nunca esta de más diversificar nuestras habilidades, cooperando con especialistas de otras ramas. Tal vez esta sea la única manera de mantener un equilibrio justo.

II. Plataformas de desarrollo.
En lo referente a las plataformas de desarrollo (o el hardware en el que se desarrollan e implantan los sistemas), es evidente una dependencia tecnológica abrumadora del exterior. Si alguien no esta de acuerdo, le preguntaría ¿bien, si no es así, entonces en qué somos líderes?, ¿qué producimos? En este caso, ya es algo tarde como para "empezar a desarrollar tecnología propia" (como producción de microcircuitos o periféricos). Entonces, ¿cual es el remedio?. Si se tratará de buenos deseos, tal vez sería bueno reestructurar toda la infraestructura de computo nacional usando estaciones de trabajo de vanguardia (p.ej con procesadores RISC) y sistemas electrónicos de servicios y consumo gratuitos como los que se tienen en Francia. Sin embargo la realidad es otra. Aunque la mayoría de las computadoras personales (PCs) cada vez son más rápidas, con todo y que la tecnología CISC no es la más óptima (pero por razones de mercado es la más exitosa), sí se invirtió en el equipo, este debe utilizarse y aprovecharse para las actividades que requirieron su adquisición. Sin embargo, a mediano plazo, será necesario renovar de nuevo la infraestructura de computo de varias empresas, por lo que se debe estar al tanto del desarrollo, lanzamiento y especificaciones de nuevos productos, para así poder asesorar objetivamente las inversiones de las empresas que estén dispuestas a invertir, así como a los usuarios independientes que por lo general, son presa de publicidad no objetiva, y realizan gastos apresurados en lugar de invertir su dinero.

III. Herramientas de desarrollo.
La parte técnica del desarrollo de sistemas puede analizarse desde dos puntos de vista: 1. Las herramientas teóricas para el desarrollo de sistemas. - Metodologías de análisis y diseño.

file://D:\edu\edujhv13.htm

07/03/2006

Educación

Página 4 de 12

- Lenguajes de programación (estructurados, LOOs, funcionales, scripts, etc.). 2. Los productos (software o hardware) disponibles para el desarrollo de sistemas. - Editores de texto e imágenes. - Herramientas CASE. - Sistemas de administración y planeación. - Interpretes y Compiladores. - Manejadores de bases de datos. - Navegadores (browsers). - Componentes específicos (comunicación en red, manejadores de dispositivos, etc.). Por alguna razón no muy clara, se muestra más interés hacia las herramientas prácticas que a las teóricas, aunque esto es una generalidad. Aún así, cada individuo y cada empresa tienen sus propias necesidades, por lo que vale la pena preguntar ¿cuales son las características deseables de una herramienta de desarrollo?. Algunos parámetros pueden ser: - Ambientes de desarrollo interactivos (IDE). - GUI (WYSIWYG) - Soporte de acceso a bases de datos. - Soporte de recursos multimedia (imágenes y sonidos). - Soporte de comunicaciones en red y otros periféricos. - Generación de aplicaciones multitarea. - Velocidad. - Asesoría técnica. - Transportabilidad de las aplicaciones generadas (multiplataforma). - Requerimientos de hardware no exagerados. - Compatibilidad con aplicaciones auxiliares y componentes. Por lo general, aunque se realice una evaluación de productos bajo estos criterios, la realidad es que hay que adaptarse a lo que tiene la empresa (ya sea por rehusarse a tomar riesgos o por falta de presupuesto), lo que puede convertir a un desarrollador en un experto

file://D:\edu\edujhv13.htm

07/03/2006

Educación

Página 5 de 12

dependiente de un producto en particular, aunque lo más recomendable es conocer las características y funcionamiento básicos de varias herramientas, para tener opciones al proponer una solución. Además, los nuevos repositorios de software permiten probar varios productos con un costo mínimo, aunque la mayor parte de estos se encuentran en otros países. Sin embargo, este banco de recursos provee la libertad de elegir, y no nos limita a las existencias de los aparadores de una tienda. Recomendar los diez mejores productos, no sería prudente, pues nos encontramos en un punto donde están apareciendo nuevas herramientas orientadas hacía el aprovechamiento de nuevos recursos, tanto de las arquitecturas de hardware, como de los sistemas operativos y el Internet, y otros productos existentes se están adaptando al cambio, por lo que será interesante observar si la costumbre se impondrá sobre la funcionalidad de nuevas opciones (batalla que ya antes se ha librado).

IV. Técnicas de solución de problemas.
Aunque los cánones del análisis y diseño de sistemas de cómputo pugnan por un mayor empleo del tiempo y recursos en el planteamiento de un modelo abstracto, que contenga todas las consideraciones y métodos de solución posible, para después implementarlos con un menor esfuerzo, existen algunos detalles prácticos que no lo permiten del todo. Lo ideal sería decir: Antes: mucho tiempo invertido en desarrollar interfaces gráficas de usuario (GUI), implementar y probar accesos a bases de datos y comunicaciones en red. Ahora: más tiempo para dedicarse a solucionar (y documentar) el problema principal, y no cuestiones técnicas (en teoría). Poco a poco la calidad de los productos de cómputo lo han permitido. Pero en relación a la solución de problemas, cuidado. Considero que debe considerarse la complejidad en dos sentidos: El determinismo del problema. No todo problema es deterministico. Si lo es, un analista en sistemas puede desarrollar un algoritmo para solucionarlo, solo que dicho analista no debe ser necesariamente un docto en cuestiones de computo, sino un experto en el dominio del problema (p.ej. matemáticos, físicos). Si el problema es no determinista, existen dos opciones: ponerse a llorar, o estudiar temas de vanguardia como redes neuronales, algoritmos genéticos o lógica difusa. La buena noticia es que tales técnicas son capaces de solucionar problemas muy complejos, relativamente con un esfuerzo mínimo; la mala, es que no es necesario un programador experto que la implemente, sino un experto en información relacionada con el problema. Y esto solo es la punta del témpano. ¿Qué dirían si les dijeran que un programa es capaz de crearse a sí mismo o qué puede ser autónomo? Imposible...no.

file://D:\edu\edujhv13.htm

07/03/2006

Educación

Página 6 de 12

Paralelismo. Conforme el modelado de un problema desee realizarse de forma más apegada a su símil real, es necesario considerar que los eventos y procesos relacionados pueden ocurrir en un mismo instante de tiempo. Aunque no es una tarea fácil, existen distintas metodologías que permiten expresar estas relaciones de manera formal, aunque el dilema principal, muchas veces se relacione con la implementación. Para ello pueden realizarse simulaciones, o aprovechar recursos de multitareas de algún sistema operativo, todo esto mientras no sean más accesibles las arquitecturas con multiprocesadores.

V. Legislación y normatividad.
Deben tomarse en cuenta para dictar disposiciones legales y proponer normas para las actividades relacionadas con la informática los siguientes campos: a. Crímenes por computadora. Incidentes como el de las elecciones federales en 1994, con la supuesta violación de seguridad del sistema de conteo, y la posibilidad latente de fraudes electrónicos, hacen necesaria una legislación en materia de crímenes computacionales (o cibercrimen). Una buena definición de este tipo de crimen debe tomar en cuenta únicamente los actos criminales que involucren computadoras (ya sea en su contra o por su uso). Estos crímenes pueden clasificarse de la siguiente manera [1]: Sabotaje. Involucra un ataque en contra de un sistema de computo o de sus componentes, por parte de una organización o individuo (p.ej. virus de computadora). Uso de una computadora ajena (p.ej. abuso de confianza). Crímenes de propiedad que involucren las circunstancias de (2) (p.ej. lavado de dinero [2]). Estas clases de crimen están relacionadas con la violación de la confidencialidad, integridad o disponibilidad de información o recursos de software o hardware. No será suficiente que legislaciones extranjeras existentes sean adaptadas (será más prudente una cooperación internacional) a un código civil nacional, ni que los juristas por si solos redacten un conjunto de artículos y apartados para este caso. Será necesario consultar a los expertos de la informática, tanto nacionales como extranjeros, para complementar dicha legislación con el conocimiento actualizado relacionado con la tecnología usada en este tipo de ilícitos. Del mismo modo especialistas en finanzas y administración deberán ser consultados, pues su dependencia de los sistemas de información es cada vez mayor. b. Seguridad.

file://D:\edu\edujhv13.htm

07/03/2006

Educación

Página 7 de 12

Los sistemas son vulnerables [3], generalmente por: 1. Complejidad y altos costos de la seguridad. 2. Infraestructura criptográfica. 3. Nuevas tecnologías. Algunos de los métodos de ataque son: Virus de computadora, caballos de Troya, bombas de tiempo. Decodificación ilegal de llaves y contraseñas. "Sniffers" o programas para intercepción de información en una red (p.ej. números de tarjetas de crédito, contraseñas, mensajes, etc.). Ingeniería social (infiltración). Algunas de las tecnologías de defensa disponibles son: Autentificación. Determinar la autenticidad de usuarios, nodos de computadora y documentos, a partir de información secreta como contraseñas, números de identificación personal (NIP) o llave criptográfica; posesión de dispositivos como tarjetas o información biometrica (huellas digitales o patrón del iris). Criptografía. Métodos para ocultar (hacer inteligible) información. Controles de acceso. Acceso restringido a redes, computadoras, aplicaciones, transacciones e información en base a políticas de seguridad (basadas p.ej. en usuarios individuales, grupos de usuario u horarios). Firewalls. Sistema de computo que monitorea el tráfico de entrada y salida de una red protegida, colocado por lo general entre la red interna de una organización y el Internet, para mantener fuera a los intrusos. Herramientas antivirales. Buscadores (scanners), desinfectantes y checadores de integridad. Monitoreo y detección de intrusiones. Auditoría. Registros de la actividad relevante, tal como inicializaciones (logins) con o sin éxito, ejecución de comandos del sistema o aplicaciones, y acceso a archivos y bases de datos. Es de llamar la atención que en países como Estados Unidos, existan organismos dedicados a la seguridad nacional especializados en tecnología computacional, tales como la Agencia de Defensa de Sistemas de Información (DISA). Esto indica el alto grado de riesgo y papel

file://D:\edu\edujhv13.htm

07/03/2006

Educación

Página 8 de 12

estratégico, que implica el uso de la tecnología para fines non gratos, por lo que será muy probable que cada país deba integrar este tipo de organizaciones, tanto en el ámbito público (manteniendo segura la información relevante de los sectores del estado, así como estar alerta de ataques a la infraestructura), como privado (consultores de seguridad, proveedores de soluciones). C. Ética y responsabilidad profesional. Por lo general, las empresas que solicitan los servicios de un especialista en informática, exigen, para empezar, que se cumpla con los requisitos mínimos de conocimiento necesarios para desempeñar una actividad específica. Por lo general, la responsabilidad de certificar a un individuo como persona calificada, recae en la institución educativa donde se formo, así como en el órgano gubernamental que da validez a los estudios cursados. De ahí en adelante, las responsabilidades adicionales (confidencialidad, garantías, etc.) son estipuladas en contratos con el profesionista. Sin embargo, tales contratos no estipulan sus derechos (p.ej. si no se cumple con una fecha de entrega a causa de una falla en los recursos (hardware o software) utilizados para el desarrollo de la actividad, ¿quien tiene la culpa: el proveedor o el prestador del servicio?), y cualquier incidente legal, es ventilado conforme a la legislación laboral existente, sin tomar en cuenta los factores técnicos relacionados. d. Derechos de autor. Por lo general, todo producto comercial se encuentra protegido por leyes nacionales o internacionales de derechos de autor, para asegurar que cualquier otra persona sin autorización se beneficie del trabajo de una empresa o un particular (aclarando discrepancias como la surgida en nuestro país a principios de 1998 entre IBM y Printaform). En pocas palabras: protección legal en contra de la "piratería". Sin embargo, existen grupos que no están de acuerdo, como la Fundación de Software libre (FREE Software Foundation) o la Liga para la Libertad de la Programación (League for Programming Freedom), a causa de la formación de monopolios alrededor de las patentes de software (acaso no sería ridículo pagar derechos por el uso de un algoritmo de ordenamiento o de búsqueda para una tarea escolar) y derechos de autor sobre las interfaces (Apple vs. Microsoft hace algunos años por la aparición de Windows). Bajo este argumento, el software ha sufrido una nueva clasificación, donde destacan: Software propietario. El cual suele estar restringido a un solo equipo de computo (licencia); se prohibe redistribuirlo, alquilarlo o modificarlo y no incluye el código fuente. Software libre. El cual se permite redistribuirlo, usarlo o modificarlo, e incluye el código fuente. Copylefted software. Software libre en cuyos términos de distribución no permite que se agregue ninguna restricción al redistribuirlo o modificarlo. De ellas destaca el copylefted software, categoría donde se encuentra el proyecto GNU [4], cuyo objetivo es el de proveer al usuario de aplicaciones libres para satisfacer todas sus

file://D:\edu\edujhv13.htm

07/03/2006

Educación

Página 9 de 12

necesidades. Este punto de vista es un reto para los productores de software (a los cuales no les agrada mucho la idea), aunque para ser franco, la competencia siempre es sana, y más si se toma en cuenta que la presión la han tomado en sus manos gentes tan capacitadas (consumidores y desarrolladores inconformes que no perciben un centavo por sus contribuciones al proyecto GNU), como el personal más capaz de esas empresas. Dicen que la manera de controlar una oveja o una vaca es darle una extensa pradera. e. Normas de Calidad. Poco a poco, el mercado está entendiendo que el consumo compulsivo causado por la publicidad, no es la mejor elección si lo que se busca es la calidad. Esta nueva cultura de consumo, que en una primera etapa está alcanzando a los grandes productores y distribuidores, no tardará en ser demandada a los profesionistas independientes. Después de todo es justo asegurarse de tener lo mejor por nuestro dinero. Sin embargo ¿quién impone tales normas de calidad a productos y servicios? Un ejemplo es ISO (International Standarts Organization) y su modelo de estándares de calidad administrativa y garantía de calidad ISO 9000, que son las bases para la implementación, verificación y asesoramiento de un sistema especial de calidad en organizaciones de manufactura y servicios. Los estándares incluyen un conjunto de "buenas prácticas" que deben seguirse para asegurar la efectividad del sistema de calidad. Algunas de sus características son: Proponer estándares de calidad no estándares de productos (p.ej. IEEE). Propuestas por personas que entienden los problemas y fallas en la industria, además de los requerimientos del sistema de calidad. Cada compañía establece sus propias reglas y procedimientos dependiendo de los objetivos y políticas de calidad de la organización. Aceptación mundial. Algunos de los objetivos del ISO 9000 son: Mantener y mejorar la calidad de los productos continuamente, con relación a los requerimientos de los clientes. Dar confianza a la administración interna y otros empleados, cumpliendo y manteniendo los requerimientos de calidad. Dar confianza al cliente con productos de calidad. Adoptar estas normas, asegura una aceptación internacional y mantiene un buen grado de competitividad, nacional como internacional, así como la optimización de los medios de

file://D:\edu\edujhv13.htm

07/03/2006

Educación

Página 10 de 12

producción. Si tomamos en cuenta que existen planes para generar fuentes de trabajo a través del Internet, desarrollando sistemas o componentes de computo, serán necesarias regulaciones y normas que aseguren la calidad del trabajo de los desarrolladores, así como el control administrativo y de productividad. Ejemplo de esto, es la norma internacional en procesos del ciclo de vida del software ISO/IEC 12207 [5], creada para establecer un esquema común internacional para adquirir, proveer, operar y mantener software (propuesta en 1988 y publicada en agosto de 1995).

Conclusiones.
Basándose en lo expuesto en este trabajo, el especialista en cómputo debe estar permanente informado de las tendencias de la industria y las necesidades sociales, para contribuir de manera real con su trabajo. Además es posible mencionar algunas perspectivas a corto y mediano plazo: Descentralización de los centros de trabajo. Cuanta gente no ha deseado trabajar desde su casa, evitando los problemas de tráfico o cualquier otro inconveniente del exterior. Bien, pues parece que este deseo cada vez es más factible de realizarse. La Internet es la infraestructura que lo permitirá, aunque antes es necesario establecer esquemas de organización y comunicación que permitan integrar el trabajo de varias gentes a distancia, así como las formas de remuneración (tomando en cuanta que para poder trabajar así, es necesario pagar por el servicio telefónico y de conexión a un servidor). Ingeniería de información. Como se mencionó antes, las habilidades de modelado, organización, interpretación y procesamiento de información, están tomando cada vez más importancia, por lo que es recomendable relacionarse con los métodos de otras disciplinas en este sentido. Esto se traducirá en un valor agregado para el especialista, permitiéndole un amplio campo de desarrollo. Globalización e integración. Aunque varias compañías se habían negado a aceptar un cambio en sus políticas de cómputo, esto ha empezado a cambiar, a causa de la variedad de productos en el mercado y su menor costo, además de la exigencia implícita de compatibilidad o extinción, este proceso se volverá constante, mejorando la productividad de los usuarios terminales en base a la inversión. Programación: ¿un arte que se creará por sí mismo? Esto aún suena descabellado, pero es una nueva alternativa basada en la teoría de la evolución de Darwin, donde un programa será capaz de mejorarse hasta cumplir con los requerimientos de la información de entrada y salida (programación genética). Programar no será lo mismo, pues se competirá contra una forma más barata (y óptima) para el desarrollo de aplicaciones.

file://D:\edu\edujhv13.htm

07/03/2006

Educación

Página 11 de 12

Referencias Bibliográficas.
[1] Computer security and the law. Gary S. Morris. GSM Associates. http://csrc.ncsl.nist.gov/secpubs/cslaw.txt

[2] Cyberlaundering: anonymous digital cash and money laundering. R. Mark Bortner. University of Miami. School of law. 1996.

[3] Protection and defense of intrusion. Dorothy E. Denning. Georgetown University. 1996.

[4] The GNU Manifesto. Richard Stallman. Free Software Foundation. 1985. http://www.fsf.org/gnu/manifesto.html

[5]ISO/IEC 12207 Software Lifecycle Processes Lewis Gray Ada PROS, Inc. 1997. Acerca del autor

file://D:\edu\edujhv13.htm

07/03/2006

Educación

Página 12 de 12

E. Jacobo Hernández Valdelamar es Ingeniero en Computación egresado de la Fundación Arturo Rosenblueth, y miembro del IEEE. Segundo lugar nacional de tésis a nivel licenciatura por parte del ANIEI (1997). Ha trabajado en diversas empresas de consultoría privadas, desarrollando sistemas de información. Es académico de la licenciatura y el posgrado de la Fundación A. Rosenblueth, y de la licenciatura en la UAM-Iztapalapa, y ha participado como conferencista en diversos foros. Actualmente está dedicado a la investigación de nuevas tecnologías como el computo evolutivo, sistemas distribuidos y agentes de software, y colabora en algunos proyectos con el Instituto de Quimica de la UNAM.

| Inicio | Indice de Educación |

file://D:\edu\edujhv13.htm

07/03/2006