Está en la página 1de 7

UML

¿Qué es UML?

El lenguaje unificado de modelado o UML, es el sucesor de la oleada de métodos de


análisis y diseño orientada a objetos, que surgió a finales de la década de 1980 y
principios de la siguiente. El UML unifica, sobre todo, los métodos de Booch,
Rumbaugh y Jacobson, pero su alcance llegaría a ser mucho más amplio. Decimos,
pues, que el UML es un lenguaje de modelado, y no un método. La mayor parte de los
métodos consisten, al menos en principio, en un lenguaje y en un proceso para
modelar. El lenguaje de modelado es la notación (principalmente grafica) de que se
valen los métodos para expresar los diseños. El proceso es la orientación que nos dan
sobre los pasos a seguir para hacer el diseño.

La notación es el material grafico que se ve en los modelos; es la sintaxis del lenguaje


de modelado. Por ejemplo, la denominación de un diagrama de clases define como se
representa conceptos y temas como clase, asociasion y multiplicidad.

En la especificación del UML podemos comprobar que una de las partes que lo componen es un
metamodelo formal. Un metamodelo es un modelo que define el lenguaje para expresar otros modelos.
Un modelo en OO es una abstracción cerrada semánticamente de un sistema y un sistema es una
colección de unidades conectadas que son organizadas para realizar un propósito específico. Un sistema
puede ser descripto por uno o más modelos, posiblemente desde distintos puntos de vista.

El UML es una técnica de modelado de objetos y como tal supone una abstracción de un sistema para
llegar a construirlo en términos concretos. El modelado no es más que la construcción de un modelo a
partir de una especificación.

Un modelo es una abstracción de algo, que se elabora para comprender ese algo antes de construirlo. El
modelo omite detalles que no resultan esenciales para la comprensión del original y por lo tanto facilita
dicha comprensión.

Los modelos se utilizan en muchas actividades de la vida humana: antes de construir una casa el
arquitecto utiliza un plano, los músicos representan la música en forma de notas musicales, los artistas
pintan sobre el lienzo con carboncillos antes de empezar a utilizar los óleos, etc. Unos y otros abstraen
una realidad compleja sobre unos bocetos, modelos al fin y al cabo. La OMT, por ejemplo, intenta
abstraer la realidad utilizando tres clases de modelos OO: el modelo de objetos, que describe
la estructura estática; el modelo dinámico, con el que describe las relaciones temporales entre objetos; y
el modelo funcional que describe las relaciones funcionales entre valores. Mediante estas tres fases de
construcción de modelos, se consigue una abstracción de la realidad que tiene en sí misma información
sobre las principales características de ésta.

Los modelos además, al no ser una representación que incluya todos los detalles de los originales,
permiten probar más fácilmente los sistemas que modelan y determinar los errores. Según se indica en
la Metodología OMT (Rumbaugh), los modelos permiten una mejor comunicación con el cliente por
distintas razones:
 Es posible enseñar al cliente una posible aproximación de lo que será el producto final.
 Proporcionan una primera aproximación al problema que permite visualizar cómo quedará el resultado.
 Reducen la complejidad del original en subconjuntos que son fácilmente tratables por separado.

Se consigue un modelo completo de la realidad cuando el modelo captura los aspectos importantes del
problema y omite el resto. Los lenguajes de programación que estamos acostumbrados a utilizar no son
adecuados para realizar modelos completos de sistemas reales porque necesitan una especificación total
con detalles que no son importantes para el algoritmo que están implementando. En OMT se modela un
sistema desde tres puntos de vista diferentes donde cada uno representa una parte del sistema y una
unión lo describe de forma completa. En esta técnica de modelado se utilizó una aproximación al proceso
de implementación de software habitual donde se utilizan estructuras de datos (modelo de objetos),
las operaciones que se realizan con ellos tienen una secuencia en el tiempo (modelo dinámico) y se
realiza una transformación sobre sus valores (modelo funcional).

UML utiliza parte de este planteamiento obteniendo distintos puntos de vista de la realidad que modela
mediante los distintos tipos de diagramas que posee. Con la creación del UML se persigue obtener un
lenguaje que sea capaz de abstraer cualquier tipo de sistema, sea informático o no, mediante los
diagramas, es decir, mediante representaciones gráficas que contienen toda la información relevante del
sistema. Un diagrama es una representación gráfica de una colección de elementos del modelo, que
habitualmente toma forma de grafo donde los arcos que conectan sus vértices son las relaciones entre los
objetos y los vértices se corresponden con los elementos del modelo. Los distintos puntos de vista de un
sistema real que se quieren representar para obtener el modelo se dibuja dé forma que se resaltan los
detalles necesarios para entender el sistema.

Framework

Una definición de framework es la de un marco de aplicación o conjunto de bibliotecas


orientadas a la reutilización a muy gran escala de componentes software para el desarrollo
rápido de aplicaciones.

Framework de .net

El Framework de .Net es una infraestructura sobre la que se reúne todo un conjunto de


lenguajes y servicios que simplifican enormemente el desarrollo de aplicaciones. Mediante
esta herramienta se ofrece un entorno de ejecución altamente distribuido, que permite crear
aplicaciones robustas y escalables

Otra definición de Framework de .net

Es un componente de software que puede ser o es incluido en los sistemas operativos


Microsoft Windows. Provee soluciones pre-codificadas para requerimientos comunes de los
programas y gestiona la ejecución de programas escritos específicamente para este
framework.

Microsoft desea que todas las aplicaciones creadas para la plataforma Windows, sean basadas
en el .NET Framework. Su objetivo es crear un marco de desarrollo de software sencillo,
reduciendo las vulnerabilidades y aumentando la seguridad de los programas desarrollados.

Componentes de .net

Los principales componentes del marco de trabajo son:

 El conjunto de lenguajes de programación.


 La biblioteca de clases base o BCL.
 El entorno común de ejecución para lenguajes, o CLR por sus siglas en inglés.

Debido a la publicación de la norma para la infraestructura común de lenguajes (CLI


por sus siglas en inglés), el desarrollo de lenguajes se facilita, por lo que el marco de
trabajo .NET soporta ya más de 20 lenguajes de programación y es posible desarrollar
cualquiera de los tipos de aplicaciones soportados en la plataforma con cualquiera de
ellos, lo que elimina las diferencias que existían entre lo que era posible hacer con uno u
otro lenguaje.

Algunos de los lenguajes desarrollados para el marco de trabajo .NET son: C#, Visual
Basic .NET, Delphi (Object Pascal), C++, F#, J#, Perl, Python, Fortran, Prolog (existen
al menos dos implementaciones, el P#1 y el Prolog.NET2 ), Cobol y PowerBuilder.

¿Cual es la ultima versión de .net y que características tiene?

Visual Incluye una versión actualizada de CLR, compatibilidad para compilar


4.5 Studio aplicaciones Tienda Windows y las actualizaciones para WPF, WCF,
2012 WF y ASP.NET.

Que es CLR

El CLR es el verdadero núcleo del framework de .NET, entorno de ejecución en el que


se cargan las aplicaciones desarrolladas en los distintos lenguajes, ampliando el
conjunto de servicios del sistema operativo (W2k y W2003). Permite integrar proyectos
en distintos lenguajes soportados por la plataforma .Net, como C++, Visual Basic, C#,
entre otros.

La herramienta de desarrollo compila el código fuente de cualquiera de los lenguajes


soportados por .NET en un código intermedio, el CIL (Common Intermediate
Language) antes conocido como MSIL (Microsoft Intermediate Language), similar al
BYTECODE de Java. Para generarlo, el compilador se basa en la especificación CLS
(Common Language Specification) que determina las reglas necesarias para crear el
código MSIL compatible con el CLR.

Para ejecutarse se necesita un segundo paso, un compilador JIT (Just-In-Time) es el que


genera el código máquina real que se ejecuta en la plataforma del cliente. De esta forma
se consigue con .NET independencia de la plataforma de hardware. La compilación JIT
la realiza el CLR a medida que el programa invoca métodos. El código ejecutable
obtenido se almacena en la memoria caché del ordenador, siendo recompilado de nuevo
sólo en el caso de producirse algún cambio en el código fuente.

Características

Es el encargado de proveer lo que se llama código administrado, es decir, un entorno


que provee servicios automáticos al código que se ejecuta. Los servicios son variados:

 Cargador de clases: permite cargar en memoria las clases.


 Compilador MSIL a nativo: transforma código intermedio de alto nivel
independiente del hardware que lo ejecuta a código de máquina propio del
dispositivo que lo ejecuta.
 Administrador de código: coordina toda la operación de los distintos
subsistemas del Common Language Runtime.
 Recolector de basura: elimina de memoria objetos no utilizados
automáticamente.
 Motor de seguridad: administra la seguridad del código que se ejecuta.
 Motor de depuración: permite hacer un seguimiento de la ejecución del código
aún cuando se utilicen lenguajes distintos.
 Verificador de tipos: controla que las variables de la aplicación usen el área de
memoria que tienen asignado.
 Administrador de excepciones: maneja los errores que se producen durante la
ejecución del código.
 Soporte de multiproceso (hilos): permite desarrollar aplicaciones que ejecuten
código en forma paralela.
 Empaquetador de COM: coordina la comunicación con los componentes COM
para que puedan ser usados por el .NET Framework.
 Biblioteca de Clases Base que incluye soporte para muchas funcionalidades
comunes en las aplicaciones.

Los lenguajes que soporta . net son :

c/c++
c# (Csharp)
J#
visual basic

La sintaxis de estos lenguajes

Con frecuencia se resaltan los elementos de la sintaxis con colores diferentes para
facilitar su lectura. Este ejemplo está escrito en Python.
A la forma visible de un lenguaje de programación se le conoce como sintaxis. La
mayoría de los lenguajes de programación son puramente textuales, es decir, utilizan
secuencias de texto que incluyen palabras, números y puntuación, de manera similar a
los lenguajes naturales escritos. Por otra parte, hay algunos lenguajes de programación
que son más gráficos en su naturaleza, utilizando relaciones visuales entre símbolos
para especificar un programa.

La sintaxis de un lenguaje de programación describe las combinaciones posibles de los


símbolos que forman un programa sintácticamente correcto. El significado que se le da
a una combinación de símbolos es manejado por su semántica (ya sea formal o como
parte del código duro de la referencia de implementación). Dado que la mayoría de los
lenguajes son textuales, este artículo trata de la sintaxis textual.

La sintaxis de los lenguajes de programación es definida generalmente utilizando una


combinación de expresiones regulares (para la estructura léxica) y la Notación de
Backus-Naur (para la estructura gramática). Este es un ejemplo de una gramática
simple, tomada de Lisp:

expresión ::= átomo | lista


átomo ::= número | símbolo
número ::= [+-]? ['0'-'9']+
símbolo ::= ['A'-'Z'] ['a'-'z'].*
lista ::= '(' expresión* ')'

Con esta gramática se especifica lo siguiente:

 una expresión puede ser un átomo o una lista;


 un átomo puede ser un número o un símbolo;
 un número es una secuencia continua de uno o más dígitos decimales, precedido
opcionalmente por un signo más o un signo menos;
 un símbolo es una letra seguida de cero o más caracteres (excluyendo espacios);
y
 una lista es un par de paréntesis que abren y cierran, con cero o más expresiones
en medio.

Algunos ejemplos de secuencias bien formadas de acuerdo a esta gramática:

'12345', '()', '(a b c232 (1))'

No todos los programas sintácticamente correctos son semánticamente correctos.


Muchos programas sintácticamente correctos tienen inconsistencias con las reglas del
lenguaje; y pueden (dependiendo de la especificación del lenguaje y la solidez de la
implementación) resultar en un error de traducción o ejecución. En algunos casos, tales
programas pueden exhibir un comportamiento indefinido. Además, incluso cuando un
programa está bien definido dentro de un lenguaje, todavía puede tener un significado
que no es el que la persona que lo escribió estaba tratando de construir.

Usando el lenguaje natural, por ejemplo, puede no ser posible asignarle significado a
una oración gramaticalmente válida o la oración puede ser falsa:
 "Las ideas verdes y descoloridas duermen furiosamente" es una oración bien
formada gramaticalmente pero no tiene significado comúnmente aceptado.
 "Juan es un soltero casado" también está bien formada gramaticalmente pero
expresa un significado que no puede ser verdadero.

El siguiente fragmento en el lenguaje C es sintácticamente correcto, pero ejecuta una


operación que no está definida semánticamente (dado que p es un apuntador nulo, las
operaciones p->real y p->im no tienen ningún significado):

complex *p = NULL;
complex abs_p = sqrt (p->real * p->real + p->im * p->im);

Si la declaración de tipo de la primera línea fuera omitida, el programa dispararía un


error de compilación, pues la variable "p" no estaría definida. Pero el programa sería
sintácticamente correcto todavía, dado que las declaraciones de tipo proveen
información semántica solamente.

La gramática necesaria para especificar un lenguaje de programación puede ser


clasificada por su posición en la Jerarquía de Chomsky. La sintaxis de la mayoría de los
lenguajes de programación puede ser especificada utilizando una gramática Tipo-2, es
decir, son gramáticas libres de contexto. Algunos lenguajes, incluyendo a Perl y a Lisp,
contienen construcciones que permiten la ejecución durante la fase de análisis. Los
lenguajes que permiten construcciones que permiten al programador alterar el
comportamiento de un analizador hacen del análisis de la sintaxis un problema sin
decisión única, y generalmente oscurecen la separación entre análisis y ejecución. En
contraste con el sistema de macros de Lisp y los bloques BEGIN de Perl, que pueden
tener cálculos generales, las macros de C son meros reemplazos de cadenas, y no
requieren ejecución de código.

El entorno de desarrollo de .net

Visual studio . net

http://www.adrformacion.com/curso/puntonet/leccion2/entorno_desarroll
o_punto_net.htm

http://www.forosdelweb.com/f29/que-entorno-necesito-para-desarrollar-
net-123397/
Framework de . net

http://www.desarrolloweb.com/articulos/1328.php

http://ingenieriadesistemas.wordpress.com/informacion-variada/que-es-el-framework-net/

También podría gustarte