sábado, 10 de diciembre de 2016

Diagrama de Clases

Un diagrama de clases sirve para visualizar las relaciones entre las clases que involucran el sistema, las cuales pueden ser asociativas, de herencia, de uso y de contenido.
Un diagrama de clases está compuesto por los siguientes elementos:
  •        Clase: atributos, métodos y visibilidad.
  •         Relaciones: Herencia, Composición, Agregación, Asociación y Uso.



Elementos
  • Clase
Es la unidad básica que encapsula toda la información de un Objeto (un objeto es una instancia de una clase). A través de ella podemos modelar el entorno en estudio (una Casa, un Auto, una Cuenta Corriente, etc.).
En UML, una clase es representada por un rectángulo que posee tres divisiones:

En donde:
    • Superior: Contiene el nombre de la Clase
    • Intermedio: Contiene los atributos (o variables de instancia) que caracterizan a la Clase (pueden ser prívate, protected o public).
    • Inferior: Contiene los métodos u operaciones, los cuales son la forma como interactúa el objeto con su entorno (dependiendo de la visibilidad: private, protected o public).


Vídeo: Aquí te muestra una breve explicación sobre el diagrama de clases .


En este otro vídeo veras un ejemplo de este diagrama:



Referencias:

Diagrama Casos de Uso

El diagrama de casos de uso representa la forma en como un Actor opera con el sistema en desarrollo, además de la forma, tipo y orden en como los elementos interactúan.
Un diagrama de casos de uso consta de los siguientes elementos:
  •        Actor.
  •         Casos de Uso.
  •          Relaciones de Uso, Herencia y Comunicación.


    Elementos

  • Actorrol que un usuario juega con respecto al sistema. Es importante destacar el uso de la palabra rol, pues con esto se especifica que un Actor no necesariamente representa a una persona en particular, sino más bien la labor que realiza frente al sistema.
  • Caso de UsoEs una operación/tarea específica que se realiza tras una orden de algún agente externo, sea desde una petición de un actor o bien desde la invocación desde otro caso de uso.
  • Relaciones:
    • Asociación: Es el tipo de relación más básica que indica la invocación desde un actor o caso de uso a otra operación (caso de uso). Dicha relación se denota con una flecha simple.
    • Dependencia o Instanciación: Es una forma muy particular de relación entre clases, en la cual una clase depende de otra, es decir, se instancia (se crea). Dicha relación se denota con una flecha punteada.
    • Generalización : Este tipo de relación es uno de los más utilizados, cumple una doble función dependiendo de su estereotipo, que puede ser de Uso (<<uses>>) o de Herencia (<<extends>>).
Vídeo
breve explicación sobre los diagramas de casos de uso

 

Un ejemplo de los diagramas de casos de uso:




Referencias:

jueves, 3 de noviembre de 2016

Especificación de requerimientos

Una especificación de requisitos del software es una descripción completa del comportamiento del sistema a desarrollar. Incluye un conjunto de casos de uso que describen todas las interacciones que se prevén que los usuarios tendrán con el software. También contiene requisitos no funcionales. Los requisitos no funcionales son los requisitos que imponen restricciones al diseño o funcionamiento del sistema (tal como requisitos de funcionamiento, estándares de calidad, o requisitos del diseño).



Requerimientos funcionales

Son declaraciones de los servicios que debe proporcionar el sistema, de la manera en que éste debe reaccionar a entradas particulares y de cómo se debe comportar en situaciones particulares. 
Los requerimientos funcionales de un sistema describen lo que el sistema debe hacer. 
Estos requerimientos dependen del tipo de software que se desarrolle, de los posibles usuarios del software y del enfoque general tomado por la organización al redactar requerimientos. Cuando se expresan como requerimientos del usuario, habitualmente se describen de una forma bastante abstracta. Sin embargo. Los requerimientos funcionales del sistema describen con detalle la función de éste, sus entradas y salidas, excepciones, etcétera. 


Requerimientos no funcionales

Son restricciones de los servicios o funciones ofrecidos por el sistema. Incluyen restricciones de tiempo, sobre el proceso de desarrollo y estándares. Los requerimientos no funcionales a menudo se aplican al sistema en su totalidad.
Normalmente apenas se aplican a características o servicios individuales del sistema. Los requerimientos no funcionales, como su nombre sugiere, son aquellos requerimientos que no se refieren directamente a las funciones específicas que proporciona el sistema, sino a las propiedades emergentes de éste como la fiabilidad, el tiempo de respuesta y la capacidad de almacenamiento.

Vídeo



Referencias
http://elvex.ugr.es/idbis/db/docs/design/2-requirements.pdf
http://es.slideshare.net/SergioRios/unidad-13-analisis-de-requerimientos

miércoles, 2 de noviembre de 2016

Análisis de Requerimiento

Estudio de Factibilidad y Viabilidad

Factibilidad: Los estudios de factibilidad, se completan durante la fase de diseño de sistemas, en general durante la consideración de la evaluación de las diferentes alternativas de solución propuestas. Los estudios de factibilidad consideran la factibilidad técnica, económica y operacional de cada alternativa, así como si el proyecto es o no apropiado dados los factores políticos y otros del contexto institucional. 




  • Factibilidad Operacional: Esta factibilidad comprende una determinación de la probabilidad de que un nuevo sistema se use como se supone. Deberían considerarse tres aspectos de la factibilidad operacional por lo menos.
1.      Un nuevo sistema puede ser demasiado complejo para los usuarios de la organización o los operadores del sistema. 
2.      Un sistema puede hacer que los usuarios se resistan a él como consecuencia de una técnica de trabajo, miedo a ser desplazados, intereses en el sistema antiguo u otras razones. 

3.      Un nuevo sistema puede introducir cambios demasiado rápido para permitir al personal adaptarse a él y aceptarlo. Un cambio repentino que se ha anunciado, explicado y “vendido” a los usuarios con anterioridad puede crear resistencia.

  • Factibilidad Técnica: El análisis de factibilidad técnica evalúa si el equipo y software están disponibles (o, en el caso del software, si puede desarrollarse) y si tienen las capacidades técnicas requeridas por cada alternativa del diseño que se esté considerando. Los estudios también consideran las interfaces entre los sistemas actuales y nuevos. 

  • Factibilidad Económica: Los estudios de factibilidad económica incluyen análisis de costos y beneficios asociados con cada alternativa del proyecto. Con análisis de costos/beneficio, todos los costos y beneficios de adquirir y operar cada sistema alternativo se identifican y se hace una comparación de ellos.
Viabilidad; Analizar la viabilidad de un proyecto es más importante que planificar y para poder concluirlo resulta imprescindible llevar a cabo una investigación completa, que conduzca al conocimiento de si realmente el proyecto aportará los beneficios que se esperan de él. No es una simple formalidad burocrática, sino que es una herramienta necesaria para la toma de decisiones estratégica.

Para llevar a cabo el estudio de viabilidad de un proyecto se precisa recopilar información suficiente para:
  •   Identificar las limitaciones, restricciones y supuestos.
  •   Detectar las oportunidades.
  •   Analizar el modo actual de funcionamiento de la organización.
  •   Definir los requisitos que configuran el proyecto.
  •   Evaluar las distintas alternativas.
  •   Llegar a un acuerdo sobre la línea de acción.

Viabilidad Técnica:
Estudios de viabilidad técnica que tienen que ver con temas de tecnología e infraestructura. Un estudio técnico de viabilidad se puede ver en los costos y beneficios potenciales de las nuevas tecnologías, o para investigar la cantidad de espacio necesario para construir un nuevo edificio.

Viabilidad Cultural:

Estudios de viabilidad aspecto cultural a las cuestiones culturales que puedan derivarse de la búsqueda de ciertas oportunidades de negocio.

Viabilidad Legal:
Estudios de viabilidad jurídica destinada a evaluar si un proyecto traería cargos legales irrazonables. Los bufetes de abogados de viabilidad se pueden hacer para los productos que se encuentran en alto riesgo.


Vídeos

Estudio de Factibilidad



Estudio de Viabilidad

domingo, 25 de septiembre de 2016

Metodología SCRUM

Scrum es una metodología ágil y flexible para gestionar el desarrollo de software, cuyo principal objetivo es maximizar el retorno de la inversión para su empresa (ROI). Se basa en construir primero la funcionalidad de mayor valor para el cliente y en los principios de inspección continua, adaptación, auto-gestión e innovación.



Con la metodología Scrum el cliente se entusiasma y se compromete con el proyecto dado que lo ve crecer iteración a iteración. Asimismo le permite en cualquier momento realinear el software con los objetivos de negocio de su empresa, ya que puede introducir cambios funcionales o de prioridad en el inicio de cada nueva iteración sin ningún problema.
Esta metódica de trabajo promueve la innovación, motivación y compromiso del equipo que forma parte del proyecto, por lo que los profesionales encuentran un ámbito propicio para desarrollar sus capacidades. 

  •        Cumplimento de expectativas
  •          Flexibilidad a cambios
  •          Reducción del Time to Market
  •          Mayor calidad del software
  •          Mayor productividad
  •          Maximiza el retorno de la inversión (ROI
  •          Predicciones de tiempos
  •          Reducción de riesgos

Video

Referencias:

Metodologías

Metodologías para el desarrollo de Software

Las metodologías de desarrollo de software son un conjunto de procedimientos, técnicas y ayudas a la documentación para el desarrollo de productos software.
Las actividades a realizar para lograr el producto informático deseado, indicando además qué personas deben participar en el desarrollo de las actividades y qué papel deben de tener. Además detallan la información que se debe producir como resultado de una actividad y la información necesaria para comenzarla.

Actualmente es imprescindible considerar los riesgos, aunque habitualmente las empresas, no han sido concienciadas de los riesgos inherentes al procesamiento de la información mediante ordenadores, a lo que han contribuido, a veces, los propios responsables de informática, que no han sabido explicar con la suficiente claridad las consecuencias de una política de seguridad insuficiente o incluso inexistente.

Las técnicas indican cómo debe ser realizada una actividad técnica determinada identificada en la metodología. Combina el empleo de unos modelos o representaciones gráficas junto con el empleo de unos procedimientos detallados.


Metodologías Para el desarrollo Ágil
Su objetivo fue esbozar los valores y principios que deberían permitir a los equipos desarrollar software rápidamente y respondiendo a los cambios que puedan surgir a lo largo del proyecto. Se pretendía ofrecer una alternativa a los procesos de desarrollo de software tradicionales, caracterizados por ser rígidos y dirigidos por la documentación que se genera en cada una de las actividades desarrolladas.




  • XP
  • SCRUM
  • Crystal Methodologies
  • Dynamic Systems Development Method (DSDM)
  • Adaptive Software Development(ASD)
  • Feature-Driven Devolopment (FDD)
  • Lean Development (LD)

Metodologías Tradicionales

Estas metodologías tradicionales imponen una disciplina de trabajo sobre el proceso de desarrollo del software, con el fin de conseguir un software más eficiente. Para ello, se hace énfasis en la planificación total de todo el trabajo a realizar y una vez que está todo detallado, comienza el ciclo de desarrollo del producto software. Se centran especialmente en el control del proceso, mediante una rigurosa definición de roles, actividades, artefactos, herramientas y notaciones para el modelado y documentación detallada . Además, las metodologías tradicionales no se adaptan adecuadamente a los cambios, por lo que no son métodos adecuados cuando se trabaja en un entorno, donde los requisitos no pueden predecirse o bien pueden variar.

  • RUP (Rational Unified Procces)
  • MSF (Microsoft Solution Framework)
  • Win-Win Spiral Model


Vídeo


Referencias:
http://issi.dsic.upv.es/archives/f-1069167248521/actas.pdf
http://masteringenieriasoft.blogspot.mx/2012/04/metodologias-de-desarrollo-de-software.html