Documentos de Académico
Documentos de Profesional
Documentos de Cultura
01/05/2019
ESTANDARES DE DESARROLLO 1/22
REVISIÓN 4
CUADRO DE REVISIONES
Nro. de
Fecha Motivo cambio Elaborado Aprobado
Revisión
1 01/04/2019 Mejora de nomenclatura de Desarrollo ITEL
tablas
2 01/04/2019 Implementación de la norma Desarrollo ITEL
ISO/IEC 17799
3 01/04/2019 Recomendaciones del Desarrollo ITEL
Análisis de Brechas del
ISO/IEC 17799
4 02/04/2019 Implementación del Acuerdo Desarrollo ITEL
Nº 07 del Comité de Calidad
Nº 009-2009 (Adecuación
referida a la denominación
del área, Nomenclatura de
Funciones e inclusión del
prefijo de un nuevo control)
5 02/04/2019 Reglas de Programación en Desarrollo ITEL
Transact - SQL
ESTANDARES DE DESARROLLO
DESARROLLO DE SOFTWARE ET-003
01/05/2019
ESTANDARES DE DESARROLLO 2/22
REVISIÓN 4
ESTANDARES DE DESARROLLO
1. OBJETIVO .................................................................................................... 3
2. ALCANCE ..................................................................................................... 3
3. DIRECTORIOS Y ARCHIVOS ...................................................................... 3
4. CRONOGRAMA DEL PROYECTO .............................................................. 3
5. ESTANDAR DE CONFIGURACION DE BASE DE DATOS ......................... 4
6. OBJETOS DE LA BASE DE DATOS ............................................................ 5
Normas generales de nomenclatura......................................................... 5
Nomenclatura de Base de Datos .............................................................. 5
Nomenclatura de Tablas .......................................................................... 5
Nomenclatura de Parametros ................................................................... 6
Nomenclatura de Constraints ................................................................... 6
Nomenclatura de Índices .......................................................................... 7
Nomenclatura de Vistas ........................................................................... 7
Nomenclatura de Reglas (RULES) ........................................................... 7
Nomenclatura de Defaults ........................................................................ 7
Nomenclatura de Stored Procedures ....................................................... 8
Nomenclatura de Triggers ........................................................................ 8
Nomenclatura de tipos de dato definidos por el usuario ........................... 9
NOMENCLATURA DE FUNCIONES .................................................................. 9
Reglas de Programacion Transact-SQL ................................................... 9
Mantenimiento de objetos de base de datos .......................................... 11
7. SEGURIDAD DE ACCESOS ...................................................................... 12
APLICACIONES VISUALES – SQL SERVER ........................................ 12
8. PISTAS DE AUDITORÍA ............................................................................. 12
APLICACIONES VISUALES – NIVEL APLICACION.............................. 13
APLICACIONES VISUALES – SQL SERVER ........................................ 13
Estructura del Tabla OPE_AUDITOR ..................................................... 13
9. PROGRAMAS EN VISUAL BASIC .NET .................................................... 14
Programas…. ......................................................................................... 14
Variables….. ........................................................................................... 14
Controles…. ........................................................................................... 15
Procedimientos y Funciones .................................................................. 18
Reportes….. ........................................................................................... 18
10. CONTROL DE DATOS EN LAS APLICACIONES ...................................... 18
Controles de Entrada/Origen .................................................................. 18
Procesamiento, validación y edición....................................................... 20
Controles de salida ................................................................................. 21
11. DOCUMENTACIÓN DE LOS SISTEMAS ................................................... 21
Diccionario de datos ............................................................................... 22
ESTANDARES DE DESARROLLO
DESARROLLO DE SOFTWARE ET-003
01/05/2019
ESTANDARES DE DESARROLLO 3/22
REVISIÓN 4
1. OBJETIVO
Este documento tiene por objetivo establecer los estándares que se emplearán en la
programación y documentación de aplicaciones desarrolladas en la Empresa
BELEGOST S.A.
2. ALCANCE
3. DIRECTORIOS Y ARCHIVOS
TipoSolicitud-Número solicitud-Descripcion
Donde:
Ejemplo:
SM-067-2011 Matrícula
Los script de la base de datos de los pases a producción serán almacenados por
el DBA y nombrados de acuerdo a lo siguiente:
TipoSolicitud-Número solicitud-Descripcion
Donde:
Ejemplo:
SM-067-2011 Matricula.sql
Donde:
ESTANDARES DE DESARROLLO
DESARROLLO DE SOFTWARE ET-003
01/05/2019
ESTANDARES DE DESARROLLO 4/22
REVISIÓN 4
Ejemplo:
SM-067-2011 Matricula.mpp
Los Character ó Code Page son grupos de letras, dígitos y símbolos utilizados por el
motor de base de datos para representar la información, cada Character Set
comprende 256 caracteres divididos en 2 grupos, los primeros 128 son los mismos
para todos los Character Set, estos son los caracteres más comunes. Los 128
caracteres restantes que conforman el segundo grupo, son conocidos como
caracteres extendidos los cuales difieren de Set a Set. En este grupo se encuentran
los caracteres especiales y los símbolos utilizados por los distintos idiomas y se
serán más convenientes o una u otra región del mundo.
El Code page 1252 (ISO carácter set) es el default para Microsoft, es también
conocido como el ISO 8859-1, Latín 1 ó ANSI Character Set. Este es compatible con
los caracteres ANSI usados por todos los sistemas operativos Windows. Este código
de pagina es el apropiado si los clientes son sistemas Operativos Windows (NT,
2000, XP, 95, 98).
Microsoft recomienda el uso de ISO 8859-1(default) para evitar los problemas de
conversión de caracteres en los sistemas y porque este contiene los caracteres
adecuados para manejar la mayor parte de idiomas que comprende América y la
parte Oeste de Europa, incluso haciendo uso, de ser necesario, de tipos Unicode en
algunos campos tales como nchar, nvarchar y ntext.
El Dictionary Order, Case Insensitive es el default y el más adecuado para la mayor
parte de instalaciones, tomando en cuenta que permite comparaciones y
ordenamiento basado en la forma natural como lo haría cualquier persona para
comparar por ejemplo:
Ana = ana ó en cuanto a orden Ana, ana, Aparicio, etc.
El Binary Order no es el más adecuado para la mayoría de sistemas debido a que la
comparación y ordenamiento está basado en los valores numéricos de los caracteres
y no en el orden natural de los mismos
Character Set: ISO 8859-1 Latin ó ANSI Character Set
Sort Order: Dictionary Order, Case Insensitive.
Nota: Se debe tener en cuenta esta configuración durante la instalación en un
servidor.
ESTANDARES DE DESARROLLO
DESARROLLO DE SOFTWARE ET-003
01/05/2019
ESTANDARES DE DESARROLLO 5/22
REVISIÓN 4
El primer carácter del identificador debe ser una letra o uno de los siguientes
símbolos: @, #. Los símbolos @ y # tienen un significado especial :
Un identificador comenzando con @ representa a una variable local.
Un identificador comenzando con # representa el nombre de un objeto
temporal. En caso de una tabla o stored procedure, el símbolo # representa a
un objeto temporal local.
Los objetos temporales globales representan con los símbolos (##). Los nombres
de los objetos temporales no deben exceder los 13 caracteres, incluyendo al # o
##, debido a que SQL Server les agrega un sufijo numérico interno.
Los caracteres posteriores al primer carácter pueden incluir letras, dígitos o los
símbolos #, $ o _.
No se aceptan espacios en blanco en medio de los identificadores.
La primera letra de todos los nombres de los objetos de la base de datos debe
escribirse en mayúsculas y cuando el nombre contenga más de una palabra, la
primera letra de ésta se escribirá también con mayúsculas.
Nomenclatura de Tablas
ESTANDARES DE DESARROLLO
DESARROLLO DE SOFTWARE ET-003
01/05/2019
ESTANDARES DE DESARROLLO 6/22
REVISIÓN 4
Nomenclatura de Parametros
Prefijo NombreParametroCampo= MuyDescriptivos
Ejemplo La Tabla Personal por lo cual tiene los siguientes campos:
IdPersonal
ApellidoPaterno
Comentarios Los nombres de los campos deben ser descriptivos.
Se deben usar mayúsculas y minúsculas para diferenciar los
grupos de identificación en el nombre (CamelCase).
Nomenclatura de Constraints
ESTANDARES DE DESARROLLO
DESARROLLO DE SOFTWARE ET-003
01/05/2019
ESTANDARES DE DESARROLLO 7/22
REVISIÓN 4
Unique: uq_NemónicoTabla_NombreUnique
Default: df_NemónicoTabla_NombreColumna
Check: ch_NemonicoTabla_NombreCheck
Ejemplo PK_Acta
FK_ActaFichaDetalle
UN_Entidad_ApellidosNombre
DF_Entidad_SedeOficina
CH_Entidad_Telefono
Nomenclatura de Índices
Nomenclatura de Vistas
Prefijo NemónicoAplicativo_VW_NombreVista
Ejemplo ADS_VW_Especialidad
Comentarios Ninguno
Prefijo RU_NombreRule
Ejemplo RU_CodigoCliente
Comentarios Usar reglas sólo para tipos de dato definidos por el usuario. En
caso de columnas usar CHECKS.
Nomenclatura de Defaults
Prefijo DF_Nombre_Default
Ejemplo DF_FechaSistema
Comentarios Usar DEFAULT (Procedural) solo para tipos de dato definidos
por el usuario. En caso de columnas usar DEFAULT
(Declarativo).
ESTANDARES DE DESARROLLO
DESARROLLO DE SOFTWARE ET-003
01/05/2019
ESTANDARES DE DESARROLLO 8/22
REVISIÓN 4
Tipo
Sólo en el caso de que el Stored Procedure devuelva datos
como parámetros OUTPUT, se pondrá al final el sufijo _OUT
@NombreParametro
Donde:
Parámetros
Los parámetros deben estar bajo el estilo CamelCase.
Los parámetros de los Stored Procedures tendrán el mismo
nombre de los campos, precedidos por un símbolo “@”
(@IdPersonal)
Ejemplo MAT_I_Matricula
MAT_U_Ficha
MAT_D_FichaDetalle
OPE_U_Entidad_Apellidos
OPE_U_Entidad_Estado
Comentarios En el caso de consultas, se debe usar SET NOCOUNT ON al
inicio, para evitar que devuelva la cantidad de registros
procesados.
Nomenclatura de Triggers
ESTANDARES DE DESARROLLO
DESARROLLO DE SOFTWARE ET-003
01/05/2019
ESTANDARES DE DESARROLLO 9/22
REVISIÓN 4
Donde:
Tipo de trigger:
I : Insert
U: Update
D: Delete
Ejemplo TR_UsuarioPotencial_I Trigger para inserción
TR_Nandina_IU Trigger para inserción y
Actualización
Comentarios Si el trigger hace más de una cosa, se pondrá IU, ID, UD, o las
respectivas combinaciones.
Prefijo DT_NombreTipoDato
Ejemplo DT_FechaNacimiento
DT_RUC
Comentarios N/A
Nomenclatura de Funciones
PREFIJO FUN_NOMBREFUNCION
EJEMPLO FUN_TELEFONOPERSONA
COMENTARIOS N/A
Stored Procedured
Los nombres de los Stored procedures NO deben comenzar con SP_, esto
porque generalmente el SQL piensa que son system procedures y los busca
primero en la base de datos master.
SET NOCOUNT ON elimina la notificación del nro. De registros afectados por
cada sentencia SQL lo cual incrementa el performance y en algunos casos
impide que funcione el DTS.
Obligatoriamente todos los sistemas a desarrollarse deberán invocar
STORED PROCEDURES.
No se deberán poner sentencias SQL en el cliente. Esto genera una gran baja
en la performance de los sistemas.
En ningún caso el desarrollador podrá forzar el uso de un índice dentro de un
STORED PROCEDURE y tampoco deberá colocar sentencias que alteren el
comportamiento de los bloqueos.
En el caso de los STORED PROCEDURES que son exclusivamente para
mostrar información se deberán evitar usar lógicas como la siguiente:
ESTANDARES DE DESARROLLO
DESARROLLO DE SOFTWARE ET-003
01/05/2019
ESTANDARES DE DESARROLLO 10/22
REVISIÓN 4
(
@X smallint,
@Y varchar(15)
)
AS
BEGIN
SET NOCOUNT ON;
IF @X=1
SELECT * FROM Matricula
ELSE
SELECT * FROM Matricula WHERE IdMatricula=@Y
END
GO
Reglas Generales
Todo Aplicativo deberá evitar usar cursores definidos en SQLServer, dado
que estos consumen muchos recursos.
En la mayoría de los casos que pueden transformar los cursores a Transact-
SQL.
Las vistas deberán ser utilizadas para simplificar los queries.
En ningún caso se otorgaran permisos sobre columnas, por lo tanto se deberá
crear una vista para que se le otorgue permiso SELECT a toda la vista
Se deberán optimizar el uso de los Datatypes.
ESTANDARES DE DESARROLLO
DESARROLLO DE SOFTWARE ET-003
01/05/2019
ESTANDARES DE DESARROLLO 11/22
REVISIÓN 4
Utilizar el tabulador para separar los campos de una condición (en la medida
de lo posible)
Indentar el Código para conservar un orden.
Vistas
Triggers
Query
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE name = ' PEC_S_OficinasUsuario' and type = 'P')
DROP PROCEDURE PEC_S_OficinasUsuario
GO
------------------------------------------------------------------
--DESCRIPCION: Procedimiento de Selección a la tabla PEC_Oficinas
--Usado por: SYIN - Módulo de Administración
--SN ### - yyyy Proyecto ### - Módulo de Administración, Autor: NMOLLO dd/mm/yyyy
------------------------------------------------------------------
CREATE PROCEDURE PEC_S_OficinasUsuario
(
@Año smallint,
@IDUsuario varchar(15)
)
WITH ENCRYPTION
AS
BEGIN
SET NOCOUNT ON;
SELECT u.IDUser,
u.IDUnidadOrganica,
cc.Descripcion,
cc.CodigoUnidadOrganica
FROM Seguridad..UsuarioAreaModulo u
INNER JOIN Administracion..UnidadOrganica cc ON
u.IDUnidadOrganica=cc.IDUnidadOrganica
WHERE u.IDUSer = @IDUsuario AND FechaFin IS NULL
END
GO
GRANT EXECUTE ON PEC_S_OficinasUsuario
TO usersysa
GO
ESTANDARES DE DESARROLLO
DESARROLLO DE SOFTWARE ET-003
01/05/2019
ESTANDARES DE DESARROLLO 12/22
REVISIÓN 4
7. SEGURIDAD DE ACCESOS
8. PISTAS DE AUDITORÍA
Las pistas de auditoría permiten registrar las modificaciones efectuadas sobre los
datos, haciendo referencia a los datos que sean relevantes para un seguimiento
adecuado de acciones.
ESTANDARES DE DESARROLLO
DESARROLLO DE SOFTWARE ET-003
01/05/2019
ESTANDARES DE DESARROLLO 13/22
REVISIÓN 4
El dueño de la aplicación determinará cuáles son los datos críticos y cuáles requieren
llevar pistas de auditoría; el desarrollador incluirá dichas pistas en las tablas.
En el caso de las tablas que contengan las transacciones más importantes del
sistema o de las tablas críticas, se debe agregar campos adicionales de ser
necesario:
o Historial BIT (indica si está en estado Historial)
o Sistema BIT (indica si es pertenece el ingreso al Sistema)
o IdUsuarioIngreso INT
o IdUsuarioActualizo INT
o FechaIngreso datetime
o FechaActualizo datetime
En el caso de las tablas que contengan las transacciones más importantes del
sistema o de las tablas críticas, se debe manejar adicionalmente una tabla de
auditoría, que llevará el mismo nombre que la tabla referencia, con el sufijo Auditoria.
Esta tabla tendrá la misma estructura de la tabla referencia con los siguientes
campos adicionales:
ESTANDARES DE DESARROLLO
DESARROLLO DE SOFTWARE ET-003
01/05/2019
ESTANDARES DE DESARROLLO 14/22
REVISIÓN 4
E= Eliminación
Usuario Caracter(15) Identificador del usuario
Equipo Caracter(20) Identificador del equipo
ValorAnt Caracter(20) Valor anterior
ValorAct caracter(20) Valor actual
FchCambio Fecha Fecha de cambio
HorCambio Hora Hora de Cambio
Programas
Los elementos mencionados serán precedidos por los prefijos indicados y el nombre.
Variables
Las variables se nombrarán con el prefijo que indique su tipo.
Tipo Prefijo
Integer Int
ESTANDARES DE DESARROLLO
DESARROLLO DE SOFTWARE ET-003
01/05/2019
ESTANDARES DE DESARROLLO 15/22
REVISIÓN 4
Boolean Bln
String Str
Byte Byt
Double Dbl
Single Sgl
Variant Var
Currency Cur
Date Dat
Long Lng
Object Obj
Dataset ds
Datatable dt
Datarow dr
Exception ex
List(Of T) Ls
Colección Col
DialogResult Dgr
Controles
Los controles se nombrarán con el prefijo que indique su tipo.
Tipo Prefijo
TextBox Txt
Label Lbl
ComboBox en general Cbo
ListBox en general Lst
Button Btn
DataGridView en general Dgv
OptionButton Opt
CheckBox Chk
Picture Pic
CheckedListBox Chl
LinkLabel Llb
DateTimePicker Dtp
MonthCalendar Mcd
NumericUpDown Nud
ListView Lvw
TreeView Tvw
StatusStrip Sts
ToolStrip Tls
ImageList Iml
ProgressBar Pgb
Radiobutton Rdn
RichTextBox Rtx
MaskedTextBox Mtx
GroupBox Grp
ESTANDARES DE DESARROLLO
DESARROLLO DE SOFTWARE ET-003
01/05/2019
ESTANDARES DE DESARROLLO 16/22
REVISIÓN 4
Tipo Prefijo
Panel Pnl
NotifyIcon Nfi
SplitContainer Spc
TableLayoutPanel Tlp
MenuStrip Mns
ContextMenuStrip Cms
HelpProvider Hpr
ErrorProvider Epr
Timer Tim
BackgroundWorker Bgw
CrystalReportViewer Crv
Bar Bar
AdvTree Atr
DotNetBarManager Dbm
DockContainerItem Dci
DockSite Dcs
PanelDockContainer Pdc
StyleManager Sty
CrumbBar Crb
ExplorerBar Exb
TabStrip Tsp
TabControl Tbc
TabControlPanel Tcp
TabItem Tbi
PanelEx Pnl
ButtonX Btn
ButtonItem Bti
Command Cmd
ComboBoxEx Cbo
SuperTabControl Stc
SuperTabControlPanel Stp
SuperTabStrip Sts
SuperTabItem Sti
ContextMenuBar Cmb
RibbonControl Rbc
RibbonBar Rbb
RibbonPanel Rbp
RibbonTabItem Rbt
RibbonBarMergeContainer Rbm
NavigationBar Ngb
TextBoxX Txt
CheckBoxX Chk
ItemPanel Ipn
VScrollBarAdv Vsb
HScrollBarAdv Hsb
ESTANDARES DE DESARROLLO
DESARROLLO DE SOFTWARE ET-003
01/05/2019
ESTANDARES DE DESARROLLO 17/22
REVISIÓN 4
Tipo Prefijo
SideBar Sdb
ListViewEx Lvw
ExpandablePanel Exp
NavigationPane Nvp
DataGridViewX Dgv
WarningBox Wrb
LabelX Lbl
LabelItem Lbi
ColorCombControl Ccc
CustomColorBlender Ccb
IntegerInput Iip
DateTimeInput Dtp
MonthCalendarAdv Mca
QatCustomizePanel Qcp
MetroShell Mts
MetroToolbar Mtt
MetroStatusBar Mts
Slider Sld
ReflectionImage Rfi
BubbleBar Bbb
SlidePanel Sdp
CircularProgress Cpg
DoubleInput Dip
AnalogClockControl Acc
BalloonTip Blt
ColorPickerButton Cpb
ComboTree Cbt
IpAddressInput Iap
MaskedTextBoxAdv Mtx
ProgressBarX Pgb
TextBoxDropDown Txd
GroupPanel Grp
PageNavigator Png
ReflectionLabel Rlb
MicroChart Mch
AdvPropertyGrid Apg
SuperTooltip Stp
CalendarView Cld
DateNavigator Dng
RibbonClientPanel Rcp
SwitchButton Sbt
SuperValidator Spv
Highlighter Hgh
Wizard Wiz
RatingStar Rgs
ESTANDARES DE DESARROLLO
DESARROLLO DE SOFTWARE ET-003
01/05/2019
ESTANDARES DE DESARROLLO 18/22
REVISIÓN 4
Tipo Prefijo
RatingItem Rgi
GaugeControl Gct
KnobControl Kct
TreeGX Trg
ItemContainer Itc
Procedimientos y Funciones
Tipo Prefijo
Función (Function) fnc
Procedimiento (Sub) Prc
Reportes
Los reportes se nombrarán usando el prefijo rpt. Si se emplean plantillas de diseño,
éstas se nombrarán con el prefijo ttx.
Controles de Entrada/Origen
Los procedimientos de control de entrada deben asegurar que toda transacción que
vaya a ser procesada sea recibida, procesada y registrada correcta y
completamente. Estos controles deben asegurar que sólo se introduzca información
válida y autorizada, y que estas transacciones sean procesadas sólo una vez.
ESTANDARES DE DESARROLLO
DESARROLLO DE SOFTWARE ET-003
01/05/2019
ESTANDARES DE DESARROLLO 19/22
REVISIÓN 4
ESTANDARES DE DESARROLLO
DESARROLLO DE SOFTWARE ET-003
01/05/2019
ESTANDARES DE DESARROLLO 20/22
REVISIÓN 4
Los errores que se presenten deberán indicar al usuario la naturaleza del error,
además de almacenar el número de error y descripción del mismo y programa
que lo originó.
Las técnicas de control de procesamiento que pueden ser usadas para tratar el
aspecto de integridad y exactitud de los datos acumulados son:
ESTANDARES DE DESARROLLO
DESARROLLO DE SOFTWARE ET-003
01/05/2019
ESTANDARES DE DESARROLLO 21/22
REVISIÓN 4
- Reportes de verificación
- Totales de Proceso a Proceso
- Verificación de Razonabilidad de los Valores Calculados
- Verificaciones de Límite sobre los Valores Calculados
- Reconciliación de los Totales de los Archivos con los documentos fuente,
sobre todo en aspectos delicados como el Ingreso y la Salida de
Mercancías.
Controles de salida
Los controles de salida proveen garantía de que los datos entregados a los usuarios
serán presentados, formateados y entregados en una forma consistente y segura.
a. Distribución de Reportes
Los reportes de las aplicaciones deberán ser emitidos por usuarios que tengan
autorización de acceso a ellos. Esta autorización la dará el dueño de la
aplicación.
b. Manejo de Errores
Ver Controles de Entrada/Origen, d.
ESTANDARES DE DESARROLLO
DESARROLLO DE SOFTWARE ET-003
01/05/2019
ESTANDARES DE DESARROLLO 22/22
REVISIÓN 4
Diccionario de datos
El diccionario de datos se almacenará en ERWIN, generándose los reportes
respectivos en HTML.
ESTANDARES DE DESARROLLO