Estructura de casos de
uso
- ¿Qué
formato se emplea para documentar casos de uso?
Existen dos formas principales de documentar un caso de
uso:
a.
Un diagrama en UML:
Un diagrama en UML: El Lenguaje Unificado de Modelado (UML) provee de un grupo
de elementos gráficos para representar un Caso de Uso, de manera explícita,
sucinta y esquemática. Utiliza un monito para representar a los actores, una
elipse con una leyenda para representar un caso de uso y una línea recta entre
un actor y un caso de uso para representar la asociación entre ellos.
b.
Un documento detallado: Se utiliza una plantilla (en un procesador de
textos) con un formato de documento a llenar.
Caso de uso:
|
Nombre del caso de uso
|
Actores:
|
Actores primarios y secundarios que
interaccionan con el caso de uso
|
Tipo:
|
Tipo de flujo Básico, inclusión, extensión,
generalización o algún otro
|
Propósito
|
Razón de ser del caso de uso
|
Resumen
|
Resumen del caso de uso
|
Precondiciones
|
Condiciones que deben satisfacerse para
poder ejecutar el caso de uso.
|
Flujo Principal
|
El flujo de eventos más importante del caso
de uso, donde dependiendo de las acciones de los actores se continuará con
alguno de los subflujos.
|
Subflujos
|
Los flujos secundarios del caso de uso,
numerados como (S-1), (S-2), etc.
|
Excepciones
|
Excepciones que pueden ocurrir durante el
caso de uso, numerados como (E-1), (E-2), etc.
|
Actor:
|
Nombre del Actor
|
Caso de Uso:
|
Nombre de los casos de uso en los cuales
participa
|
Tipo:
|
Primario o Secundario
|
Descripción
|
Breve descripción del autor
|
Documentar casos de
usos no es una tarea fácil que se pueda dominar de un día para otro, requiere
de tiempo, disciplina y experiencia, sin embargo podemos definir una serie de
pasos identificables para escribir los casos de uso.
1.
Identifique a todos
los actores que intervienen.
2.
Identifique todas las
tareas que realizará cada actor.
3.
Agrupe las tareas
repetidas.
4.
Genere el diagrama(s)
UML que represente esquemáticamente los Casos de Uso.
5.
De una prioridad a
cada caso de uso.
6.
Por cada caso de uso
escriba un documento detallado siguiendo la plantilla especificada
anteriormente.
·
¿Qué es el análisis y diseño de software orientado a
objetos?
El análisis y diseño orientado a objetos (ADOO) es
un enfoque de la ingeniería de software que modela un sistema como un grupo de
objetos que interactúan entre sí. Este enfoque representa un dominio en
términos de conceptos compuestos por verbos y sustantivos, clasificados de
acuerdo a su dependencia funcional. En éste método de análisis y diseño se crea
un conjunto de modelos utilizando una notación acordada como, por ejemplo, el
lenguaje unificado de modelado (UML). ADOO aplica técnicas de modelado de objetos
para analizar los requerimientos para un contexto - por ejemplo, un sistema de
negocio, un conjunto de módulos de software - y para diseñar una solución para
mejorar los procesos involucrados. No está restringido al diseño de programas
de computadora, sino que cubre sistemas enteros de distinto tipo. Las
metodologías de análisis y diseño más modernas son casos de uso guiados a
través de requerimientos, diseño, implementación, pruebas, y despliegue.
·
¿Cuáles son sus principales características?
Abstracción: Son las características esenciales de un objeto, donde se
capturan sus comportamientos.
Encapsulamiento: Reúne todos los elementos que pueden considerarse
pertenecientes a una misma entidad, al mismo nivel de abstracción.
Principio de ocultación:
Cada objeto está aislado del
exterior, en donde expone una interfaz a otros objetos que específica cómo
pueden interactuar con los objetos de la clase.
Polimorfismo: Comportamientos diferentes el cual están asociados a
objetos distintos, pueden compartir el mismo nombre, al llamarlos por ese
nombre se utilizará el comportamiento correspondiente al objeto que se esté
usando.
Herencia: Organiza y facilita el polimorfismo y el
encapsulamiento permitiendo a los objetos ser definidos y creados como tipos especializados
de objetos preexistentes.
Recolección de basura: Es la técnica por la cual el ambiente de Objetos se
encarga de destruir automáticamente los Objetos que hayan quedado sin ninguna
referencia a ellos.
·
Ventajas de la POO:
Ø
Fomenta la reutilización
y extensión del código.
Ø
Permite crear sistemas
más complejos.
Ø
Agiliza el desarrollo
de software.
Ø
Facilita el trabajo en
equipo.
Ø
Facilita el
mantenimiento del software.
Ø
Reduce el costo de
desarrollo de los Sistemas de Información.
Ø Son efectivos en interfaz gráfica de usuario.
Ø Son efectivos en bases de datos.
Ø La notación de diseño O-O combina aspectos tanto de
los diagramas de entidad-relación y de flujo de datos.
·
¿Qué lenguajes de programación están orientados a esta
metodología de desarrollo?
Ø Ada: se usa en entornos en los que se necesita una
gran seguridad y fiabilidad, como en la defensa.
Ø C++: está considerado como el lenguaje más potente,
debido a que permite trabajar tanto a alto como a bajo nivel, aunque obliga a
hacer casi todo manualmente, al igual que C, lo que hace difícil aprendizaje.
Ø C#: combina el control a bajo nivel de lenguajes
como C y la velocidad de programación de lenguajes como Visual Basic.
Ø VB.NET: es una versión de Visual Basic destinada al
desarrollo de aplicaciones .NET. Visual Basic apareció en el año 1991 como una
evolución del QuickBasic que fabricaba Microsoft.
Ø Clarion: está orientado a la programación de
aplicaciones de bases de datos. Es compatible con una gran cantidad de
ellas incluyendo todas las de formato
SQL, ADO, y XML, además puede generar salidas a HTML, XML, archivos de texto y
PDF, entre otros.
Ø Delphi: entorno de desarrollo de software diseñado
para programación general con especial énfasis en la programación visual. En Delphi
se utiliza como lenguaje una versión moderna de Pascal llamada Object Pascal.
Es producido por Borland. Delphi da la posibilidad de producir archivos
ejecutables para Windows, GNU/Linux y la plataforma .NET.
Ø Eiffel: fue creado en 1985 por Bertrand Meyer. Se
centra en la construcción de software robusto. Su lenguaje es parecido al de Pascal.
Ø Java: fue
desarrollado por James Gosling y sus compañeros de Sun Microsystems al
inicio de la década de 1990. A diferencia de los lenguajes de programación convencionales,
Java es compilado en un bytecode que es ejecutado por una máquina virtual Java.
El lenguaje toma mucha de su sintaxis de C y C++, pero tiene un modelo de
objetos mucho más simple y elimina herramientas como los punteros.
Ø Lexico: es un lenguaje en español que busca
facilitar el aprendizaje y la enseñanza de la programación orientada a objetos.
Permite experimentar con los algoritmos diseñados sin tener que dedicar meses a
aprender un lenguaje de programación.
Ø Objective-C: Es el principal lenguaje de
programación en Mac OS X. Mac OS X es el sistema operativo de la familia de
ordenadores Macintosh.
Ø Ocaml: nace de la evolución del lenguaje CAML,
abreviación de Categorical Abstract Machine Language), al integrarsele la
programación con objetos.
Ø Oz: es un lenguaje multi-paradigma. Contiene la
mayoría de los conceptos de los principales paradigmas de programación,
incluyendo programación lógica, funcional, imperativa, orientada a objetos, con
restricciones, distribuida y concurrente.
Ø PHP: es un lenguaje de programación usado
generalmente para la creación de contenidos en webs. El nombre es el acrónimo
recursivo de "PHP: Hypertext Preprocessor", inicialmente PHP Tools,
o, Personal Home Page Tools. Se trata de un lenguaje interpretado.
Ø PowerBuilder: herramienta de desarrollo de clase
empresarial creada por la empresa Sybase. PowerBuilder permite el desarrollo de
diferentes tipos de aplicaciones y componentes para arquitecturas
cliente/servidor, distribuídas y Web. Las aplicaciones desarrolladas con PowerBuilder
solo pueden ser ejecutadas en el sistema operativo Microsoft Windows, aunque
cierto tipo de componenetes, llamados componentes no visuales o NVOs, y que
contienen sólo lógica de aplicación, se pueden ejecutar en otros sistemas
operativos como Unix.
Ø Python: es un lenguaje de programación interpretado
e interactivo, capaz de ejecutarse en gran cantidad de plataformas. Creado por
Guido van Rossum en 1990, su nombre procede de la afición de su creador por los
humoristas británicos Monty Python. El principal objetivo de este lenguaje es
la facilidad, tanto de lectura, como de diseño.
Ø Ruby: es un lenguaje de programación interpretado
de muy alto nivel. Fue creado en Japón en el año 1993 por Yukihiro Matz
Matsumoto.
Ø Smalltalk: es considerado como el primer de los
lenguajes orientado a objetos. Dentro de Smalltalk todo es un objeto, incluidos
los números reales o el propio entorno Smalltalk.
No todos estos lenguajes son igualmente eficaces. Existen lenguajes como OOCOBOL,
OOLISP, OOPROLOG y Object REXX que han sido desarrollados añadiendo a sus
versiones anteriores las características de la orientación a objetos, como ya
pasara con C++.
·
¿Qué diferencia existe con la técnica de programación
procedimental o imperativa?
Programación
Imperativa: En la programación
imperativa se describen sentencias que modifican el estado de un programa.
En muchos sentidos la programación imperativa es la programación natural para
las CPUs que se basan en ese paradigma al nivel más básico.
En este paradigma se expresa como debe
solucionarse un problema especificando una secuencia de
acciones a realizar a través de uno o más procedimientos denominados
subrutinas o funciones.
Dentro de esta categoría se engloban:
a.
la programación
estructurada que restringe el uso de la instrucción goto,
b.
la programación
modular y
c.
la programación
orientada a objetos.
Programación Declarativa: A la programación imperativa se le contrapone la
programación declarativa en la que se describe la lógica de
computación necesaria para resolver un problema sin describir un
flujo de control de ningún tipo. Efectivamente, en la programación
declarativa no es necesario definir algoritmos, puesto que se
detalla la solución del problema en lugar de cómo llegar a
esa solución. En la programación declarativa, la solución es alcanzada a través
de mecanismos internos de control pero no se especifica exactamente como
llegar a ella. Las variables son utilizadas con transparencia referencial,
es decir una expresión puede ser sustituida por el resultado de ser evaluada en
el programa sin alterarlo semánticamente.
Diferencias principales: La principal diferencia entre ambos paradigmas
es que en la programación imperativa se describe paso a paso un conjunto de
instrucciones que han de ejecutarse con la finalidad de variar el estado del
programa y resolver un problema para hallar una solución. Es decir, se describe
un algoritmo en el que se detallan los pasos secuenciales necesarios a seguir
para la resolución de un problema. Y en la programación declarativa solo se
describe el problema pero no los pasos necesarios para llegar a su solución, la
cual es hallada mediante mecanismos internos de inferencia de
información a partir de la descripción del problema en sí.
¿Cómo diferenciar una de la otra?: Podemos diferenciarlas sin temor a equivocarnos en
los siguientes supuestos:
Ø Un programa que describe que problemas deben
resolverse pero no cómo, está programado con programación declarativa
Ø Cualquier programa que evita los efectos
secundarios o es referencialmente transparente, está programado con
programación declarativa
Ø Todo lo que no cuadre con las dos afirmaciones
anteriores usa programación imperativa o una mezcla de ambas.
Y qué hay de la
programación orientada a objetos?: La programación orientada a objetos es una forma de
programación imperativa puesto que al programar orientando a objetos se
describe la secuencia que debe seguir el programa para resolver un problema
dado.
La diferencia con otras formas de programación
imperativas como la programación estructurada es que en la orientación a
objetos se hace uso de estructuras de datos llamadas objetos
que aglutinan propiedades y métodos conjuntamente con sus
interacciones.
Un objeto es una estructura abstracta que
describe con la mayor fiabilidad posible un objeto del mundo real y cómo se
relaciona o interactúa con el resto del mundo que lo rodea a través de
interfaces. La programación orientada a objetos se basa también en conceptos
como la abstracción de datos, la encapsulación, los eventos,
la modularidad, la herencia y el polimorfismo.
Referencias
trutt-iliana.blogspot.com/2009/.../analisis-y-diseno-orientado-objetos.htm...
No hay comentarios.:
Publicar un comentario