Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ESTRUCTURA DE CONTENIDOS
Pág.
Introducción...................................................................................................................... 3
1. Objetivo.......................................................................................................................... 4
2. Alcance.......................................................................................................................... 4
3. Fases............................................................................................................................. 4
4. Especificación de cada fase......................................................................................... 4
4.1. Fase de Definición de los requerimientos.................................................................. 4
4.2. Fase de Análisis.......................................................................................................... 8
4.2.1. Estudio del entorno tecnológico............................................................................... 8
4.2.2. Elección de la Arquitectura de desarrollo................................................................ 9
4.2.3. Diagramas de Análisis del Sistema.........................................................................13
4.3. Fase de Diseño..........................................................................................................14
4.3.1. Diseño de la Base de Datos....................................................................................15
4.3.2. Diseño de Archivos (Diccionario de Datos).............................................................16
4.3.3. Diseño de Entradas y Salidas.................................................................................16
4.3.4. Diseño de Casos de Uso........................................................................................17
4.3.5. Diseño de Clases....................................................................................................18
4.3.6. Diseño de Interface.................................................................................................19
4.3.7. Diseño de Navegabilidad........................................................................................19
4.3.8. Diseño de Seguridad y Control................................................................................20
4.4. Fase de Construcción...............................................................................................20
4.4.1. Relación con el diseño............................................................................................20
4.4.2. Uso de convenciones durante la fase de construcción..........................................21
4.4.2.1. Convenciones en bases de datos........................................................................21
4.4.2.2. Convenciones de Programación.........................................................................23
4.4.3. Arquitectura o Programación en 3 capas...............................................................30
4.4.3.1. Capa de presentación..........................................................................................31
4.4.3.2. Capa de negocio..................................................................................................32
4.4.3.3. Capa de datos......................................................................................................32
Glosario............................................................................................................................34
Bibliografía.......................................................................................................................35
Control del documento.....................................................................................................36
INTRODUCCIÓN
DESARROLLO DE CONTENIDOS
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.
2. Alcance
Este procedimiento aplica 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.
Documento de análisis,
Contrato Línea base de requerimientos elección de tecnología Documento de
SRS con casos de uso, firma diagramas de análisis,
pre desarrollo del contrato de desarrollo estrategias
diseño, diagramas
Definición de
Análisis Diseño Construcción
requerimientos
Administración de requerimientos
Requerimientos
no viables
Esta es una fase de vital importancia para los proyectos, su intención es tener absoluta
claridad sobre los requisitos del mismo, además, se debe estimar el precio, el tiempo y
los recursos necesarios para el desarrollo del proyecto, es posible que una vez finalizada
la definición de requerimientos, se decida no continuar con el proyecto por restricciones o
limitaciones que impidan su correcto desarrollo, como por ejemplo limitaciones como los
términos de tiempo y disponibilidad de recursos.
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 sobre el
proyecto. De estas fuentes de información, se obtiene la visión del proyecto, de la cual se
hace realimentació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.
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.
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, otros.
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.
Herramientas
Ambiente Descripción Cuándo seleccionarlo
a emplear
Recibe este nombre
las aplicaciones Cuando la aplicación va a
basadas en ser utilizada desde un solo
formularios o computador o desde pocos;
ventanas y controles cuando la información que
.NET
típicos como botones, gestiona la aplicación no debe
(WinForms),
Windows cajas de texto, menús. ser compartida entre los Pc’s
Delphi, Java
Las aplicaciones en que ejecuten la aplicación;
Swing…
este ambiente tienen cuando se requiere de
que ser instaladas buena velocidad y buena
en cada computador presentación; muy útil para
donde se desee el manejo de gráficos.
utilizar.
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.
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.
En todos los casos es buena práctica hacer juicio de expertos que consiste en consultar
a expertos acerca de las alternativas de la solución y sus ventajas y desventajas, 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.
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.
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.
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.
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.
Registrar cliente
CÉDULA
NOMBRE Registrar
TELÉFONO cliente
GENERAR
Validar usuario
Generar factura
IDFACTURA
Generar
FECHA factura
VALOR
GENERAR
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.
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.
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
El uso de convenciones hace parte del aseguramiento de calidad del proyecto, además
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ó.
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.
Ejemplo: INSTRUCURSOS
Podría ser el nombre de la tabla generada a partir de las entidades Instructor y Curso.
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 guion bajo.
Ejemplo:
Cuando se trate de tablas cuyo nombre es compuesto, el prefijo debe contener parte de
ambos nombres. Ejemplo:
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í:
Prod_CategoriaF
Donde:
Prod hace referencia a la tabla donde está el campo Categoria donde indica que es un campo
que hace alusión a la llave principal de la tabla CATEGORIAS F y significa que es foráneo.
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.
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.
Indentación
La indentación facilita la lectura, comprensión del código, el seguimiento del flujo de
un programa y su mantenimiento posterior, es recomendado usar 3 o 4 espacios como
indentación entre cada bloque.
Ejemplo en VB:
If (salario>salarioMinimo) Then
impuesto=salario*0.1
End If
Ejemplo en C#
Sin Identar
Identación estilo 1
Identación estilo 2
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, porque
dan mayor legibilidad al código y evitan posibles errores al modificar las acciones del
bloque.
No recomendado:
Sugerido:
• 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:
[* Historial de modificaciones:
* Fecha Descripción Modificación Autor ]
*--------------------------------------------------
*/
/* Método: <Nombre del Método>
* Descripción: <Descripción de Funciones básicas>
* Autor: <Nombre del Asociado>
* Fecha: <dd-mm-aaaa>
Encabezado de métodos,
* Descripción de Parámetros:
funciones o procedimientos
[* Historial de modificaciones:
* Fecha Descripción Modificación Autor
*------------------------------------------------]
*/
Antes de una sección mayor de un programa, escribir un
bloque de comentarios que describan el procesamiento
Secciones Mayores
que es realizado en tal sección. Incluir comentario similar
para la finalización del código.
/*-----
* Proceso para el Cálculo de la Desviación Estándar
*-----
*/
..
Ejemplo Sección Mayor
/*-----
* Fin de Programa
*------
*/
Código Quemado
Código no quemado
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.
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.
La capa de datos está conformada por las clases que almacenan información y realizan
la conexión al motor de bases de datos y las operaciones con la misma (Consultas,
inserción, actualización y eliminación de registros). Esta capa es la responsable de
guardar los datos con los que el sistema trabaja y de permitir el acceso a los mismos
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.
CRUD: es un acrónimo que se utiliza para denotar las cuatro operaciones básicas a
desarrollar sobre los 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).
BIBLIOGRAFÍA
Object Management Group (2013). OMG unified Modeling Language (OMG
UML) Superstructure. Recuperado de http://www.omg.org/spec/UML/2.1.2/
Superstructure/PDF/