INGENIERÍA DE SISTEMAS
La ingeniería de sistemas es una carrera universitaria que se encarga del diseño, la programación, la implantación y el mantenimiento de sistemas. A diferencia de otras ramas de la ingeniería, esta disciplina no se ocupa de productos tangibles (los ingenieros civiles, por ejemplo, construyen edificios), sino de productos lógicos.
Por lo tanto, la ingeniería de sistemas implica el uso de nociones matemáticas que permitan concretar la aplicación tecnológica de las teorías de los sistemas. Se trata de una ciencia interdisciplinaria, que requiere de diversos conocimientos para plasmar sus diseños en la vida práctica.
La ingeniería de sistemas permite transformar una necesidad operativa en una descripción de los parámetros del rendimiento de un sistema, con su correspondiente configuración. Por otra parte, posibilita la integración de los parámetros técnicos relacionados de modo tal que las interfaces de programa y funcionales sean compatibles y se garantice el funcionamiento del sistema total.
Al realizar su trabajo, el especialista en esta materia debe asegurar que el sistema cumpla con los principios de fiabilidad, mantenibilidad, seguridad y eficiencia, entre otros.
El ingeniero de sistemas se encarga de las diferentes etapas de un proyecto vinculado a los sistemas. De esta forma, analiza el rendimiento económico, la efectividad de los recursos humanos y el uso tecnológico vinculado a sus creaciones.
En concreto, el ingeniero de sistemas puede dedicarse al desarrollo e implementación de redes complejas, a la programación de aplicaciones informáticas y al manejo de base de datos, por ejemplo.
Los profesionales en ingeniería de sistemas son muy requeridos en la actualidad ante el avance de la tecnología y la necesidad de informatización que tienen las empresas.
Campos relacionados
Muchos de los campos relacionados podrían ser considerados con estrechas vinculaciones a la Ingeniería en Sistemas Computacionales. Muchas de estas áreas han contribuido al desarrollo de la Ingeniería en Sistemas Computacionales como área independiente.
Sistemas de información
Un sistema de información o (SI) es un conjunto de elementos que interactúan entre sí con el fin de apoyar las actividades de una empresa o negocio. No siempre un Sistema de Información debe estar automatizado (en cuyo caso se trataría de un sistema informático), y es válido hablar de Sistemas de Información Manuales. Normalmente se desarrollan siguiendo Metodologías de Desarrollo de Sistemas de Información.
Investigación de operaciones
La investigación de operaciones o (IO) se enseña a veces en los departamentos de ingeniería industrial o de matemática aplicada, pero las herramientas de la IO son enseñadas en un curso de estudio en Ingeniería de Sistemas. La IO trata de la optimización de un proceso arbitrario bajo múltiples restricciones. (Para artículos de discusión (en inglés)
Ingeniería de sistemas cognitivos
La ingeniería de sistemas cognitivos es una rama de la ingeniería de sistemas que trata los entes cognitivos, sean humanos o no, como un tipo de sistemas capaces de tratar información y de utilizar recursos cognitivos como la percepción, la memoria o el procesamiento de información. Depende de la aplicación directa de la experiencia y la investigación tanto en psicología cognitiva como en ingeniería de sistemas. La ingeniería de sistemas cognitivos se enfoca en cómo los entes cognitivos interactúan con el entorno. La ingeniería de sistemas trabaja en la intersección de:
- El desarrollo de la sociedad en esta nueva era
- Los problemas impuestos por el mundo
- Las necesidades de los agentes (humano, hardware, software)
- La interacción entre los varios sistemas y tecnologías que afectan (y/o son afectados por) la situación.
Algunas veces designados como ingeniería humana o ingeniería de factores humanos, esta rama además estudia la ergonomía en diseño de sistemas. Sin embargo, la ingeniería humana suele tratarse como otra especialidad de la ingeniería que el ingeniero de sistemas debe integrar.
Habitualmente, los avances en ingeniería de sistemas cognitivos se desarrollan en los departamentos y áreas de Informática, donde se estudian profundamente e integran la inteligencia artificial, la ingeniería del conocimiento y el desarrollo de interfaces hombre-máquina (diseños de usabilidad).
EL CICLO DE VIDA DE UN SISTEMA DE INFORMACIÓN
Él ingeniero debería aplicar un enfoque sistemático en el análisis y el diseño de los sistemas de información. El ciclo de desarrollo de los sistemas o ciclo de vida de los sistemas (SDLC: Systems Devetopment Life Cycle) es un enfoque por etapas de análisis y de diseño, que postula que el desarrollo de los sistemas mejora cuando existe un ciclo específico de actividades del analista y de los usuarios.
En general, los analistas no están de acuerdo respecto al número exacto de etapas que conforman el ciclo de desarrollo de los sistemas; sin embargo, se reconoce la importancia de su enfoque sistemático. Se dividirá el ciclo de vida en siete etapas, que aunque se presentan de manera discreta, nunca se llevan a cabo como un elemento Independiente. En lugar de ello. Se realizan al mismo tiempo diversas actividades, y éstas llegan a repetirse. Por ello es de mayor utilidad suponer que e! ciclo de desarrollo de los sistemas transcurre en etapas (con actividades en acción que luego cesan poco a poco) y no como elementos separados.
1) Identificación de problemas, oportunidades y objetivos.
En esta primera etapa del ciclo de desarrollo de los sistemas, el analista se involucra en la identificación de los problemas, de las oportunidades y de los objetivos. Esta fase es crucial para el éxito del resto del proyecto, pues nadie estará dispuesto a desperdiciar su tiempo dedicándolo al problema equivocado.
La primera etapa requiere que el analista observe de forma objetiva lo que ocurre en una empresa. Luego, en conjunto con los otros miembros de la organización hará notar los problemas. Muchas veces esto ya fue realizado previamente: y por ello. es que se llega a invitar al analista.
Las oportunidades son acuellas situaciones que el analista considera que pueden perfeccionarse mediante el uso de los sistemas de información computarizados. Al aprovechar las oportunidades, la empresa puede lograr una ventaja competitiva o llegar a establecer un estándar industrial.
La identificación de objetivos también es un componente importante de la primera fase. En un comienzo, el analista deberá descubrir lo que la empresa intenta realizar, y luego. estará en posibilidad de determinar si el uso de los sistemas de información apoyaría a la empresa para alcanzar sus metas, el encaminarla a problemas u oportunidades específicas.
2) Determinación de los requerimientos de información.
La siguiente etapa que aborda el analista, es la determinación de los requerimientos de información a partir de los usuarios particularmente involucrados. Para identificar los requerimientos de información dentro de ¡a empresa, pueden utilizarse diversos instrumentos, los cuales incluyen: el muestreo, el estudio de los datos y formas usadas por la organización, la entrevista, los cuestionarios: la observación de la conducta de quien toma las decisiones, asi como de su ambiente: y también el desarrollo de prototipos.
En esta etapa el analista hace todo lo posible por identificar qué información requiere el usuario para desempeñar sus tareas. Puede ver, cómo varios de los métodos para establecer las necesidades de información, lo obligan a relacionarse directamente con los usuarios. Esta etapa sirve para elaborar la imagen que el analista tiene de la organización y de sus objetivos. En ocasiones, se llegan a concluir sólo las primeras dos etapas del ciclo de desarrollo de los sistemas. El analista es e! especialista que emprende esta clase de estudios.
3) Análisis de las necesidades del sistema.
La siguiente etapa que ejecuta el analista de sistemas consiste en analizar las necesidades propias del sistema. Una vez más, existen herramientas y técnicas especiales que facilitan al analista la realización de las determinaciones requeridas. Estas incluyen el uso de los diagramas de flujo de datos (DFD)que cuentan con una técnica estructurada para representar en forma gráfica la entrada de datos de la empresa, los procesos y la salida de la información. A partir del diagrama de flujo de datos se desarrolla un diccionario de datos que contiene todos los elementos que utiliza el sistema, así como sus especificaciones, si son alfanuméricos, descripción, clave primaria, entre otros.
Durante esta fase. el analista de sistemas también analiza las decisiones estructuradas por realizar, que son decisiones donde las condiciones, condiciones alternativas, acciones y reglas de acción podrán determinarse. Existen tres métodos para el análisis de las decisiones estructuradas: el lenguaje estructurado (en nuestro caso el español), las tablas de decisión y los árboles de decisión.
No todas las decisiones en las empresas se encuentran estructuradas; no obstante, es importante que las comprenda e! analista de sistemas. Las decisiones semiestructuradas (decisiones que se toman bajo nesgo) con frecuencia se apoyan en los Sistemas de Toma de Decisiones. Cuando analiza las decisiones semiestructuradas. el analista las examina de acuerdo con el grado de complejidad del problema y con el número de criterios considerados al llevar a cabo las decisiones.
El análisis de decisiones de criterio múltiple (aquellas decisiones donde numerosos factores tienen que equilibrarse) también es parte de esta etapa. Se disponen de muchas técnicas para e' análisis de decisiones de criterio múltiple; incluyendo entre otras, e! proceso de intercambio y la aplicación de métodos de ponderado.
A esta altura del ciclo de desarrollo del sistema, el analista prepara una propuesta del sistema que resume todo lo que ha encontrado, presenta un análisis costo / beneficio de las alternativas y plantea las recomendaciones (si es que existen) de lo que deberá realizarse. Si la dirección acepta alguna de las recomendaciones, el analista procederá de acuerdo con ella.
4) Diseño del sistema recomendado.
En esta etapa del ciclo de desarrollo de los sistemas, el analista de sistemas usa la información que recolectó con anterioridad y elabora el diseño lógico del sistema de información. El analista diseña procedimientos precisos de captura de datos, con el fin de que los datos que se introducen al sistema sean los correctos. El analista también diseña accesos efectivos al sistema de información, mediante el uso de las técnicas de diseño de formularios y de pantallas.
Una parte del diseño lógico del sistema de información es el diseño de la interfaz con el usuario. La interfaz conecta al usuario con el sistema, y evidentemente, es de suma importancia. Serían ejemplos de interfaces para el usuario: el uso del teclado para introducir preguntas o respuestas, el uso de menús en la pantalla, con las opciones que tiene el usuario, el uso de dispositivos como el ratón (mouse) y muchos otros.
La etapa del diseño también incluye e! diseño de los archivos o la base de datos que almacenará aquellos datos requeridos por quien toma las decisiones en la organización. Una base de datos bien organizada es fundamental para cualquier sistema de información. En esta etapa, el analista diseña la salida (en pantalla o impresa) hacia el usuario, de acuerdo con sus necesidades de información.
5) Desarrollo y documentación del software
En esta etapa del ciclo de desarrollo de los sistemas, el analista trabaja con los programadores para desarrollar todo el software original que sea necesario. Dentro de las técnicas estructuradas para el diseño y documentación del software se tienen: el método HIPO, los diagramas de flujo. Los diagramas Nassi-Schneiderman, los diagramas Warnier-Orr y el pseudocódigo. Aquí es donde, el analista de sistemas transmite al programador los requerimientos de programación.
Durante esta fase, el analista también colabora con los usuarios para desarrollar la documentación indispensable del software, incluyendo los manuales de procedimientos. La documentación le dirá al usuario como operar el software, y así también, qué hacer en caso de presentarse algún problema.
6) Pruebas v mantenimiento del sistema.
El sistema de información debe probarse antes de utilizarlo. E! costo es menor si se detectan los problemas antes cié la entrega del sistema. El programador realiza algunas pruebas por su cuenta, otras se llevan a cabo en colaboración con el analista de sistemas. En un principio, se hace una serie de pruebas, con datos tipo, para identificar las posibles fallas del sistema: más adelante, se utilizarán los datos reales.
El mantenimiento del sistema y de su documentación empiezan justamente en esta etapa: y después, esta función se realizará de forma rutinaria a lo largo de toda la vida del sistema. Las actividades de mantenimiento integran una buena parte de la rutina
del programador, que para las empresas llegan a implicar importantes sumas de dinero. Sin embargo, el costo del mantenimiento disminuye de manera importante cuando el analista aplica procedimientos sistemáticos en el desarrollo de los sistemas.
7) Implantación v evaluación de sistema.
En esta última etapa del desarrollo del sistema, el analista ayuda a implantar el sistema de información. Esto incluye el adiestramiento que el usuario requerirá. Si bien, parte de esta capacitación la dan las casas comerciales, la supervisión del adiestramiento es una responsabilidad del analista de sistemas. Más aún, el analista necesita planear la suave transición que trae consigo un cambio de sistemas.
Aunque la evaluación del sistema se plantea como parte integrante de la última etapa del ciclo de desarrollo de los sistemas; realmente, la evaluación toma parte en cada una de las etapas. Uno de los criterios fundamentales que debe satisfacerse, es que ei futuro usuario utilice el sistema desarrollado.
UML
INTRODUCCIÓN
UML también puede usarse para documentar sus diseños de software para ayudarle a usted y al resto de desarrolladores.
Tener una buena maqueta del software es la mejor forma de comunicarse con otros desarrolladores que participen en el proyecto, así como con sus clientes. Una buena maqueta de extremadamente importante para los proyectos de mediano o gran tamaño, pero también resulta útil para los más pequeños. Aunque trabaje en un pequeño proyecto personal, podrá beneficiarse de una buena maqueta porque esta le proporcionará una visión global que le ayudará en la creación de un mejor código.
UML es el lenguaje de diagramas que se utiliza para la descripción de tales maquetas. Es posible representar las ideas en
UML utilizando diversos tipos de diagramas.
· Diagrama de clase
· Diagrama de secuencia
· Diagrama de colaboración
· Diagrama de caso de uso
· Diagrama de estado
· Diagrama de actividad
· Diagrama de colaboración
· Diagrama de secuencia
ACERCA DE UML
El lenguaje unificado de diagrama o notación (
UML) sirve para especificar, visualizar y documentar esquemas de sistemas de software orientado a objetos.
UML no es un método de desarrollo, lo que significa que no sirve para determinar qué hacer en primer lugar o cómo diseñar el sistema, sino que simplemente le ayuda a visualizar el diseño y a hacerlo más accesible para otros.
UML está controlado por el grupo de administración de objetos (
OMG) y es el estándar de descripción de esquemas de software.
UML está diseñado para su uso con software orientado a objetos, y tiene un uso limitado en otro tipo de cuestiones de programación.
UML se compone de muchos elementos de esquematización que representan las diferentes partes de un sistema de software. Los elementos
UML se utilizan para crear diagramas, que representa alguna parte o punto de vista del sistema.
· Diagrama de casos de uso que muestra a los actores (otros usuarios del sistema), los casos de uso (las situaciones que se producen cuando utilizan el sistema) y sus relaciones.
· Diagrama de clases que muestra las clases y la relaciones entre ellas.
· Diagrama de secuencia muestra los objetos y sus múltiples relaciones entre ellos.
· Diagrama de colaboración que muestra objetos y sus relaciones, destacando los objetos que participan en el intercambio de mensajes.
· Diagrama de estado muestra estados, cambios de estado y eventos en un objeto o en parte del sistema.
· Diagrama de actividad que muestra actividades, así como los cambios de una a otra actividad junto con los eventos que ocurren en ciertas partes del sistema.
· Diagrama de componentes que muestra los componentes de mayor nivel de la programación (cosas como Kparts o Java Beans).
· Diagrama de implementación que muestra las instancias de los componentes y sus relaciones.
· Diagrama de relaciones de entidad que muestra los datos y las relaciones y restricciones entre ellos.
TIPOS DE DIAGRAMAS UML
ML cuenta con varios tipos de diagramas, los cuales muestran diferentes aspectos de las entidades representadas.
Diagramas de comportamiento: Permiten exhibir comportamientos de un sistema o de los procesos de las organizaciones. Incluyen:
Diagrama de actividad
Diagrama de estado
Diagrama de caso típico
Diagramas de Interacción: Es un subconjunto de los diagramas de comportamiento que permiten enfatizar las interacciones entre los objetos. Incluyen: - Diagrama de comunicaciones Diagrama de secuencia - Diagrama de tiempo.
Diagramas de estructura: Muestran los elementos de una especificación que sean independientes del tiempo. Incluyen: - Diagrama de clases - Diagrama de estructura - Diagrama de componentes - Diagrama despliegue - Diagrama de objeto - Diagrama de paquetes.
Diagrama de Clases: Los diagramas de clases muestran las diferentes clases que componen un sistema y cómo se relacionan unas con otras.
Son diagramas “estáticos” porque muestran las clases, junto con sus métodos y atributos, así como las relaciones estáticas entre ellas: qué clases “conocen” a qué otras clases o qué clases “son parte” de otras clases, pero no muestran los métodos mediante los que se invocan entre ellas.
Clases, Propiedades y Métodos
Las clases están representadas por rectángulos, con el nombre de la clase, y también pueden mostrar atributos y métodos de la clase en otros dos “compartimentos” dentro del rectángulo. Las propiedades se muestran al menos con su nombre, y también pueden mostrar su tipo, valor inicial y otras propiedades. Los métodos también se muestran al menos con su nombre, y pueden mostrar sus parámetros y valores de retorno.
Relaciones Entre Clases
En un diagrama de clases, los vínculos entre clases se representan por líneas. A las que se les de diferentes características dependiendo del tipo de relación. Adicionalmente, en los extremos de estas líneas, puede colocarse la descripción del Rol que asume cada clase en esa relación
Cardinalidad
También en los extremos de la línea, se coloca la Cardinalidad , que describe cuántos objetos de cada clase pueden participar en la relación.(mínimo..máximo) La Cardinalidad de una relación puede ser:
· Ninguno o Muchos 0..* o * o (0..n)
· Uno o muchos 1..* o (1..n)
· Exactamente uno 1 o (1)
· Un número fijo m o (m)
· Un número variable 2..6 o (2..6)
Generalización Como hemos visto anteriormente entre dos clases puede existir una relación de Herencia o, en la terminología de UML, de Generalización.
Agregación - Cuando una clase es parte o componente de otra clase se le denomina agregación.