Diseño Del Sistema en Base A Procesos

March 3, 2023 | Author: Anonymous | Category: N/A
Share Embed Donate


Short Description

Download Diseño Del Sistema en Base A Procesos...

Description

 

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 todasypartes tablas, opciones, clics y demás elementos es decir no analizo un problema doy sumenús, 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 caso 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 es es 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  de ingeniería del software, 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  de requisitos funcionales, funcionales, especialmente con el desarrollo del paradigma de la  la programación objetos a objetos, dondeparadigmas se originaron, si bien puede utilizarse con resultados igualmenteorientada satisfactorios con, otros de programación.

 

 

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 en general, todos aquellos canales por los cuales se permite la comunicación entre el ser humano 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 [editar 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ódigo binario traducido a información legible.

[editar 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 editar]] Tipos de interfaces de usuario [editar] 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:

 

   

Interfaces alfanuméricas (intérpretes de comandos) que solo presentan texto. Interfaces gráficas de usuario (GUI, GUI, graphic user interfaces), las que permiten comunicarse con el ordenador de una forma muy rápida e intuitiva representando grá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 se accionara un control físico.







[editar editar]] Según su construcción Pueden ser de  de hardware hardware  o de  de software software::   

Interfaces de hardware: Se trata de un conjunto de controles o  o  dispositivos 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). Son programas  programas o parte de ellos, que permiten expresar   Interfaces de software: Son  nuestros 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á las estructuras 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 esquemas ló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 un papel 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, se representen correctamente en la base de datos. Tanto el diseño conceptual, como el diseño lógico, son procesos iterativos, tienen un punto de 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

 

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 de usuario (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 cambios es 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 o abstracta, con un papel definido en el dominio del problema   Un objeto tiene:







 

1. 2.  Estado 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, mientras los valores que toman estas propiedades cambian con el tiempo.  

El hecho de que los objetos tengan estado implica que ocupan un espacio, ya en el mundo 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 de ser 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.

 

 

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 cuenta de 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.  2.  3.  4.  5. 

Modificador: altera el estado de un objeto. Selector: accede al estado de un objeto, sin alterarlo. Iterador: permite a todas las partes de un objeto ser accedidas en un orden. Constructor: crea un objeto y/o inicializa su estado. 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ón especí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 es prioritario. 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 comportamiento comunes.    

 

Clase representa una abstracción, la esencia que comparten los objetos. Un objeto es un ejemplo de una clase.

 

 

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 que pretenden 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/o comportamiento 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. Una subclase aumenta o restringe el comportamiento o estructura de la o  superclase (o ambas cosas). Una clase de la que no existen ejemplos se denomina {\it abstracta}. o  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 se denomina 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 por referencia. 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 accederde sólo interfaces públicas de los servidores, ofreciendo mayor encapsulación la a las 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 con un 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.

 

 



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 la abstracció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 una representació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 la eficiencia en la implementación. Interaccion

Estados y transiciones

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

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, pero pueden 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ás adelante, hay situaciones en las cuales varios procesos pueden bloquearse esperando la

 

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 en un 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ón WAIT 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 el planificador 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 otros procesos bloqueados en el semáforo.









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

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF