Es de fácil comprensión que la creación de una tecnología pueda tener impacto inesperados en varias tecnologías con las que a simple vista no tiene ninguna relación, como en empresas, en organizaciones, en personas y aun en la cultura. Hoy en día, el software informático es la tecnología más importante en el ámbito de la globalización. De igual manera, es uno de los principales ejemplos de la evolución de la información. En 1950 nadie se imaginaba que el software se convertiría en una tecnología indispensable para los negocios, la ciencia y la ingeniería; tampoco que el software facilitaría la creación de nuevas tecnologías, por ejemplo: las telecomunicaciones, la ingeniería genética, la expansión de tecnologías existentes o el fin de tecnologías antiguas (como la industria de la impresión); que el software se convertiría en la fuerza propulsora de la evolución de las computadoras personales; que el software se podrían comprar de manera empaquetada en los centros comerciales; que una compañía de software se convertiría en la mas influyente en comparación a la mayoría de las compañías de la era industrial; que una gran red desarrollada con software conocida como internet abarcaría y cambiaría todo, desde la investigación bibliográfica hasta las compras de los consumidores y los hábitos diarios de los jóvenes(y no tan jóvenes). Nadie podría haberse imaginado que el software estaría relacionado con sistemas de todo tipo: de transporte, médicos, de telecomunicaciones, militares, industriales, de entretenimiento, máquinas para oficina, etc. Y si se toma en cuenta que todavía quedan muchos efectos por ver, podríamos concluir que todavía es imposible predecir en el trabajo diario los límites del crecimiento del software. DEFINICIONES. Cuando se trabaja para construir un producto o sistema es importante seguir una serie de pasos predecibles, es decir, conocer todos los elementos y la mayoría de las herramientas que apoyen a ese propósito, uno de esos elementos son las definiciones de los conceptos, elementos y programas disponibles en el ambiente. Desde la perspectiva del ingeniero de software, los bienes obtenidos son los programas, documentos y datos que resultan como consecuencia de las acciones y trabajos precisadas por el proceso. - SISTEMA. La palabra sistema tal vez sea el término más usado en el lenguaje técnico. Se hacen referencia a sistemas sociales, pedagógicos, de navegación, de producción, financieros y de tránsito, pero la palabra expresa muy poco. El adjetivo se utiliza para describir el sistema y así entender el contexto en el que se usa la palabra. Sistema lo podemos definir como: 1. Un conjunto o disposición de cosas relacionadas que forman una unidad o un todo orgánico. 2. Conjunto de hechos, elementos, normas, clasificado y dispuestos de forma ordenada que expresan un plan lógico de la fusión de las partes. 3. Un método o técnica de clasificación. 4. Una forma creada de hacer algo, método, procedimiento. 5. Un grupo dispuesto de elementos que están constituidos para efectuar una meta predestinada al procesar información. - SISTEMA DE SOFTWARE. El sistema de software es una recopilación de programas creados para apoyar a otros programas. Algunos sistemas de software procesan información complicada, pero determinada, y que en general se agrupan en cuatro clases básicas. Otras aplicaciones de software trabajan datos indeterminados. En cada caso, el área de sistema de software se especializa por una interrelación muy fuerte con el hardware del equipo; manejo de varios usuarios; operación repetida que demanda la gestión de agendas, de compartición de recursos y de procesos sofisticados; sistemas de datos complejos y varias interfaces externas, entre otras. Por lo tanto, el área de sistema de software:
Se encarga de registrar, formar y gestionar los dispositivos de hardware de un sistema informático, facilitando un entorno amigable para que los usuario sconsigan ejecutar otras aplicaciones de software.
Es un conjunto de sistemas de software que facilitan al usuario interactuar con los mecanismos sin perderse en la complejidad técnica del equipo.
Incluye los sistemas de operación, drivers de periféricos, servers, sistemas de ventanas y software de utilidades.
- CALIDAD DEL SOFTWARE. La calidad del software significa la satisfacción de los requerimientos de desempeño y funcionalidad establecidos, de los estándares de desarrollo claramente justificados y de las principios y factores incluidos que se esperan de todo software creado profesionalmente. La calidad del software puede evaluarse después de terminado el mismo. Ésto puede ser muy costoso si se descubren dificultades generadas por fallas en el diseño, por lo que es forzoso tener presente tanto la generación de la calidad como su control durante todas las fases del ciclo de vida del software.
La calidad del software es una complicada mezcla de elementos que variará para las distintas aplicaciones y clientes que las requieren. La administración de calidad total, Seis Sigma y aspectos afines promueven una visión de mejora continua del proceso. Es esta visión la que al final lleva al desarrollo de aspectos muy positivos para la ingeniería del software. Recordemos que la plataforma que soporta la ingeniería del software es una visión de calidad. - PROCESO. La base de la ingeniería es el estado del proceso. El proceso de la ingeniería de software es el componente que conserva juntos a los sectores de la tecnología y que facilita el proceso fundado y a tiempo del software de computadora. El proceso define un área de compromiso que debe instituirse para la entrega segura de la tecnología de la ingeniería del software.
El proceso del software establece el asiento para el control de la administración de los planes de software y establece el contenido en el cual se emplean los métodos técnicos, se crean los efectos del trabajo y los fundamentaos, se afirma la calidad y el cambio se trata de forma apropiada. - MÉTODO. Un método de ingeniería del software es una visión ordenado para la mejora de software cuya intención es facilitar el desarrollo de software de alta calidad de un amanera redituable. Los métodos consienten que un ingeniero de software cree una declaración más completa, sólida y exacta que las que se crean utilizando métodos convencionales. Los métodos de la ingeniería del software facilitan los “cómo” técnicos para desarrollar el software. Los métodos incluyen un amplio campo de actividades que incluyen la comunicación, el análisis de requerimientos, el modelado del diseño, la construcción del programa, la realización de pruebas y el soporte. Los métodos de la ingeniería de software se fundan en un grupo de principios básicos que administran cada área de la tecnología y encierra acciones de modelado y otras técnicas características. Los métodos de la ingeniería del software facilitan los “cómo” técnicos para desarrollar el software. Incluyen un amplio campo de actividades de la comunicación, el análisis de requerimientos, el modelado del diseño, la construcción del programa, la realización de pruebas y el soporte. Los métodos de la ingeniería de software se fundan en un grupo de principios básicos que administran cada área de la tecnología y encierra acciones de modelado y otras técnicas características. Se pueden dividir sobre un campo de “formalidad” levemente vinculado con el medio matemático aplicado en el análisis y el diseño. En el desarrollo de tipos de análisis y diseño se trabajan composiciones de notación simple, tablas, texto y diagramas, sin embargo, se aplica poco criterio matemático. - HERRAMIENTAS. Las herramientas de la ingeniería de software suministran el apoyo automático para la creación de los métodos y el desarrollo del proceso en la fabricación del software. Cuando estas herramientas se integran de manera que la información que crea pueda usar la siguiente, se dice que se ha creado un sistema para el apoyo del desarrollo del software, que por costumbre se denomina ingeniería del software asistida por computadora. Las herramientas auxilian a los trabajos individuales del proceso como la validación dela estabilidad de un diseño, la ejecución o corrida de un programa y la comparación de los resultados de las pruebas. Las herramientas consiguen ser de intento general, agrupado o independiente en mesas de trabajo. Las herramientas de propósito general se manipulan sin medida o limitación por el ingeniero de software, quien decide en qué momento aplicarlas para ayudar al proceso. - INGENIERÍA DEL SOFTWARE. La ingeniería de software es una disciplina de la ingeniería que tiene como objetivo el desarrollo redituable de sistemas de software. No está limitada por materiales, regida por leyes físicas o por procesos de fabricación, es decir, no existen restricciones físicas para el potencial del software. Sin embargo, esta falta de restricciones significa que el software puede llegar a ser considerablemente complicado y, por lo tanto, en ocasiones difícil de entender. La ingeniería de software se centraliza en los métodos, herramientas y procedimientos para implantar control en la creación del software, lo que facilita crear software de calidad de manera beneficiosa, no generando posibles fallas humanas. Es más, la predicción de los efectos y resultados es uno de las causas que prueban la calidad de los sistemas. La ingeniería de software utiliza los recursos computacionales de tal forma que se crean soluciones eficientes y eficaces a las dificultades informáticas; el éxito de un proyecto incluye elementos como la planeación, la administración y la utilización de metodologías de desarrollo de software. La ingeniería de software es el establecimiento y uso de principios firmes de la ingeniería para conseguir redituablemente un software confiable que se desempeñe de manera eficiente en equipos reales. PRINCIPIOS DE ANÁLISIS. La ingeniería de software inicia con una serie de actividades de modelado que llevan a una especificación de requerimientos y análisis, que se refieren a una serie de modelos. Es la primera representación de un sistema. El análisis cumple con tres objetivos básicos:
El análisis se concentra en lo que debe hacer, el diseño se centraliza en cómo hacerlo. En un proceso iterativo, las fases no deben llevarse a cabo de manera consecutiva. Ésta etapa da como resultado los modelos a nivel de análisis que están representados especialmente por la vista de casos de uso y la visión estática, análisis de contraste, diseño, implementación y despliegue del proyecto de sistema. No debe suponerse que todo el análisis de un sistema se produce al mismo tiempo o precede a otras actividades, tales como el diseño e implementación. Las diferentes actividades son secuenciales para un solo elemento, pero diferentes actividades se pueden entremezclar para todo el sistema. Los métodos de análisis se rigen por un grupo de principios operativos:
PRINCIPIOS DEL DISEÑO. El modelo de diseño de software comienza con la representación de la totalidad del objeto que será construido, que se refina para realizar una guía para construir cada detalle. En forma similar, el modelo del diseño que se crea para el software, proporciona una variedad de diferentes vistas del sistema. No hay pocos métodos para derivar los diferentes elementos de un diseño de software. Algunos métodos se guían mediante los datos al permitir a la estructura de datos dictarla arquitectura del programa y los componentes de procesamiento resultantes. A otros los conduce el patrón al utilizar información acerca del dominio del problema para desarrollar estilos arquitectónicos y patrones de procesamiento. Incluso otros están orientados a objetos, al usar los objetos del dominio del problema como conductores para la creación de estructuras de datos y los métodos para manipularlos. Aun así, todos ellos siguen un conjunto de principios de diseño que se pueden aplicar sin importar el método que se utilice:
El diseño será observable, llegando al modelo de análisis
La arquitectura del sistema que se va a construir se debe considerar permanentemente.
El diseño de funciones de procesamiento es tan importante como el diseño de datos.
Con mucho cuidado se deben diseñar las interfaces (internas y externas).
El diseño de interfaz debe satisfacer las necesidades del usuario final.
Debe ser independiente el modo funcional al diseño a nivel de componentes.
Los componentes deben estar relacionados entre sí de manera mínima y relacionada con el ambiente externo.
El diseño debe representarse de forma claramente comprensible.
El diseño debe crearse de forma iterativa. En cada iteración el programador debe plasmar la mejor sencillez posible.
Cuando se aplican estos principios de manera apropiada, el ingeniero de software crea un diseño que muestra los factores internos y externos de calidad. Los factores de calidad externos son aquellas propiedades del software que los usuarios pueden observar fácilmente (como velocidad, confiabilidad, corrección, facilidad de uso). Los factores de calidad internos son importantes para los ingenieros de software, ya que conducen hacia un diseño de alta calidad desde una perspectiva técnica. Lograr factores de calidad internos requiere que el diseñador entienda conceptos básicos de diseño. SISTEMAS DE INFORMACIÓN. Los sistemas de información (SI) en la empresa, no son nuevos. Antes de utilizar los equipos de cómputo para su automatización, las empresas coleccionaban, acumulaban y renovaban información en el momento normal de sus operaciones diarias. Como antes, hoy los SI se basan en normas y procedimientos instituidos para proveer de información a los usuarios de la organización. Estos integrantes requieren información distinta para la ejecución de su trabajo; las reglas del sistema detallan el momento, forma, tipo y el usuario al cual se debería proporcionar de información específica. Sin embargo, hay que considerar que los SI manuales pueden ser decepcionantes e ineficaces, incluso en pequeñas empresas. Al conjunto de software, hardware, datos, procesos y personas se le llama sistema de información automatizado (SI). Éste conjunto se interrelaciona para suministrar información primordial a la administración de la organización. Con la información proporcionada, las empresas lleven a cabo sus actividades con mejor facilidad y calidad. - CONCEPTO. Un sistema de información (SI) es un conjunto de componentes alineados al proceso y gestión de datos e información, organizados y dispuestos para su uso cuando se necesiten; es creado para cubrir un objetivo o necesidad. De igual forma, se puede tener definido a un sistema de información SI como un conjunto formal de procesos que, trabajando sobre una recopilación de datos estructurados en función de las necesidades de la organización, colecciona, procesa y asigna particularmente la información requerida para el desarrollo de las actividades de la organización y para las acciones correspondientes de observación y supervisión, apoyando los procesos de toma de decisión para crear funciones de negocio de la organización de acuerdo con su estrategia competitiva. Estos componentes se interrelacionan para procesar la información y generar información detallada, que se proporciona de la forma más optima posible a la organización, en función de sus objetivos de negocio. - CARACTERÍSTICAS. Un SI tiene las siguientes características:
Está integrado de manera que apoye a una diversidad de áreas funcionales.
Es flexible y puede adaptarse fácilmente para satisfacer necesidades variantes que se requerirán.
Proporciona información necesaria a las personas adecuadas y en el momento adecuado para utilizarse.
Pueden desarrollarse a la par de la compañía.
Facilita el acceso a los usuarios autorizados a la información y su efectividad produce un bien a la organización.
Forman parte de las actividades de la organización.
Estar basado en tecnología de computación.
Es un sistema hombre – máquina.
Es una colección de subsistemas.
Es adaptable a necesidades de cambios.
- ESTRUCTURAS. Los sistemas de información (SI) se crean para procesar acciones de usuario a fin de conseguir información de una base de datos o acciones para actualizar la base de datos. Desde la perspectiva de un usuario, una operación es cualquier secuencia coherente de operaciones que satisface un objetivo. Los sistemas de información son normalmente sistemas interactivos en donde los usuarios realizan peticiones de servicios de forma asincrónica: por la naturaleza de la arquitectónica del sistema de información, primero el usuario realiza la petición al sistema a través de una interfaz y la petición se contesta por alguna lógica específica de la aplicación. La estructura entrada-proceso-salida se emplea en la mayoría de los sistemas de información de transacciones de clientes, por lotes, para la toma de decisiones.
- PROCESOS. Un proceso del sistema es un conjunto de acciones que llevan al desarrollo de un producto software. Estas acciones derivan en el desarrollo de sistema desde cero en un lenguaje de ordenador estándar como Java o lenguaje C, entre muchos otros. Sin embargo, cada vez más, se desarrollan nuevos lenguajes extendidos, visuales, estructurados que modifican a los sistemas en existentes, configurando e integrando software comercial o componentes a los sistemas. Los procesos de software son complicados y, como todos los procesos científicos y creativos, dependen de los encargados que toman decisiones con base en criterios. Debido a las acciones de juzgar y crear, los esfuerzos para automatizar estos procesos han tenido un éxito reducido. Las herramientas (CASE) de ingeniería del software asistida por computadora ayudan a algunas acciones del proceso. Sin embargo, no se vislumbra, al menos en el corto tiempo, una automatización en el diseño creativo del software desarrollado por los ingenieros involucrados con el proceso del software. Una causa por la cual la eficacia de la ingeniería del software asistida por computadora esta restringida se encuentra en la gran variedad de procesos del software. No hay un proceso idóneo y muchas empresas han desarrollado su propio criterio para el desarrollo del software. Los procesos han avanzado para explotar las habilidades de las personas de una empresa, así como las características específicas de los sistemas que se están creando. Para algunos sistemas, como el software de negocio, con necesidades cambiantes, un proceso ágil y flexible posiblemente sea el más efectivo. Aunque hay varios procesos distintos de software, algunas actividades principales soncomunes para todos ellos: 1. Especificación del software. Se debe precisar la funcionalidad del sistema y las limitaciones en su trabajo. 2. Diseño e implementación del software. Se debe desarrollar software que satisfaga su requerimiento. 3. Validación del software. Se debe validar el software para garantizar que realiza lo que el usuario final necesita. 4. Progreso del software. El software debe responder a los requerimientos cambiantes del usuario final. - CLASIFICACIÓN. Para los siguientes años, los SI deberán satisfacer los tres objetivos fundamentales para las empresas:
Clasificación general de los sistemas de información SI:
Sistemas transaccionales (DSS). Su función fundamental radica en realizar transacciones.
Sistemas de apoyo a la toma de decisiones:
Sistemas de apoyo a la toma de decisiones de grupo (GDSS).
Sistemas de información para ejecutivos (EIS).
Sistemas expertos de apoyo la toma de decisiones (EDSS).
Sistemas estratégicos.
Los sistemas estratégicos son la tercera categoría de sistemas de información SI. Ésta categoría se considera en función del objetivo y uso que cumplen; se desarrollan en las empresas con el fin de generar ventajas competitivas, a través del uso de las nuevas tecnologías de información (TI). REFERENCIAS:
Booch, Grady. Unified modeling language reference manual. Massachusetts, AddisonWesley, 2005.
Larman, Craig. UML y patrones. Una introducción al análisis y diseño orientado aobjetos y al proceso unificado. México, Pearson Prentice Hall, 2003.
Pressman, Roger. Ingeniería del software. Un enfoque práctico. México, McGraw-Hill,2002. Sommerville, Ian. Ingeniería de software. México, Addison Wesley, 2005.