Professional Documents
Culture Documents
Iterativo e Incremental
Es prctico dividir el esfuerzo de desarrollo de un proyecto de software en partes ms
pequeas o mini proyectos.
Cada mini proyecto es una iteracin que resulta en un incremento.
Las iteraciones hacen referencia a pasos en el flujo de trabajo, y los incrementos a
crecimientos en el producto.
Las iteraciones deben estar controladas. Esto significa que deben seleccionarse y
ejecutarse de una forma planificada.
Los desarrolladores basan la seleccin de lo que implementarn en cada iteracin en
dos cosas: el conjunto de casos de uso que amplan la funcionalidad, y en los riesgos
ms importantes que deben mitigarse.
En cada iteracin los desarrolladores identifican y especifican los casos de uso
relevantes, crean un diseo utilizando la arquitectura seleccionada como gua, para
implementar dichos casos de uso. Si la iteracin cumple sus objetivos, se contina
con la prxima. Sino deben revisarse las decisiones previas y probar un nuevo
enfoque.
Disciplinas
Cada disciplina es un conjunto de actividades relacionadas (flujos de trabajo)
vinculadas a un rea especfica dentro del proyecto total. Las ms importantes son:
Requerimientos, Anlisis, Diseo, Codificacin, y Prueba.
El agrupamiento de actividades en disciplinas es principalmente una ayuda para
comprender el proyecto desde la visin tradicional en cascada.
Cada disciplina est asociada con un conjunto de modelos que se desarrollan. Estos
modelos estn compuestos por artefactos. Los artefactos ms importantes son los
modelos que cada disciplina realiza: modelo de casos de uso, modelo de diseo,
modelo de implementacin, y modelo de prueba.
El Proceso Unificado consiste en una serie de disciplinas o flujos de trabajo que van
desde los requisitos hasta las pruebas. Los flujos de trabajo desarrollan modelos
desde el modelo de casos de uso hasta el modelo de pruebas.
Disciplina
Requisitos
Anlisis
Diseo
Implementacin
Prueba
Modelos
Modelo de Casos de Uso
Modelo de Anlisis
Modelo de Diseo - Modelo de Despliegue
Modelo de Implementacin
Modelo de Prueba
Hitos
Cada fase finaliza con un hito. Cada hito se determina por la disponibilidad de un
conjunto de artefactos, es decir un conjunto de modelos o documentos que han sido
desarrollados hasta alcanzar un estado predefinido.
Los hitos tienen muchos objetivos. El ms crtico es que los directores deben tomar
ciertas decisiones antes de que el trabajo contine con la siguiente fase.
Los hitos tambin permiten controlar la direccin y progreso del trabajo.
Al final se obtiene un conjunto de datos a partir del seguimiento del tiempo y esfuerzo
consumidos en cada fase. Estos datos son tiles para las estimaciones en futuros
proyectos.
Fase de Inicio
Durante la fase de inicio se desarrolla una descripcin del producto final, y se
presenta el anlisis del negocio. Esta fase responde las siguientes preguntas:
Cules son las principales funciones del sistema para los usuarios ms
importantes?
Cmo podra ser la mejor arquitectura del sistema?
Cul es el plan del proyecto y cunto costar desarrollar el producto? En esta
fase se identifican y priorizan los riesgos ms importantes.
El objetivo de esta fase es ayudar al equipo de proyecto a decidir cules son los
verdaderos objetivos del proyecto. Las iteraciones exploran diferentes soluciones
posibles, y diferentes arquitecturas posibles.
Puede que todo el trabajo fsico realizado en esta fase sea descartado. Lo nico que
normalmente sobrevive a la fase de inicio es el incremento del conocimiento en el
equipo.
Los artefactos que tpicamente sobreviven a esta fase son:
-Un enunciado de los mayores requerimientos planteados generalmente como casos
de uso.
-Un boceto inicial de la arquitectura.
-Una descripcin de los objetivos del proyecto.
-Una versin muy preliminar del plan del proyecto.
-Un modelo del negocio.
La fase de inicio finaliza con el Hito de Objetivos del Ciclo de Vida.
Este hito es alcanzado cuando el equipo de proyectos y los stakeholders llegan a un
acuerdo sobre:
-Cul es el conjunto de necesidades del negocio, y que conjunto de funciones
satisfacen estas necesidades.
-Una planificacin preliminar de iteraciones.
-Una arquitectura preliminar.
Debe poder responderse las siguientes cuestiones:
-Se ha determinado con claridad el mbito del sistema? Se ha determinado lo que
va a estar dentro del sistema y fuera del sistema?
-Se ha llegado a un acuerdo con todas las personas involucradas (stakeholders)
sobre los requisitos funcionales del sistema?
-Se vislumbra una arquitectura que pueda soportar estas caractersticas?
-Se identifican los riesgos crticos? Se prev forma de mitigarlos?
-El uso del producto justifica la relacin costo-beneficio?
-Es factible para su organizacin llevar adelante el proyecto? - Estn los inversores
de acuerdo con los objetivos?
Fase de Elaboracin
Durante la fase de elaboracin se especifican en detalle la mayora de los casos de
uso del producto y se disea la arquitectura.
Las iteraciones en la fase de elaboracin:
-Establecen una firme comprensin del problema a solucionar.
-Establece la fundacin arquitectural para el software.
-Establece un plan detallado para las siguientes iteraciones.
-Elimina los mayores riesgos.
El resultado de esta fase es la lnea base de la arquitectura.
En esta fase se construyen tpicamente los siguientes artefactos:
-El cuerpo bsico del sw en la forma de un prototipo arquitectural.
-Casos de prueba
-La mayora de los casos de uso (80%) que describen la funcionalidad del sistema. Un plan detallado para las siguientes iteraciones.
La fase de elaboracin finaliza con el hito de la Arquitectura del Ciclo de Vida. Este
hito se alcanza cuando el equipo de desarrollo y los stakeholders llegan a un acuerdo
sobre:
-Los casos de uso que describen la funcionalidad del sistema.
-La lnea base de la arquitectura
-Los mayores riesgos han sido mitigados
-El plan del proyecto
Al alcanzar este hito debe poder responderse a preguntas como:
-Se ha creado una lnea base de la arquitectura? Es adaptable y robusta? Puede
evolucionar?
-Se han identificado y mitigado los riesgos ms graves?
-Se ha desarrollado un plan del proyecto hasta el nivel necesario para respaldar una
agenda, costes, y calidad realistas?
-Proporciona el proyecto, una adecuada recuperacin de la inversin? - Se ha
obtenido la aprobacin de los inversores?
Fase de Construccin
Durante la fase de construccin se crea el producto. La lnea base de la arquitectura
crece hasta convertirse en el sistema completo.
Al final de esta fase, el producto contiene todos los casos de uso implementados, sin
embargo puede que no este libre de defectos.
Fase de Transicin
La fase de transicin cubre el perodo durante el cual el producto se convierte en la
versin beta.
Las iteraciones en esta fase continan agregando caractersticas al sw. Sin embargo
las caractersticas se agregan a un sistema que el usuario se encuentra utilizando
activamente.
Los artefactos construidos en esta fase son los mismos que en la fase de
construccin. El equipo se encuentra ocupado fundamentalmente en corregir y
extender la funcionalidad del sistema desarrollado en la fase anterior.
La fase de transicin finaliza con el hito de Lanzamiento del Producto,.
Este hito se alcanza cuando el equipo de desarrollo y los stakeholders llegan a un
acuerdo sobre:
- Se han alcanzado los objetivos fijados en la fase de Inicio. El usuario est satisfecho.
Visual Studio
Historia
Desde sus inicios, Windows expone funcionalidades a los desarrolladores a travs de
interfaces de programacin (en ingls API, de Application Programming Interface) que les
permiten crear aplicaciones. Con la complejidad que ha adquirido Windows a lo largo de
los aos, distintas API han ido apareciendo y evolucionando:
API Windows (Win16 & Win32): estas API forman el ncleo de Windows y las utiliza
directamente el sistema. Estn destinadas a utilizarse al ms bajo nivel, con el lenguaje
C. Win 16 apareci con Windows 3.1, mientras que Win32 se utiliza desde Windows 95.
MFC (Microsoft Foundation Classes) existe desde 1992 y encapsula las API
Win16 y Win32 en una estructura orientada a objetos en C+ +.
COM (Component Object Model) aparece poco despus de las MFC para responder a
una problemtica de comunicaciones entre procesos. A continuacin, la librera ATL
(Active Template Library) encapsul las API COM para simplificar su uso.
La plataforma .NET apareci a principios de los aos 2000 para dar respuesta al
problema de la complejidad de estas API. Las unifica y las moderniza, permitiendo su uso
con cualquier lenguaje que posea una implementacin compatible.
Versin 1.0
Fecha de aparicin: Febrero de 2002
IDE asociado: Visual Studio .NET 2002
Funcionalidades asociadas:
Desarrollo para Windows con los WinForms
Desarrollo web con ASP.NET
Versin 1.1
Fecha de aparicin: Abril de 2003
IDE asociado: Visual Studio .NET 2003
Funcionalidades asociadas:
Numerosos cambios en la API
Se incluyen proveedores de datos Oracle y ODBC en el componente ADO.NET (antes
disponible como un add-on)
Se incluyen controles visuales para el desarrollo en ASP. NET (antes disponible como
un add-on)
Soporte del protoclo IPv6
Primera Versin de .NET Compact Framework destinado a dispositivos mviles
Versin 2.0
Fecha de aparicin: Enero de 2006
Versin 3.0
Fecha de aparicin: Noviembre de 2006
IDE asociado: Visual Studio 2005
Se integran cuatro nuevos bloques principales al framework .NET:
WPF (Windows Presentation Foundation) para la definicin de interfaces grficas
WCF (Windows Communication Foundation) para la comunicacin e interoperabilidad
entre aplicaciones
WWF (Windows Workf70w Foundation), que permite definir flujos de trabajo
automatizados
Windows CardSpace, la gestin de la identidad por autenticacin nica (actualmente
obsoleto)
Versin 4.5.1
Fecha de aparicin: Octubre de 2013
IDE asociado: Visual Studio 2013
Funcionalidades asociadas:
Versin 4.5.2
Fecha de aparicin: Mayo de 2014
IDE asociado: Visual Studio 2013
Funcionalidades asociadas:
- Nuevas API para ASP.NET
Versin 4.6
Fecha de aparicin: verano de 2015
IDE asociado: Visual Studio 2015
Funcionalidades asociadas:
Unificacin de las API Web en el framework MVC 6
.NET Core
Compilacin de las aplicaciones Windows Store en cdigo nativo con .NET Native
Evolucin de la plataforma
Como respuesta a estos problemas, los equipos de desarrollo del framework .NET han
definido e implementado el bloque .NET Core. Tambin se han puesto manos a la obra y
han escrito un compilador completamente nuevo para VB.NET y Roslyn.
Compilacin
El Kit de desarrollo de software para el framework . NET (o SDK . NET) incluye una serie
de herramientas que permiten, entre otras tareas, compilar las aplicaciones escritas con
VB.NET. El compilador correspondiente al framework .NET 4.6 es un ejecutable llamado
vbc.exe
que
se
encuentra
en
la
carpeta
C:
\Windows\Microsoft.Net\Framework\v4.0.30319. La ejecucin directa de esteprograma por
lnea de comandos de Windows no se recomienda, pues es necesario tener precargadas
ciertas variables de entorno que pueden no estar definidas, IO cual producir un
comportamiento no deseado, 0 incluso errores.
La instalacin de Visual Studio crea con xito un acceso directo muy til en el men de
Inicio de Windows (o en la pantalla de inicio si utiliza Windows 8.1), llamado Smbolo del
sistema para desarrolladores de VS2015 X86.
Apunta a un archivo .bat que ejecuta las instrucciones necesarias para configurar las
variables de entorno indispensables para el correcto funcionamiento el compilador y, a
continuacin, abre una ventana de lnea de comandos.
DevExpress
DevExpress es una de las ms completas suites de componentes de UI para el desarrollo
en todas las plataformas de .NET como Windows Forms, ASP.NET, MVC, Silverlight y
Windows 8 XAML.
Desventajas de DevExpress
Las principales desventajas son:
WPF
Windows Presentation Foundation (WPF) es una tecnologa de Microsoft, presentada
como parte de Windows Vista. Permite el desarrollo de interfaces de interaccin en
Windows tomando caractersticas de aplicaciones Windows y de aplicaciones web.
WPF ofrece una amplia infraestructura y potencia grfica con la que es posible desarrollar
aplicaciones visualmente atractivas, con facilidades de interaccin que
incluyen animacin, vdeo, audio, documentos, navegacin o grficos 3D. Separa, con el
lenguaje declarativo XAML y los lenguajes de programacin de .NET, la interfaz de
interaccin de la lgica del negocio, propiciando una arquitectura Modelo Vista
Controlador para el desarrollo de las aplicaciones.
Microsoft Silverlight es un subconjunto de WPF que permite crear aplicaciones similares
a Flash para web y mviles, con el mismo modelo de programacin que las
aplicaciones .NET. No admite funciones 3D, pero soporta XPS y planos basados en
vectores.
Diseo dinmico
La organizacin de los diferentes componentes de una aplicacin, puede ser muy
complicado. Si ha esto le aadimos las diferentes resoluciones y caractersticas de una
pantalla de un usuario, la cosa se complica ms.
WPF aporta inteligencia cuando se producen cambios de tamao de pantalla y ajustes
de los componentes. Todo depender de cmo se haya definido el diseo.
Grficos basados en vectores
Los grficos en WPF estn basados en vectores. Al contrario que los grficos basados en
imgenes rasterizadas, los grficos basados en vectores pueden ser escalados sin
deformaciones.
Otra ventaja es que este tipo de grficos ocupan menos espacio al ser almacenados,
optimizando as el espacio. Esto no quiere decir que WPF no utilice imgenes
rasterizadas, tienes la posibilidad de trabajar de las dos formas.
Para la interfaz grfica, utilizar imgenes vectoriales te dar ciertas ventajas. Las
aplicaciones creadas con WPF que utilicen grficos vectoriales podrn ser escaladas sin
perder calidad.
Plantillas
En WPF podemos crear elementos reutilizables para la interfaz grfica. Existen dos tipos
de plantillas en WPF: plantillas de control y plantillas de datos.
Las plantillas de control (control templates en ingls) permiten redefinir el aspecto visual
de un control. Un ejemplo sera poder cambiar desde un nico sitio, la apariencia de todos
los botones de la aplicacin. Esto da tambin mucha ventaja a los diseadores ya que se
separa en todo momento la parte grfica de la parte de programacin.
Las plantillas de datos (data templates en ingls) son similares. Estas plantillas definen la
manera en que los datos son mostrados. Podemos asociar una plantilla a una entidad o
clase de nuestra aplicacin. Siempre que se muestre ese tipo de dato en la aplicacin,
utilizar la misma plantilla.
Binding
Quizs una de las facetas o funcionalidades ms interesantes que nos aporta WPF sea el
binding. No es una novedad que incorpore WPF, con Windows Forms ya podamos utilizar
el databinding, pero s que es una tecnologa que lo engloba todo en la misma API. No
depende de terceros para su implementacin.
Gracias a la integracin que nos ofrece WPF con el binding, es muy sencillo utilizar el
patrn de diseo MVC (Modelo Vista Controlador). Ms concreto se utiliza una variante
que se llama MVVM (ModelView-ViewModel) tambin utilizado por el ms que conocido
framework de JavaScriptAngularJS.
Estilos
Donde realmente vemos grandes diferencias es cuando intentamos hacer una aplicacin
enfocada en el diseo. Los estilos en WPF son muy parecidos a las hojas de estilos en
cascada, CSS, para HTML.
En este caso los estilos son ms potentes que el CSS. Podemos manejar cualquier
caracterstica grfica que te imagines, mrgenes, espacios, colores, dimensiones y
muchos ms.
Esto nos permitir reutilizar los estilos en los diferentes controles y plantillas de la
aplicacin. La mayor ventaja ser el tiempo que nos ahorramos a la hora de cambiar el
aspecto visual.
Lenguaje C#
C# (ledo en ingls C Sharp y en espaol C Almohadilla) es el nuevo lenguaje de
propsito general diseado por Microsoft para su plataforma .NET. Sus principales
creadores son Scott Wiltamuth y Anders Hejlsberg, ste ltimo tambin conocido por
haber sido el diseador del lenguaje Turbo Pascal y la herramienta RAD Delphi.
Aunque es posible escribir cdigo para la plataforma .NET en muchos otros lenguajes, C#
es el nico que ha sido diseado especficamente para ser utilizado en ella, por lo que
programarla usando C# es mucho ms sencillo e intuitivo que hacerlo con cualquiera de
los otros lenguajes ya que C# carece de elementos heredados innecesarios en .NET. Por
esta razn, se suele decir que C# es el lenguaje nativo de .NET
La sintaxis y estructuracin de C# es muy similar a la C++, ya que la intencin de
Microsoft con C# es facilitar la migracin de cdigos escritos en estos lenguajes a C# y
facilitar su aprendizaje a los desarrolladores habituados a ellos. Sin embargo, su sencillez
y el alto nivel de productividad son equiparables a los de Visual Basic.
Un lenguaje que hubiese sido ideal utilizar para estos menesteres es Java, pero debido a
problemas con la empresa creadora del mismo -Sun-, Microsoft ha tenido que desarrollar
un nuevo lenguaje que aadiese a las ya probadas virtudes de Java las modificaciones
que Microsoft tena pensado aadirle para mejorarlo an ms y hacerlo un lenguaje
orientado al desarrollo de componentes.
En resumen, C# es un lenguaje de programacin que toma las mejores caractersticas de
lenguajes preexistentes como Visual Basic, Java o C++ y las combina en uno solo. El
hecho de ser relativamente reciente no implica que sea inmaduro, pues Microsoft ha
escrito la mayor parte de la BCL usndolo, por lo que su compilador es el ms depurado y
optimizado de los incluidos en el .NET Framework SDK.
Caractersticas de C#
Con la idea de que los programadores ms experimentados puedan obtener una visin
general del lenguaje, a continuacin se recoge de manera resumida las principales
caractersticas de C# Alguna de las caractersticas aqu sealadas no son exactamente
propias del lenguaje sino de la plataforma .NET en general. Sin embargo, tambin se
comentan aqu tambin en tanto que tienen repercusin directa en el lenguaje, aunque se
indicar explcitamente cules son este tipo de caractersticas cada vez que se toquen:
Sencillez: C# elimina muchos elementos que otros lenguajes incluyen y que son
innecesarios en .NET. Por ejemplo:
o El tamao de los tipos de datos bsicos es fijo e independiente del compilador, sistema
operativo o mquina para quienes se compile (no
portabilidad del cdigo.
o No se incluyen elementos poco tiles de lenguajes como C++ tales como macros,
herencia mltiple o la necesidad de un operador diferente del punto (.) acceder a
miembros de espacios de nombres (::)
Seguridad de tipos: C# incluye mecanismos que permiten asegurar que los accesos a
tipos de datos siempre se realicen correctamente, lo que permite evita que se produzcan
errores difciles de detectar por acceso a memoria no perteneciente a ningn objeto y es
especialmente necesario en un entorno gestionado por un recolector de basura. Para ello
se toman medidas del tipo:
o Slo se admiten conversiones entre tipos compatibles. Esto es, entre un tipo y
antecesores suyos, entre tipos para los que explcitamente se haya definido un operador
de conversin, y entre un tipo y un tipo hijo suyo del que un objeto del primero
almacenase una referencia del segundo (downcasting) Obviamente, lo ltimo slo puede
comprobarlo en tiempo de ejecucin el CLR y no el compilador, por lo que en realidad el
CLR y el compilador colaboran para asegurar la correccin de las conversiones.
o Se comprueba que todo acceso a los elementos de una tabla se realice con ndices que
se encuentren dentro del rango de la misma.
o A diferencia de Java, C# incluye delegados, que son similares a los punteros a funciones
de C++ pero siguen un enfoque orientado a objetos, pueden almacenar referencias a
varios mtodos simultneamente, y se comprueba que los mtodos a los que apunten
tengan parmetros y valor de retorno del tipo indicado al definirlos.
Instrucciones seguras: Para evitar errores muy comunes, en C# se han impuesto una
serie de restricciones en el uso de las instrucciones de control ms comunes. Por
ejemplo, la guarda de toda condicin ha de ser una expresin condicional y no aritmtica,
con lo que se evitan errores por confusin del operador de igualdad (==) con el de
asignacin (=); y todo caso de un switch ha de terminar en un break o goto que indique
cul es la siguiente accin a realizar, lo que evita la ejecucin accidental de casos y
facilita su reordenacin.
Sistema de tipos unificado: A diferencia de C++, en C# todos los tipos de datos que se
definan siempre derivarn, aunque sea de manera implcita, de una clase base comn
llamada System.Object, por lo que dispondrn de todos los miembros definidos en sta
clase (es decir, sern objetos)
A diferencia de Java, en C# esto tambin es aplicable a los tipos de datos bsicos
Adems, para conseguir que ello no tenga una repercusin negativa en su nivel de
rendimiento, se ha incluido un mecanismo transparente de boxing y unboxing
con el que se consigue que slo sean tratados como objetos cuando la situacin lo
requiera, y mientras tanto puede aplicrseles optimizaciones especficas.
El hecho de que todos los tipos del lenguaje deriven de una clase comn facilita
enormemente el diseo de colecciones genricas que puedan almacenar objetos
de cualquier tipo.
Extensibilidad de operadores: Para facilitar la legibilidad del cdigo y conseguir que los
nuevos tipos de datos bsicos que se definan a travs de las estructuras estn al mismo
nivel que los bsicos predefinidos en el lenguaje, al igual que C++ y a diferencia de Java,
C# permite redefinir el significado de la mayora de los operadores -incluidos los de
conversin, tanto para conversiones implcitas como explcitas- cuando se apliquen a
diferentes tipos de objetos.
Las redefiniciones de operadores se hacen de manera inteligente, de modo que a
partir de una nica definicin de los operadores ++ y -- el compilador puede
deducir automticamente como ejecutarlos de manera prefijas y postifja; y
definiendo operadores simples (como +), el compilador deduce cmo aplicar su
versin de asignacin compuesta (+=) Adems, para asegurar la consistencia, el
compilador vigila que los operadores con opuesto siempre se redefinan por
parejas (por ejemplo, si se redefine ==, tambin hay que redefinir !=)
Tambin se da la posibilidad, a travs del concepto de indizador, de redefinir el
significado del operador [] para los tipos de dato definidos por el usuario, con lo
que se consigue que se pueda acceder al mismo como si fuese una tabla. Esto es
muy til para trabajar con tipos que acten como colecciones de objetos.
Versionable: C# incluye una poltica de versionado que permite crear nuevas versiones
de tipos sin temor a que la introduccin de nuevos miembros provoquen errores difciles
de detectar en tipos hijos previamente desarrollados y ya extendidos con miembros de
igual nombre a los recin introducidos.
Si una clase introduce un nuevo mtodo cuyas redefiniciones deban seguir la
regla de llamar a la versin de su padre en algn punto de su cdigo, difcilmente
seguiran esta regla miembros de su misma signatura definidos en clases hijas
previamente a la definicin del mismo en la clase padre; o si introduce un nuevo
campo con el mismo nombre que algn mtodo de una clase hija, la clase hija
dejar de funcionar. Para evitar que esto ocurra, en C# se toman dos medidas:
o Se obliga a que toda redefinicin deba incluir el modificador override, con lo que la
versin de la clase hija nunca sera considerada como una redefinicin de la versin de
miembro en la clase padre ya que no incluira override. Para evitar que por accidente un
programador incluya este modificador, slo se permite incluirlo en miembros que tengan la
misma signatura que miembros marcados como redefinibles mediante el modificador
virtual. As adems se evita el error tan frecuente en Java de creerse haber redefinido un
miembro, pues si el miembro con override no existe en la clase padre se producir un
error de compilacin.
Lenguaje SQL
En el 2006, la International Organization for Standardization (ISO) y el American National
Standards Institute (ANSI) publicaron revisiones a su estndar SQL, al cual llamar
SQL:2006. Como ver despus, el estndar est dividido en partes, y cada parte es
aprobada y publicada en su propia lnea de tiempo; por lo tanto, diferentes partes tienen
distintos aos de publicacin. Es comn usar el ltimo ao como nombre colectivo para el
conjunto de todas las partes publicadas durante ese ao. El estndar SQL 2006, como
sus predecesores SQL:2003, SQL:1999 (tambin conocido como SQL3) y SQL-92, se
basa en el modelo de datos relacional, el cual define cmo los datos pueden ser
almacenados y manipulados dentro de una base de datos relacional. Los sistemas de
gestin de base de datos relacional (RDBMS) como Oracle, Sybase, DB2, MySQL y
Microsoft SQL Server (o slo SQL Server) usan el estndar SQL como base de su
tecnologa, proporcionando entornos de base de datos que apoyan tanto a SQL como al
A lo largo de los aos se ha implementado una serie de modelos de base de datos para
almacenar y administrar la informacin. Varios de los modelos ms comunes incluyen los
siguientes:
Jerrquico Este modelo tiene una estructura primario y secundario que es similar a
un rbol invertido, que es lo que constituye la jerarqua. Los datos estn
organizados en nodos, el equivalente lgico de tablas en una base de datos
relacional. Un nodo principal puede tener muchos nodos secundarios, pero un
nodo secundario slo puede tener un nodo principal. Aunque el modelo ha sido
muy utilizado, a menudo se considera inadecuado para muchas aplicaciones
debido a su estructura inflexible y la falta de apoyo de relaciones complejas. Aun
algunas implementaciones como IMS de IBM han introducido caractersticas que
trabajan en torno a estas limitaciones.
Red Este modelo aborda algunas de las limitaciones del modelo jerrquico. Los
datos estn organizados en tipos de registro, el equivalente lgico de tablas en
una base de datos relacional. Al igual que el modelo jerrquico, el modelo de red
usa la estructura de un rbol invertido, pero los tipos de registro se organizan en
una estructura que relaciona pares de tipos de registro en propietarios y miembros.
Cualquier tipo de registro puede participar en cualquier conjunto con otros tipos de
registro en la base de datos, que apoya a las consultas y relaciones ms
complejas de lo que es posible en el modelo jerrquico. Hasta el modelo de red
tiene sus limitaciones, y la ms seria es la complejidad. Al acceder a la base de
datos, el usuario debe estar familiarizado con la estructura y mantener un
seguimiento cuidadoso de dnde est y cmo lleg ah. Tambin es difcil cambiar
la estructura sin afectar las aplicaciones que interactan con la base de datos.
Normalizacin de datos
La parte central de los principios del modelo relacional es el concepto de normalizacin,
una tcnica para producir un conjunto de relaciones que poseen un conjunto de ciertas
propiedades que minimizan los datos redundantes y preservan la integridad de los datos
almacenados tal como se mantienen (aadidos, actualizados y eliminados). El proceso
fue desarrollado por E. F. Codd en 1972, y el nombre es un chiste poltico debido a que el
presidente Nixon estaba normalizando relaciones con China en ese momento. Codd
imagin que si las relaciones con un pas pueden normalizarse, entonces seguramente
podra normalizar las relaciones de la base de datos. La normalizacin se define por un
conjunto de normas, que se conocen como formas normales, que proporcionan una
directriz especfica de cmo los datos son organizados para evitar anomalas que den
lugar a inconsistencias y prdida de los datos tal como se mantienen almacenados en la
base de datos.
Cuando Codd present por primera vez la normalizacin, inclua tres formas normales. A
pesar de que formas normales adicionales se han agregado desde entonces, las tres
primeras cubren la mayora de las situaciones que se encontrarn en las dos bases de
datos personales y empresariales, y ya que la intencin principal es presentar el proceso
de normalizacin, slo se analizarn esas tres formas.
Primera forma normal. La primera forma normal, que proporciona la fundacin para la
segunda y tercera forma normal, incluye las siguientes directrices:
Segunda forma normal. Para comprender la segunda forma normal, primero debe
entender el concepto de dependencia funcional. Para esta definicin se usarn dos
atributos arbitrarios, hbilmente llamados A y B. El atributo B es funcionalmente
dependiente (dependiente para abreviar) del atributo A si en cualquier momento no hay
ms que un valor del atributo B asociado con el valor dado al atributo A. Para que no te
preguntes de qu planeta vengo, tratemos de hacer la definicin ms entendible. Si se
dice que el atributo B es funcionalmente dependiente del atributo A, tambin estaremos
diciendo que el atributo A determina al atributo B, o que A es un factor determinante
(identificador nico) del atributo B.
Tercera forma normal. La tercera forma normal, como la segunda forma normal,
depende de la relacin del identificador nico. Para adherir a las directrices de la tercera
forma normal, una relacin debe estar en la segunda forma normal y sin un atributo clave
(atributos que no sean parte de algn candidato clave) deben ser independiente el uno del
otro y depender del identificador nico.
La evolucin de SQL
A principios de la dcada de 1970, despus que se public el artculo de E. F. Codd, IBM
comenz a desarrollar un lenguaje y un sistema de base de datos que podra usarse para
la aplicacin de ese modelo. Cuando se defini por primera vez, el lenguaje fue
denominado Lenguaje de consulta estructurado (en ingls, SEQUEL, Structured English
Query Language). Cuando se descubri que SEQUEL era propiedad de una marca
comercial de Hawker-Siddeley Aircraft Company en el Reino Unido, el nombre se cambi
a SQL. Cuando se pas la voz de que IBM estaba desarrollando un sistema de base de
datos relacional basado en SQL, otras compaas comenzaron a desarrollar sus propios
productos basados en SQL. De hecho, Relational Software, Inc., ahora Oracle
Corporation, lanz el sistema de base de datos antes de que IBM lanzara el suyo al
mercado. Conforme ms proveedores lanzaron sus productos, SQL comenz a surgir
como el lenguaje estndar de base de datos relacional.
En 1986, el American National Standards Institute (ANSI) dio a conocer el primer estndar
publicado para el lenguaje (SQL-86), el cual fue adoptado por la International Organization
for Standardization (ISO) en 1987. El estndar se actualiz en 1989, 1992, 2003, 2006, y
el trabajo contina. Ha crecido con el tiempo (el estndar original estaba muy por debajo
de 1 000 pginas, mientras que la versin de SQL:2006 tiene ms de 3 700 pginas). El
estndar se escribi en partes para permitir la publicacin programada de revisiones y
facilitar el trabajo paralelo por diferentes comits. La siguiente proporciona una
descripcin general de las partes y el estado actual de cada una.
Parte
s
1
Tema
Estado
SQL/Framework
SQL/Foundation
SQL/CLI
SQL/PSM
SQL/Bindings
6
7
SQL/Transaction
SQL/Temporal
SQL/Objects and
Extended
Objects
SQL/MED
10
SQL/OLB
11
SQL/Schemata
12
SQL/Replication
13
SQL/JRT
14
SQL/XML
Los proveedores RDBMS lanzaron productos al mercado antes que hubiera un estndar,
y muchas de las caractersticas de esos productos se aplicaron bastante diferentes, as
que el estndar no pudo acomodarlos a todos cuando se desarrollaron. A menudo se
llaman proveedores por extensin. Esto explica por qu no hay un estndar para una
base de datos. Y cuando cada versin estndar de SQL se lanza, los proveedores
RDBMS tienen que trabajar para incorporar el nuevo estndar en sus productos. Por
ejemplo, los procedimientos almacenados y activadores son nuevos en el estndar
SQL:1999, pero fueron implementados en RDBMS por muchos aos. SQL:1999
simplemente estandariz el lenguaje utilizado para implementar funciones que ya existan.
para modificar las caractersticas de una tabla, y la instruccin DROP TABLE para
borrar la definicin de la tabla de la base de datos.
Tipos de ejecucin
Interfaz convocatoria a nivel (CLI, Call-level interface) Una CLI permite invocar
instrucciones SQL a travs de una interfaz mediante la aprobacin de
instrucciones SQL como valores argumentativos para las subrutinas. Las
instrucciones no estn precompiladas como en el SQL incrustado y la Unin de
mdulo. En lugar de eso, son ejecutadas directamente por los RDBMS.
2000. Actualmente contamos en el mercado con la nueva versin de SQL Server 2008
R2.
Caractersticas
Portabilidad: Las bases de datos pueden desarrollarse fcilmente ya sea en un equipo
mainframe o una mini computadora, sin importar su sistema operativo. Cuenta con
soporte de SUN, lo que permite una mayor comunicacin entre servidores.
Compatibilidad: Los DBMS o SGBD (DataBase Management System, Sistema de Gestin
de Bases de Datos) se pueden ejecutar ya sea en computadoras personales,
microcomputadoras, mainframes y computadoras con procesamiento paralelo masivo as
como en distintas arquitecturas de hardware y software sin tener la necesidad de cambiar
una sola lnea de cdigo. El optimizador de consultas soporta paralelismo entre consultas
lo que implica la capacidad de procesar una sola consulta en mltiples CPU. Primera base
de datos que ofrece una compatibilidad de cdigo del 100%. Primera base de datos con
los servicios de transformacin de datos integrados (DTS: Data Transformation Service).
Con DTS se pueden importar y exportar datos entre varias fuentes de datos heterogneas
y destinos de datos, es decir, transferir y transformar los datos automticamente.
Conectividad: Los SGBD pueden trabajar con informacin almacenada con otros sistemas
de bases de datos as como tambin almacenar los datos y acceder a ellos desde otros
paquetes de software. Es la primera base de datos que ofrece la administracin
multiservidor para un gran nmero de servidores. Esto se conoce como acceso universal
a los datos (Universal Data Access), la estrategia de Microsoft para permitir el acceso de
alto rendimiento a una gran cantidad de fuentes de informacin.
Seguridad: Permite verificaciones de usuarios, mantener clientes diferentes en una misma
base de datos y a sealar que a ciertos datos solo podrn acceder determinados usuarios
as como la codificacin de informacin privada. El Administrador puede programar
permisos por tabla, columna o fila. Por medio del sistema operativo se permite la
restriccin de los movimientos que pudieran hacerse con los archivos, as como controlar
los accesos con cuentas, a esto se le conoce como autenticacin. La seguridad
comprende en proteccin y codificacin de tablas de datos, columnas y filas, as como las
transferencias de datos entre un cliente y un servidor como auditorias que identifican
violaciones a la seguridad.
Administracin: Aporta funcionalidades de administracin y tunning de la memoria, del
CPU y de disco, de manera que se reduce el tiempo para la administracin. Primera base
de datos que soporta la configuracin automtica y la auto-optimizacin por medio del
servicio Agente SQL Server.
Rendimiento: Permiten una alta disponibilidad de aplicaciones sin necesidad de una
reconfiguracin de datos.
Herramientas de Desarrollo
Funcionan con un amplio conjunto de herramientas de desarrollo, herramientas de
consulta para el usuario final, aplicaciones comerciales y herramientas de gestin de la
informacin del mbito corporativo. La estrategia Microsoft consiste en reducir el costo y
la complejidad de almacenamiento de datos al tiempo que pone la tecnologa al alcance
de un mayor nmero de personas.
Innovaciones que se incluyen:
Windows Forms
Windows Forms es la plataforma de desarrollo para crear Aplicaciones en Microsoft
Windows. Es una parte del .NET Framework que tiene un conjunto de clases orientadas a
objetos que se usan para desarrollar complejas y robustas aplicaciones Windows.
Este conjunto de clases del .NET Framework se encuentra fsicamente dentro de la
librera System.Windows.Forms.dll ubicada en el directorio donde est instalada la versin
del .NET Framework.
Lgicamente, Windows Forms tiene la siguiente jerarqua en el Modelo de objetos del
.NET Framework, tal como se muestra en la imagen.
Componentes: Los componentes son clases similares a los controles pero que no
heredan del Control y que al arrastrarse a un formulario no se ven en el diseador de
formularios sino en el diseador de componentes de visual studio .NET, tales como
componentes de informacin al usuario: ToolTip y ErrorProvider, componentes de
mens: MainMenu y ContextMenu, componentes de ayuda: Help y HelpProvider.
Common Dialog Boxes: Los cuadros de dilogos comunes son objetos que al
arrastrarse al formulario tambin se ubican en el Diseador de Componentes de Visual
Studio .NET, tales como dilogos de archivos: OpenFileDialog y SaveFIleDialog,
dilogos de color: ColorDialog, dilogos de Fuentes: FontDialog y los dilogos de
impresin: PrintDialog, PageSetupDialog y PrintPreviewDialog.
Referencias
Proceso Unificado UML (RUP):
Autor: A.U.S. Gustavo Torossi
Libro: El Proceso Unificado de Desarrollo de Software
http://dsc.itmorelia.edu.mx/~jcolivares/courses/pm10a/rup.pdf
Visual Studio:
https://books.google.com.mx/books?
id=CWljHdTl5U0C&pg=PA40&dq=visual+studio&hl=es-
419&sa=X&ved=0ahUKEwjNsIPQqNPPAhWBjSwKHZkbCwoQ6AEIJTAC#v=onepage&q&
f=false
Autor: Sbastien Putier
Libro: VB.NET Visual Studio 2015 Los fundamentos del lenguaje.
DevExpress:
http://dawconsblog.blogspot.com/2014/04/devexpress-el-mejor-aliado-en-el.html
Autor: Karla Olivia Samaniego Garca
Articulo
WPF:
https://es.wikipedia.org/wiki/Windows_Presentation_Foundation
https://msdn.microsoft.com/es-es/library/ms754130.aspx
https://blogs.msdn.microsoft.com/expressate/2008/07/03/qu-es-wpf/
SQL:
http://pedrobeltrancanessabiblioteca.weebly.com/uploads/1/2/4/0/12405072/fundamentos_de_sql_3edi_oppel.pdf
Autor: Robert Cheldon
Libro: Fundamentos de SQL Tercera Edicin
Lenguaje C#:
http://dis.um.es/~bmoros/privado/bibliografia/LibroCsharp.pdf
Autor: Jos Antonio Gonzlez Seco
Libro: El lenguaje de programacin C#
Windows Form:
http://www.ingenieriasystems.com/2012/10/programacion-plataforma-desktop-vb-net.html
Autor: Guillermo Benitez
Artculo de internet