martes, 31 de diciembre de 2013

VISTAS

Creación de vistas utilizando T-SQL

¿Qué es una vista?

En sistemas de gestión de bases de datos relacionales (RDMS) se crea una tabla lógica a través de las especificaciones de una o más operaciones relacionales en una o más tablas.

Una vista es una tabla virtual que muestra los datos de una o varias tablas seleccionadas.

Un usuario de una base de datos podría ver sólo tablas virtuales. Sólo el administrador de la base de datos puede ver las tablas reales

Cuáles son las ventajas de las vistas

Una vista se puede concebir como una consulta almacenada.

Los datos accesibles a través de la vista no se almacenan en la base de datos como un objeto definido.

Lo que se almacena en la base de datos es una sentencia SELECT. El resultado del conjunto de sentencias SELECT forman la tabla virtual.

La tabla virtual se accede al referenciar el nombre de la vista en sentencias T-SQL como se indica a continuación:

SELECT * from Where

¿Cómo se pueden utilizar las vistas?

Una vista se puede utilizar para:

Hacer que el usuario utilice filas específicas en la tabla. Por ejemplo: puede permitirle a un empleado que sólo vea las filas que registren su trabajo en la tabla de seguimiento laboral.

Hacer que el usuario utilice columnas específicas. Por ejemplo: puede permitirle a los empleados que no estén en nómina que vean las columnas de nombre, oficina, teléfono de oficina y departamentos, pero no las columnas con información salarial o personal.

Restringir información en lugar de proporcionar detalles. Por ejemplo, puede mostrar a suma de una columna o el valor máximo o mínimo de una columna

¿Cómo se crea una vista?

CREATE VIEW AS

SELECT

FROM

Ejemplo:

CREATE VIEW graduados AS

SELECT id_alumno, nombre_alumno

FROM alumnos_inscritos

El código anterior crea una tabla virtual llamada graduados que contiene los datos de identificación del alumno y su nombre. Los datos se obtienen de la tabla alumnos_inscritos.

Creación de una vista con condiciones

Para crear una vista, utilice el siguiente código:

CREATE VIEW AS

SELECT

FROM

WHERE condición

Por ejemplo: este código crea una tabla virtual que contiene sólo mujeres.

CREATE VIEW graduados AS

SELECT id_alumno, nombre_alumno

FROM alumnos_inscritos

WHERE Sexo = “F”

viernes, 27 de diciembre de 2013

UML

Introducción.-

UML (Unified Modeling Language) es un lenguaje que permite modelar, construir y documentar los elementos que forman un sistema software orientado a objetos. Se ha convertido en el estándar de facto de la industria, debido a que ha sido concebido por los autores de los tres métodos más usados de orientación a objetos: Grady Booch, Ivar Jacobson y Jim Rumbaugh.

Estos autores fueron contratados por la empresa Rational Software Co. para crear una notación unificada en la que basar la construcción de sus herramientas CASE. En el proceso de creación de UML han participado, no obstante, otras empresas de gran peso en la industria como Microsoft, Hewlett-Packard, Oracle o IBM, así como grupos de analistas y desarrolladores.

CLASIFICACIÓN DE LOS MODELOS UML

Modelo estático (estructural)

Diagrama de clases Diagrama de objetos Diagrama de componentes Diagrama de despliegue

Modelo dinámico (comportamiento)

Diagrama de actividades Diagrama de casos de uso Diagrama de estados Diagrama de secuencia Diagrama de colaboración

MODELO ESTÁTICO

DIAGRAMAS DE CLASES

un diagrama de clases es un tipo de diagrama estático que describe la estructura de un sistema mostrando sus clases, atributos y las relaciones entre ellos. Los diagramas de clases son utilizados durante el proceso de análisis y diseño de los sistemas informáticos.

Piense en las cosas que lo rodean, es probable que muchas de esas cosas tengan atributos(propiedades) y que realicen determinadas acciones. Podriamos imaginar cada una de esas acciones como conjunto de tareas.

Tambien se encontrara con que las cosas naturalmente se albergaran en categorias(automoviles, mobiliario, lavadoras). A tales categorias las llamaremos clases. Una clase es una categoria o grupo de cosas que tienen atributos y acciones similares, he aqui un ejemplo: cualquier cosa dentro de la clase lavadoras tiene atributos como son la marca, el modelo, el numero de serie y la capacidad. Entre las acciones de las cosas de esta clase se encuentran: agregar ropa, agregar detergente, activarse y sacar ropa.

DIAGRAMAS DE OBJETOS

Los diagramas de objetos utilizan un subconjunto de los elementos de un diagrama de clase. Los diagramas de objetos no muestran la multiplicidad ni los roles, aunque su notación es similar a los diagramas de clase. Una diferencia con los diagramas de clase es que el compartimiento de arriba va en la forma, Nombre de objeto: Nombre de clase. Por ejemplo, Miguel: Persona. Alfredo Arcos: Persona

un objeto es una instancia de una clase(una entidad que tiene valores especificos de los atributos y acciones. Su lavadora, por ejemplo podria tener la marca goma, el modelo gomilla el nuemero de serie GL25647 Y una capacidad de 7 kg

Un Diagrama es una representación gráfica de una colección de elementos de modelado, a menudo dibujada como un grafo conexo de arcos (relaciones) y vértices (otros elementos del modelo). Un diagrama no es un elemento semántico, un diagrama muestra representaciones de elementos semánticos del modelo, pero su significado no se ve afectado por la forma en que son representados. Un diagrama está contenido dentro de un paquete.

La mayoría de los diagramas de UML y algunos símbolos complejos son grafos que contienen formas conectadas por rutas. La infomación está sobre todo en la topología, no en el tamaño o la colocación de los símbolos (hay algunas excepciones como el diagrma de secuencia con un eje métrico de tiempo). Hay tres clases importantes de relaciones visuales: conexión (generalmente de líneas a formas de dos dimensiones), contención (de símbolos por formas cerradas de dos dimensiones), y adhesión visual (un símbolo que está "cerca" de otro en un diagrama). Estas relaciones geométricas se reasignan a conexiones entre nodos en un gráfico en la forma analizada de la notación.

La notación de UML está pensada para ser dibujada en superficies bidimensionales. Algunas formas bidimensionales son proyecciones de formas tridimensionales tales como cubos, pero todavía se representan como íconos en una superficie bidimensional.

Hay cuatro clases de construcciones gráficas que se usan en la notación de UML: íconos, símbolos bidimensionales, rutas y cadenas.

Un ícono es una figura gráfica con un tamaño y forma fijos. No se amplía para contener a su contenido. Los iconos pueden aparecer dentro de símbolos de área, como terminadores en las rutas o como símbolos independientes que puedan o no conectar con las rutas.

Los símbolos de dos dimensiones tienen altura y anchura variables, y pueden ampliarse para permitir otras cosas tales como listas de cadenas o de otros símbolos. Muchos de ellos están divididos en compartimientos similares o de tipos diferentes. Las rutas se conectan con los símbolos, el arrastrar o suprimir uno de ellos afecta a su contenido y las rutas conectadas.

DIAGRAMAS DE COMPONENTES

Los componentes pertenecen al mundo físico, es decir, representan un bloque de construcción al modelar aspectos físicos de un sistema.

Los diagramas de componentes describen los elementos físicos del sistema y sus relaciones. Muestran las opciones de realización incluyendo código fuente, binario y ejecutable. Los componentes representan todos los tipos de elementos software que entran en la fabricación de aplicaciones informáticas. Pueden ser simples archivos, paquetes de Ada, bibliotecas cargadas dinámicamente, etc. Las relaciones de dependencia se utilizan en los diagramas de componentes para indicar que un componente utiliza los servicios ofrecidos por otro componente.

Un diagrama de componentes representa las dependencias entre componentes software, incluyendo componentes de código fuente, componentes del código binario, y componentes ejecutables. Un módulo de software se puede representar como componente. Algunos componentes existen en tiempo de compilación, algunos en tiempo de enlace y algunos en tiempo de ejecución, otros en varias de éstas.

Un componente de sólo compilación es aquel que es significativo únicamente en tiempo de compilación. Un componente ejecutable es un programa ejecutable. Un diagrama de componentes tiene sólo una versión con descriptores, no tiene versión con instancias. Para mostrar las instancias de los componentes se debe usar un diagrama de despliegue.

Un diagrama de componentes muestra clasificadores de componentes, las clases definidas en ellos, y las relaciones entre ellas. Los clasificadores de componentes también se pueden anidar dentro de otros clasificadores de componentes para mostrar relaciones de definición.

Un diagrama que contiene clasificadores de componentes y de nodo se puede utilizar para mostrar las dependencias del compilador, que se representa como flechas con líneas discontinuas (dependencias) de un componente cliente a un componente proveedor del que depende. Los tipos de dependencias son específicos del lenguaje y se pueden representar como estereotipos de las dependencias.

El diagrama también puede usarse para mostrar interfaces y las dependencias de llamada entre componentes, usando flechas con líneas discontinuas desde los componentes a las interfaces de otros componentes.

El diagrama de componente hace parte de la vista física de un sistema, la cual modela la estructura de implementación de la aplicación por sí misma, su organización en componentes y su despliegue en nodos de ejecución. Esta vista proporciona la oportunidad de establecer correspondecias entre las clases y los componentes de implementación y nodos. La vista de implementación se representa con los diagramas de componentes.

DIAGRAMA DE DESPLIEGUE

Un diagrama de despliegue muestra las relaciones físicas entre los componentes hardware y software en el sistema final, es decir, la configuración de los elementos de procesamiento en tiempo de ejecución y los componentes software (procesos y objetos que se ejecutan en ellos).

Los Diagramas de Despliegue muestran la disposición física de los distintos nodos que componen un sistema y el reparto de los componentes sobre dichos nodos. La vista de despliegue representa la disposición de las instancias de componentes de ejecución en instacias de nodos conectados por enlaces de comunicación. Un nodo es un recurso de ejecución tal como un computador, un dispositivo o memoria. Los estereotipos permiten precisar la naturaleza del equipo:


• Dispositivos

• Procesadores

• Memoria

Los nodos se interconectan mediante soportes bidireccionales que pueden a su vez estereotiparse. Esta vista permite determinar las consecuencias de la distribución y la asignación de recursos. Las instancias de los nodos pueden contener instancias de ejecución, como instancias de componentes y objetos. El modelo puede mostrar dependencias entre las instancias y sus interfaces, y también modelar la migración de entidades entre nodos u otros contenedores.

Esta vista tiene una forma de descriptor y otra de instancia. La forma de instancia muestra la localización de las instancias de los componentes específicos en instancias específicas del nodo como parte de una configuración del sistema. La forma de descriptor muestra qué tipo de componentes pueden subsistir en qué tipos de nodos y qué tipo de nodos se pueden conectar, de forma similar a una diagrama de clases, esta forma es menos común que la primera.

MODELO DINÁMICO

DIAGRAMA DE CASO DE USO

Los diagramas de casos de uso organizan los comportamientos del sistema. Un diagrama de caso de uso representa un conjunto de casos de uso y actores (un tipo especial de clases) y sus relaciones.

Un caso de uso es la descripcion de las acciones de un sistema desde el punnto de vista del usuario. para los desarrolladores del sistema, esta es una herramienta valiosa, ya que es una tecnica de aciertos y errores para obtener los requerimientos del sistema desde el punto de vista del usuario. Esto es importante si la finalidad es crear un sistema que pueda ser utilizado por la gente en general (no solo por ezpertos en computacion)

Casos de Uso es una técnica para capturar información de cómo un sistema o negocio trabaja, o de cómo se desea que trabaje. No pertenece estrictamente al enfoque orientado a objeto, es una técnica para captura de requisitos.


•Los Casos de Uso (Ivar Jacobson) describen bajo la forma de acciones y reacciones el comportamiento de un sistema desde el p.d.v. del usuario.

• Permiten definir los límites del sistema y las relaciones entre el sistema y el entorno.

• Los Casos de Uso son descripciones de la funcionalidad del sistema independientes de la implementación.

• Comparación con respecto a los Diagramas de Flujo de Datos del Enfoque Estructurado.

• Los Casos de Uso cubren la carencia existente en métodos previos (OMT, Booch) en cuanto a la determinación de requisitos.

• Los Casos de Uso particionan el conjunto de necesidades atendiendo a la categoría de usuarios que participan en el mismo.

• Están basados en el lenguaje natural, es decir, es accesible por los usuarios.

Actores


• Principales: personas que usan el sistema.

• Secundarios: personas que mantienen o administran el sistema.

• Material externo: dispositivos materiales imprescindibles que forman parte del ámbito de la aplicación y deben ser utilizados.

• Otros sistemas: sistemas con los que el sistema interactúa.

La misma persona física puede interpretar varios papeles como actores distintos, el nombre del actor describe el papel desempeñado.

Los Casos de Uso se determinan observando y precisando, actor por actor, las secuencias de interacción, los escenarios, desde el punto de vista del usuario. Los casos de uso intervienen durante todo el ciclo de vida. El proceso de desarrollo estará dirigido por los casos de uso. Un escenario es una instancia de un caso de uso.

DIAGRAMAS DE ESTADOS

Un Diagrama de Estados muestra la secuencia de estados por los que pasa un caso de uso o un objeto a lo largo de su vida, indicando qué eventos hacen que se pase de un estado a otro y cuáles son las respuestas y acciones que genera.

en cualquier momento un objeto se encuentra en un estado en particular. Una persona puede ser nacida, infante, adolescente o adulto. Un elevador se movera hacia arriba, estara en estado de reposo o se movera hacia abajo. Una lavadora podra estar en la fase de remojo, lavado, enjuague, centrifugado o apagada

Un Diagrama es una representación gráfica de una colección de elementos de modelado, a menudo dibujada como un grafo conexo de arcos (relaciones) y vértices (otros elementos del modelo). Un diagrama no es un elemento semántico, un diagrama muestra representaciones de elementos semánticos del modelo, pero su significado no se ve afectado por la forma en que son representados. Un diagrama está contenido dentro de un paquete.

La mayoría de los diagramas de UML y algunos símbolos complejos son grafos que contienen formas conectadas por rutas. La infomación está sobre todo en la topología, no en el tamaño o la colocación de los símbolos (hay algunas excepciones como el diagrma de secuencia con un eje métrico de tiempo). Hay tres clases importantes de relaciones visuales: conexión (generalmente de líneas a formas de dos dimensiones), contención (de símbolos por formas cerradas de dos dimensiones), y adhesión visual (un símbolo que está "cerca" de otro en un diagrama). Estas relaciones geométricas se reasignan a conexiones entre nodos en un gráfico en la forma analizada de la notación.

La notación de UML está pensada para ser dibujada en superficies bidimensionales. Algunas formas bidimensionales son proyecciones de formas tridimensionales tales como cubos, pero todavía se representan como íconos en una superficie bidimensional.

Hay cuatro clases de construcciones gráficas que se usan en la notación de UML: íconos, símbolos bidimensionales, rutas y cadenas. Un ícono es una figura gráfica con un tamaño y forma fijos. No se amplía para contener a su contenido. Los iconos pueden aparecer dentro de símbolos de área, como terminadores en las rutas o como símbolos independientes que puedan o no conectar con las rutas.

Los símbolos de dos dimensiones tienen altura y anchura variables, y pueden ampliarse para permitir otras cosas tales como listas de cadenas o de otros símbolos. Muchos de ellos están divididos en compartimientos similares o de tipos diferentes. Las rutas se conectan con los símbolos, el arrastrar o suprimir uno de ellos afecta a su contenido y las rutas conectadas.

DIAGRAMAS DE ACTIVIDADES

Un diagrama de actividades representa los flujos de trabajo paso a paso de negocio y operacionales de los componentes en un sistema.

Las actividades que ocurren dentro de un caso de uso o dentro del comportamiento de un objeto se dan normalmente en secuencia

El Diagrama de Actividad es un diagrama de flujo del proceso multi-propósito que se usa para modelar el comportamiento del sistema. Los diagramas de actividad se pueden usar para modelar un Caso de Uso, o una clase, o un método complicado.

Un diagrama de actividad es parecido a un diagrama de flujo; la diferencia clave es que los diagramas de actividad pueden mostrar procesado paralelo (parallel processing). Esto es importante cuando se usan diagramas de actividad para modelar procesos 'bussiness' algunos de los cuales pueden actuar en paralelo, y para modelar varios hilos en los programas concurrentes.

DIAGRAMA DE SECUENCIA

El diagrama de secuencia es uno de los diagramas más efectivos para modelar interacción entre objetos en un sistema. Un diagrama de secuencia muestra la interacción de un conjunto de objetos en una aplicación a través del tiempo y se modela para cada método de la clase.

Los diagramas de clases y los de objeto representan informacion estatica. No obstante en un sistema funcional los objetos interactuan entre si, y tales interacciones suceden con el tiempo, el diagrama de secuencia muestra la mecanica de la interaccion con base en tiempos

Los 4 pasos a seguir:

A continuación se dará una muy breve descripción de los 4 pasos que se deben de seguir para dibujar correctamente diagramas de secuencia de ICONIX:

-Paso 1: Copia el texto de la especificación de tu caso de uso y pégalo en la parte superior de tu diagrama de secuencia. Con esto siempre se tendrá en cuenta que es lo que debe de hacer el diagrama de secuencia.

-Paso 2: Cada uno de los objetos entidad de tu diagrama de robustez es una instancia de la clase que debe de ser agregada a tu diagrama de secuencias ya que representa tu modelo estático. Hay que ser muy meticuloso con este paso, ya que representa el ultimo de tu modelo estático antes de codificar.

-Paso 3: Agrega las interfaces del diagrama de robustez. Con esto ya tenemos el diagrama de secuencias construido. Ahora, el cuarto paso es para decidir cuales métodos irían en cuales clases, lo cual es la esencia del modelo de iteraciones.

-Paso 4: Pon los métodos en las clases, lo cual significa convertir los controles uno por uno de tu diagrama de robustez en métodos y mensajes. Verifica que para cada control dibujado le pertenecen los mensajes correctos dentro del diagrama de secuencias.

DIAGRAMA DE COLABORACIÓN

Los diagramas de colaboración muestran explícitamente las relaciones de los roles. Por otra parte, un diagrama de colaboración no muestra el tiempo como una dimensión aparte, por lo que resulta necesario etiquetar con números de secuencia tanto la secuencia de mensajes como los hilos concurrentes.

Los elementos de un sistema trabajan en conjunto para cumplir los objetivos del sistema, y un lenguaje de modelado debera contar con una forma de representar esto, el diagrama de colaboracion esta diseñado con en este fin

Es una descripción de una colección de objetos que interactúan para implementar un cierto comportamiento dentro de un contexto. Describe una sociedad de objetos cooperantes unidos para realizar un cierto propósito. Una colaboración contiene ranuras que son rellenadas por los objetos y enlaces en tiempo de ejecución. Una ranura de colaboración se llama Rol porque describe el propósito de un objeto o un enlace dentro de la colaboración.

Un rol clasificador representa una descripción de los objetos que pueden participar en una ejecución de la colaboración, un rol de asociación representa una descripción de los enlaces que pueden participar en una ejecución de colaboración. Un rol de clasificador es una asociación que está limitada por tomar parte en la colaboración. Las relaciones entre roles de clasificador y asociación dentro de una colaboración sólo tienen sentido en ese contexto. En general fuera de ese contexto no se aplican las mismas relaciones.

Una Colaboración tiene un aspecto estructural y un aspecto de comportamiento. El aspecto estrucutral es similar a una vista estática: contiene un conjunto de roles y relaciones que definen el contexto para su comprtamiento. El comportamiento es el conjunto de mensajes intercambiados por los objetos ligados a los roles. Tal conjunto de mensajes en una colaboración se llama Interacción. Una colaboración puede incluir una o más interacciones.

Disciplinas del PUD

Estas son las disciplinas principales:

Modelado de negocio: Cuando se requiere comprender el negocio a gran escala o reingeniería de procesos del negocio, esto incluye el modelado dinámico con Diag. De actividades, reglas de negocio, usuarios, etc.

Captura de Requisitos: Listado de requisitos para una aplicación, como escritura de casos de uso en alto nivel e identificación de requisitos no funcionales.

Análisis: Especificación expandida de casos de usos en formato esencial. Modelo de dominio. Diagrama de secuencias y colaboración. Diag. de estados.

Diseño: Todos los aspectos de diseño, incluyendo la arquitectura global, objetos, base de datos, red, interfaz de usuarios, etc.

Implementación: Significa programar y construir el sistema utilizando una herramienta de desarrollo. Implementar la base de datos en un SGBD.

Prueba: Realizar planes de pruebas y documentar los casos de pruebas aplicando técnicas como de caja blanca, caja negra, u otras.

Fase de Inicio

El objetivo de la fase de inicio es desarrollar el análisis de negocio hasta el punto necesario para justificar la puesta en marcha del proyecto.

Lo que se intenta es hacer una idea de la arquitectura para asegurarse de que existe una arquitectura que puede soportar el ámbito del sistema.

Productos de la Fase de Inicio

Una lista de características

Una primera versión del modelo de negocio (o del dominio) que describe el contexto del sistema

Un esbozo de los modelos que representan una primera versión del modelo de casos de uso, el modelo de análisis y el modelo de diseño.

Un primer esquema de la descripción de una arquitectura candidata, que perfila las vistas de los modelos de casos de uso, análisis, diseño e implementación.

Posiblemente, un prototipo exploratorio que muestra el uso del nuevo sistema

Una lista inicial de riesgos y una clasificación de casos de uso

Un plan tentativo para el proyecto en su totalidad, incluyendo el plan general de las fases

Un primer borrador del análisis de negocio, que incluye:

Contexto del negocio y Criterios de éxito.

Fase de Elaboración

Al comienzo de la fase de elaboración, se recibe de la fase de inicio un plan para la fase de elaboración, un modelo de casos de uso parcialmente completo y una descripción de la arquitectura candidata.

También se dispone de un prototipo que muestre el funcionamiento del sistema.

Sin embargo, no se puede pretender construir sobre ese prototipo

Ejecución de los flujos de trabajo fundamentales:

Recopilación de requisitos: En este punto encontraremos, estableceremos la prioridad y estructuraremos los casos de uso.

Análisis:

Durante la fase de inicio, comenzamos a hacer un borrador del modelo de análisis. Ahora, construiremos sobre este borrador, pero podemos descubrir que es necesario desechar partes sustanciales de él.

Diseño:

El arquitecto es responsable del diseño de los aspectos arquitectónicamente significativos del sistema, tal como están descritos en la vista de la arquitectura del modelo de diseño.

La vista de la arquitectura del modelo de diseño incluye subsistemas, clases, interfaces y realizaciones de casos de uso arquitectónicamente significativos, incluidos éstos en la vista del modelo de casos de uso

Implementación:

Se implementa y prueba los componentes arquitectónicamente significativos a partir de los elementos de diseño arquitectónicamente significativos.

El resultado es la línea base de la arquitectura, implementada normalmente a partir de menos del 10 por ciento de los casos de uso.

Prueba:

Aquí el objetivo es asegurarse de que los subsistemas de todos los niveles y de todas las capas funcionen.

Sólo podemos probar los componentes ejecutables.

Preferiblemente un modelo completo de negocio que describe el contexto del sistema

Una nueva versión de todos los modelos: casos de uso, análisis, diseño, despliegue e implementación.

Una línea base de la arquitectura

Una descripción de la arquitectura, incluyendo vistas de los modelos de casos de uso, análisis, diseño, despliegue e implementación Una lista de riesgos actualizada

El plan del proyecto para las fases de construcción y transición

Un manual de usuario preliminar

El análisis de negocio completo, incluida la apuesta económica

Fase de Construcción

El propósito primordial de esta fase es dejar listo un producto software en su versión operativa inicial, a veces llamada “versión beta”.

El producto debería tener la calidad adecuada para su aplicación y asegurarse de cumplir los requisitos.

La construcción debería tener lugar dentro de los límites del plan de negocio.

Recordemos que para cumplir los objetivos de la fase de elaboración, se han recopilado casi todos los requisitos, pero aún no han sido detallados completamente.

Ejecución de los flujos de trabajo fundamentales:

Captura de requisitos:

en la fase de construcción se recorrerá todo el camino hasta lograr el sistema inicial con capacidad operativa, así que hay que realizar la recopilación completa de requisitos

Análisis:

Aquí consideraremos de nuevo las actividades de análisis de la arquitectura, analizar un caso de uso, analizar una clase y analizar un paquete, iniciadas en la fase de elaboración.

Diseño:

Normalmente, en esta fase se diseña e implementa el 90 por ciento restante de los casos de uso (aquellos que no fueron utilizados para desarrollar la línea base de la arquitectura).

Implementación:

Implementa y lleva a cabo las pruebas de unidad de todos los componentes, trabajando principalmente a partir del modelo de diseño. El resultado es la versión operativa inicial, que representa el 100 por 100 de los casos de uso.

El proyecto lleva a cabo la mayor parte del trabajo de la fase de construcción, construyendo los componentes

Prueba:

Los esfuerzos de los ingenieros de pruebas para descubrir lo que puede ser comprobado de forma efectiva y para desarrollar casos de prueba y procedimientos de prueba para hacerlo, tendrán su fruto en la fase de construcción.

Productos de la Fase de Construcción

El plan de proyecto para la fase de transición

El sistema software ejecutable. Ésta es la construcción final de la fase

Todos los artefactos, incluyendo los modelos del sistema

La descripción de la arquitectura, mínimamente modificada y actualizada

Una versión preliminar del manual de usuario, lo suficientemente detallado como para guiar a los usuarios de la beta

Fase de Transición

Una vez que el proyecto entra en la fase de transición, el sistema ha alcanzado la capacidad operativa inicial.

El jefe de proyecto ha considerado que el sistema ofrece la confianza suficiente como para operar en el entorno del usuario, aunque no sea necesariamente perfecto

El usuario puede descubrir con retraso la necesidad de determinadas características.

Si son muy importantes y casan bien con el producto existente, el jefe de proyecto puede aceptar añadirlas.

Sin embargo, los cambios deben ser lo suficientemente pequeños como para que puedan ser introducidos sin afectar seriamente el plan del proyecto.

Ejecución de los flujos de trabajo fundamentales:

En esta fase, la actividad es baja en los cinco flujos de trabajo.

Como casi todo el trabajo se realizó en la fase de construcción, el nivel de actividad en esta fase es bajo, justo lo necesario para corregir los problemas encontrados durante las pruebas en el entorno del usuario.

Normalmente, las actividades de diseño disminuyen durante la fase de transición.

La atención se desplaza a la corrección de defectos para :

eliminar los fallos que ocurran durante el uso inicial, a asegurarse de que las correcciones en sí están bien, y a hacer pruebas de regresión para asegurar que estas modificaciones no introduzcan nuevos defectos

Productos de la Fase de Transición

El propio software ejecutable, incluyendo el software de instalación Documentos legales como contratos, licencias, renuncias de derechos y garantías

La versión completa y corregida de línea base de la versión del producto, incluyendo todos los modelos del sistema La descripción completa y actualizada de la arquitectura

Manuales y material de formación del usuario final, del operador y del administrador del sistema

Referencias para la ayuda del cliente, acerca de dónde encontrar más información, cómo informar de defectos o dónde encontrar información sobre defectos y actualizaciones.

EL PROCESO UNIFICADO DE DESARROLLO (PUD)

Porque tener una Metodología o Proceso de Desarrollo de SW?

Es la forma más económica de empezar a introducir buenas practicas para el desarrollo.

Permite que las personas puedan trabajar en forma ordenada.

Puedan detectar sus fallas y adquirir mejoras prácticas.

¿Que características debe tener una Metodología?

Debe abarcar todo el proceso de creación del SW

Debe ser fácil de aplicar

Debe Brindar medidas objetivas para medir los errores y facilitar la estimación

Permitir identificar puntos débiles de las personas

Debe minimizar la introducción de errores

Aplicable a las herramientas de desarrollo utilizadas

El proceso de Construcción del Software

Es un proceso de resolución de problemas: Transformación de una necesidad en una solución automatizada que satisface la necesidad:

Qué: Obtención de los requisitos y Analizarlos

Cómo: Diseñar el sistema

Diseño de Alto Nivel o Preliminar:

Descomposición del Sistema en componentes y sus Relaciones

Diseño de Bajo Nivel o Detallado:

Especificación de la función de cada componente

Hacerlo:

Implementar

Probar:

Pruebas

Usar: Implantación y Uso Mantenimiento

El Proceso Unificado es un proceso de desarrollo de software, de modo que es :

Un conjunto de actividades necesarias para transformar requisitos de los usuarios en un sistema software.

Un marco de trabajo genérico, que puede especializarse para una gran variedad de sistemas de software, para diferentes áreas de aplicación, diferentes tipos de organizaciones, diferentes niveles de aptitud y diferentes tamaños de proyectos.

El PUD y UML

El Proceso Unificado está basado en componentes software interconectados a través de interfaces. Utiliza el Lenguaje Unificado de Modelado (UML) para preparar los esquemas de un sistema de software.

CARACTERÍSTICAS DEL PUD

Dirigido por Casos de Uso

Podríamos decir que un Caso de Uso es un fragmento de funcionalidad del sistema que proporciona al usuario un resultado importante Se utilizan para representar los requisitos funcionales.

No sólo inician el proceso de desarrollo, sino que le proporcionan un hilo conductor.

El proceso avanza a través de una serie de flujos de trabajo que parten de los casos de uso.

Los casos de uso se especifican, se diseñan, y los casos de uso finales son la fuente a partir de la cual se constituyen los casos de prueba.

Está centrado en la arquitectura

La arquitectura es una vista del diseño completo con las características más importantes resaltadas, dejando los detalles de lado.

El valor de la arquitectura depende de las personas que se hayan responsabilizado de su creación

Cada producto tiene tanto una función como una forma

Ambas fuerzas deben equilibrarse para lograr un producto de éxito

La función corresponde a los casos de uso y la forma a la arquitectura

Los casos de uso y la arquitectura deben evolucionar en paralelo.

EL PUD es iterativo e incremental

Un producto software puede conllevar mucho tiempo

Resulta más práctico dividirlo en pequeñas partes o miniproyectos Cada miniproyecto es una iteración que acaba en un incremento

Las iteraciones hacen referencia a pasos en el flujo de trabajo y los incrementos al crecimiento del producto

La iteración trata un grupo de casos de uso que amplía la utilidad del producto desarrollado e identifica los riesgos más importantes En cada iteración:

Se identifican y especifican los casos de uso más relevantes

Se crea un diseño utilizando la arquitectura como guía

Se implementa el diseño como componentes y Se verifica que dichos componentes satisfacen los casos de uso

La vida del Proceso Unificado

Se repite a lo largo de una serie de ciclos que constituyen la vida de un sistema.

Cada ciclo concluye con una versión del producto para los clientes.

Como vimos anteriormente, cada fase se subdivide en iteraciones.

Clasificación de los casos de uso

Los casos de uso deben ser clasificados y los que ocupen niveles más altos habrían de abordarse en los ciclos iniciales de desarrollo

Seleccionar aquellos que influyen profundamente en la arquitectura básica, dando soporte al dominio y a las capas de servicios de alto nivel o a los que presentan el máximo riesgo

Cuando Crear Artefactos

En la fase de elaboración pueden crearse ciertos artefactos, entre ellos:

El modelo Conceptual

Casos de uso de alto nivel

Conceptos Importantes

Artefacto:

Pieza de información tangible que:

Es creada, modificada y usada por los trabajadores al realizar las actividades

Representa un área de responsabilidad

Es candidata a ser tenida en cuenta para el control de la configuración.

Un artefacto puede ser:

un modelo

un elemento de un modelo

un documento

el código o alguna parte del mismo

Actividad:

Unidad tangible de trabajo realizada por un trabajador en un flujo de trabajo de forma que:

Implica una responsabilidad bien definida para el trabajador

Produce un resultado bien definido basado en una entrada bien definida

Representa una unidad de trabajo con límites bien definidos

Modelo:

Es una abstracción del sistema, especificando el sistema modelado desde un cierto punto de vista y en un determinado nivel de abstracción

Son abstracciones del sistema que construyen los arquitectos y desarrolladores

Un modelo siempre identifica el sistema que está modelando

Arquitectura de un SGBD Cliente Servidor

Características

Los clientes realizan generalmente funciones como

Manejo de la interfaz de usuario.

Captura y validación de los datos de entrada.

Generación de consultas e informes sobre las bases de datos.

Funciones de los servidores :

Gestión de periféricos compartidos (ejem. impresora, scanner, etc.).

Control de accesos concurrentes a bases de datos compartidas.

Enlaces de comunicaciones con otras redes de área local o extensa.

Principales características de la arquitectura cliente/servidor:

El servidor presenta a todos sus clientes una interfaz única y bien definida.

– El cliente no necesita conocer la lógica del servidor, sólo su interfaz externa.

– El cliente no depende de la ubicación física del servidor, ni del tipo de equipo físico en el que se encuentra, ni de su sistema operativo.

– Los cambios en el servidor implican pocos o ningún cambio en el cliente.

SQL (Lenguaje Estructura de Consulta)

SQL está dividido en tres sub lenguajes:

DDL (Data Definition Language)

Lenguaje de definición de datos. Definen la estructura de los datos

DML (Data Manipulation Language)

Lenguaje de manipulación de datos. Instrucciones que trabajan sobre los datos

DCL (Data Control Language)

Lenguaje de control de datos. Permite administrar la seguridad de datos y el control de consistencia.

Lenguaje de definición de datos DDL

Permite:

– Crear una base de datos.

– Crear, suprimir, modificar una tabla.

– Definir una tabla virtual (o vista) de datos.

– Construir un índice para hacer más rápido el acceso a una tabla.

– Controlar el almacenamiento físico de los datos por parte del SGBD.

Comprende instrucciones como: • CREATE, ALTER, DROP, etc.

Lenguaje de Manipulación de datos DML

Permite:

• Insertar, modificar o eliminar registros de una tabla.

• Realizar consultas a una o varias tablas.

• Implementar procedimientos y funciones almacenadas.

• Abarca instrucciones como:

– INSERT – UPDATE – DELETE – SELECT

Lenguaje de Control de datos DCL

Permite:

• Crear usuarios.

• Otorgar y/o revocar permisos a usuarios.

• Abarca instrucciones como:

– GRANT – REVOKE – DENY – etc.

Scripts

Los scripts son un conjunto de instrucciones generalmente almacenadas en un archivo de texto que deben ser interpretados línea a línea en tiempo real para su ejecución.

Se distinguen de los programas, en que estos ultimos deben ser convertidos a un archivo binario ejecutable para correrlos.

Lenguaje de definición de datos

DDL

Crear, modificar, eliminar una Base de Datos

Crear una BD: CREATE DATABASE

Modificar una BD: ALTER DATABASE < nombre base de datos>

Eliminar una BD: DROP DATABASE < nombre base de datos>

Ejemplos:

CREATE DATABASE BDPrueba; use master;

DROP DATABASE BDPrueba;

ALTER DATABASE BDPrueba SET READ_ONLY; --establece de solo lectura GO

Crear, modificar y eliminar Tablas

CREATE TABLE (nombre_columna1 tipo [restricción de columna], ........

nombre_columnaN tipo [restricción de columna], [restricción_de_tabla]);

drop table

alter table

[ALTER COLUMN | ADD ] [ NULL | NOT NULL ]

| DROP COLUMN ]

Crear, modificar y eliminar Registros

CREATE TABLE

(nombre_columna1 tipo [restricción de columna],

........

nombre_columnaN tipo [restricción de columna], [restricción_de_tabla]);

Eliminar

drop table

Borrar una tabla: drop table departamento;

Insertando registos:

1. Cuando se va ha introducir todos los datos en el mismo orden que fué definido: insert into pais values (2,'Peru',100)

2. Cuando se va ha asignar datos a ciertas columnas:

insert into continente(ContNombre) values ('America');

insert into pais(paisId, paisNombre, continenteId) values (1,'Bolivia',100)

insert into (Colum1,Colum2, ...) values (Valor1, Valor2, ...)

CREATE TABLE: Restricciones

La sentencia CREATE TABLE se utiliza para crear una tabla dentro de la cual habrá columnas que contienen datos y restricciones.

Sintaxis General de la sentencia CREATE TABLE:

CREATE TABLE

(nombre_columna1 tipo [restricción de columna],

........

nombre_columnaN tipo [restricción de columna],

[restricción_de_tabla]);

CREATE TABLE: Restricciones de columnas

• NOT NULL. La columna no permitirá valores nulos.

• CONSTRAINT. Permite asociar un nombre a una restricción.

• DEFAULT valor. La columna tendrá un valor por defecto. El SBGD utiliza este valor cuando no se especifica un valor para dicha columna.

• PRIMARY KEY. Permite indicar que esta columna es la clave primaria.

• REFERENCES. Es la manera de indicar que este campo, es clave ajena y hace referencia a un campo llave de otra tabla. Esta foreign key es sólo de una columna.

• UNIQUE. Obliga a que los valores de una columna tomen valores únicos (no puede haber dos filas con igual valor). Se implementa creando un índice para dicha(s) columna(s).

• CHECK (condición). Permite indicar una condición que debe de cumplir esa columna.

CREATE TABLE: Restricciones de tablas

PRIMARY KEY (columna1, columna2...).

Permite indicar las columnas que forman la clave primaria.

FOREIGN KEY (columna1, columna2....) REFERENCES NombreTabla

Indica las. columnas que son clave ajena referenciando a una clave candidata de otra tabla.

UNIQUE (columna1, columna2...)

El valor combinado de una o varias columnas es único.

CHECK (condición)

Permite indicar una condición que deben cumplir las filas de la tabla. Puede afectar a varias columnas.

CREATE TABLE: Restricciones sobre llaves foráneass

CREATE TABLE

( nombre_colum1 tipo [restricción de columna], :

nombre_columN tipo references TablaPrimaria(campo)

[ ON DELETE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ]

[ ON UPDATE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ]

[restricción_de_tabla] );

Ejemplo: ON DELETE { NO ACTION | CASCADE | SET NULL | SET DEFAULT }

• Especifica la acción que tiene lugar en las filas de una tabla B cuyas filas tienen una relación referencial con una fila de la tabla A que se acaba de eliminar. El valor predeterminado es NO ACTION. NO ACTION Genera un error y se revierte la acción de eliminación de la fila de la tabla primaria. CASCADE Se eliminan las filas correspondientes de la tabla B que hacen referencia a la fila eliminada en la tabla A.

SET NULL Todos los valores que forman la clave foránea se establecen en NULL si se elimina la fila correspondiente de la tabla primaria.

Restricción: Las columnas de clave externa deben admitir valores NULL.

SET DEFAULT Todos los valores que forman la clave foranea se establecen en los valores predeterminados si se elimina la fila correspondiente de la tabla primaria.

Restricción: Las columnas de clave externa deben tener valores predeterminados. Si la columna admite valores NULL y no hay ningún valor predeterminado establecido de forma explícita, NULL se convierte en el valor predeterminado implícito de la columna.

Procedimiento Almacenado

Sub programa el cual es almacenado físicamente en una base de datos.

Uso: Encapsular un proceso grande y complejo.

Ventaja:

Al ser ejecutado, en respuesta a una petición de usuario, es ejecutado directamente en el motor de bases de datos, el cual usualmente corre en un servidor separado.

Posee acceso directo a los datos que necesita manipular y sólo necesita enviar sus resultados de regreso al usuario, deshaciéndose de la sobrecarga resultante de comunicar grandes cantidades de datos salientes y entrantes.

Cuando una base de datos es manipulada desde muchos programas externos. Al incluir la lógica de la aplicación en la base de datos, se evita embeber la misma lógica en todos los programas que acceden a los datos es reducida.

Tipos de procedimientos almacenados

Procedimientos almacenados definidos por el usuario

Diseñados por el programador.

Procedimientos almacenados extendidos

Le permiten crear sus propias rutinas externas en un lenguaje de programación como pueda ser C.

Son DLL que una instancia de MicrosoftSQL Server puede cargar y ejecutar dinámicamente.

Esta característica se quitará en una versión futura de Microsoft SQL Server.

Un procedimiento es un programa dentro de la base de datos que ejecuta una acción o conjunto de acciones especificas.

Un procedimiento tiene un nombre, un conjunto de parámetros (opcional) y un bloque de código.

Pueden devolver valores (numerico entero) o conjuntos de resultados.

Para crear un procedimiento almacenado debemos emplear la sentencia CREATE PROCEDURE.

CREATE PROCEDURE [@param1 , ...] AS

--

Sentencias del procedure

Si queremos que los parámetros de un procedimiento almacenado sean de entrada-salida debemos especificarlo a través de la palabra clave OUTPUT , tanto en la definición del procedure como en la ejecución.

Procedimientos almacenados del sistema

• Se almacenan físicamente en la base de datos Resource e incluyen el prefijo sp_. Los procedimientos almacenados del sistema aparecen de forma lógica en el esquema sys de cada base de datos definida por el usuario y el sistema.

En SQL Server 2008, los permisos GRANT, DENY y REVOKE se pueden aplicar a los procedimientos almacenados del sistema.

SQL Server admite los procedimientos almacenados del sistema que proporcionan una interfaz desde SQL Server a los programas externos para varias actividades de mantenimiento. Estos procedimientos almacenados extendidos utilizan el prefijo xp_.

Ejemplos:

sp_helpdb Presenta información acerca de una base de datos especificada o de todas las bases de datos.

sp_spaceused Muestra el número de filas, el espacio de disco reservado y el espacio de disco utilizado por una tabla, vista o la base de datos completa. Etc.

Triggers (desencadenadores)

Es una clase especial de procedimiento almacenado que se ejecuta automáticamente cuando se produce un evento en el servidor de bases de datos.

Tipos de triggers en Sql Server:

1) Trigger DML

Se ejecutan cuando un usuario intenta modificar datos mediante un evento de lenguaje de manipulación de datos.

Los eventos DML son instrucciones INSERT, UPDATE o DELETE de una tabla o vista.

2) Trigger DDL

Se ejecutan en respuesta a una variedad de eventos de lenguaje de definición de datos (DDL).

Estos eventos corresponden principalmente a instrucciones CREATE, ALTER y DROP.