Especificación de requerimientos de software

Un requerimiento se especifica como los requisitos con los que debe de cumplir un software como funcionalidades, cumpliendo el objetivo de satisfacer una necesidad que se debe cubrir con una funcionalidad para cada requerimiento. Y como tal reflejan una necesidad real.

Los requerimientos en general deben seguir una serie de reglas que faciliten su aplicación:

  • Estos deberán ser legibles y que otras personas con formaciones diferentes puedan comprenderlos
  • Todo requerimiento deberá ser identificado por un código único
  • Deben reflejar necesidades reales dentro del sistema
  • Deben tener una interpretación clara y concisa sin redundancias
  • Deben abarcar las necesidades completamente
  • Los requerimientos no deben ser contradictorios unos a otros cada uno debe ser consistente
  • Los requerimientos deben ser jerarquizados de manera que los más importantes estén a la cabeza
  • Un requerimiento debe ser testeable (poder realizar pruebas)
  • Los requerimientos deben ser modificables y debe ser fácil de manera completa y consistente
  • Cada requerimiento debe ser trazable, se debe conocer el origen de cada uno para facilitar su implementación.

Tipos de requerimientos

Interfaces externas: Se describen los requerimientos que afectan a la interfaz de usuario y con otros sistemas (hardware y software).

Funciones o requerimientos funcionales: quizá es la parte más larga e importante ya que aquí se plasman las funcionalidades del software. En esta sección los requerimientos funcionales se pueden clasifican por:

  • Tipos de usuario:

Para cada usuario que exista en la organización se plasmara sus funcionalidades o requerimientos funcionales.

  • Objetos:

Son entidades del mundo real que serán reflejadas en el sistema, para cada objeto se detallaran sus atributos y sus funciones.

  • Estímulos:

Se especifican los posibles estímulos que recibirá en sistema y dichas funciones relacionadas con el estímulo.

  • Jerarquía funcional:

Esta alternativa se usa cuando ninguna de las anteriores se puede aplicar se especifican las funcionalidades de entrada, salida y procesos de manera interna.

Requerimientos de rendimiento: Se relacionan estos requerimientos con la carga que conllevara el software, por ejemplo la cantidad de usuarios que lo usaran simultáneamente, transacciones etc.

Requerimientos de diseño: Todo aquello referido al diseño y la parte visual del software se especifica en este tipo de requerimientos.

Atributos del sistema: Se detallan todo aquello referido a la portabilidad, mantenimiento, fiabilidad y muy importante la seguridad.

Diagrama 

req

Diagramas de caso de uso

Es una herramienta de diagramación realizándolo de una manera mejorada, un caso de uso es la representación de los pasos o actividades que deben de hacerse o realizarse para llevar a cabo un proceso. Además se denota como una serie de interacciones que se desarrollaran en un sistema y sus respuestas.

Especifican la comunicación y el comportamiento de un sistema ante la interacción con un usuario u otros sistemas. La conexión entre las diferente casos de uso o elementos del modelo son la especialización y generalización.

Actores   

Así se le llama a toda entidad externa al sistema que guarda una relación con el sistema y que le demanda una funcionalidad.

Tipos de relaciones

Comunica: Relación de asociación entre un actor y un caso de uso que denota la participación del actor en un caso de uso. Esto incluye operadores humanos y otros sistemas.

Usa: Relación de dependencia entre dos casos de uso que denota que un caso de uso es la inclusión del otro caso de uso.

Extiende: Relación de dependencia entre dos casos de uso que denota que un caso de uso es la especialización de otro

Generalización: Un caso de uso dado puede estar en una forma especializada de un caso de uso existente.

Elementos

CAso de u

Ejemplo 1

Este caso de uso lo podemos ver cuando vamos a un dispensador de comida.

Caso ejemplo 1Ejemplo 2

Este caso de uso lo podemos ver cuando generamos un reporte en cualquier aplicación.

Caso ejemplo 2

Ejemplo 3

Este caso de uso lo podemos ver cuando vamos al cajero.

Caso ejemplo 3

Diagrama de estados aplicado a Arduino ejemplo 2

Hola que tal amigos continuando con la explicación de los diagramas de estado, en esta ocasión veremos el siguiente planteamiento.

Como tal en esta ocasión también está presente un motor pero en esta ocasión este motor esta encendido, el motor debe apagarse cuando el botón es presionado. Dentro del IDE de arduino utilizamos la programación para leer el estado del botón y verificar si se está presionando usando algunas condiciones podemos encender o apagar el motor dependiendo del estado en que esta el botón.

Veremos el diagrama de estados.

Arduino

Es todo por el momento gracias espero y les sirva el ejemplo.

Diagrama de estados aplicados a Arduino

Hola que tal amigos en esta ocasión veremos diagramas de estado aplicado en proyectos de electrónica, como tal les presentare un diagrama muy sencillo el cual lo planteare de la siguiente manera.

Esta presentes un motor y una fotorresistencia, la fotorresistencia como tal se encarga de verificar la cantidad de luz en lúmenes, si el valor es mayor a 500 el motor el motor debe encender como tal este valor significa que la luz está disminuyendo, después cuando el valor de la fotorresistencia sea menor igual a 100 el motor debe apagarse cuando la luz aumenta como tal.

Ahora veremos el proceso en un diagrama de estados.

Diagrama Arduino

Diagrama de estados

Los diagramas de estado representan el conjunto de estados por los cuales tiene que pasar un objeto durante su vida dentro de una aplicación.

Permite identificar bajo qué argumentos se ejecuta cada uno de los procesos y en qué momento podrían tener una variación.

Los diagramas de estado describen gráficamente los eventos y los estados de los objetos. Los diagramas de estado son útiles, entre otras cosas, para indicar los eventos del sistema en los casos de uso.

Fig0804

Simbología 

SIMBOLOGIA

Como ejemplo podemos mencionar el funcionamiento de un semáforo, en el cual podemos representar como estados a los colores por los que tiene que ir pasando, y como condiciones el tiempo que tiene que transcurrir para que pase al siguiente estado.

ejemplo

Ya a manera de conclusión los diagramas de estados a la hora de modelar proyectos nos permiten visualizar las necesidades del usuario, además permiten detectar requerimientos de una forma mas fácil, ya para finalizar aquí les dejo un vídeo tutorial donde desarrollo un ejemplo.

Creación de base de datos en MySQL

Que tal amigos en esta ocasión explicaremos la creación de Base de datos en MySQL, así como la creación de tablas, definición de sus campos y sus relaciones. Como parte importante cabe mencionar que MySQL es un gestor de base datos  con licencia libre, como tal podemos manipularlo de muchas maneras, una de ellas es el entorno grafico desde PhpMyADMIN, es una manera muy sencilla de manipular MySQL, otra es a través de línea de comandos es un poco más complicado pero no imposible. Nuestro proyecto lo desarrollaremos a través del entorno grafico PhpMyAdmin.

52471

En primer lugar debemos instalar WAMPServer lo podemos encontrar en http://www.wampserver.es/ , que es un entorno de desarrollo web para Windows en el cual se podrán crear aplicaciones web con Apache, PHP y base de datos en MySQL (motor de base de datos), después de haber instalado debemos entrar a nuestro explorador preferido y teclear “http://localhost/phpmyadmin/” de esta forma verificaremos que realmente se instaló nuestro gestor de base de datos, nos pedirá una contraseña que si no se ha modificado el usuario debe ser root y no debe tener contraseña, de esta forma accederemos al entrono grafico de MySQL.

WampServer-logo

Después de haber verificado que ya tenemos WAMPServer podemos comenzar a trabajar con MySQL, Como les había mencionado usaremos una forma sencilla a través del entorno grafico.

A continuacion los pasos para usar PhpMyAdmin.

Paso 1: Entramos a nuestro navegador preferido y colocamos la siguiente dirección » http://localhost/phpmyadmin/» esta puede variar según el puerto donde tengamos nuestro WampServer.

Paso 2: Nos mostrara la siguiente interfaz, en la cual debemos iniciar sesión, si no han cambiando en nada el usuario y contraseña, puedes acceder colocando únicamente en usuario «root» y la contraseña vacía.

login

Paso 3: Igual forma dependiendo de la versión nos deberá mostrar una interfaz mas o menos similar a la siguiente.

mysql

Ahora bien después de haber entrado a PhpMyAdmin podemos comenzar a crear una base de datos los pasos correspondientes son los siguientes.

Paso 1: En el menú superior tenemos una pestaña que se llama bases de datos damos clic en la opción. Y nos mostrara una ventana donde colocaremos el nombre de la base de datos que en mi caso se llamara «PuntoVenta», debes saber que cuando coloques el nombre este no debe llevar espacios.

bd

Paso 2: Después solo damos clic en crear. Y nos mostrara un mensaje de que se ha creado la base de datos y además vamos a poder visualizarla en el panel de la izquierda.

ver

Paso 4: Ahora bien ya tenemos nuestra BD, para poder usarla basta con dar doble clic sobre ella en el panel de la izquierda.

Ahora que ya tenemos nuestra BD creada, podemos crear tablas, para poder realizarlo hacemos lo siguiente:

Paso 1: Ya dentro de la BD nos mostrara la interfaz para crear la tabla, donde nos da la opción de nombrarla y colocar el número de columnas que vamos a necesitar. En mi caso voy a crear la tabla «usuarios» con 6 columnas.

tablas

Paso 2: Damos clic en continuar y listo ya tenemos nuestra tabla. Y nos mostrara los la siguiente interfaz para poder crear los campos de la tabla, como lo es nombre, tipo de dato, longitud, indice, activar opción de auto-incremetable, etc. Haciendo una pausa los indices en MySQL son importantes ya que nos permiten encontrar rápidamente los registros que tengan un determinado valor en alguna de sus columnas. Sin un índice, MySQL tiene que iniciar con el primer registro y leer a través de toda la tabla para encontrar los registros relevantes; ya en esta parte puedes informarte mas para no salirnos de contexto. Continuando con el tema.

intabla

Paso 3: Ahora bien definiremos la estructura de nuestra tabla agregando las propiedades a cada campo, es necesario definir un nombre único y sin espaciado, al igual que un tipo de dato que puede variar según las necesidades, una longitud dependiendo de las necesidades, si el campo aceptara valores vacíos para ello activar la casilla «NULO», definir el indice hablando en el uso de claves primarias, también podemos definir si el valor de el campo sera auto-incrementable hablando de valores numéricos etc. En mi caso yo le he dado la siguiente estructura a mi tabla.

estructura

Ya hemos creado la tabla con sus columnas, después de haber creado la tabla con su estructura podremos visualizarla de la siguiente manera.

tablavisual

Para continuar ahora veremos como hacer la relación entre dos tablas pero antes realmente la relaciones son “restricciones”, que determinan qué datos son válidos en un campo. En general sólo se permitirán insertar en el campo denominado “clave externa” (FOREIGN KEY) aquellos valores que ya existan en otro campo de referencia (REFERENCE).

Para ello debemos crear otra tabla, a mi caso la he creado con el nombre «perfil» y le he dado la siguiente estructura.

tabla2

En primera un campo FOREIGN KEY sólo pueden tener como referencia a campos que sean posean un índice (PRIMARY KEY, INDEX o UNIQUE).

En este caso es necesario que en la tabla que creemos el campo de referencia posea un indice, que en mi caso coloque que ambas tablas tengan PRIMARY KEY.

Ahora bien que ya tenemos las tablas y las PRIMARY KEY vamos a irnos a la segunda tabla que creamos que en mi caso es «perfil» nos vamos a la parte del menu superior a la pestaña de  «estructura» y debajo localizamos la opción de vista de relaciones  y damos clic.

relacion

Ahora nos mostrara la opción de agregar una clave foránea, así mismo nos identificara las claves primarias de otras tablas. En este caso yo seleccione ‘puntoVenta’,’usuarios’,’id’ que en esta sintaxis me esta haciendo énfasis a la base de datos, la tabla y la columna con clave primaria en ese orden.

vista rel

Después de haber seleccionado la clave foránea, debemos colocar el nombre y otras propiedades. De la relación estas propiedades como CASCADE indican que los registros que se agreguen o eliminen en la clave foránea también se agregaran o eliminaran en esta tabla.

sdasDespués solo damos clic en guardar. De esta forma realizamos las relaciones en MySQL.

Por mi parte es todo espero les pueda servir esta información.

Clases en PHP

Hola que tal amigos ahora veremos las clases en PHP. Una clase representa un conjunto de objetos con características en común, ahora una clase tiene métodos definidos como las acciones que puede realizar, ademas de tener atributos, los cuales se puede decir que son las características de la clase. Las clases son características de la POO (Programación Orientada a Objetos), como tal PHP forma parte de este conjunto;  para declarar una clase utilizamos la palabra reservada class seguido por el nombre de la clase y dentro de paréntesis todas sus propiedades y métodos.

Clase

Para poder crear una instancia de una clase, debemos crear un objeto y los objetos se crean a través de una variable y se hace utilizando la palabra reservada new.

Instancia

Las clases en la POO son muy importantes ya que a través de ellas podemos separar el código de una manera mas organizada y ademas de cierta forma podemos hacer que nuestro código sea re-utilizable, por ejemplo podemos crear una clase con funciones que contengan las operaciones matemáticas básicas estas podemos volver a utilizarlas sin la necesidad de volver a programarlas.

Aquí les dejo un link con un ejemplo sobre el uso de clases en PHP, ejemplificado en una calculadora con operaciones básicas.

https://mega.co.nz/#F!fgok2JTY!yMrNK8e9dw3rIlFUs4H_Qw

Clases, asociación y generalización.

Las clases  en POO (Programación Orientada a Objetos) representan objetos en particular con características o atributos, ademas de un comportamiento similar. Cada clase define un conjunto de variables o atributos que destacan sus características estas definen al objeto. También tiene métodos, estos representan las acciones de una clase, por ejemplo:

clase_e_idea

Dentro de un conjunto de clases existen relaciones, las cuales se dan de manera muy diferente, esto según sean las condiciones; entre las relaciones tenemos:

Generalización o herencia

Esta relación determina que una clase hija puede heredar tanto, atributos como métodos de una clase madre.

Asociación 

Es la relación de elementos entre una clase. Este concepto se relaciona con la multiplicidad, que determina de forma numérica la cantidad de objetos entre una asociación, otro concepto es la navegabilidad que determina el sentido de la asociación, existen dos tipos:

Unidireccional: La asociación se da únicamente en un sentido, una envía información y otra la recibe.

Bidireccional: Ambas comparten información dicho en otras palabras ambas pueden enviar y recibir.

A continuación un vídeo donde podremos observar en un ejemplo practico los conceptos en POO.

Diagrama de actividades

Un diagrama de actividades o diagrama de flujo, representa un proceso organizado, de manera gráfica, el cual representa el algoritmo que sigue la actividad representada en el diagrama. El diagrama de actividades es usado, en programación, procesos industriales, economía etc.

En los diagramas de actividades se representa paso a paso los flujos de trabajo de manera organizada, principalmente se caracterizan por tener un inicio y un fin, en algunos casos pueden existir varios fines en este caso puede ser posible dependiendo del proceso representado, esto se logra sin perder la lógica del diagrama. Dentro de las ventajas que tiene la utilización de estos diagramas es clarificar el proceso o algoritmo de cualquier proceso que se quiere representar, y de cierta forma es una manera muy sencilla de comprender procesos con los cuales no estamos familiarizados; y tiene la ventaja de poder detectar con mayor facilidad problemas dentro del proceso los cuales se pueden mejorar y así de esta forma optimizar el proceso.

Simbología y significado

Ovalo o elipse: Representa el inicio o fin del diagrama.

Rectángulo: Actividad (Representa la ejecución de una o más actividades o procedimientos).

Rombo: Decisión (Formula una pregunta o cuestión).

Circulo: Conector (Representa el enlace de actividades dentro de un procedimiento).

Triangulo boca abajo: Archivo definitivo (Representa un archivo que se guardara de manera permanente).

Triangulo boca arriba: Archivo temporal (Representa un tiempo para el almacenamiento de un documento).

Ejemplo

A manera de ejemplo, la siguiente ilustracion muestra el proceso de orden de compra de algun producto.

Actividad8

A manera de conclusión podemos decir que los diagramas de actividades representan de manera ordenada y lógica cualquier procedimiento, con el fin de comprender de manera más clara como funciona o simplemente hacer mejoras dentro del mismo algoritmo.