Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introducción
En la actualidad, en esta época que estamos viviendo llegamos asegurar que la información es
igual de valiosa que los recursos financieros, recursos humanos, recursos materiales etc. Con los
que cuenta una empresa para existir en el mercado, ya que la información es la base de las
operaciones y actividades de las empresas. Hoy en día, quien tiene la información es quien domina
en todos los ámbitos en el que se desarrolle.
Los ingenieros de sistemas de la actualidad deben ser capaces de aplicar los nuevos paradigmas de
la gestión de información, además de manejar las técnicas y métodos orientados a la toma de
decisiones institucionales e integrar la gran gama de tecnología informática que está al servicio de
las organizaciones.
SISTEMAS DE INFORMACION 1
2. Introducción al Desarrollo de Sistemas
Un sistema puede ser físico o concreto (una computadora, un televisor, un humano) o puede ser
abstracto o conceptual (un software). Cada sistema existe dentro de otro más grande, por lo tanto
un sistema puede estar formado por subsistemas y partes, y a la vez puede ser parte de un
supersistema.
Los sistemas tienen límites o fronteras, que los diferencian del ambiente. Ese límite puede ser
físico (el gabinete de una computadora) o conceptual. Si hay algún intercambio entre el sistema y
el ambiente a través de ese límite, el sistema es abierto, de lo contrario, el sistema es cerrado.
SISTEMAS DE INFORMACION 2
usado en la adquisición, almacenamiento, manipulación, administración, movimiento,
control, presentación, conmutación, intercambio, transmisión, o recepción de voz y/o
datos, e incluye software, firmware y hardware.
Sistema de Información es un conjunto de elementos que interactúan interna y
externamente, para producir información que satisface necesidades de un determinado
grupo de usuarios.
Un Sistema de Información es un conjunto de elementos que interactúan entre sí con el
fin de apoyar las actividades de una empresa o negocio.
SISTEMAS DE INFORMACION 3
Interactúan procedimientos, personas, hardware, software, redes de comunicación, otros
sistemas, etc.
Procesos: capturar, transformar, almacenar, diseminar, etc.
Necesidad de Comunicación entre partes
Todo Sistema de información es un conjunto de partes que se relacionan entre sí para lograr un
objetivo que contribuirá a la toma de decisiones y esto es posible gracias a las diversas actividades
que se llevan a cabo, lo cual estimula que la organización desarrolle sus procesos de mejor
manera, obteniendo así una eficiente labor.
Es por esta razón que los Sistemas de Información realizan las diversas actividades principales
haciendo uso de la computadora, lo cual permite un mejor desempeño de los sistemas de
información en las organizaciones públicas y/o privadas.
SISTEMAS DE INFORMACION 4
usuario, mientras que las automáticas son datos o información que provienen o son
tomados de otros sistemas o módulos. Esto último se denomina interfaces automáticas.
Las unidades típicas de entrada de datos a las computadoras son las terminales, las cintas
magnéticas, las unidades de diskette, CD-ROM, Pendriver, los códigos de barras, los
escáners, la voz, los monitores sensibles al tacto, el teclado y el mouse, entre otras.
SISTEMAS DE INFORMACION 5
una proyección financiera a partir de los datos que contiene un estado de resultados o un
balance general de un año base. Durante este procesamiento se evidencia lo siguiente:
Aumenta, manipula y organiza la forma de los datos.
Analiza y evalúa su contenido.
Selecciona la información para ser usada en la toma de decisiones, y constituye un
componente clave en el sistema de información gerencial.
Salida de Información: La salida es la capacidad de un Sistema de Información para sacar
la información procesada o bien datos de entrada al exterior. Las unidades típicas de salida
son las impresoras, terminales, diskettes, cintas magnéticas, la voz, los graficadores y los
plotters, entre otros. Es importante aclarar que la salida de un Sistema de Información
puede constituir la entrada a otro Sistema de Información o módulo. En este caso,
también existe una interface automática de salida. Por ejemplo, el Sistema de Control de
Clientes tiene una interface automática de salida con el Sistema de Contabilidad, ya que
genera las pólizas contables de los movimientos procesales de los clientes.
Además un sistema de información debe tener control del desempeño del sistema, es decir debe
generar retroalimentación sobre las actividades de entrada, procesamiento, almacenamiento y
salida de información. Esta retroalimentación debe evaluarse para determinar si el sistema cumple
con los estándares de desempeño establecidos.
Los modernos sistemas de información están cambiando la forma en que operan las
organizaciones actuales. A través de su uso se logran importantes mejoras:
Los SI pueden ser agrupados en categorías desde muy diferentes puntos de vista; es muy
común, efectuar la clasificación considerando aspectos relacionados con su uso dentro del
negocio. En tal sentido, se consideran tres:
SI Transaccionales.
SISTEMAS DE INFORMACION 6
SI de Soporte a la Toma de Decisiones.
SI Estratégico.
Sistemas Transaccionales.
El segundo tipo de SI, corresponden a los que apoyan el proceso de toma de decisiones son los
llamados Sistemas de Soporte a la Toma de Decisiones, Sistemas para la Toma de Decisión de
Grupo, Sistemas Expertos de Soporte a la Toma de Decisiones y Sistema de Información para
Ejecutivos. Estos SI son típicamente la segunda etapa en la implantación de una cultura de la
información, soportándose en los Si Transaccionales como plataformas de información. Los SI
SISTEMAS DE INFORMACION 7
para tomas de decisiones producen información que sirve de apoyo de la toma de decisiones a los
mandos intermedios y a la alta administración en el caso de organizaciones verticales.
Típicamente los SI para la toma de decisiones suelen ser muy complejos y profundos en cálculos,
mientras que la entrada y salida de información es relativamente poca. Apoyan la toma de
decisiones que, por su misma naturaleza son repetitivos y de decisiones no estructuradas que no
suelen repetirse.
Por lo general este tipo de Si no suele ahorrar mano de obra, resultando de difícil justificación
económica para su desarrollo; y es casi nulo los ingresos del proyecto de inversión. Suelen
ser SI altamente interactivos y amigables al usuario, disponiendo de altos estándares de diseño
gráfico y visual, ya que éstos están dirigidos al usuario final.
El desarrollo de este tipo de SI efectuado directamente por el usuario final, por lo que raras veces
se incluye la participación operativa de los analistas y programadores del área de informática.
Son ejemplos muy comunes del contexto de uso de este tipo de Si la programación de producción,
el flujo de fondos y proyecciones financieras, modelos para pronósticos de venta, modelos para
simulación de mercado, modelos de evolución de inventarios y compra de materiales.
SI Estratégicos
Estos SI tienen como objetivo en las organizaciones lograr ventajas competitivas, a través del uso
de la tecnología de la información. Ayudan a los niveles directivos a atacar y dirigir las cuestiones
estratégicas y las tendencias a largo plazo dentro y el entorno de la institución; no es apoyan la
automatización de procesos operativos ni proporcionar información para apoyar la toma de
decisiones.
Su interés principal es hacer frente a los cambios que ocurren en el entorno con las capacidades
con las que se cuentan. Por su naturaleza, importancia y aspectos considerados de
supervivencia de la organización son casi siempre desarrollados “en casa” (in house), es decir,
dentro de la misma organización, por lo que resultan casi imposibles de adaptarse a paquetes
disponibles en el mercado.
SISTEMAS DE INFORMACION 8
Los SI estratégicos poseen como objetivo lograr consolidar ventajas que los competidores no
posean, tales como ventajas en costos y servicios diferenciados con clientes y proveedores. Por tal
sentido, se considera que estos SI son creadores de barreras de entrada al negocio. Pero para su
plena efectividad deben apoyarse en un proceso de innovación de productos y procesos dentro de
la organización debido a que buscan la consolidación de ventajas competitivas y una forma de
lograrlo es innovando o creando productos y procesos.
Tendencias Futuras
Las principales tendencias respectos a los Sistemas de Información son las siguientes.
SISTEMAS DE INFORMACION 9
Almacenan gran cantidad de información.
Realizan un bajo grado de procesamiento sobre la información, y éste es,
fundamentalmente, de tipo estadístico.
Base de Datos: Es donde se almacena toda la información que se requiere para la toma de
decisiones. La información se organiza en registros específicos e identificables.
Informes: Corresponden a todos los elementos de interfaz mediante los cuales el usuario puede
obtener uno o más registros y/o información de tipo estadístico (contar, sumar) de acuerdo a
criterios de búsqueda y selección definidos.
Usuario: Identifica a todas las personas que interactúan con el sistema, esto incluye desde el
máximo nivel ejecutivo que recibe los informes de estadísticas procesadas, hasta el usuario
operativo que se encarga de recolectar e ingresar la información al sistema.
1
SISTEMAS DE INFORMACION
0
Procedimientos Administrativos: Corresponde al conjunto de reglas y políticas de la organización,
que rigen el comportamiento de los usuarios frente al sistema. Particularmente, debieran asegurar
que nunca, bajo ninguna circunstancia un usuario tenga acceso directo a la Base de Datos.
Durante esta etapa se realizan las tareas que comúnmente se conocen como programación; que
consiste, esencialmente, en llevar a código fuente, en el lenguaje de programación elegido, todo lo
diseñado en la fase anterior. Esta tarea la realiza el programador, siguiendo por completo los
lineamientos impuestos en el diseño y en consideración siempre a los requisitos funcionales y no
funcionales especificados en la primera etapa.
Se suele hacer estimaciones de un 30% del tiempo total insumido en la programación, pero esta
cifra no es consistente ya que depende en gran medida de las características del sistema, su
criticidad y el lenguaje de programación elegido.
En tanto menor es el nivel del lenguaje mayor será el tiempo de programación requerido, así por
ejemplo se tardaría más tiempo en codificar un algoritmo en lenguaje ensamblador que el mismo
programado en lenguaje C.
Hay una suerte de solapamiento con la fase siguiente, ya que para depurar la lógica es necesario
realizar pruebas unitarias, normalmente con datos de prueba; claro es que no todos los errores
serán encontrados sólo en la etapa de programación, habrá otros que se encontrarán durante las
etapas subsiguientes.
La aparición de algún error funcional (mala respuesta a los requerimientos) eventualmente puede
llevar a retornar a la fase de diseño antes de continuar la codificación.
1
SISTEMAS DE INFORMACION
2
3.2. Estados del Código
1
SISTEMAS DE INFORMACION
3
utiliza un compilador del mismo lenguaje para obtener el código ejecutable
completo, con lo cual se agiliza la depuración y la velocidad de ejecución se
optimiza.
Código ejecutable: Es el código binario resultado de enlazar uno o más fragmentos de
código objeto con las rutinas y bibliotecas necesarias. Constituye uno o más archivos
binarios con un formato tal que el sistema operativo es capaz de cargarlo en la memoria
RAM (eventualmente también parte en una memoria virtual), y proceder a su ejecución
directa. Por lo anterior se dice que el código ejecutable es directamente «inteligible por la
computadora». El código ejecutable, también conocido como código máquina, no existe si
se programa con modalidad de «intérprete puro».
John Von Neumann desarrolló el modelo que lleva su nombre, para describir este concepto de
"programa almacenado". En este modelo, se tiene una abstracción de la memoria como un
conjunto de celdas, que almacenan simplemente números. Estos números pueden representar
dos cosas: los datos, sobre los que va a trabajar el programa; o bien, el programa en sí.
¿Cómo es que describimos un programa como números? Se tenía el problema de representar las
acciones que iba a realizar la computadora, y que la memoria, al estar compuesta por switches
correspondientes al concepto de bit, solamente nos permitía almacenar números binarios.
La solución que se tomó fue la siguiente: a cada acción que sea capaz de realizar nuestra
computadora, asociarle un número, que será su código de operación (opcode). Por ejemplo, una
calculadora programable simple podría asignar los opcodes:
1
SISTEMAS DE INFORMACION
4
Supongamos que queremos realizar la operación 5 * 3 + 2, en la calculadora descrita arriba. En
memoria, podríamos "escribir" el programa de la siguiente forma:
Podemos ver que con esta representación, es simple expresar las operaciones de las que es capaz
el hardware (en este caso, nuestra calculadora imaginaria), en la memoria.
La descripción y uso de los opcodes es lo que llamamos lenguaje de máquina. Es decir, la lista de
códigos que la máquina va a interpretar como instrucciones, describe las capacidades de
programación que tenemos de ella; es el lenguaje más primitivo, depende directamente del
hardware, y requiere del programador que conozca el funcionamiento de la máquina al más bajo
nivel.
Los lenguajes más primitivos fueron los lenguajes de máquina. Esto, ya que el hardware se
desarrolló antes del software, y además cualquier software finalmente tiene que expresarse en el
lenguaje que maneja el hardware.
La programación en esos momentos era sumamente tediosa, pues el programador tenía que
"bajarse" al nivel de la máquina y decirle, paso a paso, cada punto de la tarea que tenía que
realizar. Además, debía expresarlo en forma numérica; y por supuesto, este proceso era propenso
a errores, con lo que la productividad del programador era muy limitada. Sin embargo, hay que
recordar que en estos momentos, simplemente aún no existía alternativa.
El primer gran avance que se dio fue la abstracción dada por el Lenguaje Ensamblador, y con él, el
nacimiento de las primeras herramientas automáticas para generar el código máquina. Esto redujo
los errores triviales, como podía ser el número que correspondía a una operación, que son
sumamente engorrosos y difíciles de detectar, pero fáciles de cometer. Sin embargo, aún aquí es
fácil para el programador perderse y cometer errores de lógica, pues debe bajar al nivel de la
forma en que trabaja el CPU, y entender bien todo lo que sucede dentro de él.
Con el desarrollo en los 50 y 60 de algoritmos de más elevado nivel, y el aumento de poder del
hardware, empezaron a entrar al uso de computadoras científicos de otras ramas; ellos conocían
mucho de Física, Química y otras ramas similares, pero no de Computación, y por supuesto, les era
sumamente complicado trabajar con lenguaje Ensamblador en vez de fórmulas. Así, nació el
concepto de Lenguaje de Alto Nivel, con el primer compilador de FORTRAN (FORmula
1
SISTEMAS DE INFORMACION
5
TRANslation), que, como su nombre indica, inició como un "simple" esfuerzo de traducir un
lenguaje de fórmulas, al lenguaje ensamblador y por consiguiente al lenguaje de máquina. A partir
de FORTRAN, se han desarrollado innumerables lenguajes, que siguen el mismo concepto: buscar
la mayor abstracción posible, y facilitar la vida al programador, aumentando la productividad,
encargándose los compiladores o intérpretes de traducir el lenguaje de alto nivel, al lenguaje de
computadora. Hay que notar la existencia de lenguajes que combinan características de los de alto
nivel y los de bajo nivel (es decir, Ensamblador).
Un lenguaje de programación es un idioma artificial diseñado para expresar procesos que pueden
ser llevadas a cabo por máquinas como las computadoras. Pueden usarse para crear programas
que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos con
precisión, o como modo de comunicación humana. Está formado por un conjunto de símbolos y
reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y
expresiones. Al proceso por el cual se escribe, se prueba, se depura, se compila y se mantiene el
código fuente de un programa informático se le llama programación.
Existe un error común que trata por sinónimos los términos 'lenguaje de programación' y 'lenguaje
informático'. Los lenguajes informáticos engloban a los lenguajes de programación y a otros más,
como por ejemplo HTML (lenguaje para el marcado de páginas web que no es propiamente un
1
SISTEMAS DE INFORMACION
6
lenguaje de programación, sino un conjunto de instrucciones que permiten diseñar el contenido
de los documentos).
Permite especificar de manera precisa sobre qué datos debe operar una computadora, cómo
deben ser almacenados o transmitidos y qué acciones debe tomar bajo una variada gama de
circunstancias. Todo esto, a través de un lenguaje que intenta estar relativamente próximo al
lenguaje humano o natural.
Cuando se construye software como producto empresarial o comercial, se llevan a cabo varias
técnicas de manera que el desarrollo se haga en forma ordenada y así poder asegurar un avance
continuo del proyecto, un producto final de calidad, y además realizar posteriores mejoras sea una
tarea más fácil.
1
SISTEMAS DE INFORMACION
7
La ventaja principal de este estilo es que el desarrollo se puede llevar a cabo en varios niveles y, en
caso de que sobrevenga algún cambio, sólo se ataca al nivel requerido sin tener que revisar entre
código mezclado. Un buen ejemplo de este método de programación sería el modelo de
interconexión de sistemas abiertos.
Además, permite distribuir el trabajo de creación de una aplicación por niveles; de este modo,
cada grupo de trabajo está totalmente abstraído del resto de niveles, de forma que basta con
conocer la API que existe entre niveles.
1
SISTEMAS DE INFORMACION
8
Capa de presentación: es la que ve el usuario (también se la denomina "capa de usuario"),
presenta el sistema al usuario, le comunica la información y captura la información del
usuario en un mínimo de proceso (realiza un filtrado previo para comprobar que no hay
errores de formato). También es conocida como interfaz gráfica y debe tener la
característica de ser "amigable" (entendible y fácil de usar) para el usuario. Esta capa se
comunica únicamente con la capa de negocio.
La presentación del programa ante el usuario, debe manejar interfaces que cumplan con
el objetivo principal de este componente, el cual es facilitar al usuario la interacción con la
aplicación. Para esto se utilizan patrones predefinidos para cada tipo de aplicación y para
cada necesidad del usuario. La interfaz debe ser amigable y fácil de utilizar, ya que el
usuario final es el que se va a encargar de utilizar el sistema y de dar retroalimentación al
equipo de desarrollo en caso de que haya algo que mejorar.
Las interfaces deben ser consistentes con la información que se requiere, no se deben
utilizar más campos de los necesarios, así como la información requerida tiene que ser
especificada de manera clara y concisa, no debe haber más que lo necesario en cada
formulario y por último, las interfaces deben satisfacer los requerimientos del usuario, por
lo cual no se debe excluir información solicitada por el usuario final y no se debe incluir
información no solicitada por el mismo.
Dentro de la parte técnica, la capa de presentación contiene los objetos encargados de
comunicar al usuario con el sistema mediante el intercambio de información, capturando
y desplegando los datos necesarios para realizar alguna tarea. En esta capa los datos se
procesan de manera superficial por ejemplo, para determinar la validez de su formato o
para darles algún orden específico.
Esta capa se comunica únicamente con la capa de Reglas de Negocio o Control.
Capa de negocio: es donde residen los programas que se ejecutan, se reciben las
peticiones del usuario y se envían las respuestas tras el proceso. Se denomina capa de
negocio (e incluso de lógica del negocio) porque es aquí donde se establecen todas las
reglas que deben cumplirse. Esta capa se comunica con la capa de presentación, para
recibir las solicitudes y presentar los resultados, y con la capa de datos, para solicitar al
gestor de base de datos almacenar o recuperar datos de él. También se consideran aquí
los programas de aplicación.
1
SISTEMAS DE INFORMACION
9
Es llamada capa de reglas de negocio porque en esta se definen todas las reglas que se
deben cumplir para una correcta ejecución del programa.
Es aquí donde se encuentra toda la lógica del programa, así como las estructuras de datos
y objetos encargados para la manipulación de los datos existentes, así como el
procesamiento de la información ingresada o solicitada por el usuario en la capa de
presentación.
Representa el corazón de la aplicación ya que se comunica con todas las demás capas
para poder llevar a cabo las tareas. Por ejemplo, mediante la capa de presentación obtiene
la información ingresada por el usuario, y despliega los resultados. Si la aplicación se
comunica con otros sistemas que actúan en conjunto, lo hace mediante esta capa.
También se comunica con la capa de datos para obtener información existente o ingresar
nuevos datos.
Recibe los datos que ingresó el usuario del sistema mediante la capa de presentación,
luego los procesa y crea objetos según lo que se necesite hacer con estos datos; esta
acción se denomina encapsulamiento.
Al encapsular los datos, el programa asegura mantener la consistencia de los mismos, así
como obtener información precisa de las bases de datos e ingresar en las mismas,
solamente la información necesaria, asegurando así no tener datos duplicados ni en las
bases de datos, ni en los reportes solicitados por el usuario.
Capa de datos: es donde residen los datos y es la encargada de acceder a los mismos. Está
formada por uno o más gestores de bases de datos que realizan todo el almacenamiento
de datos, reciben solicitudes de almacenamiento o recuperación de información desde la
capa de negocio.
Es la encargada de realizar transacciones con bases de datos y con otros sistemas para
obtener o ingresar información al sistema.
El manejo de los datos debe realizarse de forma tal que haya consistencia en los mismos,
de tal forma los datos que se ingresan así como los que se extraen de las bases de datos,
deben ser consistentes y precisos.
2
SISTEMAS DE INFORMACION
0
Es en esta capa donde se definen las consultas a realizar en la base de datos, tanto las
consultas simples como las consultas complejas parla generación de reportes más
específicos.
Esta capa envía la información directamente a la capa de reglas de negocio para que sea
procesada e ingresada en objetos según se necesite, esta acción se denomina
encapsulamiento.
Todas estas capas pueden residir en un único ordenador, si bien lo más usual es que haya una
multitud de ordenadores en donde reside la capa de presentación (son los clientes de la
arquitectura cliente/servidor). Las capas de negocio y de datos pueden residir en el mismo
ordenador, y si el crecimiento de las necesidades lo aconseja se pueden separar en dos o más
ordenadores. Así, si el tamaño o complejidad de la base de datos aumenta, se puede separar en
varios ordenadores los cuales recibirán las peticiones del ordenador en que resida la capa de
negocio.
Si, por el contrario, fuese la complejidad en la capa de negocio lo que obligase a la separación, esta
capa de negocio podría residir en uno o más ordenadores que realizarían solicitudes a una única
base de datos.
En sistemas muy complejos se llega a tener una serie de ordenadores sobre los cuales corre la
capa de negocio, y otra serie de ordenadores sobre los cuales corre la base de datos.
En una arquitectura de tres niveles, los términos "capas" y "niveles" no significan lo mismo ni son
similares:
El término "capa" hace referencia a la forma como una solución es segmentada desde el punto de
vista lógico:
En cambio, el término "nivel" corresponde a la forma en que las capas lógicas se encuentran
distribuidas de forma física. Por ejemplo:
2
SISTEMAS DE INFORMACION
1
Una solución de tres capas (presentación, lógica del negocio, datos) que residen en un solo
ordenador (Presentación + lógica + datos). Se dice que la arquitectura de la solución es de
tres capas y un nivel.
Una solución de tres capas (presentación, lógica del negocio, datos) que residen en dos
ordenadores (presentación + lógica por un lado; lógica + datos por el otro lado). Se dice
que la arquitectura de la solución es de tres capas y dos niveles.
La programación en capas no es una técnica rígida que debe implementarse solamente de una
forma, sino que los desarrolladores de proyectos tienen múltiples maneras de implementarla
según las tecnologías y tendencias que se utilicen.
Dentro del concepto de programación en capas, existen dos términos esenciales para el mejor
entendimiento de los conceptos relativos a esta metodología, es aquí donde radica la importancia
de la cohesión y el acoplamiento dentro de una aplicación generada mediante este método.
Cohesión:
Este término es utilizado para describir el comportamiento que deben tener los módulos y objetos
de un sistema o subsistema, comportamiento que describe la forma en que deben trabajar los
objetos y módulos entre si, con alta cohesión para que trabajando en conjunto los módulos y
objetos puedan alcanzar un solo propósito de manera más eficaz y rápida.
Determina que las operaciones de un objeto deben trabajar en conjunto para alcanzar un
propósito común. Es deseable que haya alta cohesión.
Acoplamiento:
2
SISTEMAS DE INFORMACION
2
Se refiere al grado de dependencia que existe entre los módulos. Este grado de dependencia
debe ser considerablemente bajo ya que el trabajo se divide en módulos para que cada uno tenga
un funcionamiento específico y puede ser más factible la implementación por separado de cada
uno. En caso de haber alto acoplamiento entre módulos no se estaría alcanzando el principal
objetivo de este modelo, el cual es dividir una tarea grande en varias pequeñas, ya que los
módulos actuarían como uno solo al estar altamente acoplados entre sí y se perdería el objetivo
primordial de dividir el proyecto.
La persona cuyo trabajo y pasión es programar desarrolla con los años sus propias técnicas y
prácticas, con las cuales tiene un estándar personalizado que le ayuda a llevar el control de sus
proyectos. Es el estilo del programador.
No hay mejor documentación interna que el propio código. No hay comentario que arregle un
código ilegible, y la legibilidad es un atributo de calidad de primer orden.
Esto es así porque, en la mayoría de los casos, un programa se lee muchas más veces de las que se
lo edita. Por eso, debemos entender que programar es mucho más una tarea de comunicación con
otras personas que una comunicación con una computadora.
2
SISTEMAS DE INFORMACION
3
Por todo eso es importante respetar estándares de codificación – oficiales o no, pero que se siga
un estándar – y lograr que la estructura del código fuente refleje la estructura lógica del programa.
En primer lugar, si lo que queremos es comunicarnos con otras personas, deberíamos seguir las
recomendaciones que desde hace siglos existen sobre cómo escribir bien.
Por ejemplo, cuando escribimos un libro, utilizamos un sin número de ayudas para el lector:
espacios en blanco, signos de puntuación, sangrías, renglones en blanco, títulos de distintos
niveles, paréntesis, etc. Con todo esto tratamos de que el lector capte el sentido de lo que
queremos decir.
Cuando escribimos programas también podemos utilizar este tipo de ayudas al lector, y de hecho
es conveniente que lo hagamos. Tenemos ayudas posibles como sangrías, paréntesis innecesarios
pero convenientes, nombres claros, líneas en blanco, separación de partes con caracteres
especiales, encabezados de módulos de distintos niveles, etc.
Otra cosa que podemos hacer es contextualizar lo que escribimos, separando adecuadamente
niveles de lectura.
Respecto de las tablas normalmente se coloca el nombre del ítem que va a almacenar, en
singular (LIBRO, CUENTA, BANCO). Y en las columnas el nombre sin incluir el de la tabla.
2
SISTEMAS DE INFORMACION
4
Para los procedimientos almacenados no utilizar sp_ o sp solo el nombre por ejemplo
Libro_Modificar.
Comentarios. La documentación externa que es para los usuarios y la interna que es para
el mismo programador siempre queda al último en las tareas de realizar un sistema. Al
menos debemos realizar la interna, que nos ayudará en el futuro a poder realizar
modificaciones. Al principio de cada formulario, indicando que realiza cada formulario y al
inicio de cada procedimiento o función, evitando comentar formularios o funciones para
los cuales es obvio la funcionalidad. Tampoco hay que exagerar.
Formato. Utilizar mayúsculas o minúsculas depende de cada uno, por ejemplo se puede
utilizar mayúsculas para la primera letra del nombre y el resto en minúsculas, excepto para
las constantes que todo el nombre está en mayúsculas. En SQL Server sería mejor que los
nombres de objetos como tablas, columnas o procedimientos estén en mayúsculas, y cada
parte de la sentencia arreglarla para que quepa en una línea.
Los saltos de línea, o indentaciones (significa mover un bloque de texto hacia la derecha
insertando espacios o tabuladores, para así separarlo del margen izquierdo y mejor
distinguirlo del texto adyacente) generalmente son automáticamente realizados por el
editor, si no es el caso, hay que hacerlas de tal manera que por la indentación se pueda
distinguir entre el inicio de un bucle y el inicio de otro.
Programación. Utilizar variables con el tipo de datos adecuado para lo que van a
almacenar. Mantener el alcance de las variables lo más corto posible. Evitar usar variables
globales. Las variables deben ser creadas con una sola función, para los procedimientos
esto también aplica, hay que evitar crear funciones multipropósito. Evitar tener abierta la
conexión a la base de datos más tiempo del necesario, y usar niveles de seguridad para
acceder a ella.
2
SISTEMAS DE INFORMACION
5
Para consultas SQL, evitar utilizar un SELECT *, indicar que columnas se van a recuperar.
Usar procedimientos almacenados en vez de consultas directas.
Las técnicas de codificación incorporan muchos aspectos del desarrollo del software. Aunque
generalmente no afectan a la funcionalidad de la aplicación, sí contribuyen a una mejor
compresión del código fuente. En esta fase se tienen en cuenta todos los tipos de código fuente,
incluidos los lenguajes de programación, de secuencias de comandos, de marcado o de consulta.
Nombres
Comentarios
Formato
NOMBRES
El esquema de nombres es una de las ayudas más importantes para entender el flujo lógico de una
aplicación. Un nombre debe más bien expresar el "qué" que el "cómo". Si evita nombres que se
refieran a la implementación subyacente (sujeta a cambios), estará conservando un grado de
abstracción que lo simplificará todo. Por ejemplo, puede usar GetNextStudent() en vez de
GetNextArrayElement().
El interés de poner un nombre es que la dificultad para escoger uno adecuado puede indicar que
se necesita analizar o definir con mayor precisión el propósito de un elemento. Ponga nombres lo
suficientemente largos para que sean elocuentes, pero lo bastante cortos como para que no
pequen de palabrería. Desde el punto de vista de la programación, un nombre único sirve
solamente para diferenciar un elemento de otro. Los nombres expresivos funcionan como ayuda
2
SISTEMAS DE INFORMACION
6
para el lector, por eso, es lógico dar nombres que sean fáciles de comprender. No obstante,
asegúrese de que los nombres escogidos sean compatibles con las reglas de cada lenguaje y con
los estándares.
Rutinas
Evite nombres imprecisos que permitan interpretaciones subjetivas, como por ejemplo
AnalyzeThis() para una rutina, o bien xxK8 para una variable. Tales nombres contribuyen
más a la ambigüedad que a la abstracción.
En lenguajes orientados a objetos es redundante incluir nombres de clases en el nombre
de las propiedades de clases, como por ejemplo Book.BookTitle. En su lugar, utilice
Book.Title.
Use el método verbo-sustantivo para dar nombre a las rutinas que ejecuten alguna
operación en un determinado objeto, como por ejemplo CalculateInvoiceTotal().
En lenguajes que permitan sobrecarga de funciones, todas las sobrecargas deberían llevar
a cabo una función similar. Para los lenguajes que no permitan la sobrecarga de funciones,
establezca una nomenclatura estándar relacionada con funciones similares.
Variables
Añada calificadores de computación (Avg, Sum, Min, Max, Index) después de un nombre
de variable donde le resulte apropiado.
Utilice pares complementarios en nombres de variables, como min/max, begin/end, y
open/close.
Dado que la mayoría de nombres se construyen concatenando varias palabras, emplee
una mezcla de mayúsculas y minúsculas para simplificar la lectura. Además, para ayudar a
distinguir entre variables y rutinas, utilice el método Pascal de mayúsculas y minúsculas
(CalculateInvoiceTotal) para los nombres de rutinas, en el que la primera letra de cada
palabra está en mayúscula. Para las variables, ponga la primera letra de cada palabra en
mayúscula, exceptuando la primera (documentFormatType).
Los nombres de variables booleanas deberían contener Is, lo que implica valores del tipo
Yes/No o True/False, como por ejemplo fileIsFound.
2
SISTEMAS DE INFORMACION
7
Evite usar términos del tipo Flag cuando ponga nombre a variables de estado, que difieren
de las variables booleanas en que aquéllas deben tener más de dos valores posibles. En
vez de documentFlag, utilice un nombre más descriptivo, del tipo documentFormatType.
Incluso para el caso de una variable de poco uso, que deba aparecer sólo en unas cuantas
líneas de código, emplee un nombre descriptivo. Utilice nombres de variables de una sola
letra, como i o j sólo para índices cortos.
No utilice números o cadenas literales, como por ejemplo For i = 1 To 7. En su lugar,
emplee constantes con nombre, del tipo For i = 1 To NUM_DAYS_IN_WEEK para que
resulten fáciles de mantener y comprender.
Tablas
Cuando ponga nombres a tablas, hágalo en singular. Por ejemplo, use Employee en lugar
de Employees.
Cuando ponga nombre a las columnas de las tablas, no repita el nombre de la tabla; por
ejemplo, evite un campo llamado EmployeeLastName de una tabla llamada Employee.
No incorpore el tipo de datos en el nombre de una columna. Así reducirá el esfuerzo que
podría ser necesario posteriormente para cambiar el tipo de datos.
Varios
Minimice el uso de abreviaturas; pero si las emplea, use coherentemente las que haya
creado. Una abreviatura sólo debe tener un significado y, del mismo modo, a cada palabra
abreviada sólo debe corresponder una abreviatura. Por ejemplo, si utiliza "min." para
abreviar "mínimo", hágalo siempre así, y no use también "min." para abreviar "minuto".
2
SISTEMAS DE INFORMACION
8
Cuando ponga nombre a las funciones, incluya una descripción del valor que vaya a ser
devuelto, como por ejemplo GetCurrentWindowName().
Los archivos y los nombres de carpetas, al igual que los nombres de procedimientos,
deben describir claramente su finalidad.
Evite reutilizar nombres para elementos diferentes, como por ejemplo una rutina llamada
ProcessSales() y una variable iProcessSales.
Evite los homónimos, como write y right, para evitar confusiones durante las revisiones
del código.
Al dar nombre a los elementos, evite las palabras mal escritas comúnmente. Tenga
también cuidado con las diferencias que existen entre las diferentes variedades regionales
del idioma.
Evite las marcas tipográficas para identificar tipos de datos, como $ para las cadenas, o %
para los enteros.
COMENTARIOS
2
SISTEMAS DE INFORMACION
9
Si programa en C#, utilice la función de documentación XML. Para obtener más
información, vea Documentación XML.
Cuando modifique el código, mantenga siempre actualizados los comentarios
circundantes.
Al principio de cada rutina, resulta útil hacer comentarios estándar, repetitivos, que
indiquen el propósito de la rutina, las suposiciones y las limitaciones. Un comentario
repetitivo podría consistir en una breve introducción que explicara por qué existe y qué
puede hacer.
Evite añadir comentarios al final de una línea de código, porque lo hacen más difícil de
leer. Sin embargo, los comentarios de final de línea sí son apropiados al anotar
declaraciones de variables. En este caso, alinee todos los comentarios de final de línea en
la misma posición de tabulación.
Evite los comentarios recargados, como las líneas enteras de asteriscos. En su lugar, utilice
espacios para separar los comentarios y el código.
Evite rodear un bloque de comentarios con un marco tipográfico. Puede resultar
agradable, pero es difícil de mantener.
Antes de la implementación, quite todos los comentarios temporales o innecesarios, para
evitar cualquier confusión en la futura fase de mantenimiento.
Si necesita realizar comentarios para explicar una sección de código compleja, examine el
código para decidir si debería volver a escribirlo. Siempre que sea posible, no documente
un código malo, vuelva a escribirlo. Aunque, por regla general, no debe sacrificarse el
rendimiento para hacer un código más simple para el usuario, es indispensable un
equilibrio entre rendimiento y mantenibilidad.
Use frases completas cuando escriba comentarios. Los comentarios deben aclarar el
código, no añadirle ambigüedad.
Vaya comentando al mismo tiempo que programa, porque probablemente no tenga
tiempo de hacerlo más tarde. Por otro lado, aunque tuviera oportunidad de revisar el
código que ha escrito, lo que parece obvio hoy es posible que seis semanas después no lo
sea.
Evite comentarios superfluos o inapropiados, como comentarios divertidos al margen.
3
SISTEMAS DE INFORMACION
0
Use los comentarios para explicar el propósito del código. No los use como si fueran
traducciones interlineales.
Comente cualquier cosa que no sea legible de forma obvia en el código.
Para evitar problemas recurrentes, haga siempre comentarios al depurar errores y
solucionar problemas de codificación, especialmente cuando trabaje en equipo.
Haga comentarios en el código que esté formado por bucles o bifurcaciones lógicas. Se
trata en estos casos de áreas clave que ayudarán a los lectores del código fuente.
Realice los comentarios en un estilo uniforme, respetando una puntuación y estructura
coherentes a lo largo de toda la aplicación.
Separe los comentarios de sus delimitadores mediante espacios. Si respeta estas normas,
los comentarios serán más claros y fáciles de localizar si trabaja sin indicaciones de color.
FORMATO
El formato hace que la organización lógica del código sea más clara. Si toma el tiempo de
comprobar que el código fuente posee un formato coherente y lógico, les resultará de gran
utilidad a usted y a otros programadores que tengan que descifrarlo.
Establezca un tamaño estándar de sangría (por ejemplo, cuatro espacios) y úselo siempre.
Alinee las secciones de código mediante la sangría predeterminada.
Use un único tipo de letra cuando publique versiones impresas del código fuente.
Alinee verticalmente las llaves de apertura y cierre donde los pares de llaves se alinean,
como por ejemplo en:
También puede usar un estilo inclinado, en el que las llaves de apertura aparezcan al final
de la línea y las de cierre al principio, como por ejemplo en:
3
SISTEMAS DE INFORMACION
1
Sea cual sea el estilo que escoja, úselo siempre en todo el código fuente.
Aplique una sangría al código en todas las líneas de construcción lógica. Si no aplica la
sangría, el código resulta difícil de seguir, como ocurre en:
La sangría aplicada al código hace que éste sea más fácil de leer, como por ejemplo en:
Establezca una longitud de línea máxima para los comentarios y el código. Así no tendrá
que desplazarse en el editor del código fuente, y conseguirá presentaciones impresas
claras.
Utilice espacios antes y después de los operadores siempre que eso no altere la sangría
aplicada al código. Una excepción es, por ejemplo, la pointer notation usada en C++.
Use espacios en blanco para proporcionar indicaciones organizativas del código fuente.
Así, creará "párrafos" de código, que ayudarán al lector a comprender la segmentación
lógica del software.
Cuando tenga que dividir una línea en varias, aclare que el código sigue en la línea de más
abajo mediante un operador de concatenación colocado al final de cada línea, y no al
principio.
Siempre que sea posible, no coloque más de una instrucción por línea. Una excepción es
un bucle en C, C++, C#, o JScript, como en for (i = 0; i < 100; i++).
3
SISTEMAS DE INFORMACION
2
Al escribir en HTML, establezca un formato estándar para las etiquetas y los atributos;
como por ejemplo, las etiquetas siempre en mayúscula y los atributos en minúscula. Como
alternativa, siga las convenciones de la especificación XHTML para asegurarse de que los
documentos HTML son válidos. Aunque existe una tamaño razonable que debe tenerse en
cuenta a la hora de crear páginas Web, utilice valores de atributo entre comillas y
etiquetas de cierre, para una mejor mantenibilidad.
Cuando escriba instrucciones SQL utilice mayúsculas para las palabras clave y mayúsculas y
minúsculas para los elementos de la base de datos, como tablas, columnas y vistas.
Divida el código fuente de manera lógica entre diferentes archivos.
Coloque las cláusulas SQL principales en líneas separadas, de modo que las instrucciones
sean más fáciles de leer y editar. Por ejemplo:
7. Base de Datos
Una base de datos (cuya abreviatura es BD) es una entidad en la cual se pueden almacenar datos
de manera estructurada, con la menor redundancia posible. Diferentes programas y diferentes
usuarios deben poder utilizar estos datos. Por lo tanto, el concepto de base de datos
generalmente está relacionado con el de red ya que se debe poder compartir esta información. De
allí el término base. "Sistema de información" es el término general utilizado para la estructura
global que incluye todos los mecanismos para compartir datos que se han instalado.
3
SISTEMAS DE INFORMACION
3
Una base de datos proporciona a los usuarios el acceso a datos, que pueden visualizar, ingresar o
actualizar, en concordancia con los derechos de acceso que se les hayan otorgado. Se convierte
más útil a medida que la cantidad de datos almacenados crece.
Una base de datos puede ser local, es decir que puede utilizarla sólo un usuario en un equipo, o
puede ser distribuida, es decir que la información se almacena en equipos remotos y se puede
acceder a ella a través de una red.
La principal ventaja de utilizar bases de datos es que múltiples usuarios pueden acceder a ellas al
mismo tiempo.
Rápidamente surgió la necesidad de contar con un sistema de administración para controlar tanto
los datos como los usuarios. La administración de bases de datos se realiza con un sistema llamado
DBMS (Database management system [Sistema de administración de bases de datos]). El DBMS es
un conjunto de servicios (aplicaciones de software) para administrar bases de datos, que permite:
Borland Paradox
Filemaker
IBM DB2
Ingres
Interbase
Microsoft SQL server
Microsoft Access
Microsoft FoxPro
Oracle
3
SISTEMAS DE INFORMACION
4
Sybase
MySQL
PostgreSQL
mSQL
3
SISTEMAS DE INFORMACION
5