Sei sulla pagina 1di 49

UNIDAD 3:

MODELO DE
ANÁLISIS
3.1 ARQUITECTURA DE CLASES

3.2 IDENTIFICACION DE CLASES SEGÚN ESTEREOTIPOS

3.3 CLASES

3.4 DIAGRAMAS DE SECUENCIAS

3.5 DICCIONARIO DE CLASES SEGÚN MODELOS

3.6 HERRAMIENTAS CASE PARA EL ANÁLISIS


MODELO DE ANÁLSIS
Definición

El modelo de análisis es la primera


representación técnica de un
sistema y se conforma por una
serie de modelos.
¿QUE UTILIZA EL MODELO DE
ANALISIS?
Utiliza formatos en texto

Diagramas para representar los requisitos


del Software, las funciones y el
comportamiento.
Objetivo General del modelo de
Análisis
Generar una arquitectura (Estructura
del sistema) de objetos que sirva como
base para el diseño posterior del
sistema.

Dependiendo del tipo de aplicación


existen diversas arquitecturas que se
pueden utilizar.
OBJETIVOS ESPECIFICOS DEL
MODELO DE ANÁLISIS
1. Describir que requiere el cliente
2. Establecer una base para la creación de
un diseño de software

3. Definir un conjunto de requisitos que


pueda validarse una vez construido el
software.
ELEMENTOS DEL MODELO DE ANÁLISIS

 El modelo de análisis se complementa de


cuatro elementos fundamentales.

1. Elementos de escenario
2. Elementos de flujo
3. Elementos de clases
4. Elementos de comportamiento.
EN QUE AYUDA EL MODELO DE
ANÁLISIS
Por medio del modelo de análisis, el ingeniero de
software se centra primero en el qué, no en el
cómo.

¿Qué objetos manipula el sistema?


¿Qué funciones debe de desempeñar el sistema?
¿Qué comportamientos muestra el sistema?
¿Qué interfaces se definen?
¿Qué restricciones se aplican?
ANÁLISIS DE REQUISITOS
¿Para que Sirve?
 Sirve para proporcionar al diseñador de
software una representación de datos,
función y comportamiento que puede
trasladar a diseños arquitectónicos de
interfaz. Este, junto al modelo de
análisis, ofrece al desarrollador y al
cliente los medios para evaluar la
calidad una vez construido el software.
3.1 ARQUITECTURA DE CLASES
Una arquitectura puede incluir cualquier
número de dimensiones, lo cual depende
del tipo de aplicación que se desee
desarrollar.

 Una de las arquitecturas más utilizadas


es la de Modelo, Vista, Control (MVC).
Definición:

Es un enfoque de software que separa la


Parte Lógica de la parte Grafica o Interfaz de
Usuario de una aplicación

¿Porque Surge el MVC?

Surge de la necesidad de crear software mas robusto y mas


ordenado con un ciclo de vida mas adecuado.
¿Para qué fue diseñado el MVC?
Originalmente MVC fue desarrollado
para aplicaciones de escritorio, pero
ha sido ampliamente adaptado
como arquitectura para diseñar e
implementar aplicaciones web en
los principales lenguajes de
programación.
DIMENSIONES PRINCIPALES

Modelo .- Correspondiente a la información

Vista.- Correspondiente a la presentación o


interacción con el usuario

Control .- Correspondiente al
comportamiento
Modelo
Es la capa donde se trabaja con los datos,
por tanto contendrá mecanismos para
acceder a la información y también para
actualizar su estado. Los datos los tendremos
habitualmente en una base de datos, por lo
que en los modelos tendremos todas las
funciones que accederán a las tablas y harán
los correspondientes selects, updates,
inserts, etc.
Vista
Corresponde a las interfaces que se le presentan al
usuario para el manejo de la información.
Controladores
 Contiene el código necesario para responder a las
acciones que se solicitan en la aplicación, como
visualizar un elemento, realizar una compra, una
búsqueda de información, etc.
 En realidad es una capa que sirve de enlace entre las
vistas y los modelos.
3.2 IDENTIFICACIÓN DE CLASES SEGÚN ESTEREOTIPOS

Para llevar a cabo la transición del modelo de requisitos al


modelo de análisis se deben identificar los objetos necesarios
para implementar todos los casos de uso.

La arquitectura de objetos debe considerar los tres tipos de


estereotipos de objetos.

Para ello se deben identificar primero las clases borde, las


clases entidad y finalmente las de Control.
Bordes

Toda la funcionalidad especificada en las descripciones de los


casos de uso que depende directamente de los aspectos
externos del sistema, se ubica en los objetos borde, pues a
través de ellos se comunican los actores con el sistema. La
tarea de una clase borde es traducir los eventos generados por
un actor en eventos comprendidos por el sistema, y traducir los
eventos del sistema en una presentación comprensible para el
actor.

.
Las clases borde son bastante fáciles de identificar,
donde se cuenta con al menos tres estrategias:

1.Se pueden identificar con base a los actores.

2.Se pueden identificar con base en las descripciones de las


interfaces del sistema que acompañan al modelo de requisitos.

3.Se pueden identificar con base en las descripciones de los


casos de uso y extraer la funcionalidad específica a los objetos
bordes.
Entidad
Se utilizan objetos entidad para modelar la información que el
sistema debe manejar a corto y largo plazo. La información a corto
plazo existe durante la ejecución de un caso de uso, mientras que la
información a largo plazo trasciende los caso de uso, por lo que es
necesario guardarla en alguna base de datos o archivos.
Durante la identificación de objeto entidad, se encontrara que
objetos similares aparecen en varios casos de uso.
Ejemplos de Clases Entidad
Validar Usuario: Este caso de uso requiere validar información
exclusivamente guardada en el registro de usuario, lo que se hace en la
clase entidad RegistroUsuario, utiliza también por el caso de uso
RegistroUsuario.

Ofrecer Servicios: Este caso de uso administra las opciones de servicio


y no requiere de ninguna clase entidad.

Registrar Usuario: Este caso de uso requiere guardar información


exclusivamente acerca del usuario, lo que se hace en la clase entidad
RegistroUsuario.

Registrar Tarjeta: Este caso de uso requiere guardar información


exclusivamente acerca de la tarjeta del usuario lo que hace en la clase
entidad RegistroTarjeta.

 Consultar Información: Este caso de uso requiere de toda
la información relacionada con consultas. Se puede tomar
las clases del dominio del problema y quitar aquellas
relacionadas con registros y reservaciones.

 Hacer reservación: Este caso de uso requiere de la


información relacionada con reservaciones. Se pueden
tomar las clases del dominio del problema y quitar aquellas
relacionadas con registros.

 Pagar Reservación: Este caso de uso requiere de la


información relacionada con reservaciones. Dado que es
una extensión al caso de uso Hacer Reservación, no es
necesario volver a repetir todas las clases entidad, sino
más bien especificar cualquier clase adicional.
Control
En la mayoría de los casos de uso, existe un comportamiento
que no se puede asignar de forma natural a ninguno de los
otros dos tipos de objeto. Una posibilidad es repartir el
comportamiento entre los dos tipos de objetos, pero la solución
no es buena si se considera el aspecto de extensibilidad. Un
cambio en el comportamiento podría afectar varios objetos,
dificultando su modificación. Para evitar estos problemas, tal
comportamiento se asigna a objetos control.
3.3 clases
¿QUÉ ES UNA CLASE?
En la programación orientada a objetos, una clase es una construcción
que se utiliza como un modelo (o plantilla) para crear objetos de ese tipo.

Clases: son declaraciones o abstracciones de objetos, lo que significa,


que una clase es la definición de un objeto.

Cuando se programa un objeto y se definen sus características y


funcionalidades, realmente se programa una clase

Las clases se utilizan para representar entidades o conceptos,


public partial class FrmLogin : Form
{
public FrmLogin()
{
InitializeComponent();
}

private void btningresar_Click(object sender, EventArgs e)


{
DataSet ds = FLogin.ValidarLogin(txtUsuario.Text, txtPassword.Text);
DataTable dt = ds.Tables[0];
if (dt.Rows.Count > 0)
{
Usuario.Id = Convert.ToInt32(dt.Rows[0]["Id"]);
Usuario.Apellido = dt.Rows[0]["Apellido"].ToString();
Usuario.Nombre = dt.Rows[0]["Nombre"].ToString();

Usuario.Nombreusuario = dt.Rows[0]["Usuario"].ToString();
Usuario.Tipo = dt.Rows[0]["Tipo"].ToString();
Usuario.Telefono = dt.Rows[0]["Telefono"].ToString();
Usuario.Direccion = dt.Rows[0]["Direccion"].ToString();

// FrmVenta.GetIncanse().Show();
MDIPrincipal mdi = new MDIPrincipal();
mdi.Show();
this.Hide();

else
{
MessageBox.Show("Usuario y/o Contraseña incorrectos");
txtPassword.Text = "";
}
}

private void btnsalir_Click(object sender, EventArgs e)


{
Close();
}
}
}
Una clase por lo general representa un sustantivo como:
 Una persona = Clase

Instancia de la clase

Nombre
Apellidos
Edad
Sexo
Etc.

lugar

cosa
EJEMPLOS DE CLASES

Por ejemplo, los registros de los estudiantes en la


sección de un curso almacenan información similar
para cada estudiante. Se podría decir que los
estudiantes constituyen una clase.

Por ejemplo, un paquete con harina para pastel


empacado es similar a una clase ya que contiene los
ingredientes y las instrucciones para mezclar y
hornear el pastel.
PARA QUE SIRVE UN DIAGRAMA
DE CLASES
Un diagrama de clases nos permitirá
representar gráficamente y de manera
estática la estructura general de un
sistema, mostrando cada una de las clases
y sus interacciones (como herencias,
asociaciones, etc.), representadas en
forma de bloques, los cuales son unidos
mediante líneas y arcos.
Muestran que elementos interactúan
pero no que sucede cuando ellos
hacen la interacción.
ASOCIACIÓN

HERENCIA
3.4 DIAGRAMA DE SECUENCIAS
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 se modela para cada caso de uso.

Mientras que el diagrama de caso de uso permite el


modelado de una vista 'business' del escenario, el diagrama
de secuencia contiene detalles de implementación del
escenario, incluyendo los objetos y clases que se usan para
implementar el escenario, y mensajes pasados entre los
objetos.
Un diagrama de secuencia muestra los objetos que
intervienen en el escenario con líneas discontinuas
verticales, y los mensajes pasados entre los objetos
como vectores horizontales. Los mensajes se
dibujan cronológicamente desde la parte superior del
diagrama a la parte inferior; la distribución horizontal
de los objetos es arbitraria.
Los diccionarios de datos son el segundo
3.5 diccionario de clases según módulos
Diccionario de datos

componente del análisis del flujo de datos.


En sí mismos los diagramas de flujo de datos no
describen por completo el objeto de la investigación.

El diccionario de datos proporciona información


adicional sobre el sistema.
 Un diccionario de datos es una lista de todos los
elementos incluido en el conjunto de los diagramas
de flujo de datos que describen un sistema.

 Si los analistas desean conocer cuántos caracteres


hay en un dato, con qué otros nombres se le conocen
en el sistema, o en donde se utilizan dentro del
sistema deben ser capaces de encontrar la respuesta
en un diccionario de datos desarrollado
apropiadamente.
El diccionario de dato se desarrolla durante el análisis de flujo
de datos y ayuda el analista involucrado en la determinación
de los requerimientos de sistemas.

Para comprender mejor el significado de un diccionario de


datos, puede considerarse su contenido como "datos acerca
de los datos"; es decir, descripciones de todos los demás
objetos (archivos, programas, informes, sinónimos...)
existentes en el sistema. Un diccionario de datos almacena la
totalidad de los diversos esquemas y especificaciones de
archivos, así como sus ubicaciones. Si es completo incluye
también información acerca de qué programas utilizan qué
datos, y qué usuarios están interesados en unos u otros
informes. Por lo general, el diccionario de datos está integrado
en el sistema de información que describe.
3.6 Herramientas CASE para el análisis

El término CASE (computer-aided software


engineering) significa “INGENIERÍA DE
SOFTWARE ASISTIDA POR COMPUTADORA”,
y abarca el uso de un método asistido por
computadora para organizar y controlar el
desarrollo de software, especialmente en
proyectos grandes o complejos, que involucran
muchos componentes de software y recursos
humanos
Para que sirven las herramientas
case
Permiten crear y modificar diagramas
Entidad-Relación, de flujo de datos, de
clases, etc. Son importantes también las
herramientas de prototipado. Éstas
incluyen diseñadores de formularios, de
menúes, de informes, y lenguajes de
especificación ejecutables.
Clasificación de las Herramientas CASE

HERRAMIENTAS DE ANÁLISIS Y DISEÑO

Permiten crear y modificar diagramas Entidad Relación, de flujo


de datos, de clases, etc. Son importantes también las
herramientas de prototipado. Éstas incluyen diseñadores de
formularios, de menúes, de informes, y lenguajes de
especificación ejecutables.

GENERACIÓN DE CÓDIGO Y DOCUMENTACIÓN

Generan código a partir de las especificaciones de diseño.


Además, soportan la generación automatizada de
documentación a partir de la información almacenada.
HERRAMIENTAS DE PRUEBA

 En esta etapa se lleva a cabo la prueba de escritorio


para verificar el resultado de dicho trabajo o problema.

HERRAMIENTAS DE GESTIÓN DE LA CONFIGURACIÓN.

En este apartado se lleva a cabo los requerimientos y


posteriormente realizar la configuración o modificación
del sistema.
HERRAMIENTAS DE INGENIERÍA INVERSA

Ingeniería inversa de datos: Extraen información de código fuente y


construye diagramas orientados a objetos o Entidad-Relación.

Ingeniería inversa de procesos: Permiten aislar la lógica de las entidades y


las reglas del negocio a partir del código.

Reestructuración de código fuente: Modifican el formato o implantan un


formato estándar.

Re documentación: Permiten generar diagramas para mejorar la


comprensión del código.

Análisis de código: Generan, por ejemplo, la indentación automática.


 CLASES DE HERRAMIENTAS DE DISEÑO
- Sistemas de prototipos de investigación
-Herramientas CASE comerciales específicas
- Herramientas CASE generales.

EJEMPLOS DE HERRAMIENTAS CASE

ERwin
EasyCASE
Oracle Designer
PowerDesigner
System Architect
SNAP