8
 Diseño del sistema en base a procesos Actividades y casos de uso . La experiencia y práctica de quien hace los diagramas y su respectiva descripción marca el punto de vista o tendencia, que genera una manera particular de poner énfasis en determinados elementos. Por ejemplo si soy un desarrollador, veo en todas partes menús, tablas, opciones, clics y demás elementos es decir no analizo un problema y doy su solución sino que de una vez pienso en como debería correr la apliación. 2. El modelo de casos de uso, permite hacer una mejor toma de requerimientos y clarificar la funcionalidad del sistema, es decir que espera el usuario que haga el sistema, no tanto como lo haga o con que. 3. Por lo tanto una descripción de un caso de uso específico se debe orientar hacia que es lo que ese usuario haría allí en interacción con un sistema. Por lo tanto si tiene un ca so de uso llamado “Registrar inventario”, en la descripción no  puede tener un paso que diga “el usuario registra el inventario” y listo, puesto que eso e s precisamente lo que le preguntan, como se registra, (los pasos), los datos que se manipulan y que operaciones se hacen con ellos. Para que posteriormente un desarrollador pueda crear las pantallas y menús… Recuerde que usted como tecnologo o ingeniero, entra a ser parte de un equipo, no lo hace todo usted y los demás necesitan especifaciones claras para poder hacer su trabajo. Una buena descripción de casos de uso, en relación con un buen modelo de clases facilita inmediatamente los diagras de secuencias y actividades y por lo tanto favorecen un óptimo desarrollo de la aplicación. Un caso de uso es una descripción de los pasos o las actividades que deberán realizarse para llevar a cabo algún proceso. Los personajes o entidades que participarán en un caso de uso se denominan actores.En el contexto de  ingeniería del software , un caso de uso es una secuencia de interacciones que se desarrollarán entre un sistema y sus actores en respuesta a un evento que inicia un actor principal sobre el propio sistema. Los diagramas de casos de uso sirven para especificar la comunicación y el comportamiento de un sistema mediante su interacción con los usuarios y/u otros sistemas. O lo que es igual, un diagrama que muestra la relación entre los actores y los casos de uso en un sistema. Una relación es una conexión entre los elementos del modelo, por ejemplo la especialización y la generalización son relaciones. Los diagramas de casos de uso se utilizan para ilustrar los requerimientos del sistema al mostrar cómo reacciona a eventos que se producen en su ámbito o en él mismo. Los más comunes para la captura de  requisitos funcionales , especialmente con el desarrollo del paradigma de la  programación orientada a objetos , donde se originaron, si bien puede utilizarse con resultados igualmente satisfactorios con otros paradigmas de programación.

Diseño del sistema en base a procesos

Embed Size (px)

Citation preview

Page 1: Diseño del sistema en base a procesos

5/14/2018 Diseño del sistema en base a procesos - slidepdf.com

http://slidepdf.com/reader/full/diseno-del-sistema-en-base-a-procesos 1/8

 

Diseño del sistema en base a procesos

Actividades y casos de uso

. La experiencia y práctica de quien hace los diagramas y su respectiva descripción marca el

punto de vista o tendencia, que genera una manera particular de poner énfasis endeterminados elementos. Por ejemplo si soy un desarrollador, veo en todas partes menús,

tablas, opciones, clics y demás elementos es decir no analizo un problema y doy susolución sino que de una vez pienso en como debería correr la apliación.

2. El modelo de casos de uso, permite hacer una mejor toma de requerimientos y clarificarla funcionalidad del sistema, es decir que espera el usuario que haga el sistema, no tanto

como lo haga o con que.

3. Por lo tanto una descripción de un caso de uso específico se debe orientar hacia que es lo

que ese usuario haría allí en interacción con un sistema.

Por lo tanto si tiene un caso de uso llamado “Registrar inventario”, en la descripción no puede tener un paso que diga “el usuario registra el inventario” y listo, puesto que eso es

precisamente lo que le preguntan, como se registra, (los pasos), los datos que se manipulany que operaciones se hacen con ellos.

Para que posteriormente un desarrollador pueda crear las pantallas y menús…

Recuerde que usted como tecnologo o ingeniero, entra a ser parte de un equipo, no lo hace

todo usted y los demás necesitan especifaciones claras para poder hacer su trabajo.

Una buena descripción de casos de uso, en relación con un buen modelo de clases facilitainmediatamente los diagras de secuencias y actividades y por lo tanto favorecen un óptimodesarrollo de la aplicación.

Un caso de uso es una descripción de los pasos o las actividades que deberán realizarse para

llevar a cabo algún proceso. Los personajes o entidades que participarán en un caso de uso

se denominan actores.En el contexto de ingeniería del software, un caso de uso es una

secuencia de interacciones que se desarrollarán entre un sistema y sus actores en respuesta aun evento que inicia un actor principal sobre el propio sistema. Los diagramas de casos de

uso sirven para especificar la comunicación y el comportamiento de un sistema mediante su

interacción con los usuarios y/u otros sistemas. O lo que es igual, un diagrama que muestra

la relación entre los actores y los casos de uso en un sistema. Una relación es una conexiónentre los elementos del modelo, por ejemplo la especialización y la generalización son

relaciones. Los diagramas de casos de uso se utilizan para ilustrar los requerimientos del

sistema al mostrar cómo reacciona a eventos que se producen en su ámbito o en él mismo.

Los más comunes para la captura de requisitos funcionales, especialmente con el desarrollodel paradigma de la programación orientada a objetos, donde se originaron, si bien puede

utilizarse con resultados igualmente satisfactorios con otros paradigmas de programación.

Page 2: Diseño del sistema en base a procesos

5/14/2018 Diseño del sistema en base a procesos - slidepdf.com

http://slidepdf.com/reader/full/diseno-del-sistema-en-base-a-procesos 2/8

 

 

Interfaces de usuarios

Las interfaces básicas de usuario son aquellas que incluyen elementos como menús,

ventanas, teclado, ratón, los beeps y algunos otros sonidos que la computadora hace, y engeneral, todos aquellos canales por los cuales se permite la comunicación entre el serhumano y la computadora. La mejor interacción humano-máquina a través de una adecuada

interfaz (Interfaz de Usuario), que le brinde tanto comodidad, como eficiencia.

[editar] Tipos de interfaces de usuario

Dentro de las Interfaces de Usuario se puede distinguir básicamente tres tipos:

A) Una interfaz de hardware, a nivel de los dispositivos utilizados para ingresar, procesar

y entregar los datos: teclado, ratón y pantalla visualizadora.

B) Una interfaz de software, destinada a entregar información acerca de los procesos y

herramientas de control, a través de lo que el usuario observa habitualmente en la pantalla.

C) Una interfaz de Software-Hardware, que establece un puente entre la máquina y las

personas, permite a la máquina entender la instrucción y a el hombre entender el códigobinario traducido a información legible.

[editar] Funciones principales

Sus principales funciones son las siguientes:

  Puesta en marcha y apagado.

  Control de las funciones manipulables del equipo.

  Manipulación de archivos y directorios.

  Herramientas de desarrollo de aplicaciones.

  Comunicación con otros sistemas.

  Información de estado.

  Configuración de la propia interfaz y entorno.

  Intercambio de datos entre aplicaciones.

  Control de acceso.

  Sistema de ayuda interactivo.

[editar] Tipos de interfaces de usuario

[editar] Según la forma de interactuar del usuario

Atendiendo a como el usuario puede interactuar con una interfaz, nos encontramos con

varios tipos de interfaces de usuario:

Page 3: Diseño del sistema en base a procesos

5/14/2018 Diseño del sistema en base a procesos - slidepdf.com

http://slidepdf.com/reader/full/diseno-del-sistema-en-base-a-procesos 3/8

 

  Interfaces alfanuméricas (intérpretes de comandos) que solo presentan texto.

  Interfaces gráficas de usuario (GUI, graphic user interfaces), las que permiten

comunicarse con el ordenador de una forma muy rápida e intuitiva representandográficamente los elementos de control y medida.

  Interfaces táctiles, que representan gráficamente un "panel de control" en una

pantalla sensible que permite interactuar con el dedo de forma similar a si seaccionara un control físico.

[editar] Según su construcción

Pueden ser de hardware o de software: 

  Interfaces de hardware: Se trata de un conjunto de controles o dispositivos que

permiten que el usuario intercambie datos con la máquina, ya sea introduciéndolos

(pulsadores, botones, teclas, reguladores, palancas, manivelas, perillas) o leyéndolos(pantallas, diales, medidores, marcadores, instrumentos).

  Interfaces de software: Son programas o parte de ellos, que permiten expresarnuestros deseos al ordenador o visualizar su respuesta.

Diseño de lógica

El diseño lógico es el proceso de construir un esquema de la información que utiliza la

empresa, basándose en un modelo de base de datos específico, independiente del SGBD

concreto que se vaya a utilizar y de cualquier otra consideración física.

En esta etapa, se transforma el esquema conceptual en un esquema lógico que utilizará lasestructuras de datos del modelo de base de datos en el que se basa el SGBD que se vaya a

utilizar, como puede ser el modelo relacional, el modelo de red, el modelo jerárquico o el

modelo orientado a objetos. Conforme se va desarrollando el esquema lógico, éste se va

probando y validando con los requisitos de usuario.

La normalización es una técnica que se utiliza para comprobar la validez de los esquemaslógicos basados en el modelo relacional, ya que asegura que las relaciones (tablas)

obtenidas no tienen datos redundantes. Esta técnica se presenta en el capítulo dedicado al

diseño lógico de bases de datos.

El esquema lógico es una fuente de información para el diseño físico. Además, juega unpapel importante durante la etapa de mantenimiento del sistema, ya que permite que los

futuros cambios que se realicen sobre los programas de aplicación o sobre los datos, serepresenten correctamente en la base de datos.

Tanto el diseño conceptual, como el diseño lógico, son procesos iterativos, tienen un puntode inicio y se van refinando continuamente. Ambos se deben ver como un proceso de

aprendizaje en el que el diseñador va comprendiendo el funcionamiento de la empresa y el

Page 4: Diseño del sistema en base a procesos

5/14/2018 Diseño del sistema en base a procesos - slidepdf.com

http://slidepdf.com/reader/full/diseno-del-sistema-en-base-a-procesos 4/8

 

significado de los datos que maneja. El diseño conceptual y el diseño lógico son etapas

clave para conseguir un sistema que funcione correctamente. Si el esquema no es una

representación fiel de la empresa, será difícil, sino imposible, definir todas las vistas deusuario (esquemas externos), o mantener la integridad de la base de datos. También puede

ser difícil definir la implementación física o el mantener unas prestaciones aceptables del

sistema. Además, hay que tener en cuenta que la capacidad de ajustarse a futuros cambioses un sello que identifica a los buenos diseños de bases de datos. Por todo esto, es

fundamental dedicar el tiempo y las energías necesarias para producir el mejor esquema

que sea posible.

Clases y objetos

Objetos 

  Un objeto es una cosa tangible, algo a que se puede aprehender intelectualmente o

algo hacia lo que se puede dirigir una acción o pensamiento.

  Un objeto representa un item individual e identificable, o una entidad real oabstracta, con un papel definido en el dominio del problema

  Un objeto tiene:1.  Estado

2.  Comportamiento

3.  Identidad

La estructura y el comportamiento de objetos similares se definen en sus clases

comunes. El término objeto y ejemplo (instance) de una clase son intercambiables.

Estado de un objeto 

El estado de un objeto abarca todas las propiedades del objeto, y los valores actuales de

cada una de esas propiedades. Las propiedades de los objetos suelen ser estáticas, mientraslos valores que toman estas propiedades cambian con el tiempo.

  El hecho de que los objetos tengan estado implica que ocupan un espacio, ya en elmundo físico , ya en la memoria del ordenador.

  El estado de un objeto está influido por la historia del objeto.

  No deben confundirse los objetos, que existen en el tiempo, son mutables, tienen

estado, pueden ser creados, destruidos y compartidos..., con los valores (los

asignados a una variable, por ejemplo) que son cantidades con las propiedades deser atemporales, inmutables.

  El estado de un objeto representa el efecto acumulado de su comportamiento.

Identidad de un objeto

Identidad es la propiedad de un objeto que lo lleva a distinguirse de otros.

Page 5: Diseño del sistema en base a procesos

5/14/2018 Diseño del sistema en base a procesos - slidepdf.com

http://slidepdf.com/reader/full/diseno-del-sistema-en-base-a-procesos 5/8

 

 Comportamiento de un objeto 

Comportamiento es como un objeto actua y reacciona, en términos de sus cambios de

estado y de los mensajes que intercambia.

El comportamiento de un objeto representa su actividad externamente visible y testable.

Son las operaciones que una clase realiza (llamadas también mensajes) las que dan cuentade como se comporta la clase. Por operación se denota el servicio que una clase ofrece a sus

clientes. Un objeto puede realizar cinco tipos de operaciones sobre otro, con el proposito de

provocar una reacción:

1.  Modificador: altera el estado de un objeto.

2.  Selector: accede al estado de un objeto, sin alterarlo.

3.  Iterador: permite a todas las partes de un objeto ser accedidas en un orden.4.  Constructor: crea un objeto y/o inicializa su estado.

5. 

Destructor: libera el estado de un objeto y/o destruye el objeto.

C++ soporta, ademas de las operaciones, subprogramas libres. En la terminología de C++ 

las operaciones que un cliente puede realizar sobre un objeto se declaran como  funciones

miembro.

Relaciones entre objetos 

Las relaciones entre objetos abarcan las operaciones, resultados y suposiciones que unos

hacen sobre los otros.

1. 

Links Son conexiones físicas o conceptuales entre objetos. Denota la asociaciónespecífica por la que un objeto (cliente) usa o solicita el servicio de otro objeto

(servidor). El paso de mensajes entre objetos los sincroniza.2.  Agregaciones Denota relaciones todo/parte, con capacidad para governar desde el

todo las partes. Es equivalente a la relación "tener un". El todo puede contener a la

parte.

Agregación es conveniente en las ocasiones en que el encapsulamiento de las partes esprioritario. Si se requiere que las relaciones entre objetos esten vagamente acopladas, se

utilizan links.

Clases 

Una clase es un conjunto de objetos que comparten una estructura y comportamientocomunes.

  Clase representa una abstracción, la esencia que comparten los objetos.

  Un objeto es un ejemplo de una clase.

Page 6: Diseño del sistema en base a procesos

5/14/2018 Diseño del sistema en base a procesos - slidepdf.com

http://slidepdf.com/reader/full/diseno-del-sistema-en-base-a-procesos 6/8

 

  Un objeto no es una clase, y una clase no es un objeto (aunque puede serlo, p.e. en

Smalltalk).

  Las clases actuan como intermediarias entre una abstracción y los clientes quepretenden utilizar la abstracción. De esta forma, la clase muestra:

1.  visión externa de comportamiento (interface), que enfatiza la abstracción

escondiendo su estructura y secretos de comportamiento.2.  visión interna (implementación), que abarca el código que se ofrece en la

interface de la clase.

Relaciones entre clases 

Representan tipos de compartición entre clases, o relaciones semánticas.

1.  Asociación. Indica relaciones de mandato bidireccionales (Punteros ocultos en

C++). Conlleva dependencia semántica y no establece una dirección de

dependencia. Tienen cardinalidad.2.  Herencia. Por esta relación una clase (subclase) comparte la estructura y/ocomportamiento definidos en una (herencia simple) o más (herencia múltiple)

clases, llamadas superclases.

o  Representa una relación del tipo "es un" entre clases.

o  Una subclase aumenta o restringe el comportamiento o estructura de la

superclase (o ambas cosas).

o  Una clase de la que no existen ejemplos se denomina {\it abstracta}.

o  C++ declara como virtuales todas aquellas funciones que quiere modificar

en sus subclases.

3.  Agregación. Representa una relación del tipo "tener un" entre clases. Cuando la

clase contenida no existe independientemente de la clase que la contiene sedenomina agregación por valor y además implica contenido físico, mientras que si

existe independientemente y se accede a ella indirectamente, es agregación porreferencia.

4.  Uso. Es un refinamiento de la asociación donde se especifica cual es el cliente y

cual el servidor de ciertos servicios, permitiendo a los clientes acceder sólo a las

interfaces públicas de los servidores, ofreciendo mayor encapsulación de la

información.5.  Ejemplificación Se usa en lenguajes que soportan genericidad (declaración de

clases parametrizadas y argumentos tipo template). Representa las relaciones entre

las clases parametrizadas, que admiten parámetros formales, y las clases obtenidas

cuando se concretan estos parámetros formales, ejemplificados o inicializados conun ejemplo.

6.  Metaclases Son clases cuyos ejemplos son a su vez clases. No se admiten en C++.

Relaciones entre clases y objetos 

  Todo objeto es el ejemplo de una clase, y toda clase tiene 0 ó más objetos.

Page 7: Diseño del sistema en base a procesos

5/14/2018 Diseño del sistema en base a procesos - slidepdf.com

http://slidepdf.com/reader/full/diseno-del-sistema-en-base-a-procesos 7/8

 

  Mientras las clases son estáticas, con semántica, relaciones y existencia fijas

previamente a la ejecución de un programa, los objetos se crean y destruyen

rápidamente durante la actividad de una aplicación.

El diseño de clases y objetos es un proceso incremental e iterativo. Debe asegurar la

optimización en los parámetros:

1.  Acoplamiento: Grado de acoplamiento entre módulos.2.  Cohesión: Mide el grado de conectividad entre elementos de un módulo, y entre

objetos de una clase.

3.  Suficiencia: Indica que las clases capturan suficientes características de laabstracción para conseguir un comportamiento e interacción eficiente y con sentido.

4.  Completitud: Indica que la interface de la clase captura todo el significado

característico de una abstracción, escrito en el mínimo espacio.

5.  Primitividad: Las operaciones deben implementarse si dan acceso a unarepresentación fundamental de la abstracción. Cuales son operaciones primitivas y

cuales no (se pueden realizar a partir de otras) es un asunto subjetivo y afecta a laeficiencia en la implementación.

Interaccion

Estados y transiciones

Durante su vida, un proceso puede pasar por una serie de estados discretos, algunos de ellosson:

  En ejecución: El proceso ocupa la CPU actualmente, es decir, se está ejecutando.

  Listo o preparado: El proceso dispone de todos los recursos para su ejecución, sólo

le falta la CPU.

  Bloqueado: Al proceso le falta algún recurso para poder seguir ejecutándose,además de la CPU. Por recurso se pueden entender un dispositivo, un dato, etc. El

proceso necesita que ocurra algún evento que le permita poder proseguir su

ejecución.

Hay otros estados de los procesos, pero en la presente exposición se tratarán estos tres. Por

sencillez, se considera un sistema con una sola CPU, aunque no es difícil la extensión a

múltiples procesadores. Solamente puede haber un proceso en ejecución a la vez, peropueden existir varios listos y varios pueden estar bloqueados. Así pues, se forman una lista

de procesos listos y otra de procesos bloqueados. La lista de procesos listos se ordena por

prioridad, de manera que el siguiente proceso que reciba la CPU será el primero de la lista.La lista de procesos bloqueados normalmente no está ordenada; los procesos no se

desbloquean (es decir, no pasan a ser procesos listos) en orden de prioridad, sino que lo

hacen en el orden de ocurrencia de los eventos que están esperando. Como se verá másadelante, hay situaciones en las cuales varios procesos pueden bloquearse esperando la

Page 8: Diseño del sistema en base a procesos

5/14/2018 Diseño del sistema en base a procesos - slidepdf.com

http://slidepdf.com/reader/full/diseno-del-sistema-en-base-a-procesos 8/8

 

ocurrencia del mismo evento; en tales casos es común asignar prioridades a los procesos

que esperan.

Transiciones de estado de los procesos

A continuación se dan ejemplos de eventos que pueden provocar transiciones de estado enun proceso en este modelo de tres estados. La mayoría de estos eventos se discutirán con

profundidad a lo largo del curso:

  De ejecución á Bloqueado: al iniciar una operación de E/S, al realizar una operaciónWAIT sobre un semáforo a cero (en el tema de procesos concurrentes se estudiarán

los semáforos).

  De ejecución á Listo: por ejemplo, en un sistema de tiempo compartido, cuando el

proceso que ocupa la CPU lleva demasiado tiempo ejecutándose continuamente

(agota su cuanto) el sistema operativo decide que otro proceso ocupe la CPU,pasando el proceso que ocupaba la CPU a estado listo.

 De Listo á en ejecución: cuando lo requiere el planificador de la CPU (veremos elplanificador de la CPU en el tema de planificación de procesos).

  De Bloqueado á Listo: se dispone del recurso por el que se había bloqueado el

proceso. Por ejemplo, termina la operación de E/S, o se produce una operación

SIGNAL sobre el semáforo en que se bloqueó el proceso, no habiendo otrosprocesos bloqueados en el semáforo.

Obsérvese que de las cuatro transiciones de estado posibles, la única iniciada por el procesode usuario es el bloqueo, las otras tres son iniciadas por entidades externas al proc