miércoles, 27 de octubre de 2010

ingenieria de sistemas

Ingeníeria de sistemas
 La ingeniería:

 Es una profesión basada en el uso de los conocimientos científicos para transformar ideas en acción. De cada orientación depende la especialidad que con más intensidad se enseñe. Pero dado que la ingeniería trabaja con el mundo real, las áreas de la física y la química son comunes a todas las carreras, conjuntamente con la matemática que sirve para modelar los fenómenos que se estudian.

A diferencia de las ciencias puras cuyo objetivo es el conocimiento por el conocimiento en sí mismo, la ingeniería se basa en la aplicación del conocimiento científico en la solución de problemas reales.


La ingeniería de sistemas:

Es la profesión que aplica conocimientos y experiencias para que mediante diseños, modelos y técnicas que resuelva problemas que afectan a los seres vivos con creatividad e ingenio, cuidando aspectos sociales y del medio ambiente.
La ingeniería es la profesión en la que el conocimiento de las matemáticas y ciencias naturales, obtenido mediante estudio, experiencia y práctica, se aplica con juicio para desarrollar formas de utilizar, económicamente, los materiales y las fuerzas de la naturaleza para beneficio de la humanidad y del ambiente.

Analisis: 

La ingenieria en sistemas nos permite estudiar y comprender la realidad, con el propósito de implementar  sistemas complejos. Puede verse como la aplicación tecnológica. integra muchas disciplinas y grupos de especialidad , formando un proceso de desarrollo estructurado.
  Construye productos tangibles trabaja con sistemas operativos, redes, diseño de paginas web etc. los ingenieros de sistemas tratan con sistemas abstractos con ayuda de las metodologías de la ciencia de sistemas.


Perfil ocupacional del ingeniero en sistema 

 

El Ingeniero en Sistemas está capacitado para desempeñarse en el medio industrial, empresarial u oficial y en todas las áreas de aplicación de esta especialidad, razón por la cual también debe estar en capacidad de:
  • Organizar con base en principio administrativo, la unidad, departamento o servicio.
  • Aplicar técnicas organización y métodos de trabajo para cumplir funciones administrativos o de manufactura y control.
  • Organizar, administrar y manejar información.
  • Aplicar criterios de racionalidad y orientar la Gerencia sobre las alternativas posibles y óptimas para la solución de un problema planteado.
  • Seleccionar equipos y maquinarias de sistemas computarizados de acuerdo con sus potencialidades y limitaciones.
  • Prácticas en equipos interdisciplinarios para el desarrollo de investigación y proyectos.
  • Elaborar informes dirigidos al equipo de trabajo, al supervisor inmediato y/o a las autoridades a quienes compete.
  • Participar en la realización de proyectos institucionales.
En la formación de los Ingenieros en Sistemas son diversas las habilidades, destrezas, valores y actitudes necesarias para que ellos manifiesten por una parte, una conciencia ciudadana para la conservación y mejoramiento del ambiente, calidad de vida y uso racional de los recursos naturales y por otra parte, capacidad para ejercer satisfactoriamente su profesión y promover su actualización y mejoramiento conforme a las necesidades del desarrollo nacional y del proceso científico.


 La lista de habilidades y destrezas, así como la de valores y actitudes que se necesitan para el ejercicio de cada una de las funciones del Ingeniero de Sistemas es la siguiente:
  • Capacidad para el mejoramiento de equipo.
  • Capacidad de expresarse oralmente y por escrito.
  • Capacidad de autoaprendizaje.
  • Capacidad organizativa.
  • Habilidad numérica.
  • Capacidad de análisis y síntesis.
  • Capacidad de evaluación.
  • Capacidad para razonamiento abstracto.
  •  Creatividad: capacidad de generar nuevas ideas.
        


El ingeniero de sistemas, se ocupa del diseño, programación, implantación y mantenimiento de sistemas. Incorpora métodos y técnicas modernas para optimizar el rendimiento económico. Controla y corrige la marcha de las diferentes etapas de un proyecto. Formula planes que permitan integrar diferentes proyectos de un programa general de desarrollo.
Evalúa el costo, efectividad de los recursos humanos, máquinas y técnicas empleadas en estos sistemas. Define en combinación con la gerencia las necesidades de una organización administrativa.
En el perfil profesional está capacitado para el desempeño de las siguientes actividades:
  •  Investigación.
  •  Planificación.
  •  Administración.
  •  Divulgación.
  •  Evaluación.
  •  Docencia.

Así mismo, está capacitado para desarrollar habilidades y destrezas en el análisis, diagnóstico y diseño, implementado y desarrollando sistemas de información; puede emplear modelos para el diseño de sistemas. Su campo de acción profesional se encuentra en los niveles de dependencia a través de organismos públicos y privados y en la interdepencia o ejercicio libre de su profesión.




Campos relacionados
Muchos de los campos relacionados podrían ser considerados con estrechas vinculaciones a la ingeniería de sistemas. Muchas de estas áreas han contribuido al desarrollo de la ingeniería de sistemas 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....
El equipo computacional: el hardware necesario para que el sistema de información pueda operar. El recurso humano que interactúa con el Sistema de Información, el cual está formado por las personas que utilizan el sistema. Un sistema de información realiza cuatro actividades básicas: entrada, almacenamiento, procesamiento y salida 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.

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:
  1. El desarrollo de la sociedad en esta nueva era
  2. Los problemas impuestos por el mundo
  3. Las necesidades de los agentes (humano, hardware, software)
  4. 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).

Inteligencia Artificial y Cibernética

 

Es un lugar común escuchar el uso del término "cibernética" como equivalente de "aquel hecho informático en un entorno de computadoras y robots", por desgracia esta aberración no es exclusiva del hablar del ciudadano común y corriente poco informado, sino que ha alcanzado un alarmante uso generalizado entre académicos y profesionales de disciplinas relacionadas a ella.

Hace un tiempo escribimos un post sobre la definición de Cibernética, ahora , a modo de ejemplo y divulgación quisiéramos referirnos al tema de la Inteligencia Artificial y la Cibernética.

Para muchos estas dos disciplinas son muy afines, pero eso es sólo una apariencia,la utilización de algunos mecanismos cibernéticos en la Inteligencia Artificial de ningún modo la hacen Cibernética, pues ésta como disciplina tiene sus propios fundamentos.

De hecho, a manera de anécdota, cuando Humberto Maturana, respetado cibernetista, co-creador junto a Francisco Varela del concepto de "Autopoiesis", estuvo en los laboratorios de Inteligencia Artificial del MIT en los albores de esta disciplina, donde se aplicaban y discutían los postulados fundamentales de la Inteligencia Artificial, este salió bastante desilusionado por el mecanicismo reinante, él, biólogo de formación y cibernetista en ciernes, notaba serias complicaciones para el éxito e la Inteligencia Artificial fundada en dichos postulados. Tiempo después la Inteligencia Artificial tuvo un apogeo muy grande (mucho más del que nunca ha tenido la Cibernética) pero eventualmente a fines de los 80 y comienzos de los 90 se topo contra las dudas que ya había previsto, no sólo Humberto, sino muchos otros cibernetistas.

Para aclarar un poco el tema revisemos un resumen de los postulados principales de ambas disciplinas




Podríamos intentar resumir diciendo que la Inteligencia Artificial es más "realista" en el sentido en que cree en una realidad objetiva, la cual tiene que descubrir, en cambio la Cibernética es más bien "constructivista", pues co-construye la realidad en una dinámica de relación y adaptatividad. Las implicaciones de estas diferencias son muy grandes.


Teniendo en cuenta lo antes mencionado podríamos notar que la Teoría del Caos, por ejemplo, se acopla mejor con un enfoque cibernético que con uno de inteligencia artificial. Por otro lado se nota también el espectro generalizable más amplio de la Cibernética, cuyos principios bien pueden ser aplicados, como de hecho lo es, a organizaciones sociales.

Ingeniería en Computación

La Ingeniería en Computación estudia el desarrollo de sistemas automatizados y el uso de los lenguajes de programación; de igual forma se enfoca el análisis, diseño y la utilización del hardware y software para lograr la implementación de las más avanzadas aplicaciones industriales y telemáticas.
Es el área de trabajo que se concentra en el estudio de situaciones susceptibles de automatizar mediante el uso de sistemas de computación y componentes digitales, a fin de determinar la factibilidad técnica, la conveniencia operacional, la factibilidad económica y la evaluación de alternativas existentes para desarrollar la solución más adecuada.
La Ingeniería en Computación se ocupa de la naturaleza y características de la información, su estructura y clasificación, su almacenamiento y recuperación y los diversos procesos a los que puede someterse en forma automatizada. Se interesa igualmente por las propiedades de las máquinas físicas que realizan estas operaciones para producir sistemas de procesamiento de datos eficientes. Trata todo lo relacionado con la utilización de computadoras digitales.
La respuesta a las preguntas: ¿Qué es lo que puede ser eficientemente automatizado? y ¿Cómo se puede lograr eso de la mejor manera, en base a los recursos disponibles?, compete a la Ingeniería en Computación


Origen

La historia de la Computación puede remontarse a cientos de años atrás, cuando se creaban máquinas para ayudar en tareas de cálculos (como el ábaco). La primera calculadora mecánica fue creada en 1623 por Wilhelm Schickard, y Charles Babbage diseñó la máquina diferencial en la época victoriana. Todas las máquinas que se limitaban a realizar una sola tarea, o como mucho, algún subconjunto de todas las posibles tareas.
Las nuevas y poderosas computadoras comenzaron a ser desarrolladas durante la década de los 40, que es también cuando comenzó a hacerse evidente que las computadoras podían usarse para mucho más que simples cálculos matemáticos.
La masificación de la computación llegó de la mano de las computadoras personales a principios de los 80, y el acceso a la información mundial de la mano de internet, que comenzó su éxito en los 90.
Las Ciencias de la Computación suponen un área muy profunda de análisis, que tiene sus orígenes en 1920, cuando “computación” hacía referencia a los cálculos generados por la propia persona. Luego, con la llegada de las PC´s, la historia y el significado de este concepto se ampliarían sobre nuevos horizontes, distinguiendo los algoritmos que forman parte del desarrollo de las soluciones.

Perfil Profesional

El Ingeniero en Computación representa una nueva perspectiva en el campo laboral, ya que abarca distintos aspectos de la electrónica y la informática. Sus funciones involucran de forma directa o indirecta el uso del computador, siendo ésta su herramienta fundamental de trabajo.
En el área del hardware, podrá utilizar y adaptar el computador como una herramienta para el control de procesos industriales, realizando interfaces entre el sistema y el computador, de modo que sea posible el monitoreo de las tareas en tiempo real. Asimismo, estará dotado de un amplio conocimiento sobre sistemas automatizados basados en robótica, pudiendo diseñar circuitos de lógica digital para liberar al hombre de la realización de tediosos procesos repetitivos o de actividades que impliquen un riesgo para su vida.
Los Ingenieros en Computación son capaces de aplicar la tecnología de avanzada en la solución de los problemas y estrategias gerenciales, con el fin de utilizar todos los recursos eficazmente. Emplea sus conocimientos como herramienta para crear y modificar sistemas cibernéticos, además de evaluar, modificar, diseñar, actualizar y supervisar los sistemas de operación a fin de ofrecer óptimo servicio en cumplimiento de las necesidades ocasionadas por la dinámica de las organizaciones.
Es un profesional preparado en las áreas correspondientes a estructuras y sistemas de computación, estructuras y procesos de información, investigación operativa y modelos matemáticos.
Los Ingenieros en Computación tienen un entrenamiento extensivo en áreas de Ingeniería Eléctrica y ciencias en computación, que son combinaciones atractivas para los futuros contratantes y permiten al estudiante continuar sus estudios en instituciones de postgrado.


Ingeniería en Sistemas Computacionales

 es un modo de enfoque interdisciplinario que permite estudiar y comprender la realidad, con el propósito de implementar u optimizar sistemas informáticos complejos. Puede verse como la aplicación tecnológica de la teoría de sistemas a los esfuerzos de la ingeniería, adoptando en todo este trabajo el paradigma sistémico. La ingeniería en sistemas integra otras disciplinas y grupos de especialidad en un esfuerzo de equipo, formando un proceso de desarrollo estructurado.
Una de las principales diferencias de la ingeniería en sistemas computacionales respecto a otras disciplinas de ingeniería tradicionales, consiste en que la Ingeniería en Sistemas Computacionales no construye productos tangibles. Mientras que los ingenieros civiles podrían diseñar edificios o puentes, los ingenieros electrónicos podrían diseñar circuitos, los ingenieros en sistemas tratan con sistemas abstractos con ayuda de las metodologías de la ciencia de sistemas tecnológicos, y confían además en otras disciplinas para diseñar y entregar los productos tangibles que son la realización de esos sistemas.
Otro ámbito que caracteriza a la Ingeniería en Sistemas Computacionales es la interrelación con otras disciplinas en un trabajo transdisciplinario.


Ámbito

Esta área comenzó a desarrollarse en la segunda parte del siglo XX con el veloz avance de la ciencia de sistemas informáticos. Las empresas empezaron a tener una creciente aceptación de que la ingeniería de sistemas podía gestionar el comportamiento impredecible y la aparición de características imprevistas de los sistemas (propiedades emergentes). Las decisiones tomadas al comienzo de un proyecto, cuyas consecuencias pueden no haber sido entendidas claramente, tienen una enorme implicación más adelante en la vida del sistema. Un ingeniero en sistemas debe explorar estas cuestiones y tomar decisiones críticas. No hay métodos que garanticen que las decisiones tomadas hoy serán válidas cuando el sistema entre en servicio años o décadas después de ser concebido, pero hay metodologías que ayudan al proceso de toma de decisiones. Ejemplos como la metodología de sistemas blandos (Soft Systems Methodology), la dinámica de sistemas, modelo de sistemas viables (Viable System Model), teoría del Caos, teoría de la complejidad, y otros que también están siendo explorados, evaluados y desarrollados para apoyar al ingeniero en el proceso de toma de decisiones que se puede llegar a ser por medio de el CENAL

¿Qué es Ingeniería en Sistemas Computacionales?

 

Ingeniería en Sistemas Computacionales es la aplicación de las ciencias matemáticas, físicas e informáticas para desarrollar sistemas que utilicen económicamente materiales tecnológicos para el beneficio de la humanidad.
Una definición especialmente completa -y que data de 1974- nos la ofrece un estándar militar de las fuerzas aéreas estadounidenses sobre gestión de la ingeniería. Ingeniería en Sistemas Computacionales es la aplicación de esfuerzos científicos y de ingeniería para:
(1) transformar una necesidad de operación en una descripción de parámetros de rendimiento del sistema y una configuración del sistema a través del uso de un proceso interactivo de definición, síntesis, análisis, diseño, prueba y evaluación;
(2) integrar parámetros técnicos relacionados para asegurar la compatibilidad de todos las interfaces de programa y funcionales de manera que optimice la definición y diseño del sistema total;
(3) integrar factores de fiabilidad, mantenibilidad, seguridad, supervivencia, humanos y otros en el esfuerzo de ingeniería total a fin de cumplir los objetivos de coste, planificación y rendimiento técnico.

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

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:
  1. El desarrollo de la sociedad en esta nueva era
  2. Los problemas impuestos por el mundo
  3. Las necesidades de los agentes (humano, hardware, software)
  4. 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).




Ingeniería de Sistemas pensum
  


PRIMER SEMESTRE
Asignatura
Código
UC
Prel.
Temas de ética
TE11
3
-
Ecología
ECG101
2
-
Arte y Cultura Universal
AC101
2
-
Deporte Recreación y Tiempo Libre
DP101
1
-
Principios de
Lógica
PPL101
2
-
Computación e Internet
CP101
3
-
Comprensión de Lectura
CM101
2
-
Matemática I
MA101
3
-

SEGUNDO SEMESTRE
Asignatura
Código
UC
Prel.
Prob. del Desarrollo
Regional y Nacional
PDR101
3
-
Técnicas de Estudio
TE101
3
CM101
Matemática II
MA102
4
MA101
Álgebra Lineal
AL101
3
MA101
Inglés I
IN101
3
-
Introducción a los Sistemas
IS101
3
CP101
Filosofía de la Ciencia
FC101
2
-



TERCER SEMESTRE
Asignatura
Código
UC
Prel.
Inglés técnico
IN103
3
IN101
Física I
FS101
3
MA102
Matemática III
MA103
3
MA102
Estadística I
ES101
3
MA102
Técnicas de Programación
TP102
3
CP101
Sistemas I
IS102
3
IS101

CUARTO SEMESTRE
Asignatura
Código
UC
Prel.
Estadística II
ES102
3
ES101
Física II
FS102
3
FS101
Matemática IV
MA106
3
MA103
Laboratorio de Física I
LAF101
1
FS101
Programación I
PG102
3
TP102
Sistemas II
IS103
3
IS102
Sist. de Información Gerencial Ing.
SIG101
3
IS102



QUINTO SEMESTRE
Asignatura
Código
UC
Prel.
Arquitectura del Computador
AQ101
3
FS102
Programación II
PG103
3
PG102
Sistemas III
IS104
3
IS103
Investigación de Operaciones I
IOI101
3
ES102
AL101
Laboratorio de
Física II
LAF102
1
LAF101
FS102
Estructura de Datos
ED102
4
PG102
Metodología de la Investigación
MI101
3
FC101

SEXTO SEMESTRE
Asignatura
Código
UC
Prel.
Herramientas Gerenciales I
HG101
3
-
Programación III
PG104
3
PG103
Base de datos I
BD101
4
ED102
Investigación de Operaciones II
IOI102
3
IOI101
Sistemas Operativos
SO103
4
ED102 y AQ101
Cálculo Numérico
CN101
3
PG102
MA106



SÉPTIMO SEMESTRE
Asignatura
Código
UC
Prel.
Programación IV
PG105
3
PG104
Redes de Datos
RD101
3
110 UC
SO103
Herramientas Gerenciales II
HG102
3
HG101
Base de Datos II
BD102
4
BD101
Investigación de Operaciones III
IOI103
3
IOI102
Electiva I
ELS101
3
110 UC.

OCTAVO SEMESTRE
Asignatura
Código
UC
Prel.
Tecnología e Información
TI105
3
RD101
Sistemas de Control
SCS101
3
IOI103
CN101
Evaluación y Control de Proyectos
ECP101
3
120 UC
Ingeniería Económica
IES101
3
120 UC
Introducción a las Telecomunicaciones
SIM101
3
RD101
Electiva II
ELS102
3
130 UC



NOVENO SEMESTRE
Asignatura
Código
UC
Prel.
Auditoría de Sistemas
AUS101
3
TI105
Simulación y Optimización
SIM101
3
ECP101
SCS101
Seminario Metodológico de Pasantía
SMP101
4
MI101
140 UC
Electiva III
ELS103
3
140 UC

DÉCIMO SEMESTRE
Asignatura
Código
UC
Prel.
Ética y Deontología Profesional
EDS101
3
140 UC
Pasantía y Trabajo Final







Análisis y diseño de sistemas


Análisis de sistemas de computación

Conceptos y Análisis:

Es un conjunto o disposición de procedimientos o programas relacionados de manera que juntos forman una sola unidad. Un conjunto de hechos, principios y reglas clasificadas y dispuestas de manera ordenada mostrando un plan lógico en la unión de las partes. Un método, plan o procedimiento de clasificación para hacer algo. También es un conjunto o arreglo de elementos para realizar un objetivo predefinido en el procesamiento de la Información. Esto se lleva a cabo teniendo en cuenta ciertos principios:
  • Debe presentarse y entenderse el dominio de la información de un problema.
  • Defina las funciones que debe realizar el Software.
  • Represente el comportamiento del software a consecuencias de acontecimientos externos.
  • Divida en forma jerárquica los modelos que representan la información, funciones y comportamiento.
El proceso debe partir desde la información esencial hasta el detalle de la Implementación.
La función del Análisis puede ser dar soporte a las actividades de un negocio, o desarrollar un producto que pueda venderse para generar beneficios. Para conseguir este objetivo, un Sistema basado en computadoras hace uso de seis (6) elementos fundamentales:
  • Software, que son Programas de computadora, con estructuras de datos y su documentación que hacen efectiva la logística metodología o controles de requerimientos del Programa.
  • Hardware, dispositivos electrónicos y electromecánicos, que proporcionan capacidad de cálculos y funciones rápidas, exactas y efectivas (Computadoras, Censores, maquinarias, bombas, lectores, etc.), que proporcionan una función externa dentro de los Sistemas.
  • Personal, son los operadores o usuarios directos de las herramientas del Sistema.
  • Base de Datos, una gran colección de informaciones organizadas y enlazadas al Sistema a las que se accede por medio del Software.
  • Documentación, Manuales, formularios, y otra información descriptiva que detalla o da instrucciones sobre el empleo y operación del Programa.
  • Procedimientos, o pasos que definen el uso específico de cada uno de los elementos o componentes del Sistema y las reglas de su manejo y mantenimiento.
Un Análisis de Sistema se lleva a cabo teniendo en cuenta los siguientes objetivos en mente:
  • Identifique las necesidades del Cliente.
  • Evalúe que conceptos tiene el cliente del sistema para establecer su viabilidad.
  • Realice un Análisis Técnico y económico.
  • Asigne funciones al Hardware, Software, personal, base de datos, y otros elementos del Sistema.
  • Establezca las restricciones de presupuestos y planificación temporal.
  • Cree una definición del sistema que forme el fundamento de todo el trabajo de Ingeniería.
Para lograr estos objetivos se requiere tener un gran conocimiento y dominio del Hardware y el Software, así como de la Ingeniería humana (Manejo y Administración de personal), y administración de base de datos.

Objetivos del Análisis.

Identificación de Necesidades.

Es el primer paso del análisis del sistema, en este proceso en Analista se reúne con el cliente y/o usuario (un representante institucional, departamental o cliente particular), e identifican las metas globales, se analizan las perspectivas del cliente, sus necesidades y requerimientos, sobre la planificación temporal y presupuestal, líneas de mercadeo y otros puntos que puedan ayudar a la identificación y desarrollo del proyecto.
  • Reconocimiento del problema.
  • Evaluación y Síntesis.
  • Modelado.
  • Especificación.
  • Revisión
Antes de su reunión con el analista, el cliente prepara un documento conceptual del proyecto, aunque es recomendable que este se elabore durante la comunicación Cliente – analista, ya que de hacerlo el cliente solo de todas maneras tendría que ser modificado, durante la identificación de las necesidades.

Estudio de Viabilidad.

Muchas veces cuando se emprende el desarrollo de un proyecto de Sistemas los recursos y el tiempo no son realistas para su materialización sin tener perdidas económicas y frustración profesional. La viabilidad y el análisis de riesgos están relacionados de muchas maneras, si el riesgo del proyecto es alto, la viabilidad de producir software de calidad se reduce, sin embargo se deben tomar en cuenta cuatro áreas principales de interés:
1.      Una evaluación de los costos de desarrollo, comparados con los ingresos netos o beneficios obtenidos del producto o Sistema desarrollado.
  1. Viabilidad económica.
Un estudio de funciones, rendimiento y restricciones que puedan afectar la realización de un sistema aceptable.
  1. Viabilidad Técnica.
  2. Viabilidad Legal.
Es determinar cualquier posibilidad de infracción, violación o responsabilidad legal en que se podría incurrir al desarrollar el Sistema.
Alternativas. Una evaluación de los enfoques alternativos del desarrollo del producto o Sistema.
El estudio de la viabilidad puede documentarse como un informe aparte para la alta gerencia.

Análisis Económico y Técnico.

El análisis económico incluye lo que llamamos, el análisis de costos – beneficios, significa una valoración de la inversión económica comparado con los beneficios que se obtendrán en la comercialización y utilidad del producto o sistema.
Muchas veces en el desarrollo de Sistemas de Computación estos son intangibles y resulta un poco dificultoso evaluarlo, esto varia de acuerdo a la características del Sistema. El análisis de costos – beneficios es una fase muy importante de ella depende la posibilidad de desarrollo del Proyecto.
En el Análisis Técnico, el Analista evalúa los principios técnicos del Sistema y al mismo tiempo recoge información adicional sobre el rendimiento, fiabilidad, características de mantenimiento y productividad.
Los resultados obtenidos del análisis técnico son la base para determinar sobre si continuar o abandonar el proyecto, si hay riesgos de que no funcione, no tenga el rendimiento deseado, o si las piezas no encajan perfectamente unas con otras.

Modelado de la arquitectura del Sistema.

Cuando queremos dar a entender mejor lo que vamos a construir en el caso de edificios, Herramientas, Aviones, Maquinas, se crea un modelo idéntico, pero en menor escala (mas pequeño).
Sin embargo cuando aquello que construiremos es un Software, nuestro modelo debe tomar una forma diferente, deben representar todas las funciones y subfunciones de un Sistema. Los modelos se concentran en lo que debe hacer el sistema no en como lo hace, estos modelos pueden incluir notación gráfica, información y comportamiento del Sistema.
Todos los Sistemas basados en computadoras pueden modelarse como transformación de la información empleando una arquitectura del tipo entrada y salida.

Especificaciones del Sistema.

Es un Documento que sirve como fundamento para la Ingeniería Hardware, software, Base de datos, e ingeniería Humana. Describe la función y rendimiento de un Sistema basado en computadoras y las dificultades que estarán presente durante su desarrollo. Las Especificaciones de los requisitos del software se produce en la terminación de la tarea del análisis.
En Conclusión un proyecto de desarrollo de un Sistema de Información comprende varios componentes o pasos llevados a cabo durante la etapa del análisis, el cual ayuda a traducir las necesidades del cliente en un modelo de Sistema que utiliza uno mas de los componentes: Software, hardware, personas, base de datos, documentación y procedimientos.



Ingenieria de software



Objetivos de la ingeniería de software

En la construcción y desarrollo de proyectos se aplican métodos y técnicas para resolver los problemas, la informática aporta herramientas y procedimientos sobre los que se apoya la ingeniería de software.
  • mejorar la calidad de los productos de software
  • aumentar la productividad y trabajo de los ingenieros del software.
  • Facilitar el control del proceso de desarrollo de software.
  • Suministrar a los desarrolladores las bases para construir software de alta calidad en una forma eficiente.
  • Definir una disciplina que garantice la producción y el mantenimiento de los productos software desarrollados en el plazo fijado y dentro del costo estimado.
Objetivos de los proyectos de sistemas
Para que los objetivos se cumplan las empresas emprenden proyectos por las siguientes razones: "Las cinco C "
Capacidad
Las actividades de la organización están influenciadas por la capacidad de ésta para procesar transacciones con rapidez y eficiencia.
Los sistemas de información mejoran esta capacidad en tres formas.
* Aumentan la velocidad de procesamiento:
Los sistemas basados en computadora pueden ser de ayuda para eliminar la necesidad de cálculos tediosos y comparaciones repetitivas.
Un sistema automatizado puede ser de gran utilidad si lo que se necesita es un procesamiento acelerado.
*Aumento en el volumen:
La incapacidad para mantener el ritmo de procesamiento no significa el abandono de los procedimientos existentes. Quizá éstos resulten inadecuados para satisfacer las demandas actuales. En estas situaciones el analista de sistemas considera el impacto que tiene la introducción de procesamiento computarizado, si el sistema existente es manual. Es poco probable que únicamente el aumento de la velocidad sea la respuesta. El tiempo de procesamiento por transacción aumenta si se considera la cantidad de actividades comerciales de la empresa junto con su patrón de crecimiento.
* Recuperación más rápida de la información:
Las organizaciones almacenan grandes cantidades de datos, por eso, debe tenerse en cuenta donde almacenarlos y como recuperarlos cuando se los necesita.
Cuando un sistema se desarrolla en forma apropiada, se puede recuperar en forma rápida la información.
Costo
* Vigilancia de los costos:
Para determinar si la compañía evoluciona en la forma esperada, de acuerdo con lo presupuestado, se debe llevar a cabo el seguimiento de los costos de mano de obra, bienes y gastos generales.
La creciente competitividad del mercado crea la necesidad de mejores métodos para seguir los costos y relacionarlos con la productividad individual y organizacional.
* Reducción de costos:
Los diseños de sistemas ayudan a disminuir los costos, ya que toma ventaja de las capacidades de cálculo automático y de recuperación de datos que están incluidos en procedimientos de programas en computadora. Muchas tareas son realizadas por programas de cómputo, lo cual deja un número muy reducido de éstas para su ejecución manual, disminuyendo al personal.
Control
*Mayor seguridad de información:
Algunas veces el hecho de que los datos puedan ser guardados en una forma adecuada para su lectura por medio de una máquina, es una seguridad difícil de alcanzar en un medio ambiente donde no existen computadoras.
Para aumentar la seguridad, generalmente se desarrollan sistemas de información automatizados. El acceso a la información puede estar controlado por un complejo sistemas de contraseñas, limitado a ciertas áreas o personal, si está bien protegido, es difícil de acceder.
*Menor margen de error: (mejora de la exactitud y la consistencia)
Esto se puede lograr por medio del uso de procedimientos de control por lotes, tratando de que siempre se siga el mismo procedimiento. Cada paso se lleva a cabo de la misma manera, consistencia y con exactitud: por otra parte se efectúan todos los pasos para cada lote de transacciones. A diferencia del ser humano, el sistema no se distrae con llamadas telefónicas, ni olvidos e interrupciones que sufre el ser humano. Si no se omiten etapas, es probable que no se produzcan errores.
Comunicación
La falta de comunicación es una fuente común de dificultades que afectan tanto a cliente como a empleados. Sin embargo, los sistemas de información bien desarrollados amplían la comunicación y facilitan la integración de funciones individuales.
* Interconexión: ( aumento en la comunicación)
Muchas empresas aumentan sus vías de comunicación por medio del desarrollo de redes para este fin, dichas vías abarcan todo el país y les permiten acelerar el flujo de información dentro de sus oficinas y otras instalaciones que no se encuentran en la misma localidad.
Una de las características más importantes de los sistemas de información para oficinas es la transmisión electrónica de información, como por ejemplo, los mensajes y los documentos.
* Integración de áreas en las empresas:
Con frecuencia las actividades de las empresas abarcan varias áreas de la organización, la información que surge en un área se necesita en otra área, por ejemplo.
Los sistemas de información ayudan a comunicar los detalles del diseño a los diferentes grupos, mantienen las especificaciones esenciales en un sitio de fácil acceso y calculan factores tales como el estrés y el nivel de costos a partir de detalles proporcionados por otros grupos.


Los sistemas de información computacionales son un arma estratégica, capaz de cambiar la forma en que la compañía compite en el mercado, en consecuencia éstos sistemas mejoran la organización y la ayudan a ganar "ventaja competitiva", sin embargo, si los competidores de la compañía tienen capacidades mas avanzadas para el procesamiento de información, entonces los sistemas de información pueden convertirse en una "desventaja competitiva".
Una organización puede ganar ventaja competitiva a través de sus sistemas de información de diferentes formas.
* Asegurar clientes:
Como los clientes son los más importante para una organización, los directivos buscan diferentes formas para conseguir nuevos clientes y mantener los que tienen. Para eso las empresas proporcionan:
1- Mejores precios
2- Servicios exclusivos.
3- Productos diferentes.
La ventaja en precios se observa continuamente en la actividad comercial (sí el producto es exclusivo o distinto entonces tener el liderazgo en precios bajos quizás no sea el objetivo a alcanzar).
La estrategia eficaz de precios a menudo se alcanza al desarrollar sistemas de información por razones tales como reducción de costos y ganancia en la exactitud.
Generalmente cuando una compañía puede ofrecer servicios exclusivos y atraer clientes, es posible que los competidores no sean capaces de atraer a los clientes de la compañía.
* Dejar fuera a los competidores:
Pasar sobre los competidores puede ser un inconveniente si ellos se encuentran la forma para duplicar los logros de la compañía, los sistemas de información pueden ser la base para dejar fuera del mercado a la competencia ya sea el disuadir sus intentos por ingresar al mercado o creándoles obstáculo para su entrada.
*Mejores acuerdos con los proveedores:
En los negocios, los proveedores también tienen importancia estratégica. Una manera de utilizar los sistemas de información para favorecer arreglos con los proveedores es ofreciendo un mejor precio. Disminuyendo los costos.
*Formar bases para nuevos productos
Los sistemas de información también forman la base de muchos productos y servicios nuevos.
Los servicios de base de datos experimentan un crecimiento común en todas las industrias.
Productos que van desde programas personales hasta planes de construcción pueden hacerse a la medida del cliente gracias al procesamiento de información.
Una cosa es clara, es necesario que los sistemas entren en operación y que trabajen de manera confiable.

 Estrategias para su desarrollo

Los sistemas de información basados en computadoras sirven para diversas finalidades que van desde el procesamiento de las transacciones de una empresa hasta proveer de la información necesaria para decidir sobre asuntos que se presentan con frecuencia.
En algunos casos los factores que deben considerarse en un proyecto de sistema de información, como el aspecto más apropiado de la computadora o la tecnología de comunicaciones que se va a utilizar, el impacto del nuevo sistema sobre los empleados de la empresa y las características específicas que el sistema debe tener se pueden determinar de manera secuencial. Todas estas situaciones están determinadas por tres métodos básicos:

Método del ciclo de vida clásico

El método del ciclo de vida para desarrollo de sistemas es el conjunto de actividades que los analistas, diseñadores y usuarios realizan para desarrollar e implantar un sistema de información.
El método del ciclo de vida para el desarrollo de sistemas consta de las siguientes actividades:
1) Investigación preliminar
La solicitud para recibir ayuda de un sistema de información pueden originarse por una persona, cuando se formula la solicitud comienza la primera actividad del sistema. Esta actividad tiene tres partes:
*Aclaración de la solicitud
Antes de considerar cualquier investigación de sistemas, la solicitud de proyecto debe examinarse para determinar con precisión lo que el solicitante desea; ya que muchas solicitudes que provienen de empleados y usuarios no están formuladas de manera clara.
*Estudio de factibilidad
En la investigación preliminar un punto importante es determinar que el sistema solicitado sea factible. Existen tres aspectos relacionados con el estudio de factibilidad, que son realizados por los general por analistas capacitados o directivos:
-Factibilidad técnica.
Estudia si el trabajo para el proyecto, puede desarrollarse con el software y el personal existente, y si en caso de necesitar nueva tecnología, cuales son las posibilidades de desarrollarla (no solo el hardware).
-Factibilidad económica.
Investiga si los costos se justifican con los beneficios que se obtienen, y si se ha invertido demasiado, como para no crear el sistema si se cree necesario.
-Factibilidad operacional:
Investiga si será utilizado el sistema, si los usuarios usaran el sistema, como para obtener beneficios.
* Aprobación de la solicitud
Algunas organizaciones reciben tantas solicitudes de sus empleados que sólo es posible atender unas cuantas. Sin embargo, aquellos proyectos que son deseables y factibles deben incorporarse en los planes. En algunos casos el desarrollo puede comenzar inmediatamente, aunque lo común es que los miembros del equipo de sistemas estén ocupados en otros proyectos. Cuando esto ocurre, la administración decide que proyectos son los más importantes y el orden en que se llevarán acabo.
Después de aprobar la solicitud de un proyecto se estima su costo, el tiempo necesario para terminarlo y las necesidades de personal
2) Determinación de los requisitos del sistema.
Los analistas, al trabajar con los empleados y administradores, deben estudiar los procesos de una empresa para dar respuesta a ciertas preguntas claves.
Para contestar estas preguntas, el analista conversa con varias personas para reunir detalles relacionados con los procesos de la empresa. Cuando no es posible entrevistar, en forma personal a los miembros de grupos grandes dentro de la organización, se emplean cuestionarios para obtener esta información.
Las investigaciones detalladas requieren el estudio de manuales y reportes, la observación en condiciones reales de las actividades del trabajo y, en algunas ocasiones, muestras de formas y documentos con el fin de comprender el proceso en su totalidad.
Reunidos los detalles, los analistas estudian los datos sobre requerimientos con la finalidad de identificar las características que debe tener el nuevo sistema.
3)Diseño del sistema.(diseño lógico)
El diseño de un sistema de información responde a la forma en la que el sistema cumplirá con los requerimientos identificados durante la fase de análisis.
Es común que los diseñadores hagan un esquema del formato o pantalla que esperan que aparezca cuando el sistema esta terminado, se realiza en papel o en la pantalla de una terminal utilizando algunas de las herramientas automatizadas disponibles para el desarrollo de sistemas.
También se indican los datos de entrada, los que serán calculados y los que deben ser almacenados. Los diseñadores seleccionan las estructuras de archivo y los dispositivos de almacenamiento. Los procedimientos que se escriben indican cómo procesar los datos y producir salidas.
Los documentos que contienen las especificaciones de diseño representan a éste mediante diagramas, tablas y símbolos especiales.
La información detallada del diseño se proporciona al equipo de programación para comenzar la fase de desarrollo de software.
Los diseñadores son responsables de dar a los programadores las especificaciones de software completas y claramente delineadas.
4) Desarrollo de software (diseño físico).
Los encargados de desarrollar software pueden instalar software comprado a terceros o escribir programas diseñados a la medida del solicitante. La elección depende del costo de cada alternativa, del tiempo disponible para escribir el software y de la disponibilidad de los programadores.
Los programadores son responsables de la documentación de los programas y de explicar su codificación, esta documentación es esencial para probar el programa y hacer el mantenimiento.
5) Prueba de sistemas.
Durante esta fase, el sistema se emplea de manera experimental para asegurarse que el software no tenga fallas, es decir, que funciona de acuerdo con las especificaciones y en la forma en que los usuarios esperan que lo haga. Se alimentan como entradas conjuntos de datos de prueba para su procesamiento y después se examinan los resultados. En ocasiones se permite que varios usuarios utilicen el sistema, para que los analistas observen si tratan de emplearlo en formas no previstas, antes de que la organización implante el sistema y dependa de él.
En muchas organizaciones, las pruebas son conducidas por personas ajenas al grupo que escribió los programas originales; para asegurarse de que las pruebas sean completas e imparciales y, por otra, que el software sea más confiable.
6) Implantación y evaluación.
La implantación es el proceso de verificar e instalar nuevo equipo, entrenar a los usuarios, instalar la aplicación y construir todos los archivos de datos necesarios para utilizarla.
Cada estrategia de implantación tiene sus méritos de acuerdo con la situación que se considere dentro de la empresa. Sin importar cuál sea la estrategia utilizada, los encargados de desarrollar el sistema procuran que el uso inicial del sistema se encuentre libre de problemas.
Los sistemas de información deben mantenerse siempre al día, la implantación es un proceso de constante evolución.
La evaluación de un sistema se lleva a cabo para identificar puntos débiles y fuertes. La evaluación ocurre a lo largo de cualquiera de las siguientes dimensiones:
  • Evaluación operacional
Valoración de la forma en que funciona el sistema, incluyendo su facilidad de uso, tiempo de respuesta, lo adecuado de los formatos de información, confiabilidad global y nivel de utilización.
  • Impacto organizacional
Identificación y medición de los beneficios para la organización en áreas como finanzas (costos, ingresos y ganancias), eficiencia operacional e impacto competitivo.
- Opinión de los administradores
Evaluación de las actitudes de directivos y administradores dentro de la organización así como de los usuarios finales.
  • Desempeño del desarrollo
La evaluación del proceso de desarrollo de acuerdo con criterios tales como tiempo y esfuerzo de desarrollo, concuerdan con presupuestos y estándares, y otros criterios de administración de proyectos.
Cuando la evaluación de sistema se conduce en forma adecuada proporciona mucha información que puede ayudar a mejorar la efectividad de los esfuerzos cuando la evaluación de sistemas se conduce en forma adecuada proporciona mucha información que puede ayudar a mejorar la efectividad de los esfuerzos de desarrollo de aplicaciones subsecuentes.



Muchos especialistas en sistemas de información reconocen la dificultad de comprender de manera completa sistemas grandes y complejos. El método de desarrollo del análisis estructurado tiene como finalidad superar esta dificultad por medio de:
  1. la división del sistema en componentes y
  2. la construcción de un modelo del sistema.
El método incorpora elementos tanto de análisis como de diseño
El análisis estructurado se concentra en especificar lo que se requiere que haga el sistema o la aplicación. Permite que las personas observen los elementos lógicos (lo que hará el sistema) separados de los componentes físicos (computadora, terminales, sistemas de almacenamiento, etc.). Después de esto se puede desarrollar un diseño físico eficiente para la situación donde será utilizado.
El análisis estructurado es un método para el análisis de sistemas manuales o automatizados, que conduce al desarrollo de especificaciones para sistemas nuevos o para efectuar modificaciones a los ya existentes. Éste análisis permite al analista conocer un sistema o proceso en una forma lógica y manejable al mismo tiempo que proporciona la base para asegurar que no se omite ningún detalle pertinente.
Componentes
Símbolos gráficos: Iconos y convenciones para identificar y describir los componentes de un sistema junto con las relaciones entre estos componentes.
Diccionario de datos: descripción de todos los datos usados en el sistema. Puede ser manual o automatizado.
Descripciones de procesos y procedimientos: declaraciones formales que usan técnicas y lenguajes que permiten a los analistas describir actividades importantes que forman parte del sistema.
Reglas: estándares para describir y documentar el sistema en forma correcta y completa.
Diseño Estructurado.
El diseño Estructurado es otro elemento del Método de Desarrollo por Análisis Estructurado que emplea la descripción gráfica, se enfoca en el desarrollo de especificaciones del software.
El objetivo del Diseño Estructurado es programas formados por módulos independientes unos de otros desde el punto de vista funcional.
El Diseño Estructurado es una técnica específica para el diseño de programas.
La herramienta fundamental del Diseño Estructurado es el diagrama estructurado que es de naturaleza gráfica y evitan cualquier referencia relacionada con el hardware o detalles físicos. Su finalidad no es mostrar la lógica de los programas (que es la tarea de los diagramas de flujo). Los Diagramas Estructurados describen la interacción entre módulos independientes junto con los datos que un módulo pasa a otro cuando interacciona con él.
Análisis de flujo de datos.
Estudia el empleo de los datos para llevar a cabo procesos específicos de la empresa dentro del ámbito de una investigación de sistemas usa los diagrama de flujos de datos y los diccionarios de datos.
Herramientas
Las herramientas muestran todas las características esenciales del sistema y la forma en que se ajustan entre si, como es muy difícil entender todo un proceso de la empresa en forma verbal, las herramientas ayudan a ilustrar los componentes esenciales de un sistema, junto con sus acciones.
Diagrama de flujo de datos
Es el modelo del sistema. Es la herramienta mas importante y la base sobre la cual se desarrollan otros componentes.
El modelo original se detalla en diagramas de bajo nivel que muestran características adicionales del sistema. Cada proceso puede desglosarse en diagramas de flujos de datos cada vez más detallados. Repitiéndose esta secuencia hasta que se obtienen suficientes detalles para que el analista comprenda la parte del sistema que se encuentra bajo investigación.
El diagrama físico de datos da un panorama del sistema en uso, dependiente de la implantación, mostrando cuales tareas se hacen y como son hechas. Incluyen nombres de personas, nombres o números de formato y documento, nombres de departamentos, archivos maestro y de transacciones, equipo y dispositivos utilizados, ubicaciones, nombres de procedimientos.
El diagrama lógico de datos da un panorama del sistema, pero a diferencia del físico es independiente de la implantación, que se centra en el flujo de datos entre los procesos, sin considerar los dispositivos específicos y la localización de los almacenes de datos o personas en el sistema. Sin indicarse las características físicas.
Notaciones: son cuatro símbolos, que fueron desarrollados y promovidos la mismo tiempo por dos organizaciones: Yourdon y Gane y Sarson.
Flujo de datos: son movimientos de datos en una determinada dirección, desde un origen hasta un destino. Es un paquete de datos.
Yourdon Gane y Sarson
Proceso: son personas, procedimientos o dispositivos que utilizan o producen datos. No identifica el componente físico
Fuente o destino de los datos: pueden ser personas, programas, organizaciones u otras entidades que interactúan con el sistema pero que se encuentre fuera.
Almacenamiento de datos: es un lugar donde se guardan los datos. El almacenamiento de datos puede representar dispositivos tanto computarizados como no computarizados.
Cada componente en un diagrama de flujo de datos tiene una etiqueta con un nombre descriptivo. Los nombres de los procesos reciben un numero para poder identificarlos, este numero tiene un valor adicional cuando se estudian los componentes que integran un proceso especifico.

Diccionario de datos.

Contiene las características lógicas de los sitios donde se almacenan los datos del sistema, incluyendo nombre, descripción, alias, contenido y organización. Identifica los procesos donde se emplean los datos y los sitios donde se necesita el acceso inmediato a la información, se desarrolla durante el análisis de flujo de datos y auxilia a los analistas que participan en la determinación de los requerimientos del sistema, su contenido también se emplea durante el diseño.
Razones para su utilización:
1.      Los sistemas al sufrir cambios continuos, es muy difícil manejar todos los detalles. Por eso se registra la información, ya sea sobre hoja de papel o usando procesadores de texto. Los analistas mas organizados usan el diccionario de datos automatizados diseñados específicamente para el análisis y diseño de software.
  1. Para manejar los detalles en sistemas muy grandes, ya que tienen enormes cantidades de datos, aun en los sistemas mas chicos hay gran cantidad de datos.
Los diccionarios de datos proporcionan asistencia para asegurar significados comunes para los elementos y actividades del sistema y registrando detalles adicionales relacionadas con el flujo de datos en el sistema, de tal manera que todo pueda localizarse con rapidez.
  1. Para asignarle un solo significado a cada uno de los elementos y actividades del sistema.
  2. Para documentar las características del sistema, incluyendo partes o componentes así como los aspectos que los distinguen. También es necesario saber bajo que circunstancias se lleva a cabo cada proceso y con que frecuencia ocurren. Produciendo una comprensión mas completa. Una vez que las características están articuladas y registradas, todos los participantes en el proyecto tendrán una fuente común de información con respecto al sistema.
  3. Para facilitar el análisis de los detalles con la finalidad de evaluar las características y determinar donde efectuar cambios en el sistema.
Determina si son necesarias nuevas características o si están en orden los cambios de cualquier tipo.
Se abordan las características:
* Naturaleza de las transacciones: las actividades de la empresa que se llevan a cabo mientras se emplea el sistema.
* Preguntas: solicitudes para la recuperación o procesamiento de información para generar una respuesta específica.
* Archivos y bases de datos: detalles de las transacciones y registros maestros que son de interés para la organización.
* Capacidad del sistema: Habilidad del sistema para aceptar, procesar y almacenar transacciones y datos
5- Localizar errores y omisiones en el sistema, detectan dificultades, y las presentan en un informe. Aun en los manuales, se revelan errores.
Contenido de un registro del diccionario
El diccionario tiene dos tipos de descripciones para el flujo de datos del sistema, son los elementos datos y estructura de datos.
Elemento dato: son los bloques básicos para todos los demás datos del sistema, por si mismos no le dan un significado suficiente al usuario. Se agrupan para formar una estructura de datos.
Descripción: Cada entrada en el diccionario consiste de un conjunto de detalles que describen los datos utilizados o producidos por el sistema.
Cada uno esta identificado con:
Un nombre: para distinguir un dato de otro.
Descripción: indica lo que representa en el sistema.
Alias: porque un dato puede recibir varios nombres, dependiendo de quien uso este dato.
Longitud: porque es de importancia de saber la cantidad de espacio necesario para cada dato.
Valores de los datos: porque en algunos procesos solo son permitidos valores muy específicos para los datos. Si los valores de los datos están restringidos a un intervalo especifico, esto debe estar en la entrada del diccionario.
Estructura de datos: es un grupo de datos que están relacionados con otros y que en conjunto describen un componente del sistema.
Descripción:
Se construyen sobre cuatro relaciones de componentes. Se pueden utilizar las siguientes combinaciones ya sea individualmente o en conjunción con alguna otra.
Relación secuencial: define los componentes que siempre se incluyen en una estructura de datos.
Relación de selección: (uno u otro), define las alternativas para datos o estructuras de datos incluidos en una estructura de datos.
Relación de iteración: (repetitiva), define la repetición de un componente.
Relación opcional: los datos pueden o no estar incluidos, o sea, una o ninguna iteración.

Notación

Los analistas usan símbolos especiales con la finalidad de no usar demasiada cantidad de texto para la descripción de las relaciones entre datos y mostrar con claridad las relaciones estructurales. En algunos casos se emplean términos diferentes para describir la misma entidad (alias) estos se representan con un signo igual (=) que vincula los datos.
8. Diagrama de estructura de datos
Es una descripción de la relación entre entidades (personas, lugares, eventos y objetos) de un sistema y el conjunto de información relacionado con la entidad.
Finalidades:
  1. Verificar los requerimientos de información.
  2. Describir los datos asociados con las entidades.
  3. Mostrar la relación entre entidades.
  4. Comunicar los requerimientos de datos a un diseñador de archivos o administrador de la base de datos.
Notación
Una común se usa al preparar los diagramas de estructura de datos. Las entidades se representan mediante rectángulos, con el nombre de la entidad en la parte de arriba y una lista de atributos que describan la entidad. Cada entidad se puede identificar mediante un atributo llave.
Uso en el diseño de archivo.
El uso de los diagramas de estructura de datos requiere que el analista haga preguntas importantes acerca de la entidad a describir. La llave de registro, identifica de una forma única a la cuenta. Los demás detalles son los atributos.
Además de los componentes básicos existen dos elementos adicionales esenciales:
* Apuntadores atributos: enlazan dos entidades mediante la información común, usualmente un atributo llave en uno y un atributo (no llave) en el otro.
* Apuntadores lógicos: identifican las relaciones entre las entidades, sirven para obtener acceso inmediato a la información en una entidad, definiendo un atributo llave en otra entidad.
Usualmente se indican en la parte inferior del diagrama, son los enlaces con las demás entidades incluidas en el diagrama.
Compartir datos entre las aplicaciones.
Cada sistema se puede desarrollar por separado, guardando los datos de los estados de cuenta aparte de los datos del inventario. Al desarrollar mas sistemas y crecer su utilidad, muy seguido existe la necesidad de integrar los sistemas para permitir que la información sea compartida por mas de un sistema.
Redundancia e integridad:
Si cada sistema se desarrolla en forma independiente, la información puede ser almacenada al menos una vez en cada sistema, éste además de requerir espacio de almacenamiento extra, esta duplicación es llamada redundancia, para reducir la integridad de la información; cuando se duplica información es muy probable de que los detalles no coincidan o que no todos sean actualizados. Resultando la perdida de integridad en los datos, pudiendo ser corregido mejorando los procedimientos.
Se puede evitar del todo disminuyendo la redundancia de datos en los archivos.




Gráfica de estructura

Muestra con símbolos la relación entre los módulos de procesamiento y el software de la computadora. Describen la jerarquía de los módulos componentes y los datos que serán transmitidos entre ellos. Incluye el análisis de las transformaciones entrada-salida y el análisis de transacción.
Las flechas con una circunferencia indican datos, mientras que las que tienen un círculo representa información de control de programa, tales como notas o condiciones de error.
Diagrama de contexto
Se pueden usar diagramas de flujos de datos para representar el sistema a cualquier nivel de abstracción. El diagrama de flujo de dato de nivel 0 se llama diagrama de contexto y en él el sistema esta representado por un solo proceso, que identifica cual es la función principal del sistema, mostrando además, los flujos de información que lo relacionan con otros sistemas: las entidades externas. El diagrama de contexto tiene una gran importancia puesto que resume el requisito principal del sistema de recibir ciertas entradas, procesarlas de acuerdo con determinada función y generar ciertas salidas. A partir del diagrama de contexto se puede ir construyendo nuevos diagramas que vayan definiendo con mayor nivel de detalle lo flujos de datos y procesos de transformación que ocurren en el sistema, de forma que al final obtenemos una jerarquía de diagramas.
Método del desarrollo por prototipos
Los sistemas pueden desarrollarse con métodos y lenguajes de programación convencionales, aunque no tengan todas las características y toques finales de un sistema terminado. Quizás los informes no tengan encabezados, logos, etc., falten controles de entradas y procesamiento. Lo importante es el ensayo, y hallar los requerimientos.
Los generadores de aplicaciones, son programas que sirven para hacer otros programas, son un apoyo en la construcción de prototipos, permitiendo definir la estructura visual de las pantallas, los registros de entrada y el formato de los informes.
En algunos casos donde el sistema no será utilizado frecuentemente, puede convertirse el prototipo en el sistema terminado, o bien, cuando no son muchos los beneficios que se obtienen.
Razones para desarrollar prototipos de sistemas
Los requerimientos de información no siempre están bien definidos, pueden ser demasiados vagos aún al formular el diseño. En otros casos, es probable que una investigación de sistemas bien llevada, de como resultado un conjunto muy amplio de requerimientos de sistemas, pero construir un sistema que satisfaga a todos ellos quizás necesite del desarrollo de nueva tecnología.
Los prototipos permiten evaluar situaciones extraordinarias donde los encargados de diseñar e implantar sistemas no tienen información ni experiencia, o también donde existen situaciones de riesgo y costos elevados, y aquellas donde el diseño propuesto es novedoso y aún no ha sido probada.
La información obtenida con su uso se aplica en un nuevo diseño que se emplea, otra vez, como prototipo y que revela más información valiosa sobre diseño. El proceso se repite las veces que sea necesario para revelar los requerimientos esenciales del diseño.
Maquetas
Cuando se comienza el desarrollo, tiene por objetivo presentar a los usuarios y/o clientes la apariencia del sistema final. Los usuarios pueden manifestar su opinión.
Ambos métodos son muy útiles para establecer la viabilidad del proyecto y definir acuerdos sobre los objetivos y resultados esperados.

Etapas del método de prototipos

1- Identificación de requerimientos conocido.
La determinación de los requerimientos de una aplicación es tan importante para el método de desarrollo de prototipo como lo es para los métodos del ciclo clásico de desarrollo de sistemas o análisis estructurado (aunque las tácticas son diferentes). Por consiguiente, antes de crear el prototipo, los analistas y usuarios deben trabajar juntos para identificar los requerimientos conocidos que tiene que satisfacerse. Para hacerlo determinan los fines para lo que servirá el sistema y el alcance de sus capacidades.
2- Desarrollo de un modelo de trabajo
Es útil comenzar el proceso de construcción del prototipo con el desarrollo de un plan general que permita a las personas conocer lo que se espera de ellas y del proceso de desarrollo. Es difícil, y en ocasiones imposibles, fijar una fecha tentativa de terminación. La experiencia con el sistema es la que determina eventualmente cuando en sistema esta terminado.
Para comenzar la primera iteración, usuarios y analistas identifican de manera conjunta los datos que son necesarios para el sistema y especifican la salida que debe producir la aplicación.
Las decisiones de diseño necesarias para desarrollar la salida del sistema cambian muy poco en relación con las tomadas en otros métodos de desarrollo. Sin embargo, con un prototipo, se espera que las especificaciones iniciales estén incompletas.
En el desarrollo de un prototipo se preparan los siguientes componentes:
*El lenguaje para el diálogo o conversación entre el usuario y el sistema
*Pantallas y formato para la entrada de datos
*módulos esenciales de procesamiento
*Salida del sistema
Al construir el prototipo se deben seguir los estándares para datos que emplea la organización.
En esta etapa es más importante la rapidez con que se construye el prototipo que la eficiencia de operación. Es por esto que el analista no intenta optimizar la velocidad de operación del sistema
Durante la evaluación los analistas de sistemas desean capturar 3)El prototipo y el usuario
Es responsabilidad del usuario trabajar con prototipo y evaluar su característica y operación. La experiencia con el sistema bajo condiciones permite obtener la familiaridad indispensable para determinar los cambios o mejoras que sean necesarios así como la eliminación de características inadecuadas o innecesarias.
4) Revisión del prototipo
Información sobre los que les gusta y los que les desagrada a los usuarios. La información obtenida tendrá influencia sobre las características de la siguiente versión de la aplicación.
Los cambios al prototipo son planificados con los usuarios antes de llevarlos a cabo. El analista es el responsable de realizar las modificaciones.
5) Repetición del proceso las veces que sea necesario.
El proceso finaliza cuando los usuarios y analistas están de acuerdo en que el sistema ha evolucionado lo suficiente como para incluir todas las características necesarias o cuando ya es evidente que no se obtendrá mayor beneficio.
6) El abandono o dejarlo como esta:
Cuando se verifica de que no es posible desarrollar el sistema para satisfacer los objetivos deseados, ya sea por la tecnología existente o por el factor económico.

Coordinación y Gestión del proyecto.

La gestión del proyecto presupone establecer condiciones para el desarrollo del mismo. Involucra actividades de: planificación, estimación de recursos, seguimiento y control y evaluación del proyecto.
  • La planificación de proyectos se define como la predicción de la duración de las actividades y tareas a nivel individual.
  • La estimación se define como la predicción de personal, esfuerzo y costo que se requerirá para terminar todas las actividades y productos conocidos asociados con el proyecto. El tamaño del producto a desarrollar es una de las primeras tareas en la gestión del proyecto. El tamaño se define como la cantidad de código fuente, especificaciones, casos de prueba, documentación del usuario y otros productos tangibles que son salida del proyecto, éste se basa principalmente en la experiencia de proyecto anteriores.
  • El seguimiento de proyectos es la recolección de datos y su acumulación sobre recursos consumidos, costos generados asociados con un proyecto. La medición en los proyectos de desarrollo de software es una actividad fundamental para la mejora de la productividad, el costo y la calidad del producto final.
Proceso de Iniciación del Proyecto.
Abarca aquellas actividades de creación de la estructura del proyecto. Durante este ciclo se define el ciclo de vida del software para este proyecto y se establecen en los planes para su gestión. Se estiman y asignan los recursos necesarios a fin de ejecutar las distintas tareas que demanda el proyecto. Se identifican y seleccionan estándares, metodologías y herramientas para la gestión y ejecución del mismo y, por último, se prepara y establece un plan para su implementación adecuada y oportuna. El plan de Gestión del Proyecto Software que conducirá el desarrollo se produce como culminación de este proceso.

Mediciones y estimaciones

El software al ser intangible, no tener peso, ni volumen, ni superficie, etc. se mide a través de diversos aspectos clave en el desarrollo. La medición determina cuales son los aspectos y proporcionan métodos para medirlos.
La medición y estimación atacan los tres problemas claves de la ingeniería del software:
  1. Estimar costos y recursos en un proyecto software
  2. Garantizar la calidad del producto final
  3. Mejorar la productividad del ingeniero de software durante el desarrollo.
Teniendo en cuenta estos objetivos, las métricas se centran en cuatro aspectos:
Para estimar los recursos es necesario tener en cuenta una serie de factores de riesgo que influyen sustancialmente en la precisión de las estimaciones de los recursos humanos necesarios para la realización del proyecto. Los mas importantes son:
*Complejidad de la tarea.
*Modificaciones permitidas a lo largo del desarrollo
*Experiencia previa de los desarrolladores
*Duración fijada del proyecto.
*Estructuración del problema y de las tareas.
*Disponibilidad de datos e información suministrada por el usuario.
*Disponibilidad y facilidad de comunicación con el usuario.
Además de las fases estándar del desarrollo, hay que tener en cuenta la coordinación y seguimiento del proyecto que suponen una importante carga de trabajo y que son olvidadas durante la planificación o no se le dedica mucho.
El costo global se compone de las partidas de viajes, hardware (nuevo o actualización), software (en caso de comprar algún paquete para el desarrollo), gastos comunes, y personal que es el mas influyente, ya que el costo de un proyecto es directamente proporcional a los recursos humanos.
El proceso engloba todas las actividades y fases que se llevan a cabo durante la realización del proyecto. Se persigue determinar si en cada fase los resultados producidos se corresponden con los esperados y en establecer un control sobre los recursos estimados para cada una de las fases.
El producto incluye cualquier documento o software desarrollado que se genere durante el proceso completo. En las medidas de productos software existen medidas directas (costo del proyecto, esfuerzo empleado, líneas de código implementadas, etc.) y medidas indirectas
(Funcionalidad, fiabilidad, eficiencia, facilidad de mantenimiento, etc.).
Herramientas para el desarrollo de sistemas
Las herramientas son cualquier dispositivo que, empleándose adecuadamente, mejora el desempeño del desarrollo de sistemas de información.
Se agrupan en las tres siguientes herramientas automatizadas:
Herramientas de tipo Front-end
Automatizan las primeras actividades del proceso de desarrollo de sistemas.
Esta herramienta proporciona soporte para el desarrollo de modelos gráficos de sistemas y procesos
Los diagramas de flujo son representativos de este tipo de herramientas.
Herramientas para análisis
Estas herramientas ayudan a los especialistas en sistemas a documentar un sistema existente, ya sea manual o automatizado. También sirve para determinar los requerimientos de una nueva aplicación. Incluye:
- Herramientas para recolección de datos: capturan detalles que describen sistemas y procedimientos en uso. Documentan procesos y actividades de decisión, se utilizan para apoyar la tarea de identificar requerimientos.
- Herramientas para diagramación: crean representaciones gráficas de sistemas y actividades. Apoyan el dibujo y revisión de diagramas de flujos de datos e iconos asociados con el análisis estructurado. Incluyen programas para representación en diagramas de flujo.
- Herramientas para el diccionario: registran y mantienen descripciones de los elementos del sistema, como grupo de datos, procesos, alimentos de datos, etc. Frecuentemente proporcionan la capacidad de examinar las descripciones del sistema, para decidir si son incompletas o inconsistentes.
Herramientas para diseño
Apoyan el proceso de formular las características que el sistema debe tener para satisfacer los requerimientos deseados durante las actividades de análisis. Incluye:
- Herramienta de especificación: apoyan el proceso de formular las características, como por ejemplo deben tener una aplicación como entradas, salidas, procesamientos específicos de control.
- Herramienta para presentación: se utilizan para describir la posición de datos, mensajes, y encabezados sobre las pantallas de las terminales, informes y otros medios de entradas y salidas.
Los analistas utilizan las herramientas para el diseño de sistemas desde el inicio de la era de las computadoras. Ahora a las herramientas se le están dando un nuevo significado en el diseño de software.
Herramientas de tipo back-end
Su finalidad es ayudar al analista a formular la lógica del programa, los algoritmos de procesamiento y la descripción física de datos.
Tambien ayudan a la intersección con los dispositivos (para entrada y salida). Estas actividades convierten los diseños lógicos del software en un código de programación; este es que da existencia a la aplicación.
Herramientas para el desarrollo
Ayudan al analista a trasladar los diseños en aplicaciones funcionales. Incluye:
- Herramientas para ingeniería Software: apoyan el proceso de formular diseños de software, incluyendo procesamientos y controles.
- Generadores de códigos: producen el código fuente y las aplicaciones a partir de especificaciones funcionales bien articuladas
- Herramientas para pruebas: apoyan la fase evaluación de un sistema. Incluyen facilidades para examinar la correcta operación del sistema.
Herramientas integrales
Proporcionan un ambiente que automatiza tareas claves a lo largo del proceso de desarrollo. Estas herramientas facilitan el diseño, administración y mantenimiento del código. Brinda un ambiente eficiente para crear, almacenar, manipular y documentar sistemas.

Reingeniería e ingeniería inversa

Los conceptos de reingeniería e ingeniería inversa están ligados al desarrollo de software a gran escala, donde una mejora en proceso de este desarrollo supone un aumento en la competitividad de la empresa.
Aunque hay que tener en cuenta que esta mejora es, en general a largo plazo (normalmente de uno a dos años) ambas actividades, están orientadas a automatizar el mantenimiento de aplicaciones. Esta es una tarea que consume gran cantidad de recursos, por lo que cualquier reducción en el tiempo y recursos empleados en ella supone una importante mejora en la productividad del proceso. Este es el principal objetivo de la reingeniería. Se trata, de analizar el código o el diseño actual y modificarlo con la ayuda de herramientas automáticas para traducirlos a códigos mas estructurados, y más eficientes.
Dentro de la reingeniería, el proceso de pasar del código a una descripción de mas alto nivel es lo que se denomina:
Ingeniería inversa.
La reingeniería e ingeniería inversa prolongan la vida del software.
Dado que es una labor estratégica, es conveniente conocer cuando conviene realizar la tarea de reingeniería para una aplicación y cuándo es más rentable sustituirla e implementar una nueva. Las aplicaciones para el primer paso, son aquellas en la que se produce las siguientes situaciones:
  • Fallos frecuentes, que son difíciles de localizar
  • Son poco eficientes, pero realizan la función esperada
  • Dificultades en la integración con otros sistemas
  • Calidad pobre del software final
  • Resistencia a introducir cambios
  • Pocas personas capacitadas para realizar modificaciones
  • Dificultades para realizar pruebas
  • El mantenimiento consume muchos recursos
  • Es necesario incluir nuevos requisitos, pero los básicos se mantienen.
Desarrollo de software con y para reuso
El desarrollo de software con reúso consiste en desarrollar una aplicación usando software ya existente. Cualquier profesional lo utiliza
El desarrollo de software para reuso consiste en la construcción de un sistema con la intención de reutilizar partes de él en futuros desarrollos. Con software a gran escala, un buen profesional con experiencia puede desarrollarlo.
Estudios realizados determinan que la práctica de reutilización del software en un proyecto aumenta la productividad durante el desarrollo de dicho proyecto.
Sin embargo, la reutilización del software no cubre solo el reuso de códigos, abarca todo un amplio de posibilidades en los diferentes niveles, metodología, ciclos de vida, planes del proyecto, especificaciones de requisitos, diseños, arquitectura software, planes de validación, juegos de prueba y documentación.






No hay comentarios:

Publicar un comentario