Mostrando las entradas con la etiqueta Programación. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Programación. Mostrar todas las entradas

miércoles, 3 de diciembre de 2014

Estructura de casos de uso


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...




Técnicas de recopilación de requerimientos (programación)



Técnicas de recopilación de requerimientos

Comenta cuales son las ventajas y desventajas de los diferentes métodos de recopilación de requerimientos, y cuáles son los más usados.

Observación: es el registro visual de lo ocurrente en una situación real, clasificando y considerando los acontecimientos presentes de acuerdo con algún esquema previsto y según el problema que se estudia. Su objetivo consiste en observar atentamente el fenómeno, hecho o caso, tomar información y registrarla para su posterior análisis.
Para el desarrollo de la observación se dan, las siguientes condiciones, un conjunto de etapas por la cual se transita de forma muy natural, casi involuntariamente:

Etapas
Características
La atención
El observador escoge los estímulos que le interesan. El interés por el asunto ayuda a observar de manera más inquisitiva
La sensación
Los órganos no son confiables para medir distancias, tamaños y velocidades, etc.
La percepción
Pueden ser simples o complejas e incluyen varios órganos de los sentidos
La reflexión
Supera las limitaciones de la percepción

Distintos tipos de observaciones

Según los medios utilizados:
Ø  Observación no estructurada (no controlada, ordinaria, simple).
Ø  Observación estructurada (sistemática, controlada).

Según la participación del observador:
Ø  Observación no participante.
Ø  Observación participante.

Según el número de observadores:
Ø  Observación individual.
Ø  Observación en equipo.

Según el lugar donde se realiza:
ü Observación efectuada en la vida real.
ü Observación efectuada en laboratorio.

La encuesta: es un método por el cual se colecta información de los sujetos bajo estudio mediante, la redacción de opiniones, actitudes o sugerencias. La encuesta comprende dos modalidades de aplicación que son: la entrevista y el cuestionario.

Entrevista: es una forma de conversación y no una interrogación. Una entrevista es una conversación dirigida con un propósito específico que utiliza un formato de preguntas y respuestas. En la entrevista necesitamos obtener las opciones de los entrevistados y su parecer acerca del estado actual del sistema, metas organizacionales, personales, procedimientos informales. Además se debe tratar de captar los sentimientos de los entrevistados, y con ello, poder entender la cultura de la organización de una manera más compleja. Se debe tratar de averiguar lo más que se pueda acerca de las metas de la organización por medio de las entrevistas; y dentro de ella, nosotros debemos establecer un ambiente de confianza y de entendimiento rápidamente, pero al mismo tiempo, llevar el control de la entrevista.

Ventajas:
Ø  Es aplicable a toda persona, siendo muy útil con los analfabetas, niños o con aquellos que tienen alguna limitación física u orgánica que les proporcione dificultad de proporcionar una respuesta escrita.
Ø  También se la utiliza para investigaciones sobre aspectos psicológicos o de otra índole donde se desee profundizar en algún tema.

Según el tipo de preguntas tenemos ventajas y desventajas:

Preguntas abiertas: estas preguntas incluyen aquellas como “¿Qué piensa de poner a todos los gerentes en una intranet?” y “explique por favor cómo toma una decisión de programación de producción”. En realidad, “abiertas” describe las opiniones del entrevistado para responder.

Las ventajas de utilizar preguntas abiertas son muchas e incluyen las siguientes:
     1.    hacen que el entrevistado se sienta a gusto.
   2.    permiten al entrevistador entender el vocabulario del entrevistado, el cual refleja su educación, valores, actitudes y creencias.
     3.    proporcionan gran cantidad de detalles.
    4. revelan nuevas líneas de preguntas que pudieron haber pasado desapercibidas.
    5.    hacen más interesante la entrevista para el entrevistado.
    6.    permiten más espontaneidad.
    7.    facilitan la forma de expresarse al entrevistador.
    8.    son un buen recurso si el entrevistador no está preparado para el entrevistado.

Como puede ver, las preguntas abiertas tienen varias ventajas. Sin embargo, también tienen muchas desventajas:
     1.    podrían dar como resultado muchos detalles irrelevantes.
     2.    posible pérdida del control de la entrevista.
     3.    permiten repuestas que podrían tomar más tiempo del debido para la cantidad útil de la información obtenida.
     4.    dan la expresión de que el entrevistador es inexperto.
    5.    dan la impresión de que el entrevistador “anda de pesca” sin un objetivo real en la entrevista.

Debe considerarse con cuidado las implicaciones de utilizar las preguntas abiertas para entrevistar.

Preguntas cerradas: Una pregunta cerrada limita la respuesta disponible para el entrevistado. Le dan una pregunta y varias respuestas, pero no le permiten anotar su propia respuesta y aun así se espera que conteste la pregunta correctamente.

Las ventajas de utilizar preguntas cerradas de cualquier tipo incluyen lo siguiente:
    1.    ahorrar tiempo.
    2.    comparar las entrevistas fácilmente.
    3.    ir al grano.
    4.    mantener el control durante la entrevista.
    5.    cubrir terreno rápidamente.
    6.    conseguir datos relevantes.

Sin embargo, las desventajas de utilizar preguntas cerradas son considerables. Dichas desventajas incluyen lo siguiente:
     1.    aburren al entrevistado.
     2.    no permiten obtener gran cantidad de detalles (debido a que el entrevistador proporciona el marco de referencia para el entrevistado).
     3.    olvidar las ideas principales por la razón anterior.
     4.    no ayudan a forjar una relación cercana el entrevistador y el entrevistado.

Así, en su calidad de entrevistador, usted debe pensar cuidadamente los tipos de pregunta que utilizará.

Según el tipo de entrevista que se trate: entrevista estructurada y no estructurada tendremos sus respectivas ventajas y desventajas.

Según el método de Entrevista Estructurado:

Ventajas
Ø  La información es más fácil de procesar, simplificando el análisis comparativo.
Ø  El entrevistador no necesita ser entrenado arduamente en la técnica.
Ø  Hay uniformidad en el tipo de información obtenida.
Desventajas
Ø  Es difícil de obtener información confidencial.
Ø  Se limita la posibilidad de profundizar en un tema que emerja durante la entrevista.

Según el método de Entrevista No Estructurado:
Ventajas
Ø  Es adaptable y susceptible de aplicarse a toda clase de sujetos en situaciones diversas.
Ø  Permite profundizar en los temas de interés.
Ø  Orienta a posibles hipótesis y variables cuando se exploran áreas nuevas.
Desventajas
Ø  Se requiere más tiempo.
Ø  Es más costosa por la inversión de tiempo con los entrevistadores.
Ø  Se dificulta la tabulación de datos.
Ø  Se requiere de mucha habilidad técnica para obtener la información y mayor conocimiento del tema.

Aun con estas desventajas y dada la utilidad de la entrevista, en sus dos formas, todo investigador debe familiarizarse con su uso, ya que es probable que la aplique en cualquier tipo de investigación.

Cuestionario: es el método que utiliza un instrumento o formulario impreso, destinado a obtener respuestas sobre el problema en estudio y que el investigado o consultado llena por sí mismo.
Podemos decir entonces que los cuestionarios son técnicas de recopilación de información que permite que los analistas de sistemas estudien actitudes, comportamientos y características de varias personas principales en la organización que pueden ser afectadas por los sistemas actuales y propuestos.
Las razones para su empleo: para realizar la implementación de un cuestionario primero se debe decidir lo que se está tratando de obtener mediante el uso del mismo. Consideraciones a tener en cuenta para su uso;
Ø  Las personas a quienes se necesita preguntarles están ampliamente dispersas.
Ø  En el proyecto de sistemas están involucradas una gran cantidad de personas y tiene sentido saber qué proporción o grupo dado, aprueba o desaprueba una característica particular del sistema propuesto.
Ø  Se está haciendo un estudio exploratorio y se quiere medir la opción general antes de darle al proyecto de sistema una dirección específica.

Recopilación y Análisis de Documentos: Dos técnicas adicionales a disposición del analista, particularmente en las tareas de indagación de hechos, son el muestreo y la recopilación de documentos. Ambas  técnicas están orientadas a los papeles y documentos almacenados en toda la organización. Ambas técnicas proporcionan una fuente de información que no puede obtenerse con ningún otro enfoque de indagación de hechos.
Ø  Recopilación de Documentos.
Muestreo: El muestreo está dirigido a la recopilación y acumulación de datos sobre problemas que no se pueden medir o implican una gran cantidad de trabajo detallado para obtener unos cuantos datos.
Ø  Análisis de Documentos
El análisis de documentos implica el reconocimiento y extracción de las partes textuales de los mismos y su pre-procesado (segmentación léxica y oracional, análisis y desambiguación morfosintáctica, detección y clasificación de entidades, análisis sintáctico, superficial y profundo, análisis semántico, resolución de correferencias, etc.).

Métodos más usados:
Según parece, y creo que es lo mejor, se usan una combinación de métodos que se complementan de acuerdo a la conveniencia del negocio y de acuerdo al criterio del analista encargado del diseño del sistema informático. Podría empezarse con observación del negocio que habrá de mostrar las necesidades específicas y la conveniencia de cualquier decisión; pero como no sería suficiente para conocer los requerimientos del negocio, se hacen muy útiles y necesarias algunas encuestas, que complementen lo que no puede lograr el analista con sus sentidos y reflexión personal; las encuestas serían entrevistas y cuestionarios. Con la entrevista se obtienen las opciones de los entrevistados y su parecer acerca del estado del sistema, metas organizacionales, personales, procedimientos informales, además de captar los sentimientos de los entrevistados y  entender la cultura de la organización de una manera más compleja; los cuestionarios son técnicas que permiten a los analistas de sistemas estudiar actitudes, comportamientos y características de varias personas principales en la organización, que pueden ser afectadas por los sistemas actuales y propuestos. Otra cosa necesarísima, que no se puede omitir, son la recopilación y análisis de documentos, técnicas que proporcionan una fuente de información que no puede obtenerse con ningún otro enfoque de indagación de hechos.

Créditos bibliográficos:
Técnicas de Recopilación de Información