jueves, 9 de diciembre de 2010




ORACLE

Junto con SQL Server, lidera el mercado NT. Puede funcionar en una gran cantidad de sistemas operativos y diversidad de Hardware. Tenemos a todas las familias de UNIX, MVS, VM, Siemens ICL, y Novell Netware.Además el funcionamiento está optimizado para ajustarse a las peculiaridades de cada sistema operativo.
La idea de Oracle de potenciar los grupos de trabajo distribuido se necesita un acceso a los datos de dicho grupo.En este sentido se posibilitan consulta y actualizaciones distribuidas permitiendo la compartición de datos a través de múltiples servidores, con una consistencia de los datos en un comit de dos fasesOtro cometido de este agente es detectar problemas que puedan ir surgiendo e informar de los mismos.
En lo referente a Internet las aplicaciones web pueden acceder a los datos almacenados en la bases de datos de Oracle así como presentar documentos HTML generados dinámicamente a partir de un modelo de una consulta.Oracle soporta paralelismo dentro de una consulta lo que proporciona un incremento notable en su ejecución. También soporta procesos de transacciones On-Line y DataWareHousing.
Atendiendo a las características de manejabilidad escalabilidad rendimiento y soporte entre plataformas tenemos una arquitectura de servidor con ejecución multihilo y rendimiento de multiprocesadores simétricos (SMP).
Las bases de datos pueden crecer hasta límites que en la practica pueden considerarse inalcanzables y gracias a un rediseño respecto alas versiones se han eliminado ciertos cuellos de botella.Las características más relevantes en lo referente a la escalabilidad residen en las tablas particionadas. Los Protocolos de Red Soportados Por Oracle son los siguientes: Net 8, TCP/IP, IPX/SPX, Pipes con nombre, DECNET, DCE, NDS y LU 6.2 (APPC).
Oracle es básicamente una herramienta cliente/servidor para la gestión de Bases de Datos. Es un producto vendido a nivel mundial, aunque la gran potencia que tiene y su elevado precio hace que sólo se vea en empresas muy grandes y multinacionales, por norma general.
En el desarrollo de páginas web pasa lo mismo: como es un sistema muy caro no está tan extendido como otras bases de datos, por ejemplo, Access, MySQL, SQL Server.
Para desarrollar en Oracle utilizamos PL/SQL un lenguaje de 5ª generación, bastante potente para tratar y gestionar la base de datos, también por norma general se suele utilizar SQL al crear un formulario.
SQL SERVER
Características
·   Escalabilidad: Se adapta a las necesidades de la empresa, soportando desde unos pocos usuarios a varios miles.
  • Potencia: Microsoft SQL Server es la mejor base de datos para Windows NT Server.
  • Gestión: Con un completo interfaz gráfico que reduce la complejidad innecesaria de las tareas de administración y gestión de la base de datos.
  • Orientada al desarrollo: Visual Basic, Visual C++, Visual J++, Visual InterDev, Microfocus Cobol y muchas otras herramientas son compatibles con Microsoft SQL Server.
       Es la mejor base de datos para Internet, Internet y Extranet.
·   Diseñada desde su inicio para trabajar en entornos Internet e Intranet, Microsoft SQL Server es capaz de integrar los nuevos desarrollos para estos entornos específicos con los desarrollos heredados de aplicaciones "tradicionales". Es más, cada aplicación que desarrollemos para ser empleada en entornos de red local puede ser utilizada de forma transparente -en parte o en su totalidad- desde entornos Internet, Intranet o Extranet.
  • Plataforma de desarrollo fácil y abierta: integrada con las mejores tecnologías de Internet como ActiveX, ADC y Microsoft Transacción Server y con las mejores herramientas de gestión y desarrollo para Internet como FrontPage97, Microsoft Office97 y Visual InterDev.
  • Diseñada para INTERNET: Es el único gestor de base de datos que contiene de forma integrada la posibilidad de generar contenido HTML de forma automática.
  • La Base de Soluciones Integradas: La Integración total con BackOffice permite resolver toda las necesidades de infraestructura de la empresa con un sólo paquete.
  • Potente y Escalable: Microsoft SQL Server es la única base de datos cuyo rendimiento sobre Internet está publicado, ofreciendo registros espectaculares.
  • Mínimo coste de Propiedad: La sencillez de la instalación, y la potencia de sus herramientas de gestión y el menor coste de toda la industria para entornos Internet, hacen de Microsoft SQL Server la mejor opción con el menor coste.

INFORMIX
La presencia de Informix se deja sentir en una cantidad de plataformas, concretamente Windows NT y UNIX.
Completo conjunto de herramientas gráficas  
 Existe la posibilidad de gestionar múltiples bases de datos remotas
Avanzada escalabilidad en las bases de datos
y un alto rendimiento en cualquier entorno.
Una de las características que se encuentra implementada para WinNT son:
·        La implementación de procesadores virtuales,
·        Manipulación directa de acceso a disco,
·        Uso de la multitarea prevenible propia del sistema,
·        Implementación como si fuera un servicio más,
·        Integración con el registro del sistema,
·        Utilización del servicio de eventos NT para alertas,
Internet: Informix incluye de forma integrada el servidor Netscape FaxTrap, para soporte y conectividad de aplicaciones Web e Intranet.
Como características esenciales tenemos:
·        Servicios escalables Web/Inet de alto rendimiento,
·        Entorno de desarrollo basado en Java/JavaScript seguridad basada en SSL con autentificación.
·        Encriptación en integridad de mensajes,
·        Control de accesos,
·        Soporte de certificados del lado del cliente
·        Asistentes para la publicación en Internet.
La seguridad e integridad de los datos es uno de los objetivos de Informix,
Puedes encontrar poca información  sobre Informix.

ALGUNAS DIFERENCIAS CON ORACLE
1.      Oracle siempre ha sido considerada una base de datos para uso más general que Informix.
2.      En cuanto a precios, Informix tiene tendencia a ser más caro que Oracle en configuraciones parecidas.
3.      Informix dispone de infinidad de Datablades.
  1. En Oracle, tienes que definir los usuarios dentro la base de datos (gestión interna de usuarios). En cambio, Informix utiliza los mismos usuarios de Linux (los que creas con adduser), simplificando la administración.
  2. Con estas diferencias ya podemos ver, que Informix es una base de datos más moderna y integrada con Linux que Oracle.
·MySQL y PostgreSQL::
MySQL
    • Su principal objetivo de diseño fue la VELOCIDAD. Se sacrificaron algunas características esenciales en sistemas más "serios" con este fin.
    • Otra característica importante es que consume MUY POCOS RECURSOS, tanto de CPU como de memoria.
    • Licencia GPL a partir de la versión 3.23.19.
O Ventajas:
      • Mayor rendimiento. Mayor velocidad tanto al conectar con el servidor como al servir selects y demás.
      • Mejores utilidades de administración (backup, recuperación de errores, etc).
      • Aunque se cuelgue, no suele perder información ni corromper los datos.
      • Mejor integración con PHP.
      • No hay límites en el tamaño de los registros.
      • Mejor control de acceso, en el sentido de qué usuarios tienen acceso a qué tablas y con qué permisos.
      • MySQL se comporta mejor que Postgres a la hora de modificar o añadir campos a una tabla "en caliente".
. Inconvenientes:
      • No soporta transacciones, "roll-backs" ni subselects.
      • No considera las claves ajenas. Ignora la integridad referencial, dejándola en manos del programador de la aplicación.

jueves, 18 de noviembre de 2010

Esquema de la ERS definida en el IEEE 830-1998

La IEEE Std. 830-1998 normaliza la creación de las Especificaciones de Requerimientos de Software (Software Requirements Specification).

Especificación
La Especificación de Requisitos describe el comportamiento esperado en el software una vez desarrollado. Gran parte del éxito de un proyecto de software radicará en la identificación de las necesidades del negocio (definidas por la alta dirección), así como la interacción con los usuarios funcionales para la recolección, clasificación, identificación, priorización y especificación de los requisitos del software.
Entre las técnicas utilizadas para la especificación de requisitos se encuentran:
Casos de Uso,

Historias de usuario,
Siendo los primeros más rigurosos y formales, los segundas más ágiles e informales.

Arquitectura
La integración de infraestructura, desarrollo de aplicaciones, bases de datos y herramientas gerenciales, requieren de capacidad y liderazgo para poder ser conceptualizados y proyectados a futuro, solucionando los problemas de hoy. El rol en el cual se delegan todas estas actividades es el del Arquitecto. El Arquitecto de Software es la persona que añade valor a los procesos de negocios gracias a su valioso aporte de soluciones tecnológicas. La Arquitectura de Sistemas en general, es una actividad de planeación, ya sea a nivel de infraestructura de red y hardware, o de Software. La Arquitectura de Software consiste en el diseño de componentes de una aplicación (entidades del negocio), generalmente utilizando patrones de arquitectura. El diseño arquitectónico debe permitir visualizar la interacción entre las entidades del negocio y además poder ser validado, por ejemplo por medio de diagramas de secuencia. Un diseño arquitectónico describe en general el cómo se construirá una aplicación de software. Para ello se documenta utilizando diagramas, por ejemplo:

Diagramas de clases
Diagramas de base de datos
Diagramas de despliegue plegados
Diagramas de secuencia multidireccional
 
Siendo los dos primeros los mínimos necesarios para describir la arquitectura de un proyecto que iniciará a ser codificado. Depende del alcance del proyecto, complejidad y necesidades, el arquitecto elige qué diagramas elaborar. Entre las herramientas para diseñar arquitecturas de software se encuentran:
Enterprise Architect
Microsoft Visio for Enterprise Architects

Programación

Reducir un diseño a código puede ser la parte más obvia del trabajo de ingeniería de software, pero no necesariamente es la que demanda mayor trabajo y ni la más complicada. La complejidad y la duración de esta etapa está íntimamente relacionada al o a los lenguajes de programación utilizados, así como al diseño previamente realizado.

Prueba

Consiste en comprobar que el software realice correctamente las tareas indicadas en la especificación del problema. Una técnica de prueba es probar por separado cada módulo del software, y luego probarlo de forma integral, para así llegar al objetivo. Se considera una buena práctica el que las pruebas sean efectuadas por alguien distinto al desarrollador que la programó, idealmente un área de pruebas; sin perjuicio de lo anterior el programador debe hacer sus propias pruebas. En general hay dos grandes formas de organizar un área de pruebas, la primera es que esté compuesta por personal inexperto y que desconozca el tema de pruebas, de esta forma se evalúa que la documentación entregada sea de calidad, que los procesos descritos son tan claros que cualquiera puede entenderlos y el software hace las cosas tal y como están descritas. El segundo enfoque es tener un área de pruebas conformada por programadores con experiencia, personas que saben sin mayores indicaciones en qué condiciones puede fallar una aplicación y que pueden poner atención en detalles que personal inexperto no consideraría. Documentación todo lo concerniente a la documentación del propio desarrollo del software y de la gestión del proyecto, pasando por modelaciones (UML), diagramas, pruebas, manuales de usuario, manuales técnicos, etc.; todo con el propósito de eventuales correcciones, usabilidad, mantenimiento futuro y ampliaciones al sistema.

Mantenimiento

Mantener y mejorar el software para enfrentar errores descubiertos y nuevos requisitos. Esto puede llevar más tiempo incluso que el desarrollo inicial del software. Alrededor de 2/3] de toda la ingeniería de software tiene que ver con dar mantenimiento. Una pequeña parte de este trabajo consiste en arreglar errores, o bugs. La mayor parte consiste en extender el sistema para hacer nuevas cosas. De manera similar, alrededor de 2/3 de toda la ingeniería civil, arquitectura y trabajo de construcción es dar mantenimiento
El estándar IEEE 830, en sus últimas versiones, permite la organización de esta subsección de múltiples formas y simplemente sugiere alguna manera para hacerlo, dejando la oportunidad de utilizar cualquier otra justificando suficientemente la utilización de ésta.
Alguna de las formas sugeridas por el estándar es:
 
·  Por tipo de usuario: 
Distintos usuarios poseen distintos requisitos. Para cada clase de usuario que exista en la organización, se especifican los requisitos funcionales que le afecten o tengan mayor relación con sus tareas.

 ·  Por objetos: 
Los objetos son entidades del mundo real que son reflejadas en el sistema. Por tanto, para cada objeto se detallan sus atributos y sus funciones. Los objetos se pueden agrupar en clases. A pesar de realizar el análisis con objetos no obliga a que el diseño del sistema siga el paradigma Orientado a Objetos, aunque lo facilita en gran medida.
 ·  Por objetivos: un objetivo es un servicio que se desea que ofrezca el sistema y que requiere una determinada entrada para obtener su resultado. Para cada objetivo o su objetivo requerido al sistema, se detallarán las funciones que permitan llevarlo a cabo.

 ·  Por jerarquía funcional:
La funcionalidad del sistema se especifica como una jerarquía de funciones que comparten entradas, salidas o datos del propio sistema. Para cada función y subfunción del sistema se detallará la entrada, el proceso en el que interviene y la salida. Normalmente este tipo de análisis implica que el diseño siga el paradigma de diseño estructurado.
Por lo general éste sistema se utiliza cuando ninguno de los anteriores se puede aplicar.

.Características de una buena ERS
Las características deseables para una buena especificación de requisitos software que se indican en el IEEE son las siguientes:
 Correcta, No ambigua, Completa Verificable, Consistente Clasificada, Modificable Explorable, Utilizable durante las tareas de mantenimiento y uso.

jueves, 28 de octubre de 2010

Modelo de Analisis


ELEMENTOS BASADOS EN ESCENARIOS

Diagrama de casos de uso:
Un caso de uso especifica la manera en la que los actores interactúan con el sistema en un conjunto específico de circunstancias. El desarrollo de una serie de casos de uso se comienza haciendo una lista de las funciones o actividades que realiza un actor específico.

Diagrama de actividades:
Complementa el caso de uso al proporcionar una representación grafica del flujo de interacción dentro de un escenario específico.

Diagrama de carril:
Es una variación útil del diagrama de actividad, ya que permite al modelador la representación del flujo de actividades descritas por el caso de uso y al mismo tiempo indicar que actor o clases de análisis tiene la responsabilidad de la acción descrita mediante un rectángulo de actividad.

ELEMENTOS ORIENTADOS AL FLUJO

Tiene una visión del sistema del tipo entrada-proceso-salida. Los objetos de datos fluyen hacia el interior del software, se transforman mediante elementos de procesamiento y los objetos de datos resultantes fluyen al exterior del software.

ELEMENTOS BASADOS EN CLASES

Una clase orientada a objetos encapsula atributos de los datos pero también incorpora las operaciones que manipulan los datos implicados por dichos atributos. Las clases se manifiestan en la siguiente forma: entidades externas, sucesos o eventos, cosas, papeles o roles, unidades organizacionales, sitios y estructuras.


Modelo CRC:
El modelado de Clase-Responsabilidad-Colaborador (CRC) proporciona un medio simple para identificar y organizar las clases relevantes para los requisitos del sistema o producto. Un modelo CRC es una colección de tarjetas índices estándar que representan clases. El objeto es desarrollar una representación organizada de las clases.

ELEMENTOS DE COMPORTAMIENTO

Diagrama de estado: representa el comportamiento de las clases cuando el sistema realiza sus funciones.
Diagrama de Secuencia: representa el comportamiento al describir la forma en que las clases se mueven de estado a estado.

jueves, 14 de octubre de 2010

Levantamiento de la información

Los esfuerzos de recopilación deben enfocarse en el registró de hechos que permitan conocer y analizar información específica y verdaderamente útil para el manual, pues de lo contrario se puede incurrir en interpretaciones erróneas, lo cual genera retraso y desperdicio de recursos. Asimismo, debe aplicarse un criterio de discriminación, basado en el objetivo del estudio, y proceder continuamente a su revisión y evaluación para mantener una línea de acción uniforme.
Esta actividad exige mantener una relación constante con las fuentes internas emisoras de la información, así como con las áreas u organizaciones con otra ubicación física.
Para recabar la información en forma ágil y ordenada se puede utilizar alguna o una combinación de las siguientes técnicas de recopilación:
Investigación documental:
Esta técnica permite la selección y análisis de aquellos escritos que contienen datos de interés relacionados con el manual. Para ello se estudian documentos tales como bases jurídico-administrativas, diarios oficiales, actas de reuniones, circulares, oficios y todos aquellos que contengan información relevante para el estudio.

Consulta a sistemas de información
Acceso a sistemas computacionales que contienen información y recursos de apoyo para estructurar el manual. Este mecanismo permite recabar información interna y/o de sistemas externos a la organización enlazados a través de redes.

Encuesta:
 
Este método implica la realización de entrevistas personales con base en una guía de preguntas elaborada con anticipación. También se puede utilizar un cuestionario, a fin de que las entrevistas tengan un contenido homogéneo.
Esta técnica se considera de gran utilidad para reunir información preliminar al análisis o para efecto de plantear cambios o modificaciones a la estructura actual de la información. La encuesta puede realizarse en forma individual o reuniendo a directivos y empleados de una misma área o que intervienen en la misma clase de tareas.
También se puede recabar información de clientes y/o usuarios, prestadores de servicios y proveedores que interactúan con la organización.

Los cuestionarios que se utilizan en la encuesta, y que sirven para obtener la información deseada, están constituidos por series de preguntas escritas, predefinidas, secuenciadas y separadas por capítulos o temática específicos.
Este medio permite ahorrar recursos y tiempo; sin embargo, la calidad de la información que se obtiene depende de su
estructuración y forma de presentación.
En términos generales, todo cuestionario debe expresar el motivo de su preparación, procurar que las preguntas sean claras y concisas, con un orden lógico, redacción comprensible, facilidad de respuesta y evitar demasiadas preguntas. Asimismo, se puede incluir un instructivo de llenado para indicar cómo contestarlo.

La entrevista consiste básicamente en celebrar reuniones individuales o grupales en las cuales se cuestiona orientadamente a los participantes para obtener información. Este medio es posiblemente el más usado y el que puede brindar información más completa y precisa, puesto que el entrevistador, al tener contacto con el entrevistado, además de obtener respuestas, puede percibir actitudes y recibir comentarios.
Para que una entrevista se desarrolle positivamente, es conveniente observar estos aspectos:
-Tener claro el objetivo: para cubrir este aspecto, se recomienda preparar previamente un cuestionario o guía de entrevista que contenga los principales puntos que se desea captar. Esta guía puede operar a manera de marco de trabajo para que, al término de la misma, se pueda verificar si se ha obtenido la información requerida.
-Establecer anticipadamente la distribución del trabajo: esta etapa consiste en asignar responsabilidades y determinar las áreas a investigar.
-Concretar previamente la cita: es importante que el entrevistado esté preparado para proporcionar la información con el tiempo y tranquilidad necesarios para disminuir el margen de error y evitar interrupciones.
-Clasificar la información que se obtenga: esta fase implica diferenciar la situación real de la relativa a sugerencias para mejorarla, procurando no confundir ambos aspectos.
Para apoyar y/o agilizar la captura de información se puede emplear el muestreo, que es una técnica estadística auxiliar que sirve para inferir información acerca del universo que se investiga, a partir del estudio parcial del mismo.
Cuando el universo de estudio es de gran magnitud, pero la información sea homogénea en virtud de normas de operación y requisitos uniformes, se establece la posibilidad de conocer sus características sin necesidad de encuestar o investigar a todas las unidades, ni de entrevistar a cada uno de los empleados.
Existen tablas de muestreo que, de acuerdo con las características y volumen de la información, establecen cuál es la mínima cantidad de información representativa del todo -muestra- que es necesario recabar para que los resultados que se obtengan a partir de ésta tengan validez.

Observación directa
Este recurso puede ser empleado por los técnicos o analistas en el área física donde se desarrolla el trabajo de la organización. A partir del análisis de la información recabada se deben sostener pláticas con algunas de las personas que prestan sus servicios en estas áreas para complementarla o afinarla.
Otra forma consiste en que el jefe del área de trabajo realice la observación directa, comente y discuta algunos de los puntos con sus subordinados y presente los resultados de su análisis al investigador. La ventaja de este procedimiento radica en que debido a la familiaridad entre jefe y subordinados, la información puede ser más completa, pero habrá ocasiones en que los resultados no serán los deseados, debido a inhibiciones o problemas internos, o que pueda plantearse una situación que no corresponde a la realidad operativo.