s a m e t s S i s
temas is te S e d o l l o r r a s Análisis y De formación. de In fo
n ó ó i c a m m r o o f n I
D E
o l l o r r a s e d e d o t n e i m i d e c o r P
ollo r r a s e d e d n to Procedimie
1 0 n ó i c d E 3 1 0 2 o ñ A
o l l o r r a s e D e d e s a F
I S D A
A N E S FAVA - Formación en Ambientes Virtuales de Aprendizaje
SENA -
Servicio Nacional de Aprendizaje
Procedimiento de desarrollo de Sistemas de información
Contenido 1. Objetivo 3 2. Alcance 3 3. Fases 3 4. Especificación de cada fase 4 4.1. Fase de Definición de los requerimientos 4 4.2. Fase de Análisis 10 4.2.1. Estudio del entorno tecnológico 10 4.2.2. Elección de la Arquitectura de Desarrollo 11 4.2.3. Diagramas de Análisis del Sistema 16 4.3. Fase de Diseño 19 4.3.1. Diseño de la Base de Datos 19 4.3.2. Diseño de Archivos (Diccionario de Datos) 20 4.3.3. Diseño de Entradas y Salidas 21 4.3.4. Diseño de Casos de Uso 21 4.3.5. Diseño de Clases 22 4.3.6. Diseño de Interface 23 4.3.7. Diseño de Navegabilidad 24 4.3.8. Diseño de Seguridad y Control 24 4.4. Fase de Construcción 25 4.4.1. Relación con el diseño 25 4.4.2. Uso de convenciones durante la fase de construcción 25 4.4.2.1. Convenciones en bases de datos 26 4.4.2.2. Convenciones de Programación 28 4.4.3. Arquitectura o Programación en 3 capas 39 4.4.3.1. Capa de presentación: 40 4.4.3.2. Capa de negocio: 40 4.4.3.3. Capa de datos: 41
2
FAVA - Formación en Ambientes Virtuales de Aprendizaje
SENA - Servicio Nacional de Aprendizaje
Procedimiento de desarrollo de Sistemas de información
Procedimiento de Desarrollo 1. Objetivo Establecer el procedimiento a seguir para el desarrollo de un nuevo proyecto, identificando las principales etapas, actividades y artefactos necesarios en cada una de ellas, con el fin de proporcionar una guía útil para el Analista y Desarrollador de Sistemas de Información. 2. Alcance Este procedimiento aplica solo para proyectos nuevos e inicia con la especificación de los requerimientos del proyecto y termina con la construcción del mismo. 3. Fases Las fases que se tendrán en cuenta son las siguientes: a. Definición de los requerimientos b. Análisis c. Diseño d. Construcción Contrato pre desarrollo
Definición de
Requerimientos incompletos
Línea base de requerimientos SRS con casos de uso, fi rma rma del Contrato de desarrollo
Análisis
Análisiss incompleto Análisi
Documento de análisis, elección de tecnología Diagramas de análisis, estrategias Diseño
Documento de diseño, diagramas Diseño incompleto
Requerimientos No viables
3
Construcción
Administración Administ ración de Requerimientos Requerimientos
FAVA - Formación en Ambientes Virtuales de Aprendizaje
SENA - Servicio Nacional de Aprendizaje
Procedimiento de desarrollo de Sistemas de información
4.
Especificación de cada fase
4.1 Fase de Definición de los requerimientos Esta es una fase de vital importancia para los proyectos, su intención es tener absoluta claridad sobre los requisitos del mismo, además, en esta fase se debe estimar el precio, el tiempo y los recursos necesarios para el desarrollo del proyecto; también es posible que una vez finalizada esta fase, se decida no continuar con el proyecto por restricciones o limitaciones que impidan su correcto desarrollo. Actividades en la fase de Definición de Requerimientos: • • • • •
Planeación Extracción Análisis Especificación Validación
Durante la planeación, el desarrollador debe identificar las principales fuentes de información a tener en cuenta, así como las principales técnicas de recolección de información a emplear y el diseño de los instrumentos necesarios para la recolección de la información. De estas fuentes de información, se debe identificar al cliente líder quien debe estar en capacidad de brindar información de alto nivel, como el propósito del proyecto, sus objetivos y alcance. Inicialmente, se debe realizar una entrevista con el cliente líder y recopilar toda la información escrita posible que ayude al desarrollador a tener una idea general general sobre el proyecto. proyecto. De estas fuentes de información, se obtiene la visión del proyecto, de la cual se hace retroalimentación con el cliente líder y tras su aceptación, el desarrollador debe planear las demás fuentes de información a indagar y técnicas de recolección de información a emplear con sus respectivos instrumentos, realizando un proceso iterativo que le permita en cada iteración profundizar en temas puntuales y aclarar dudas cada vez más precisas.
4
FAVA - Formación en Ambientes Virtuales de Aprendizaje
SENA - Servicio Nacional de Aprendizaje
Procedimiento de desarrollo de Sistemas de información
Iteraciones en la recolección de información Iteración
Propósito
Conocer 1
la
idea
Fuente
principal
del
Técnica
Cliente líder,
proyecto, su alcance, sus objetivos y
Información
propósito.
escrita
de
Entrevista
alto nivel
2
Comprender el funcionamiento actual
Usuarios del
del
sus
sistema
sus
actual,
sistema,
necesidades, principales
3
identificar identificar
procesos
y
cómo
se
Varias
formatos
llevan a cabo.
empleados.
Determinar los datos relevantes del
Cliente líder y
sistema, conocer cuál información
representante
debe contener.
de
los
usuarios, formatos 4 5
5
Validación de los requerimientos del
Cliente líder
sistema Retroalimentaciones permanentes
Cliente líder
FAVA - Formación en Ambientes Virtuales de Aprendizaje
Entrevista, encuesta o sesión grupal
Entrevista Prototipos
SENA - Servicio Nacional de Aprendizaje
Procedimiento de desarrollo de Sistemas de información
Durante la actividad de Extracción, el analista y desarrollador
ejecuta las técnicas de recolección de información planeadas empleando los instrumentos diseñados y dirigidas a las fuentes de información seleccionadas. Es importante a la hora de ejecutar estas técnicas, tener en cuenta una serie de principios y emplear técnicas de modelado que ayuden a interpretar más fácilmente la información recolectada. Luego de extraer la información de las diferentes fuentes, esta
información se debe Analizar, tratando en todo momento mantener coherencia entre las diferentes fuentes y entre diferentes requerimientos. Algunas técnicas de análisis requerimientos que se pueden emplear son: Matriz Requerimientos, Matrices de trazabilidad, Matriz CRUD.
R1 R1 R2
6
R2
R3
R4
1
2
0
0
0
1
R3
2
R4
0
0
2 0
2
de los de de
Una Matriz de requerimientos es una técnica de análisis de requerimientos que permite confrontar cada requerimiento frente a los demás, asignando un cero (0) cuando los requerimientos confrontados sean independientes, un uno (1) cuando exista alguna
dependencia entre ellos y un dos (2) cuando los requerimientos confrontados sean ambiguos o signifiquen lo mismo. El objetivo con esta técnica es identificar conflictos entre los requerimientos y llegar a la independencia entre los mismos.
FAVA - Formación en Ambientes Virtuales de Aprendizaje
SENA - Servicio Nacional de Aprendizaje
Procedimiento de desarrollo de Sistemas de información
Objetos Casos de uso
Orden
Químico
Solicitante
Proveedor
Ingresar orden
C
R
R
R
Cambiar orden
U,D
R
R
Gestionar
inventario
de
químicos
C,U,D
Reporte de órdenes Editar solicitantes
R
R
R C,U,R
Una Matriz CRUD es una técnica de análisis de requerimientos que permite verificar que todos los objetos que forman parte de una aplicación puedan ser Creados, Leídos, Actualizados y Eliminados por los casos de uso identificados. Esta técnica permite identificar la necesidad de nuevos casos de uso en el sistema. La especificación de los requerimientos pretende crear un documento con la línea base de los requerimientos del sistema, este documento es conocido como SRS (Software Requirements Specification) Especificación de los Requerimientos del Software, el cual es considerado como el documento final de la fase de definición de los requerimientos. Este documento contempla principalmente los requerimientos funcionales y no funcionales del sistema y puede incluir anexos como diagramas de análisis del sistema.
7
FAVA - Formación en Ambientes Virtuales de Aprendizaje
SENA - Servicio Nacional de Aprendizaje
Procedimiento de desarrollo de Sistemas de información
Table of Contents Introduction............................................................................................................................4 1.1 Purpose...........................................................................................................................4 1.2 Document Conventions............................................................................................4 1.3 ProjectoScope...............................................................................................................4 1.4 References......................................................................................................................4 2 System Descriptios...........................................................................................................4 3 Functional Requirements..............................................................................................4 3.1 System Features...........................................................................................................5 3.1.1 System Feature 1...................................................................................................5 3.1.2 System Feature 2...................................................................................................5 3.2 Use Cases........................................................................................................................5 3.2.1 Use Cases Diagrams.............................................................................................5 3.2.2 Use Case 1................................................................................................................6 3.2.3 Use Case 2................................................................................................................6 3.3 Entity Relationship Diagrams...............................................................................6 3.4 Data Dictionary............................................................................................................6 3.4.1 Entity 1......................................................................................................................6 3.4.2 Entity 2......................................................................................................................6 4 External Interface Requirements..............................................................................6 5 Technical Requirements (Not functional).............................................................6 5.1 Performance.................................................................................................................6 5.2 Scalability.......................................................................................................................6 5.3 Security...........................................................................................................................6 5.4 Maintainbility...............................................................................................................6 5.5 Usability..........................................................................................................................6 5.6 Multi lingual Support................................................................................................6 5.7 Auditing and Logging................................................................................................6 5.8 Availability.....................................................................................................................6 6 Open Issues.........................................................................................................................7
Por último en la fase de definición de los requerimientos, se debe realizar la validación de la información recolectada, este es un proceso que se hace con el cliente líder, en el cual se solicita revisar uno a uno los requerimientos definidos y hacer sus sugerencias, este proceso se realiza hasta que el cliente líder se encuentre totalmente de acuerdo con la especificación final de los requerimientos y es en este momento donde se debe firmar el contrato de desarrollo, creando un compromiso donde el desarrollador se compromete a realizar cada uno de los requerimientos especificados y el cliente se compromete a no solicitar ningún otro requisito que no esté dentro de estos requerimientos especificados.
8
FAVA - Formación en Ambientes Virtuales de Aprendizaje
SENA SENA - Servicio Nacional de Aprendizaje
Procedimiento de desarrollo de Sistemas de información
Actividades en la fase de Definición de los Requerimientos
Contrato Pre Desarrollo Falta información
Planeación
Extracción
Cliente líder identificado, Instrumentos diseñados, Citas concertadas.
Entrevista al cliente líder
Información incoherente
Requerimientos no factibles
Usuarios del sistema Requerimientos de usuario
Propósito, objetivos y alcance del proyecto definido, usuarios y procesos identificados, información escrita de alto nivel. Comportamiento actual del distema, procesos, necesidades
Análisis Información coherente, requerimientos estables
Firma del contrato de desarrollo Cliente líder conforme y requerimientos factibles
Cliente líder, representate usuarios
Datos necesarios, información requerida por el sistema.
Especificación
Validación
Línea base de requerimientos
Cliente líder no conforme
9
FAVA - Formación en Ambientes Virtuales de Aprendizaje
SENA - Servicio Nacional de Aprendizaje
Procedimiento de desarrollo de Sistemas de información
4.2 Fase de Análisis Luego de tener claramente establecidos los requerimientos del sistema, de verificar su factibilidad y de firmar el contrato de desarrollo, se inicia la fase de análisis, en esta fase como su nombre lo indica, el desarrollador debe analizar los requerimientos, necesidades, objetivos, casos de uso y en sí toda la información recolectada en busca de plantear diferentes estrategias, metodologías, arquitecturas y plataformas que puedan dar solución a las necesidades planteadas de la mejor manera. En esta fase, también son útiles diferentes diagramas que además de ayudar a comprender mejor el sistema, sus procesos, actividades e interrelaciones, ayuda también a ir esbozando la solución al mismo. Los diagramas a emplear son variables en cada proyecto, pero se deben tomar como referencia los diagramas del Lenguaje Unificado de Modelado UML. Las actividades de la fase de Análisis son: 1. Estudio del entorno tecnológico. 2. Elección de la Arquitectura de Desarrollo. 3. Diagramas de Análisis del Sistema. 4.2.1 Estudio del entorno tecnológico
Todo proyecto requiere para su correcto funcionamiento de ciertos recursos que garanticen su desarrollo y ejecución de manera normal. Verificar que estos recursos se tienen antes de iniciar el
desarrollo de un proyecto recibe el nombre de estudios de viabilidad o factibilidad, de esta manera podemos encontrar estudios de viabilidad económica, viabilidad operativa, viabilidad de fechas, viabilidad técnica, etc. En este punto, más que un estudio de viabilidad, se pretende es realizar un “inventario” de la tecnología con la que cuenta la empresa y que servirá de soporte para la ejecución del proyecto. Conocer esta tecnología es importante para que el desarrollador pueda tomar decisiones sobre la plataforma y arquitectura a emplear o para realizar recomendaciones de adquisición de tecnología necesaria para la ejecución del proyecto. 10
FAVA - Formación en Ambientes Virtuales de Aprendizaje
SENA - Servicio Nacional de Aprendizaje
Procedimiento de desarrollo de Sistemas de información
Es de vital importancia entonces conocer las características de Hardware, las redes, elementos de comunicación y las licencias de software que posee la empresa.
4.2.2 Elección de la Arquitectura de Desarrollo Para el desarrollo de un proyecto de software, existen diferentes
alternativas referentes principalmente a la arquitectura a emplear. Debemos elegir el ambiente (Web, Window, Consola, Móvil); el sistema manejador de bases de datos (Robusto, Liviano, de Servidor, de Escritorio, Libre, Gratuito, Comercial); el lenguaje de programación (Estructurado, Orientado a Objetos, Libre, Gratuito, Comercial, Orientado a la Web, del lado del Cliente, del lado del Servidor). La arquitectura seleccionada, será determinante para las demás fases del desarrollo del proyecto, ya que esta orientará al desarrollador sobre los diagramas a emplear, los diseños necesarios, las pruebas a realizar, los requisitos de implantación e incluso el contenido de los contratos y licencias de uso.
11
FAVA - Formación en Ambientes Virtuales de Aprendizaje
SENA - Servicio Nacional de Aprendizaje
Procedimiento de desarrollo de Sistemas de información
Aspectos a tener en cuenta para la elección de la mejor alternativa. Identificar el ambiente de ejecución adecuado Ambiente
Windows
Herramientas a
Descripción
Cuándo seleccionarlo
Recibe este nombre las
Cuando la aplicación va a
aplicaciones basadas en
ser utilizada desde un solo
formularios o ventanas y
computador
controles
pocos;
típicos
como
o
emplear
desde
cuando
la
botones, cajas de texto,
información que gestiona
.NET
menús. Las aplicaciones
la aplicación no debe ser
(WinForms),
en este ambiente tienen
compartida entre los Pc’s
Delphi,
que ser instaladas en
que ejecuten la aplicación;
Swing …
cada computador donde
cuando
se desee utilizar.
buena velocidad y buena
se
requiere
Java
de
presentación; muy útil para el manejo de gráficos.
Web
12
Recibe este nombre las
Cuando la aplicación deba
aplicaciones
son
ser accedida por varios
accedidas a través de los
usuarios desde diferentes
navegadores Web. Este
lugares; cuando los datos ASP.NET,
tipo de aplicaciones son
de la aplicación deban ser
JavaScript,
alojadas en un Servidor
compartidos
los
HTML,
CSS,
Web y para el acceso a
usuarios;
la
HTML5
Ajax,
la aplicación se requiere
aplicación no requiera de
JQuery
que el equipo esté en la
velocidades de ejecución
red del servidor.
extremas.
que
por cuando
FAVA - Formación en Ambientes Virtuales de Aprendizaje
PHP,
JSP,
SENA - Servicio Nacional de Aprendizaje
Procedimiento de desarrollo de Sistemas de información
Consola
Recibe este nombre las
Cuando se requiera de
aplicaciones
que
una
ejecutan
ambiente
velocidad
o
interacción
con
el
D.O.S, que requieren de
ambiente;
cuando
la
mucha interacción con el
aplicación sea empleada
Turbo
teclado y que carecen de
por pocas personas en
.NET, Java…
controles
pocos
en
se
prediseñados
alta
cuando no se manejen
texto,
grandes
de
Pascal,
computadores;
como botones, cajas de casillas
C, C++, QBasic,
volúmenes
de
Estas aplicaciones se caracterizan porque son accedidas desde dispositivos móviles como celulares o PDA’s, SmartPhones o Tablets. Móvil
En este ambiente, la información puede residir en el dispositivo móvil o en un servidor y ser accedida desde el
Cuando se requiera que la aplicación sea accedida a través
de
móviles;
dispositivos cuando
los
procesos a ejecutar son livianos; requiera
cuando acceso
información
se a
la sin
limitaciones del lugar o del
Java JME, .NET Compact Framework, Windows Phone, Android
WML, HTML5
puesto de trabajo.
dispositivo móvil.
13
FAVA - Formación en Ambientes Virtuales de Aprendizaje
SENA - Servicio Nacional de Aprendizaje
Procedimiento de desarrollo de Sistemas de información
Es importante aclarar que un proyecto puede tener una combinación de los diferentes tipos de ambientes vistos. Para la selección del ambiente de ejecución es importante tomar como base la información obtenida en la fase de definición de los requerimientos, particularmente en el listado de requerimientos no funcionales. Al tener claro el ambiente de ejecución, ya se pueden descartar ciertas tecnologías y plataformas de desarrollo. - Tener en cuenta las restricciones o limitaciones impuestas.
Durante la fase de definición de los requerimientos, se debe reconocer las restricciones impuestas por la empresa. Algunas de estas restricciones pueden estar relacionadas con la tecnología a emplear, por ejemplo, es posible que la empresa haya invertido un gran capital en la adquisición de ciertas licencias de software y exija
el desarrollo del proyecto con esas tecnologías. En ese caso, se debe evaluar la tecnología y si esta es apta para el desarrollo del proyecto, se debe verificar si se cuenta con la experiencia y
capacidad para el desarrollo del proyecto en dicha tecnología, en caso contrario, el desarrollo del proyecto puede sufrir un retraso considerable.
Otra restricción frecuente es la de tener que emplear tecnologías libres o gratuitas para el desarrollo del proyecto, pues la empresa se niega a tener que pagar altos costos de licenciamiento; en este caso, se debe evaluar y elegir la tecnología libre apta para el desarrollo del proyecto en la que el desarrollador tenga más experiencia.
El Analistas y Desarrolladores en cualquiera de los casos puede sugerir la tecnología adecuada para el desarrollo del proyecto siempre y cuando tenga la justificación y argumentación técnica suficiente para hacerlo.
14
FAVA - Formación en Ambientes Virtuales de Aprendizaje
SENA - Servicio Nacional de Aprendizaje
Procedimiento de desarrollo de Sistemas de información
- Evaluar las tecnologías candidatas. Si el desarrollador es libre de elegir la plataforma de desarrollo, se deben evaluar las características del proyecto, sus requerimientos no funcionales e investigar las características de las diferentes plataformas de desarrollo. Es de gran importancia la elección del sistema manejador de bases de datos porque este será el responsable del almacenamiento y administración de toda la información del proyecto, de igual manera, el lenguaje de programación de alto nivel elegido es importante, pues algunos poseen gran riqueza de funciones, otros son orientados a objetos y permiten la reutilización de clases, otros poseen mayores fortalezas de seguridad. La experiencia es sin duda una razón de peso para la elección de la
plataforma de desarrollo, ya que esta permite avanzar rápidamente en la construcción del proyecto y no se hace necesario invertir tiempo valioso en el aprendizaje de una herramienta nueva, sin embargo, si el desarrollador se basa exclusivamente en esta
premisa, más temprano que tarde se dará cuenta que está desarrollando en una herramienta obsoleta y el caos será mayor.
En conclusión, ante limitaciones de tiempo, es recomendable emplear una herramienta conocida y en la cual se tenga experiencia, sin dejar de investigar y aprender nuevas tecnologías
que en el caso de proyectos no críticos y sin limitaciones de tiempo se pueden poner en práctica.
15
FAVA - Formación en Ambientes Virtuales de Aprendizaje
SENA - Servicio Nacional de Aprendizaje
Procedimiento de desarrollo de Sistemas de información
Inicio
Identificar Ambiente de Ejecución
No
Existen restricciones
Si
Son aptas para
No
Evaluar las tecnologías candidatas
Si
Aumentar el tiempo de desarrollo estimado
No
Se t iene la experiencia
Si
Tecnología Seleccionada
Fin
4.2.3 Diagramas de Análisis del Sistema
En la fase de análisis los diagramas deben estar enfocados en la comprensión del sistema (actual y nuevo). Cada diagrama presenta una vista del sistema desde diferentes niveles de abstracción, por lo tanto, la elección de los diagramas requeridos depende del aspecto del sistema en el que se desee concentrar la atención. Los diagramas no son excluyentes ni dependen exclusivamente de
una metodología o paradigma seleccionado, los diagramas son
expresiones gráficas de algo que se desea observar en un sistema,
por esta razón, lo importante es pensar en qué se desea observar y a partir de esto, elegir el diagrama que permita hacerlo de la manera más eficiente. 16
FAVA - Formación en Ambientes Virtuales de Aprendizaje
SENA - Servicio Nacional de Aprendizaje
Procedimiento de desarrollo de Sistemas de información Diagrama
Contexto
Qué representa
Cuando Hacerlo
La relación entre el sistema de
Siempre que se desee
estudio
sistemas
presentar una imagen
externos. Permite identificar el
del alcance el sistema
alcance del sistema.
y su relación con otros
y
otros
sistemas
Flujo de Datos
El comportamiento del sistema.
Cuando
se
Permite identificar los procesos,
comprender
su interacción y los principales
cómo
almacenes de datos.
sistema actual.
desee mejor
funciona
el
Las principales funcionalidades que tendrá el nuevo sistema y quiénes interactuarán con ellas. Casos de Uso
Siempre
Son un referente para todas las fases del desarrollo, desde la definición
de
requerimientos
hasta las pruebas. Los Entidad Relación
datos
requeridos
por
el
Siempre
que
el
sistema y la relación entre ellos.
proyecto requiera de
Este diagrama dará origen a la
una Base de Datos.
Base de Datos.
Clases
Los objetos que formarán parte
Siempre
del
construcción
sistema,
comportamiento.
sus
datos
y
Se convierte
en un insumo importante para el
que
aplicación
se
de
la la
realice
Orientada a Objetos.
diseño y la construcción de la aplicación.
17
FAVA - Formación en Ambientes Virtuales de Aprendizaje
SENA - Servicio Nacional de Aprendizaje
Procedimiento de desarrollo de Sistemas de información
Secuencia / Colaboración
La interacción entre diferentes
Cuando existan casos
objetos para cumplir con una
de uso sobre los que
funcionalidad del sistema.
se
Los
desee
mensajes transmitidos entre los
cuáles son los pasos
objetos para cumplir una función.
para llevarlos a cabo. Cuando objetos
Transición de estados
conocer
Los diferentes estados por los que
pasa
un
objeto
en
un
sistema.
existan dentro
del
sistema que cambien de estado e interese conocer
las
condiciones requeridas para
pasar
de
un
estado a otro.
Actividades / Flujo
La secuencia de pasos lógicos
Cuando
existan
requeridos para cumplir con un
procesos o funciones
propósito dentro del sistema.
que
se
deseen
describir paso a paso.
La tabla anterior presenta un listado de los diagramas más empleados dentro de la fase de análisis, normalmente, el diseño de un diagrama requiere de varias revisiones y correcciones hasta llegar a su versión final, por esta razón es importante estimar un tiempo adecuado para la fase de análisis, con el fin de realizar los diagramas de esta fase de la mejor manera posible ya que estos serán insumos de vital importancia para el diseño del proyecto.
18
FAVA - Formación en Ambientes Virtuales de Aprendizaje
SENA - Servicio Nacional de Aprendizaje
Procedimiento de desarrollo de Sistemas de información
4.3 Fase de Diseño Presentar en un capítulo aparte La fase de diseño es determinante para el éxito o fracaso del
proyecto, debido a que el diseño está directamente relacionado con la calidad del software y será la principal referencia a tener en cuenta durante la fase de construcción. Existen diferentes tipos de diseños, pensados cada uno en
presentar una solución a un aspecto particular del proyecto, en esta etapa, el desarrollador debe realizar aquellos que considere necesarios para llegar a la fase de construcción con una guía que oriente su trabajo, dejando poco a la imaginación. A continuación se presentan algunos de los diseños más significativos 4.3.1 Diseño de la Base de Datos
TRATAMIENTOS TraNumero TraFechaAsignado TraDescripcion TraFechaInicio TraFechaFin TraObservaciones TraPaciente
1
PACIENTES PacIdentificacion 1 PacNombres PacApellidos PacFechaNacimiento PacSexo
19
1
MEDICOS MedIdentificacion MedNombres MedApellidos
1
CONSULTORIOS ConNumero ConNombre
CITAS CitNumero CitFecha CitHora CitPaciente CitMedico CitConsultorio CitEstado CitObservaciones
FAVA - Formación en Ambientes Virtuales de Aprendizaje
SENA - Servicio Nacional de Aprendizaje
Procedimiento de desarrollo de Sistemas de información
A partir del diagrama Entidad Relación creado durante la fase de Análisis, se debe generar el diseño de la base de datos o modelo de tablas, en este deben quedar claramente definidas las tablas con sus campos, sus llaves principales y llaves foráneas, sus relaciones, restricciones de integridad referencial y cardinalidad. Este diseño será la guía que tendrá el desarrollador al momento de definir el esquema de la base de datos en el sistema manejador de bases de datos seleccionado. 4.3.2 Diccionario de Datos DICCIONARIO DE DATOS Tabla Nombre Id_cte nomb_cte
Cliente Tipo Numérico Carácter
Tamaño 4 50
Not Null PK FK X X X X
Default
Constraint Descripción Identificador del cliente Razón social de la empresa
Tabla Nombre Id_prod nomb_prdo cto_uni
Producto Tipo Numérico Carácter Numérico
Tamaño 7 80
Not Null PK FK X X X X
Default
Constraint Descripción Identificador del producto Nombre del medicamento
3
X
Valor de cada medicamento
Pasando más al detalle, el diseño de archivos o diccionario de datos toma cada uno de los campos presentes en las tablas (archivos) del diseño de la base de datos y especifica su nombre, tipo de dato, tamaño y restricciones o constraints, por ejemplo si es llave primaria, si acepta valores nulos, su valor por defecto, si es requerido o si es llave foránea. Este diseño complementa el diseño de la base de datos y es empleado durante la construcción de la base de datos en el momento de definir las propiedades de cada campo en el sistema manejador de bases de datos.
20
FAVA - Formación en Ambientes Virtuales de Aprendizaje
SENA - Servicio Nacional de Aprendizaje
Procedimiento de desarrollo de Sistemas de información
4.3.3 Diseño de Entradas y Salidas
x
ZONA DE TITULO Zona de instrucciones para el usuario
Zona de logotipo
Zona de entradas de usuario
Zona de movimiento de registros
Zona de operaciones con registros
Este diseño especifica los pantallazos, ventanas, formularios o reportes requeridos por la aplicación para comunicarse con el usuario, gracias a este diseño, es posible conocer cuáles serán los datos solicitados al usuario y cuáles serán los datos mostrados en cada pantallazo, su ubicación, tipo de control empleado y las características o restricciones de cada campo.
Para el desarrollo de este diseño se deben tener en cuenta ciertos principios orientados a la ergonomía de la aplicación, de igual manera, se deben considerar las recomendaciones del usuario final, ya que este será quien ingrese los datos en las entradas y reciba la información de las salidas. Es recomendable realizar el diseño de entradas y salidas después del diseño de la base de datos para garantizar que los campos de la base de datos van a ser alimentados a través de las entradas y que las salidas diseñadas solo podrán presentar información calculada u obtenida de los campos de la base de datos. 4.3.4 Diseño de Casos de Uso Registrar Cliente
CÉDULA NOMBRE TELÉFONO REGISTRAR
Registrar cliente
Validar usuario
Generar Factura
IDFACTURA Generar factura
FECHA VALOR GENERAR
Fuente: Los autores
21
FAVA - Formación en Ambientes Virtuales de Aprendizaje
SENA - Servicio Nacional de Aprendizaje
Procedimiento de desarrollo de Sistemas de información
Los diagramas de casos de uso y la descripción de casos de uso realizada en la fase de análisis junto a los diseños de entradas y salidas se unen para generar el diseño de casos de uso, el cual consiste en realizar un seguimiento de la interacción entre el actor y la aplicación (descripciones de casos de uso) con las entradas y salidas diseñadas. Este diseño es importante porque mantiene la trazabilidad del proyecto y valida que las entradas y salidas diseñadas son las suficientes para la ejecución de cada caso de uso. 4.3.5 Diseño de Clases TForm
TFAboutBox +TFAboutBox(inout AOwuner:TComponent*)
+Datos(in producto:UnicodeString, in proyecto:UnicodeString, in autor:UnicodeString,in version:UnicodeString)
TGrafica -pb: TPaintBox* -im: TImage*
-y: unsigned it [][] -x: unsigned short
-habilitada: bool
+TGrafica(in pb:TPaintBox*,in im:TImage*)
-con: TConexion* -actuador: TActuador* -grafica: TGrafica*
-conectado: bool -continuar: bool -manual: bool -inicializarGiro: bool -cargarPerfil: bool -perfilCargado: bool -ficheroPerfil: UnicodeString -ficheroINI: UnicodeString -imgCasco: unsigned short -imgFlechasAB: unsigned short -imgFlechasID: unsigned short
+estado(in habilitada:bool) +limpiar()
-VERSION: UnicodeString
+añadir(in valores:unsigned short*) -pintar(inout Sender:TObject*)
-NOMBRE: UnicodeString -PROYECTO: UnicodeString -AUTOR: UnicodeString
-BUILD: UnicodeString
TActuador -hLib: HINSTANCE -oup32fp: oupfuncPtr -habilitado: bool -error: bool -cadenaError: UnicodeString
+textoError(): UnicodeString
-FECHA_VERSION: UnicodeString
+TFMain(in Owner:TComponent*)
-registro(in ac:AC_Accion_t,in activoAB:bool, in activoID:bool) -estado(in ES_Estado_T:es) -senal(in sn:SN_Senal_T) -bateria(in carga:int,in maxima:int)
+TActuador() +~Tactuador() +movimiento(in accion:AC_Accion_t,in giro:GI_Giro_t): bool +habilitar(in activo:bool) +inicializador(): bool +estadoError(): bool -puerto(in const short:valor): bool
22
TFAboutBox
-fuerza(in fu:unsigned short) -desviacion(in inc:short) -entrenamiento(in fichero:UnicodeString, in nivel:float) -formulario() -editsServidor(in activo bool) -labelsTiempoConexion(in activo:bool)
-labelsFicheroPerfil(in activo:bool) -accionManual(in ac:AC_Accion_tin gi:GI_Giro_t) -imagenCasco(in estado_casco:bool,in contactos:int*) -tiempoConexion(in tiempo:float)
FAVA - Formación en Ambientes Virtuales de Aprendizaje
SENA - Servicio Nacional de Aprendizaje
Procedimiento de desarrollo de Sistemas de información
El diagrama de clases realizado durante la fase de análisis ahora es refinado para convertirlo en el diseño de clases. Para lograr este propósito se deben adicionar los tipos de datos y modificadores de acceso a los atributos, se deben especificar los modificadores de acceso, tipos de retorno, parámetros y tipos de parámetros de entrada en los métodos; se deben identificar clases abstractas e interfaces requeridas, así como la necesidad de incluir otras clases de terceros. En el diseño de clases también es importante reconocer patrones de diseño que puedan ser útiles para la aplicación. Este diseño se convertirá en la base para la construcción del proyecto cuando se emplee el paradigma Orientado a Objetos. 4.3.6 Diseño de Interface
Aspectos como el color de fondo, color del texto, tipo y tamaño de la fuente, textura,
logotipos, íconos e imágenes son tenidos en cuenta en el diseño de interface. Este diseño busca reducir significativamente el tiempo invertido en la fase de construcción ofreciendo a los programadores estos aspectos ya definidos desde el diseño.
23
FAVA - Formación en Ambientes Virtuales de Aprendizaje
SENA - Servicio Nacional de Aprendizaje
Procedimiento de desarrollo de Sistemas de información
4.3.7 Diseño de Navegabilidad
Este diseño es empleado principalmente para el desarrollo de sitios o aplicaciones Web, su objetivo es visualizar los caminos que se deben recorrer para llegar a cualquier página Web (navegar) desde algún punto de la aplicación. Realizar este diagrama es útil para identificar jerarquías y menús en los sitios Web. 4.3.8 Diseño de Seguridad y Control
El diseño de seguridad y control define el mecanismo de acceso a la aplicación por parte de los usuarios, especifica los recursos de la aplicación y los permisos sobre esos recursos que tendrá cada uno de los roles que interactuarán con la aplicación y las demás consideraciones especiales de seguridad y control que la aplicación debe tener en cuenta. 24
FAVA - Formación en Ambientes Virtuales de Aprendizaje
SENA - Servicio Nacional de Aprendizaje
Procedimiento de desarrollo de Sistemas de información
4.4 Fase de Construcción Con la fase de diseño finalizada adecuadamente, se tienen las garantías para iniciar la fase de construcción del proyecto con la certeza de tener las bases suficientes para una construcción del proyecto coherente y consistente con las fases previas y que dará solución a las necesidades planteadas. En esta fase, generalmente se realizan las tareas de la construcción de la Base de Datos (Back-End), la construcción de la Interface Gráfica de Usuario (Front-End) y la codificación de los módulos del sistema. 4.4.1 Relación con el diseño
El diseño de la base de datos y el diseño de archivos son los insumos para crear la base de datos en el sistema manejador de bases de datos seleccionado. El diseño de entradas y salidas y el diseño de interface se toman como referencia para la construcción de la interface gráfica de usuario. El diseño de clases, de casos de uso, de navegabilidad y de seguridad y control dirigen la codificación de los módulos del sistema. Para el desarrollo de los elementos que forman parte de la fase de construcción, además de tomar como referencia los diseños anteriormente mencionados, se deben seguir otras pautas que permitan llevar a cabo esta fase de una manera adecuada, generando como resultado un proyecto eficiente y con facilidad de mantenimiento. 4.4.2 Uso de convenciones durante la fase de construcción
Emplear convenciones facilita el mantenimiento del proyecto, la corrección de errores, agiliza el proceso de construcción, promueve la interoperabilidad del proyecto y la comunicación con otros proyectos, crea un ambiente de confianza en el equipo de desarrollo e independiza el proyecto del desarrollador que lo realizó. 25
FAVA - Formación en Ambientes Virtuales de Aprendizaje
SENA - Servicio Nacional de Aprendizaje
Procedimiento de desarrollo de Sistemas de información
4.4.2.1 Convenciones en bases de datos
Al momento de definir el esquema de la base de datos, es importante emplear convenciones para darle nombre a los objetos de la misma. Existen unos parámetros universales elementales que
son idénticos a las reglas aplicables para definir variables, sin embargo, al interior de cada empresa de desarrollo de software se adoptan convenciones propias para facilitar el trabajo de sus desarrolladores. Por ejemplo, algunas empresas o desarrolladores suelen emplear el prefijo tbl para nombrar las tablas (tblAlumnos), otros desarrolladores nombran las tablas en mayúscula y plural. Un ejemplo de convenciones para las bases de datos puede ser: Tablas
- Todos los nombres de las tablas deben expresarse en plural y en mayúscula sostenida - Tablas que sean referencias a entidades en el sistema. Ejemplo: ALUMNOS, COMPUTADORES, HORARIOS, TURNOS. - Los nombres de las tablas que se generen a partir de relaciones entre entidades deben tener en lo posible un nombre significativo para el sistema. Ejemplo: SOLICITUDES podría ser el nombre de la tabla obtenida de la relación entre proyectos y recursos. - Las tablas generadas a partir de relaciones donde no se encuentre un nombre significativo dentro del sistema, se deben nombrar empleando la combinación de los nombres de las entidades relacionadas. Ejemplo: INSTRUCURSOS Podría ser el nombre de la tabla generada a partir de las entidades Instructor y Curso.
26
FAVA - Formación en Ambientes Virtuales de Aprendizaje
SENA - Servicio Nacional de Aprendizaje
Procedimiento de desarrollo de Sistemas de información
Campos - Los nombres de los campos deben emplear la convención Pascal
Case, la cual indica que se debe empezar en mayúscula la primera letra de cada palabra. Ejemplo: IdCurso, TipoIdentidad, SalarioPromedio.
- Cada campo debe expresar en su nombre la tabla a la que
corresponde, esto lo hace empleando como prefijo las 4 primeras letras de la tabla seguidas por guión bajo. Ejemplo: EMPLEADOS Empl_Cedula
Empl_Nombre Empl_FechaContrato Empl_SalarioPromedio
- Cuando se trate de tablas cuyo nombre es compuesto, el prefijo
debe contener parte de ambos nombres. Ejemplo: INSTRUCURSOS Incu_InstructorF Incu_CursoF
Incu_FechaAsignacion
- El (los) campo(s) definido(s) como llave principal debe(n) estar al
inicio de la tabla.
- El (los) campo(s) definido(s) como llave(s) foránea(s) debe(n)
estar al final de la tabla, su nombre debe hacer alusión a la tabla de donde procede y debe terminar con la letra F. Ejemplo: Si en la tabla PRODUCTOS existe un campo foráneo que hace
alusión al código de la categoría de la tabla CATEGORIAS, este campo se debe nombrar así:
27
FAVA - Formación en Ambientes Virtuales de Aprendizaje
SENA - Servicio Nacional de Aprendizaje
Procedimiento de desarrollo de Sistemas de información
Prod_CategoriaF donde: Prod hace referencia a la tabla donde está el campo Categoria indica que es un campo que hace alusión a la llave principal de la tabla CATEGORIAS F significa que es foráneo. 4.4.2.2. Convenciones de Programación
Para la codificación del programa, es de vital importancia el manejo de convenciones, pues gracias a ellas es posible reducir significativamente el tiempo de desarrollo y los programas serán más claros y fáciles de mantener. -Convenciones para nombrar controles
Como regla general, para darle nombre a un control se debe emplear un prefijo que indique el tipo de control, seguido de la funcionalidad que este control debe realizar. Ejemplo: para un menú que permita salir de la aplicación, el nombre más adecuado sería mnuSalir. A continuación, se ofrece una lista de algunos controles comunes con su respectivo prefijo y ejemplo. Esta lista es de simple ilustración, se debe tener en cuenta que el prefijo a utilizar depende directamente del nombre del control, por lo tanto, para controles ausentes en la lista o controles personalizados, se debe emplear un prefijo que describa claramente su tipo.
28
FAVA - Formación en Ambientes Virtuales de Aprendizaje
SENA - Servicio Nacional de Aprendizaje
Procedimiento de desarrollo de Sistemas de información Control
Adodc
Descripción
Prefijo Ejemplo
Datos ADO
ado
adoBiblio
Botón
de
Button
comando
btn
btnAceptar
Calendar
Vista de mes
mvw
mvwPeriodo
chk
chkSoloLectura
cbo
cboIngles
CommandButton comando
cmd
cmdSalir
CommonDialog
Datos común
dlg
dlgAbrirArchivo
Data
Datos
dat
datBiblio
dtgrd
dtgrdResultadosConsulta
dblst
dblstTipoTrabajo
dir
dirSource
drv
drvDestino
dtp
dtpEditado
Casilla CheckBox
de
verificación Cuadro combinado, cuadro de lista
ComboBox
desplegable Botones
de
Cuadrícula enlazada DataGrid
a
datos Cuadro de lista enlazada
DataList
a
datos Cuadro de lista
DirListBox
de directorios Cuadro de lista
DriveListBox
de unidades Selector
DTPiker
de
fecha Cuadro de lista
29
FileListBox
de archivos
fil
filOrigen
Form
Formulario
frm
frmEntrada
Frame
Marco
fra
fraIdioma
Grid
Cuadrícula
grd
grdPrecios
FAVA - Formación en Ambientes Virtuales de Aprendizaje
SENA - Servicio Nacional de Aprendizaje
Procedimiento de desarrollo de Sistemas de información Barra
de
desplazamiento HScrollBar
horizontal
hsb
hsbVolumen
Image
Imagen
img
imgIcono
ImageList
Lista de imágenes ils
ilsTodosIconos
Label
Etiqueta
lbl
lblMensajeAyuda
ListBox
Cuadro de lista
lst
lstCodigos
ListView
Visor de lista
lvw
lvwEncabezados
MAPI
Sesión MAPI
mps
mpsSesion
Menu
Menú
mnu
mnuAbrirArchivo
MSComm
Comunicaciones
com
comFax
MSHFlexGrid Flexgrid
flex
flexPedidos
OptionButton Botón de opción
opt
optGenero
Panel
pan
panBotones
pic
picVGA
Hierarchical
Panel Cuadro
PictureBox
imagen
ProgressBar
Barra de progreso prg
prgCargarArchivo
RichTextBox
RichTextBox
rtf
rtfInforme
SatusBar
Barra de estado
sta
staFechaHora
Shape
Forma
shp
shpCirculo
Slider
Control deslizante sld
sldEscala
TabStrip
Fichas
tab
tabOpciones
TextBox
Cuadro de texto
txt
txtApellido
Timer
Cronómetro
tmr
tmrAlarma
Barra
de
ToolBar
herramientas
tlb
tlbAcciones
TreeView
Visor de árbol
tre
treOrganizacion
UpDown
UpDown
upd
updDireccion
vsb
vsbIndice
Barra VScrollBar
30
de
desplazamiento
de
FAVA - Formación en Ambientes Virtuales de Aprendizaje
SENA - Servicio Nacional de Aprendizaje
Procedimiento de desarrollo de Sistemas de información
-Convenciones de Codificación
Cada lenguaje de programación sugiere el uso de ciertas convenciones para nombrar los elementos que forman parte del código fuente de un programa como las clases, variables, constantes y métodos, por ejemplo, VB.Net emplea la convención
PascalCase que inicia con mayúscula el nombre de los métodos y Java emplea la convención Camel Casing, la cual inicia con minúscula sus métodos. El desarrollador puede de acuerdo con el lenguaje emplear una convención u otra o simplemente puede adoptar una convención para todos sus proyectos independientemente del lenguaje de programación utilizado. Ejemplo: Tipo
de Convención
Elemento
Ejemplo
Pascal Casing
clase
Empezar
con
Empleado mayúscula
la
MovimientoDeTransaccion
primera letra de cada palabra y en singular
Interfaces
Igual que las clases pero debe iniciar con la letra I Camel Casing
Variables
Empezar con minúscula y la
Locales,
primera letra de las siguientes
Parámetros Métodos
IArticulo
y palabras con mayúscula
impuesto primerApellido salarioTotal calcularPrestaciones() guardar() consultarSaldoActual()
31
FAVA - Formación en Ambientes Virtuales de Aprendizaje
SENA - Servicio Nacional de Aprendizaje
Procedimiento de desarrollo de Sistemas de información
Variables
Igual que las variables locales
gSaldo
Globales a nivel pero deben empezar con la letra
gEdad
de
Archivo
o g
gPaisOrigen
Clase Variables
Igual que las variables locales
Globales a nivel pero deben empezar con la letra de Aplicación
pCargoActual
p Mayúscula
Constantes
pUsuario
sostenida,
si
su
PI
nombre es compuesto, se debe
SALARIO_MINIMO
separar por guion bajo
IVA
-Indentación
La indentación facilita la lectura, comprensión del código y el seguimiento del flujo de un programa, es recomendado usar 3 o 4 espacios como indentación entre cada bloque Ejemplo en VB: If (salario>salarioMinimo) Then impueto=salario*0.1 End If
Ejemplo en C# Sin Identar
Identación estilo 1
32
FAVA - Formación en Ambientes Virtuales de Aprendizaje
SENA - Servicio Nacional de Aprendizaje
Procedimiento de desarrollo de Sistemas de información
Identación estilo 2
En condiciones largas que combinen operadores lógicos, el código es difícil de leer y seguir cuando esta se realiza en una sola línea. If ((salario<=salarioMinimo) &&(edad<18) && (estrato<3) && (ma { descuento=matricula *0,5;
valorPagar=matricula-descuento;
}
En estos casos, es recomendable separar la condición en varias líneas. Ejemplo: If ((salario <=salarioMinimo) && (edad<18) && (estrato<3 &&
(matricula>promedioMatricula))
{ descuento=matricula *0,5;
valorPagar=matricula-descuento;
}
También es recomendado que aunque un bloque posea una sola línea de código y por lo tanto se puedan omitir las llaves de apertura y cierre, éstas siempre se agreguen, pues dan mayor legibilidad al código y evitan posibles errores al modificar las acciones del bloque.
33
FAVA - Formación en Ambientes Virtuales de Aprendizaje
SENA - Servicio Nacional de Aprendizaje
Procedimiento de desarrollo de Sistemas de información
No recomendado: While (cantAlumnos
Sugerido: While (cantAlumnos
-Convenciones de los comentarios •Preferir los comentarios en líneas aparte que al final de una línea
de código.
•Los comentarios deben estar en el mismo nivel de indentación que
el segmento de código a comentar.
•Iniciar el texto del comentario con una letra mayúscula. •Finalizar los comentarios con un punto. •Insertar un espacio entre el delimitador del comentario y el texto
del comentario.
Secciones de Comentarios
34
FAVA - Formación en Ambientes Virtuales de Aprendizaje
SENA - Servicio Nacional de Aprendizaje
Procedimiento de desarrollo de Sistemas de información
Encabezado
Empezar todos los programas o archivos con un encabezado
del Programa descriptivo. o Archivo /*---------------------------------------------------------* Programa o Archivo: * Sistema:
* Versión:
* Autor: Formato
del
Encabezado
* Fecha:
* Descripción:
[* Historial de modificaciones: * Fecha
Descripción Modificación
Autor ]
*---------------------------------------------------------*/
35
FAVA - Formación en Ambientes Virtuales de Aprendizaje
SENA - Servicio Nacional de Aprendizaje
Procedimiento de desarrollo de Sistemas de información
/* Método:
* Descripción:
* Autor:
* Fecha:
Encabezado de
métodos,
funciones
o
* Descripción de Parámetros:
procedimient os
[* Historial de modificaciones: * Fecha
Descripción Modificación
Autor
*---------------------------------------------------------] */ Secciones Mayores
Antes de una sección mayor de un programa, escribir un bloque de comentarios que describan el procesamiento que es realizado en tal sección. Incluir comentario similar para la finalización del código. /*----* Proceso para el Calculo de la Desviación Estandar *----*/
Ejemplo Sección Mayor
.. /*----* Fin de Programa *-----*/
36
FAVA - Formación en Ambientes Virtuales de Aprendizaje
SENA - Servicio Nacional de Aprendizaje
Procedimiento de desarrollo de Sistemas de información
Comentarios
Los comentarios de línea deben explicar el propósito y el
de línea
comportamiento del código
Ejemplo
mal IF rsClientes > limit
comentario
/* Verifica si rsClientes es mayor que el límite. */
Ejemplo buen IF rsClientes > limit comentario
/* Verifica si todos los clientes se han mostrado */ •
Espacios
Escribir los programas con suficiente espacio para que no se vean
en densos.
Blanco •
Separar cada construcción del programa con al menos un espacio.
-Otras recomendaciones para la codificación de los programas +Utilice la palabra clave With
Cuando se enfrente con una serie de llamadas a un objeto, considere la posibilidad de utilizar la palabra clave With, esto hará el código más fácil de entender y modificar +Evite el código quemado
En las condiciones de una estructura de control de flujo, no se debe realizar comparaciones con constantes sean estas numéricas o de texto, pues cualquier cambio en el comportamiento del sistema
generará gran esfuerzo en el mantenimiento de la aplicación.
37
FAVA - Formación en Ambientes Virtuales de Aprendizaje
SENA - Servicio Nacional de Aprendizaje
Procedimiento de desarrollo de Sistemas de información
Código Quemado
Código
no
quemado
38
FAVA - Formación en Ambientes Virtuales de Aprendizaje
SENA - Servicio Nacional de Aprendizaje
Procedimiento de desarrollo de Sistemas de información
4.4.3 Arquitectura o Programación en 3 capas
Al momento de realizar la codificación de los módulos de una aplicación Web, es posible tener en un mismo archivo (.php, .asp, .aspx …) Todo el código mezclado para llevar a cabo la funcionalidad
que se pretende desarrollar con una determinada página Web, este archivo contendrá entonces • •
Código HTML con el que se le dará formato a la página Código PHP, ASP, ASP.NET …, con el que se atenderá la lógica
•
Código JavaScript o VBScript con el que se realizarán
•
Código SQL con el que se accederá a la Base de Datos para
de la página.
validaciones o se le dará dinamismo a la página. enviar o recibir información de ella.
El hecho de tener todos estos códigos dentro de un mismo archivo (Página Web), hace que el mantenimiento de la aplicación sea muy dispendioso y que algún cambio bien sea en el diseño de la página, en la Base de Datos o en las reglas del negocio genere grandes dificultades para volver a interrelacionar todos los códigos mencionados. Por esta razón surge un estilo de programación conocido como Programación por Capas.
1. Capa de presentación
CLIENTES
39
2. Capa de negocio
3. Capa de datos
SERVIDOR DE
SERVIDOR DE
NEOCIACIÓN
BASE DE DATOS
FAVA - Formación en Ambientes Virtuales de Aprendizaje
SENA - Servicio Nacional de Aprendizaje
Procedimiento de desarrollo de Sistemas de información
Este estilo de programación separa el desarrollo de la aplicación en 3 capas: La Capa de Presentación, La Capa de Negocio y la Capa de Datos, dándole a cada capa una responsabilidad exclusiva y de esta
manera lograr la independencia de cada una de ellas con las demás, obteniendo de esta forma las siguientes ventajas: •
Proporciona
escalabilidad,
capacidad
utilización de recursos mejorados.
de
administración
y
• Cada capa es un grupo de componentes que realiza una función
específica.
• Se puede actualizar una capa sin recompilar otras capas.
4.4.3.1 Capa de presentación:
Es la encargada de mostrar al usuario la interface gráfica con la que interactuará para ingresar u obtener información del sistema. Esta capa está conformada principalmente por los formularios y controles que el usuario manipulará. Para mantener la independencia entre las capas, es recomendable que esta no posea ningún tipo de código diferente al necesario para presentar la interface gráfica al usuario. 4.4.3.2 Capa de negocio:
40
FAVA - Formación en Ambientes Virtuales de Aprendizaje
SENA - Servicio Nacional de Aprendizaje
Procedimiento de desarrollo de Sistemas de información
Esta capa es la que contiene el código necesario para que la aplicación cumpla con las reglas del negocio del sistema, estas reglas son condiciones o características especiales del sistema que se desarrolla como por ejemplo el asignar citas únicamente a los médicos que se encuentren disponibles y que tengan la especialidad necesaria para atender a un determinado paciente. Esta capa además es la responsable de capturar la información que el usuario ingresa en la capa de presentación, procesar los eventos generados y comunicarse con la capa de datos para enviar los datos o recoger los datos que se mostrarán finalmente en la capa de presentación. 4.4.3.3 Capa de datos: TRATAMIENTOS TraNumero TraFechaAsignado TraDescripcion TraFechaInicio TraFechaFin TraObservaciones TraPaciente
1
PACIENTES 1 PacIdentificacion PacNombres PacApellidos PacFechaNacimiento PacSexo
CITAS CitNumero CitFecha CitHora CitPaciente CitMedico CitConsultorio CitEstado CitObservaciones
MEDICOS MedIdentificacion MedNombres MedApellidos
1
1
CONSULTORIOS ConNumero ConNombre
La capa de datos está conformada por las clases que almacenan información y por los componentes físicos en los que esta información se almacena como es el caso de las bases de datos. Esta capa es la responsable de guardar los datos con los que el sistema trabaja y de permitir el acceso a los mismos para ser finalmente visualizados en la capa de presentación. En la actualidad existen dentro de las diferentes plataformas de
desarrollo frameworks que ayudan a programar utilizando la
arquitectura en tres capas y patrones de diseño como el MVC (Modelo Vista Controlador) que al aplicarse en el desarrollo de un
software implícitamente implementa este tipo de arquitectura en una aplicación.
41
FAVA - Formación en Ambientes Virtuales de Aprendizaje
SENA - Servicio Nacional de Aprendizaje
Procedimiento de desarrollo de Sistemas de información
GLOSARIO Artefacto: En el Lenguaje Unificado de Modelado (UML), un artefacto es la especificación de un componente físico de información que es usado o producido por un proceso de desarrollo de software, o por el desarrollo y operación de un sistema. Back-end: En un aplicativo de software corresponde con la parte que procesa los datos recibidos desde el front-end. Constraint: Son restricciones que se definen desde el diseño de la base de datos y permiten incorporar reglas a los datos. 10 CRUD: es un acrónimo que se utiliza para denotar las cuatro Formación en Ambientes Virtualeslos de Aprendizaje Nacional de Aprendizaje FAVA - a SENA - Servicio operaciones básicas desarrollar sobre datos Creación de datos o inserción de los mismos (Create), lectura o consulta de datos (Read), actualización de datos ( Update) y borrado o eliminación de los mismos (Delete)
Framework: Conjunto de librerias o utilidades para agilizar y optimizar el desarrollo en un lenguaje de programación determinado. Front-end: En un aplicativo de software corresponde con la parte que interactúan los usuarios del sistema. Iterativo: Repeticiones sobre un conjunto de procesos.
42
FAVA - Formación en Ambientes Virtuales de Aprendizaje
SENA - Servicio Nacional de Aprendizaje
Procedimiento de desarrollo de Sistemas de información
BIBLIOGRAFÍA Object Management Group (2013). UML. disponible en http://www.omg.org/spec/UML/2.1.2/Superstructure/PDF/
43
FAVA - Formación en Ambientes Virtuales de Aprendizaje
SENA - Servicio Nacional de Aprendizaje