miércoles, 17 de febrero de 2016

EL PAPEL DEL ANALISTA DE SISTEMAS

ROLES DEL ANALISTA DE SISTEMAS

El analista de sistemas evalúa de manera sistemática el funcionamiento de un negocio mediante el examen de la entrada y el procesamiento de datos y su consiguiente producción de información, con el propósito de mejorar los procesos de una organización. 
El analista debe tener la capacidad de trabajar con todo tipo de gente y contar con suficiente experiencia en computadoras. El analista desempeña diversos roles, en ocasiones varios de ellos al mismo tiempo. Los tres roles principales del analista de sistemas son el de consultor, experto en soporte técnico y agente de cambio

El rol de consultor del analista de sistemas. Con frecuencia, el analista de sistemas desempeña el rol de consultor para un negocio y, por tanto, podría ser contratado de manera especifica para enfrentar los problemas de sistemas de información de una empresa. Esta contratación se puede traducir en una ventaja porque los consultores externos tiene una perspectiva fresca de la cual carecen los demás miembros de una organización. También se puede traducir en una desventaja porque alguien externo nunca conocerá la verdadera cultura organizacional. 

El rol de experto en soporte técnico del analistas de sistemas. Otro rol que tendrá que desempeñar es el de experto en soporte técnico dentro de la empresa en la cual labora manera regular. En este rol el analista recurre a sus experiencia profesional con el hardware y software de cómputo y al uso que se le da en el negocio. Con frecuencia, este trabajo no implica un proyecto completo de sistemas, sino más bien la realización de pequeñas modificaciones o la toma de decisiones que se circunscriben a un solo departamento.

El rol de agente de cambio del analista de sistemas. El rol más completo y de mayor responsabilidad que asume el analista de sistemas es el de agente de cambio, ya sea interno o externo para la empresa. Como analista, es un agente de cambio si desempeña cualquiera de las actividades relacionadas con el ciclo de vida del desarrollo de sistemas y está presente en la empresa durante un largo periodo. Un agente de cambio se puede definir como alguien que sirve de catalizador para el cambio, desarrolla un plan para el cambio y coopera con los demás para facilitar el cambio. 
su presencia en el negocio inicia en el cambio. Como analista de datos, debe estar consciente de este hecho y utilizarlo como punto de partida para su análisis. 
En calidad de analista de sistemas desempeñando la función de agente de cambio debe promover un cambio que involucre el uso de los sistemas de información. También es parte de su tarea enseñar a los usuarios el proceso del cambio, ya que las modificaciones a un sistema de información no sólo afectan a éste sino que provocan cambios en el resto de la organización.

CUALIDADES DEL ANALISTA DE SISTEMAS

De las descripciones anteriores sobre los roles que desempeña el analista de sistemas , se deduce fácilmente que el analista exitoso debe contar con una amplia gama de cualidades. Hay una gran diversidad de personas trabajando como analista de sistemas, por lo que cualquier descripción que intente ser general está destinada a quedarse corta en algún sentido. no obstante, la mayoría de los analistas de sistemas tienen algunas cualidades comunes. 
En primer lugar, el analista es un solucionador de problemas. Es una persona que aborda como un reto el análisis de problemas y que disfruta al diseñar soluciones factibles. Cuando es necesario, el analista debe contar con la capacidad de afrontar sistemáticamente cualquier situación mediante la correcta aplicación de herramientas, técnicas y su experiencia. 
El analista también debe ser un comunicador con capacidad para relacionarse con los demás durante extensos periodos. Necesita suficiente experiencia en computación para programar, entender las capacidades de las computadoras, recabar los requisitos de información de los usuarios y comunicarlos a los programadores. Asimismo, debe tener una ética personal y profesional firme que le ayude a moldear las relaciones con sus clientes.
El analista de sistemas debe ser una persona autodisciplinada y automotivada, con la capacidad de administrar y coordinar los innumerables recursos de un proyecto, incluyendo a otras personas. La profesión de analista de sistemas es muy exigente; pero es una profesión en constante evolución que siempre trae nuevos retos.

Referencias: Análisis y diseño de sistemas. By Julie E. Kendall.

CICLO DE VIDA DE UN SISTEMA DE INFORMACION


Un sistema de información es un sistema, automatizado o manual, que engloba a personas, máquinas y/o métodos organizados para recopilar, procesar, trasmitir datos que representan información. Un sistema de información engloba la infraestructura, la organización, el personal y todos los componentes necesarios para la recopilación, procesamiento, almacenamiento, transmisión, visualización, diseminación y organización de la información.



LAS ETAPAS DEL PROCESO DE DESARROLLO DE SOFTWARE
Cualquier sistema de información va pasando por una serie de fases a lo largo de sus vida. Su ciclo de vida comprende una serie de etapas entra las que se encuentran las siguientes:

- Planificación

- Análisis

- Diseño

- Implementación

- Pruebas

- Instalación o despliegue

- Uso y mantemiento




Estas etapas son un reflejo del proceso que se igue a la hora de resolver cualquier tipo de problema. Ya en 1945, mucho antes de que existiese la Ingeniería del Software, el matemático George Polya describió este proceso en su libro How to solve it. Básicamente, resolver un problema requiere:
- Comprender el problema (análisis)
- Plantear una posible solución, considerando soluciones alternativas (diseño)
- Llevar a cabo la solución planteada (implementación)
- Comprobar que el resultado obtenido es correcto (pruebas) 

PLANIFICACIÓN- Antes de que se le de oficialmente el pistoletazo de salida a un proyecto de desarrollo de un sistema de información, es necesario realizar una serie de tareas previas que influirán decisivamente en la finalización con éxito del proyecto. Estas tareas se conocen popularmente como el fuzzy front-end del proyecto al no estar sujetas a plazos. Las tareas iniciales que se realizarán esta fase inicial del proyecto incluyen actividades tales como la determinación del ámbito del proyecto, la realización de un estudio de viabilidad, el análisis de los riesgos asociados al proyecto, una estimación del coste del proyecto, su planificación temporal y la asignación de recursos a las distintas etapas del proyecto.

ANÁLISIS- Lo primero que debemos hacer para construir un sistema de información es averiguar qué es exactamente lo que tiene que hacer el sistema. La etapa de análisis en el ciclo de vida del software corresponde al proceso mediante el cual se intenta descubrir qué es lo que realmente se necesita y se llega a una comprensión adecuada de los requerimientos del sistema (las características que el sistema debe poseer). 
¿Por qué resulta esencial la etapa de análisis? Simplemente, porque si no sabemos con precisión qué es lo que se necesita, ningún proceso de desarrollo nos permitirá obtenerlo. El problema es que, de primeras, puede que ni nuestro cliente sepa de primeras qué es exactamente lo que necesita. Por tanto, deberemos ayudarle a averiguarlo con ayuda de distintas técnicas

DISEÑO- Mientras que los modelos utilizados en la etapa de análisis representan los requisitos del usuario desde distintos puntos de vista (el qué), los modelos que se utilizan en la fase de diseño representan las características del sistema que nos permitirán implementarlo de forma efectiva (el cómo). 
Un software bien diseñado debe exhibir determinadas características. Su diseño debería ser modular en vez de monolítico. Sus módulos deberían ser cohesivos (encargarse de una tarea concreta y sólo de una) y estar débilmente acoplados entre sí (para facilitar el mantenimiento del sistema). Cada módulo debería ofrecer a los demás unos interfaces bien definidos (al estilo del diseño por contrato propuesto por Bertrand Meyer) y ocultar sus detalles de implementación (siguiendo el principio de ocultación de información de Parnas). Por último, debe ser posible relacionar las decisiones de diseño tomadas con los requerimientos del sistema que las ocasionaron (algo que se suele denominar "trazabilidad de los requerimientos"). 
En la fase de diseño se han de estudiar posibles alternativas de implementación para el sistema de información que hemos de construir y se ha de decidir la estructura general que tendrá el sistema (su diseño arquitectónico). El diseño de un sistema es complejo y el proceso de diseño ha de realizarse de forma iterativa. La solución inicial que propongamos probablemente no resulte la más adecuada para nuestro sistema de información, por lo que deberemos refinarla. Afortunadamente, tampoco es necesario que empecemos desde cero. Existen auténticos catálogos de patrones de diseño que nos pueden servir para aprender de los errores que otros han cometido sin que nosotros tengamos que repetirlos.

IMPLEMENTACIÓN- Para la fase de implementación hemos de seleccionar las herramientas adecuadas, un entorno de desarrollo que facilite nuestro trabajo y un lenguaje de programación apropiado para el tipo de sistema que vayamos a construir. La elección de estas herramientas dependerá en gran parte de las decisiones de diseño que hayamos tomado hasta el momento y del entorno en el que nuestro sistema deberá funcionar. 
A la hora de programar, deberemos procurar que nuestro código no resulte indescifrable. Para que nuestro código sea legible, hemos de evitar estructuras de control no estructuradas, elegir cuidadosamente los identificadores de nuestras variables, seleccionar algoritmos y estructuras de datos adecuadas para nuestro problema, mantener la lógica de nuestra aplicación lo más sencilla posible, comentar adecuadamente el texto de nuestros programas y, por último, facilitar la interpretación visual de nuestro código mediante el uso de sangrías y líneas en blanco que separen distintos bloques de código. 
Además de las tareas de programación asociadas a los distintos componentes de nuestro sistema, en la fase de implementación también hemos de encargarnos de la adquisición de todos los recursos necesarios para que el sistema funcione (por ejemplo, las licencias de uso del sistema gestor de bases de datos que vayamos a utilizar). Usualmente, también desarrollaremos algunos casos de prueba que nos permitan ir comprobando el funcionamiento de nuestro sistema conforme vamos construyéndolo.

PRUEBAS- Errar es humano y la etapa de pruebas tiene como objetivo detectar los errores que se hayan podido cometer en las etapas anteriores del proyecto (y, eventualmente, corregirlos). Lo suyo, además, es hacerlo antes de que el usuario final del sistema los tenga que sufrir. De hecho, una prueba es un éxito cuando se detecta un error (y no al revés, como nos gustaría pensar).

INSTALACIÓN O DESPLIEGUE- Una vez concluidas las etapas de desarrollo de un sistema de información (análisis, diseño, implementación y pruebas), llega el instante de que poner el sistema en funcionamiento, su instalación o despliegue.
De cara a su instalación, hemos de planificar el entorno en el que el sistema debe funcionar, tanto hardware como software: equipos necesarios y su configuración física, redes de interconexión entre los equipos y de acceso a sistemas externos, sistemas operativos (actualizados para evitar problemas de seguridad), bibliotecas y componentes suministrados por terceras partes, etcétera. 
Para asegurar el correcto funcionamiento del sistema, resulta esencial que tengamos en cuenta las dependencias que pueden existir entre los distintos componentes del sistema y sus versiones. Una aplicación puede que sólo funcione con una versión concreta de una biblioteca auxiliar. Un disco duro puede que sólo rinda al nivel deseado si instalamos un controlador concreto. Componentes que por separado funcionarían correctamente, combinados causan problemas, por lo que deberemos utilizar sólo combinaciones conocidas que no presenten problemas de compatibilidad. 
Si nuestro sistema reemplaza a un sistema anterior o se despliega paulatinamente en distintas fases, también hemos de planificar cuidadosamente la transición del sistema antiguo al nuevo de forma que sus usuarios no sufran una disrupción en el funcionamiento del sistema. En ocasiones, el sistema se instala físicamente en un entorno duplicado y la transición se hace de forma instantánea una vez que la nueva configuración funciona correctamente. Cuando el presupuesto no da para tanto, tal vez haya que buscar un momento de baja utilización del sistema para realizar la actualización (por la noches o en fin de semana, por ejemplo). 

USO Y MANTENIMIENTO- La etapa de mantenimiento consume típicamente del 40 al 80 por ciento de los recursos de una empresa de desarrollo de software. De hecho, con un 60% de media, es probablemente la etapa más importante del ciclo de vida del software. Dada la naturaleza del software, que ni se rompe ni se desgasta con el uso, su mantenimiento incluye tres facetas diferentes: 
- Eliminar los defectos que se detecten durante su vida útil (mantenimiento correctivo), lo primero que a uno se le viene a la cabeza cuando piensa en el mantenimiento de cualquier cosa. 
- Adaptarlo a nuevas necesidades (mantenimiento adaptativo), cuando el sistema ha de funcionar sobre una nueva versión del sistema operativo o en un entorno hardware diferente, por ejemplo. 
- Añadirle nueva funcionalidad (mantenimiento perfectivo), cuando se proponen características deseables que supondrían una mejora del sistema ya existente.

EL CICLO DE VIDA DE UNA BASE DE DATOS

Una base de datos no es más que un componente de un sistema de información. Por tanto, el ciclo de vida del sistema de información incluye el ciclo de vida de la base de datos que forma parte de él. En particular, desde el punto de vista de la base de datos, centraremos principalmente nuestra atención en las siguientes actividades: 

- Definición del sistema: Durante la etapa de análisis de requerimientos del sistema, nos fijaremos especialmente en todos los requerimientos asociados a los datos con los que ha de trabajar nuestro sistema. 

- Diseño de la base de datos: El análisis de los requerimientos del sistema nos permitirá organizar los datos con los que nuestro sistema habrá de trabajar. Este proceso de diseño, que está íntimamente ligado a la futura base de datos de nuestro sistema, lo descompondremos en tres fases: 

· Diseño conceptual (descripción del esquema de la base de datos utilizando un modelo de datos conceptual). 

· Diseño lógico (descripción de la base de datos con un modelo de datos implementable, como puede ser el caso del modelo relacional). 

· Diseño físico (descripción de la base de datos a nivel interno, de acuerdo con las características del sistema gestor de bases de datos que decidamos utilizar). 

- Implementación de la base de datos (la parte de la implementación del sistema correspondiente a la creación de la base de datos).

- Carga o conversión de los datos: Como parte de la instalación o despliegue del sistema, tendremos que introducir en la base de datos todos aquellos datos que resulten necesarios para que las aplicaciones de nuestro sistema de información puedan funcionar. Como parte de esta inicialización de la base de datos, puede que resulte necesario extraer datos de otro sistema y convertirlos a un formato adecuado para nuestro sistema (entre otras cosas, porque el esquema de nuestra base de datos probablemente diferirá del esquema de las bases de datos de las que se extraigan los datos necesarios para arrancar nuestro sistema). 

- Conversión de aplicaciones: Si determinadas aplicaciones (que ya existiesen anteriormente al diseño de nuestro sistema) han de seguir funcionando, dichas aplicaciones deberán adaptarse al esquema de nuestra base de datos. Por tanto, como parte del mantenimiento de dichas aplicaciones, tendremos que diseñar los mecanismos adecuados para que estas aplicaciones puedan seguir funcionando correctamente sobre una base de datos diferente a la base de datos sobre la que fueron diseñadas inicialmente. A veces, podremos solucionar este problema creando vistas adecuadas de nuestra base de datos para tales aplicaciones. Otras veces, tendremos que modificar la implementación de las aplicaciones antiguas e, incluso, rehacerlas casi por completo. 

- Verificación y validación: Como en todo sistema de información, deberemos verificar que la base de datos y las aplicaciones funcionan correctamente. Además, deberemos comprobar que el sistema construido se ajusta a las necesidades reales que promovieron su proyecto de desarrollo (esto es, validar el sistema y sus requerimientos). 

- Operación, supervisión y mantenimiento: Finalmente, una vez puesto en marcha el sistema, se llega a la etapa "final" del ciclo de vida de todo sistema de información (en la que, como ya vimos, se repetirá todo el ciclo cada vez que tengamos que realizar modificaciones sobre el sistema ya existente).

Referencias: http://flanagan.ugr.es/docencia/2005-2006/2/apuntes/ciclovida.pdf