Sistemas de información.pptx

47
SISTEMAS DE INFORMACIÓN MODULO: DESARROLLO DE DOFTWARE

Transcript of Sistemas de información.pptx

Page 1: Sistemas de información.pptx

SISTEMAS DE INFORMACIÓN

MODULO: DESARROLLO DE DOFTWARE

Page 2: Sistemas de información.pptx

Contenido• Objetivo• Introducción• I.- Introducción al Desarrollo de Sistemas• II.- La Fase de Codificación (Implementación,

Programación) de Sistemas• III.- Los Lenguajes de Programación• IV.- Una Vista Rápida a las Arquitecturas de

Programación• V.- Estilos Vs Normas de Codificación

Page 3: Sistemas de información.pptx

Objetivo• Proporcionar a los estudiantes las diferentes

metodologías para que sean capaces de comprender, poner en práctica y administrar los mecanismos de desarrollo de sistemas de información necesarios en las organizaciones modernas

Page 4: Sistemas de información.pptx

Introducción• El continuo crecimiento y la dinámica de las organizaciones

en la actualidad, trae como consecuencia la necesidad de información cada vez más precisa, fidedigna y oportuna.

• Este crecimiento determina la necesidad de preparar recursos humanos capaces de enfrentar el desarrollo y la administración de nuevos proyectos acordes a las necesidades de información de las organizaciones modernas.

• Los ingenieros de sistemas de la actualidad deben ser capaces de:• Aplicar los nuevos paradigmas de la gestión de información.• 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 esta al servicio de las organizaciones.

Page 5: Sistemas de información.pptx

1.- Introducción al Desarrollo de Sistemas

• 1.1 Definición de un Sistema de Información• SISTEMA: • El concepto de sistema está sustentado sobre el hecho de que

ningún sistema puede existir aislado completamente y siempre tendrá factores externos que lo rodean y pueden afectarlo. Se define sistema como " un conjunto de entidades caracterizadas por ciertos atributos, que tienen relaciones entre sí y están localizadas en un cierto ambiente, de acuerdo con un cierto objetivo".

• como un conjunto organizado de cosas o partes interactuantes e interdependientes, que se relacionan formando un todo unitario y complejo.

• partes que componen al sistema, no se refieren al campo físico (objetos), sino más bien al funcional. De este modo las cosas o partes pasan a ser funciones básicas realizadas por el sistema. Podemos enumerarlas en: entradas, procesos y salidas.

Page 6: Sistemas de información.pptx

1.- Introducción al Desarrollo de Sistemas

• 1.1 Definición de un Sistema de Información• 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.

• Estos elementos son de naturaleza diversa y normalmente incluyen:• El equipo computacional, (Hardware) • El recurso humano que interactúa con el sistema de información. • Los datos, o información fuente, que son introducidos al sistema. • Los programas que son procesados y producen diferentes tipos de

resultados, (Software)

Page 7: Sistemas de información.pptx

Introducción al Desarrollo de Sistemas

• 1.2.- Actividades Básicas de un Sistema de Información• Entradas de información. Que es el proceso mediante el cual el

Sistema de Información toma los datos que requiere para procesar la información. Las entradas pueden ser manuales o automáticas.

• Almacenamiento de Información. A través de esta propiedad el sistema puede reconocer la información guardada en la sesión o proceso anterior.

• Procesamiento de Información. Es la capacidad del Sistema de Información para efectuar cálculos de acuerdo con una secuencia de operaciones preestablecida. Estas características de los sistemas permiten la transformación de datos fuentes en información que puede ser utilizada para la toma de decisiones.

• 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.

Page 8: Sistemas de información.pptx

1.- Introducción al Desarrollo de Sistemas

• 1.3- Los Sistemas de Información en la Actualidad• 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:

• pues automatizan los procesos operativos de las empresas• proporcionan información de apoyo al proceso de toma de decisiones • y, lo que es más importante, facilitan el logro de ventajas competitivas a

través de su implementación en las empresas

Page 9: Sistemas de información.pptx

1.- Introducción al Desarrollo de Sistemas

Algunos Tipos y Usos de los Sistemas de Información • Sistemas Transaccionales.

logran la automatización de procesos operativos dentro de una organización su función primordial consiste en procesar transacciones tales como pagos, cobros,

pólizas, entradas, salidas, etcétera. Ahorro de Tiempo y de Recursos Humanos

• Sistemas de Soporte a la Toma de Decisiones (DSS), Sistemas para la Toma de Decisiones de Grupo (GDSS), Sistemas Expertos de Soporte a la Toma de Decisiones (EDSS) y Sistemas de Información para Ejecutivos (EIS) Proporcionan información que sirve de apoyo al proceso de toma de decisiones.

• Sistemas Estratégicos: Se desarrollan en las organizaciones con el fin de lograr ventajas competitivas, a través

del uso de la tecnología de información

• Sistemas Personales de Información• está enfocado a incrementar la productividad de sus usuarios. Dentro de esta

clasificación se encuentran las hojas de cálculo, los sistemas de procesamiento de palabras, utilización de agendas, calendarios, etcétera

Page 10: Sistemas de información.pptx

1.- Introducción al Desarrollo de Sistemas

Características de los Sistemas de Información Transaccionales• Se logran ahorros de mano de obra, debido a que automatizan tareas operativas de la

organización. • Con frecuencia son el primer tipo de Sistemas de Información que se implanta en las

organizaciones. Se empieza apoyando las tareas a nivel operativo, luego los mandos intermedios y posteriormente con la alta administración conforme evolucionan.

• Son intensivos en entrada y salida de información; sus cálculos y procesos suelen ser simples y poco sofisticados. Requieren mucho manejo de datos para realizar sus operaciones y como resultado generan también grandes volúmenes de información.

• Son recolectores e integradores de información. A través de estos sistemas se cargan las grandes bases de información para su explotación posterior.

• Son fáciles de justificar ante la dirección general, ya que sus beneficios son visibles y palpables. Esto se debe a que en el corto plazo se pueden evaluar los resultados y las ventajas que se derivan del uso de este tipo de sistemas.

• Son fácilmente adaptables a paquetes de aplicación que se encuentran en el mercado, ya que automatizan los procesos básicos que por lo general son similares o iguales en otras organizaciones

Page 11: Sistemas de información.pptx

1.- Introducción al Desarrollo de Sistemas

Principales características de los Sistemas de Apoyo a las Decisiones• Se introducen después de haber implantado los Sistemas Transaccionales, ya que

estos últimos constituyen su plataforma de información. • La información que generan sirve de apoyo a los mandos intermedios y a la alta

administración en el proceso de toma de decisiones. • Suelen ser intensivos en cálculos y escasos en entradas y salidas de información. • No suelen ahorrar mano de obra. La justificación económica para el desarrollo de

estos sistema es difícil, ya que no se conocen los ingresos del proyecto de inversión. • Suelen ser Sistemas de Información interactivos y amigables, con altos estándares de

diseño gráfico y visual, ya que están dirigidos al usuario final. • Apoyan la toma de decisiones que, por su misma naturaleza son repetitivas y de

decisiones no estructuradas que no suelen repetirse. Por ejemplo, un Sistema de Compra de Materiales que indique cuándo debe hacerse un pedido al proveedor o un Sistema de Simulación de Negocios que apoye la decisión de introducir un nuevo producto al mercado.

• Este tipo de sistemas puede incluir la programación de la producción, compra de materiales, flujo de fondos, proyecciones financieras, modelos de simulación de negocios, modelos de inventarios, etcétera

Page 12: Sistemas de información.pptx

1.- Introducción al Desarrollo de Sistemas

Principales características de los Sistemas Estratégicos• Su función primordial no es apoyar la automatización de procesos operativos ni

proporcionar información para apoyar la toma de decisiones. Sin embargo, este tipo de sistemas puede llevar a cabo dichas funciones.

• Suelen desarrollarse in house, es decir, dentro de la organización, por lo tanto no pueden adaptarse fácilmente a paquetes disponibles en el mercado.

• Típicamente su forma de desarrollo es con base a incrementos y a través de su evolución dentro de la organización. Se inicia con un proceso o función en particular y a partir de ahí se van agregando nuevas funciones o procesos.

• Su función es lograr ventajas que los, competidores no posean, tales como ventajas en costos y servicios diferenciados con clientes y proveedores. En este contexto, estos Sistemas son creadores de barreras de entrada al negocio. Por ejemplo, el uso de cajeros automáticos en los bancos, ya que brinda ventaja sobre un banco que no posee tal servicio. Si un banco nuevo decide abrir sus puertas al público, tendrá que dar este servicio para tener un nivel similar al de sus competidores.

• Apoyan el proceso de innovación de productos y procesos dentro de la empresa, debido a que buscan ventajas respecto a los competidores y una forma de hacerlo es innovando o creando productos y procesos.

Page 13: Sistemas de información.pptx

1.- Introducción al Desarrollo de Sistemas

CAPTURA Y PROCESAMIENTO DE TRANSACCIONES

DSS GDSS EIS EDSS

Sistemas deInformación

transaccionales

BASE DE DATOSORGANIZACIONAL

Sistemas deInformación

transaccionales

Page 14: Sistemas de información.pptx

1.- Introducción al Desarrollo de Sistemas

Clientes Proveedores Sistemas Sistemas Sistemas de apoyo a las decisiones estratégicos estratégicos (Nivel gerencial y altos ejecutivos) Sistemas transaccionales

(Nivel operativo)

Sistemas Estratégicos Competencia

Page 15: Sistemas de información.pptx

1.- Introducción al Desarrollo de Sistemas

• Tendencias Futuras • El uso de la tecnología de información en las empresas se

ha incrementado considerablemente y en un futuro será aún mayor.

• Las principales tendencias respectos a los Sistemas de Información son las siguientes. • La tecnología de información se usará como parte de la estrategia

corporativa. Las empresas de más éxito serán manejadas por personas que sean capaces de desarrollar aplicaciones estratégicas que proporcionen ventajas competitivas.

• La tecnología será parte del trabajo en equipo de las empresas. Los trabajadores usaran las computadoras personales conectadas en red, y las fábricas usarán la tecnología para el diseño y control de la producción.

Page 16: Sistemas de información.pptx

1.- Introducción al Desarrollo de Sistemas

• Tendencias Futuras • Las principales tendencias respectos a los Sistemas de

Información son las siguientes• El uso de la tecnología transformará a la organización y cambiará su

estructura. Como ejemplo de ello puede verse el uso del correo electrónico.

• La tecnología facilitará la creación de las oficinas virtuales para las personas que requieren estar en diferentes localidades, permitiendo el uso del correo electrónico y las conferencias por computadoras. (generacion Y)

• La tecnología de información apoyará de manera importante el rediseño de los procesos de negocios. Las técnicas de reingeniería de proceso continuarán apoyándose en los sistemas de información.

Page 17: Sistemas de información.pptx

II.- La Fase de Codificación (Implementación, Programación) de Sistemas• 2.1.- Antecedentes de la Fase de Codificación

• 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.

•  Es común pensar que la etapa de programación o codificación (algunos la llaman implementación) es la que insume la mayor parte del trabajo de desarrollo del software; sin embargo, esto puede ser relativo (y generalmente aplicable a sistemas de pequeño porte) ya que las etapas previas son cruciales, críticas y pueden llevar bastante más tiempo.

Page 18: Sistemas de información.pptx

II.- La Fase de Codificación (Implementación, Programación) de Sistemas

• 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.

• Mientras se programa la aplicación, sistema, o software en general, se realizan también tareas de depuración, esto es la labor de ir liberando al código de los errores factibles de ser hallados en esta fase (de semántica, sintáctica y lógica).

Page 19: Sistemas de información.pptx

II.- La Fase de Codificación (Implementación, Programación) de Sistemas

• 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.

Page 20: Sistemas de información.pptx

II.- La Fase de Codificación (Implementación, Programación) de Sistemas• 2.2.- Estados del Código

• Durante la fase de programación, el código puede adoptar varios estados, dependiendo de la forma de trabajo y del lenguaje elegido, a saber:

• Código fuente: es el escrito directamente por los programadores en editores de texto, lo cual genera el programa. Contiene el conjunto de instrucciones codificadas en algún lenguaje de alto nivel. Puede estar distribuido en paquetes, procedimientos, bibliotecas fuente, etc.

Page 21: Sistemas de información.pptx

II.- La Fase de Codificación (Implementación, Programación) de Sistemas• Código objeto: es el código binario o intermedio resultante de procesar con un

compilador el código fuente. Consiste en una traducción completa y de una sola vez de éste último. El código objeto no es inteligible por el ser humano (normalmente es formato binario) pero tampoco es directamente ejecutable por la computadora. Se trata de una representación intermedia entre el código fuente y el código ejecutable, a los fines de un enlace final con las rutinas de biblioteca y entre procedimientos o bien para su uso con un pequeño intérprete intermedio [a modo de distintos ejemplos véase EUPHORIA, (intérprete intermedio), FORTRAN (compilador puro) MSIL (Microsoft Intermediate Language) (intérprete) y BASIC (intérprete puro, intérprete intermedio, compilador intermedio o compilador puro, depende de la versión utilizada)].

• El código objeto no existe si el programador trabaja con un lenguaje a modo de intérprete puro, en este caso el mismo intérprete se encarga de traducir y ejecutar línea por línea el código fuente (de acuerdo al flujo del programa), en tiempo de ejecución. En este caso tampoco existe el o los archivos de código ejecutable. Una desventaja de esta modalidad es que la ejecución del programa o sistema es un poco más lenta que si se hiciera con un intérprete intermedio, y bastante más lenta que si existe el o los archivos de código ejecutable. Es decir no favorece el rendimiento en velocidad de ejecución. Pero una gran ventaja de la modalidad intérprete puro, es que el esta forma de trabajo facilita enormemente la tarea de depuración del código fuente (frente a la alternativa de hacerlo con un compilador puro). Frecuentemente se suele usar una forma mixta de trabajo (si el lenguaje de programación elegido lo permite), es decir inicialmente trabajar a modo de intérprete puro, y una vez depurado el código fuente (liberado de errores) se 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.

Page 22: Sistemas de información.pptx

II.- La Fase de Codificación (Implementación, Programación) de Sistemas• 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».

Page 23: Sistemas de información.pptx

III.- Los Lenguajes de Programación

• 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.

Page 24: Sistemas de información.pptx

III.- Los Lenguajes de Programación

• También la palabra programación se define como el proceso de creación de un programa de computadora, mediante la aplicación de procedimientos lógicos, a través de los siguientes pasos:• El desarrollo lógico del programa para resolver un problema en

particular.• Escritura de la lógica del programa empleando un lenguaje de

programación específico (codificación del programa).• Ensamblaje o compilación del programa hasta convertirlo en

lenguaje de máquina.• Prueba y depuración del programa.• Desarrollo de la documentación.

Page 25: Sistemas de información.pptx

III.- Los Lenguajes de 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 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.

•  • Una característica relevante de los lenguajes de programación es

precisamente que más de un programador pueda usar un conjunto común de instrucciones que sean comprendidas entre ellos para realizar la construcción de un programa de forma colaborativa.

Page 26: Sistemas de información.pptx

IV.- Vista Rápida a las Arquitecturas de Programación

.1.- La Programación por Capas  La programación por capas es una arquitectura cliente-servidor en el que el

objetivo primordial es la separación de la lógica de negocios de la lógica de diseño; un ejemplo básico de esto consiste en separar la capa de datos de la capa de presentación al usuario.

 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.

• En el diseño de sistemas informáticos actual se suelen usar las arquitecturas multinivel o Programación por capas. En dichas arquitecturas a cada nivel se le confía una misión simple, lo que permite el diseño de arquitecturas escalables (que pueden ampliarse con facilidad en caso de que las necesidades aumenten).

•  El diseño más utilizado actualmente es el diseño en tres niveles (o en tres capas).

Page 27: Sistemas de información.pptx

IV.- Vista Rápida a las Arquitecturas de Programación4.2.- Capas y niveles•  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 con la capa de negocio.

• 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.

• 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

Page 28: Sistemas de información.pptx

IV.- Vista Rápida a las Arquitecturas de Programación4.2.- Capas y niveles•   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:

Page 29: Sistemas de información.pptx

IV.- Vista Rápida a las Arquitecturas de Programación

4.2.- Capas y niveles•   El término "capa" hace referencia a la forma como una solución es

segmentada desde el punto de vista lógico:• Presentación. (Conocida como capa Web)• Lógica de Negocio. (Conocida como capa Aplicativa)• Datos. (Conocida como capa de Base de Datos)

•  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:• 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.

Page 30: Sistemas de información.pptx

V.- Estilos Vs Normas de Codificación

5.1. Estilos de Codificación• 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.

•  • Se pueden encontrar diversas modalidades y metodologías en

internet, frecuentemente, si no es para todas están orientadas al trabajo en equipo o equipos de desarrollo grandes, dejando de lado técnicas y prácticas que puedan ser útiles para un desarrollador individual.

Page 31: Sistemas de información.pptx

V.- Estilos Vs Normas de Codificación

5.1. Estilos de Codificación• A continuación se lista algunas prácticas, de estilo “elegante”:• Nombres o nomenclatura:

• Colocar nombres descriptivos a las variables, procedimientos o funciones. Generalmente el nombre para un procedimiento o función debe indicar la acción que realiza, es decir debe contener un verbo: Listar o Grabar.

• Si se utilizan clases los nombres no deberían repetir el nombre de la clase, es decir en vez de ListarLibros en una clase Libro, debería decir Listar.

• Las variables deberían describir en su nombre lo que almacenan, digamos Promedio o Suma o ValorMáximo. Si son de tipo Boolean debería tener un nombre similar a EsTipo o EsMayor.

• las constantes utilizar guiones bajos tal como FORMATO_FECHA_LARGA.•  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. Para los procedimientos almacenados utilizar solo el nombre por ejemplo Libro_Modificar.

Page 32: Sistemas de información.pptx

V.- Estilos Vs Normas de Codificación

5.1. Estilos de Codificación• A continuación se lista algunas prácticas, de estilo “elegante”:• Comentarios.

• Da flojera documentar. • 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.

• .

Page 33: Sistemas de información.pptx

V.- Estilos Vs Normas de Codificación

5.1. Estilos de Codificación• A continuación se lista algunas prácticas, de estilo “elegante”:• 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 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.

Page 34: Sistemas de información.pptx

V.- Estilos Vs Normas de Codificación

5.1. Estilos de Codificación• A continuación se lista algunas prácticas, de estilo “elegante”:• 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.• Incluir rutinas de manejo de errores. • En vez de varios IF...THEN utilizar SWITCH o SELECT...CASE. • Liberar referencias a objetos, explícitamente, no hay que dejarle el trabajo al

Windows, sabemos que no es muy confiable.• Para consultas SQL, evitar utilizar un SELECT *, indicar que columnas se van a

recuperar. Usar procedimientos almacenados en vez de consultas directas. .

Page 35: Sistemas de información.pptx

V.- Estilos Vs Normas de Codificación

5.2.- Técnicas de Codificación• 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.

• Las técnicas de codificación aquí definidas no pretenden formar un conjunto inflexible de estándares de codificación. Más bien intentan servir de guía en el desarrollo de un estándar de codificación para un proyecto específico de software.

• Las técnicas de codificación están divididas en tres secciones: • Nombres• Comentarios• Formato

• .

Page 36: Sistemas de información.pptx

V.- Estilos Vs Normas de Codificación

5.2.- Técnicas de Codificación• 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.

•  

Page 37: Sistemas de información.pptx

V.- Estilos Vs Normas de Codificación

5.2.- Técnicas de Codificación• 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 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. Los siguientes puntos son técnicas de nomenclatura recomendadas:

•  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.

Page 38: Sistemas de información.pptx

V.- Estilos Vs Normas de Codificación

5.2.- Técnicas de Codificación• 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.

• 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.

• 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.

Page 39: Sistemas de información.pptx

V.- Estilos Vs Normas de Codificación

5.2.- Técnicas de Codificación• 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.

Page 40: Sistemas de información.pptx

V.- Estilos Vs Normas de Codificación

5.2.- Técnicas de Codificación• Microsoft SQL Server

• No ponga prefijos “sp” a los procedimientos almacenados, ya que se trata de un prefijo reservado para la identificación de procedimientos almacenados de sistemas.

• No ponga prefijos fn_ a las funciones definidas por el usuario, ya que se trata de un prefijo reservado para funciones integradas.

• No ponga prefijos xp_ a los procedimientos almacenados extendidos, ya que se trata de un prefijo reservado para la identificación de procedimientos almacenados extendidos.

Page 41: Sistemas de información.pptx

V.- Estilos Vs Normas de Codificación

5.2.- Técnicas de Codificación• Comentarios

• Existen dos tipos de documentación de software: externa e interna. La documentación externa, como por ejemplo las especificaciones, los archivos de ayuda y los documentos de diseño, se mantiene fuera del código fuente. La documentación interna está formada por los comentarios que los programadores escriben dentro del código fuente durante la fase de desarrollo.

•  Pese a la disponibilidad de la documentación externa, debe contarse con listados independientes del código fuente, por si se perdiera la documentación de recuperación impresa. La documentación externa puede constar de especificaciones, documentos de diseño, peticiones de cambios, historial de errores y el estándar de codificación empleado.

•  Uno de los problemas de la documentación de software interna es garantizar que se mantienen y actualizan los comentarios al mismo tiempo que el código fuente. Aunque unos buenos comentarios en el código fuente no tienen ningún valor en el tiempo de ejecución, resultan valiosísimos para un programador que tenga que mantener una parte de software particularmente intrincada o compleja.

Page 42: Sistemas de información.pptx

V.- Estilos Vs Normas de Codificación

5.2.- Técnicas de Codificación• Comentarios

• Los siguientes puntos son técnicas de comentarios recomendadas:• Si programa en C#, utilice la función de 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.• 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.

• Evite los comentarios recargados.• Antes de la implementación, quite todos los comentarios temporales o innecesarios, • 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.

Page 43: Sistemas de información.pptx

V.- Estilos Vs Normas de Codificación

5.2.- Técnicas de Codificación• Comentarios

• Los siguientes puntos son técnicas de comentarios recomendadas:• 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.• Use los comentarios para explicar el propósito del código. • 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.

Page 44: Sistemas de información.pptx

V.- Estilos Vs Normas de Codificación

5.2.- Técnicas de Codificación

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.• Los siguientes puntos son técnicas de formato recomendadas.

• 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: • for (i = 0; i < 100; i++)• {• }

• 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:

• for (i = 0; i < 100; i++){• }

• Sea cual sea el estilo que escoja, úselo siempre en todo el código fuente.

Page 45: Sistemas de información.pptx

V.- Estilos Vs Normas de Codificación

5.2.- Técnicas de Codificación

Formato• Aplique una sangría al código en todas las líneas de construcción lógica. • La sangría aplicada al código hace que éste sea más fácil de leer, como

por ejemplo en: • If ... Then• If ... Then• ...• Else• ...• End If• Else• ...• End If

Page 46: Sistemas de información.pptx

V.- Estilos Vs Normas de Codificación

5.2.- Técnicas de Codificación

Formato• 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++).

Page 47: Sistemas de información.pptx

V.- Estilos Vs Normas de Codificación

5.2.- Técnicas de Codificación

Formato• 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.

• 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: • SELECT FirstName, LastName• FROM Customers• WHERE State = 'WA'• Divida las secciones de código grandes y complejas en otras más pequeñas y

comprensibles.