# data[].attributes.headline
Lectura 1. Fundamentos de sistemas: Metodología para el desarrollo de software

# data[].attributes.subject
Lectura 1. Fundamentos de sistemas: Metodología para el desarrollo de software

# data[].attributes.body
Fundamentos de sistemas

En nuestra vida diaria estamos rodeados de sistemas los cuales hacen que las cosas sean a como las conocemos, el sistema solar, el sistema digestivo, el sistema de transporte público, entre otros; cada uno de estos sin importar su naturaleza (naturales o creados por el hombre) cumple con una función específica.

Los sistemas de información (SI), pueden ser:

• Manuales: donde todos los procesos, actividades, reportes se realizan manualmente.

• Automatizados: se transfieren las tareas realizadas por el individuo a un conjunto de elementos tecnológicos.

Objetivos de los sistemas de información:

• Proporcionar información que sirva de apoyo al proceso de toma de decisiones.

• Garantizar información exacta y confiable, así como su almacenamiento de tal forma que esté disponible cuando se necesite.

• Lograr ventajas competitivas a través de su implantación.

Elementos de un sistema de información (SI)

• Equipos informáticos (hardware): Se utilizan equipos de cómputo, estos ayudarán a llevar cabo los procesos de ingreso de datos, procesamiento y salida de información.

• Programas informáticos (software): Hay dos tipos de programas informáticos: programas del sistema y aplicaciones. Los programas del sistema administran los recursos del sistema computarizado y simplifican la programación. Las aplicaciones ayudan directamente al usuario final a hacer su trabajo.

• Base de datos: Las bases de datos son administradas por programas de sistemas conocidos como sistemas de administración de bases de datos (dbms).

• Recursos humanos: debemos distinguir entre personas especialistas en sistemas de información y usuarios finales.

• Procedimientos: Son las políticas y métodos que deben ser seguidos al utilizar, operar y mantener un sistema de información.

• Documentación: Los manuales, los impresos y otra información descriptiva que explica el uso/operación.

Actividades de un sistema de información

1. Entrada de datos: en este proceso el usuario ingresa información al sistema mediante la interfaz de entrada.

2. Proceso: Al ingresar datos al sistema, este los procesa haciendo los cálculos requeridos para obtener una salida.

3. Almacenamiento: Es una de las características más importantes de un SI, ya que los datos ingresados pueden ser usados en diversas operaciones, en diferentes momentos, por lo que la capacidad de almacenamiento es vital.

4. Reportes o informes (Salida): el SI nos muestra información de salida por la interfaz de salida diseñada para esto.

Metodología para el desarrollo de software

¿Qué es la Metodología de desarrollo de software?

Una metodología es un conjunto integrado de técnicas y métodos que permite abordar de forma homogénea y abierta cada una de las actividades del ciclo de vida de un proyecto de desarrollo.

¿Qué es el ciclo de vida clásico del desarrollo de sistemas?

El método del ciclo de vida para desarrollo de sistemas (SDLC) es el conjunto de actividades que los analistas, diseñadores y usuarios realizan para desarrollar e implantar un sistema de información.

Pasos del método del ciclo de vida para el desarrollo de sistemas:

1.-Investigación preliminar (Definición de necesidades):

· Investigación Preliminar

· Evaluación Requerimientos del sistema

· SDLC

· Implantación Diseño del sistema

· Pruebas de los sistemas

· Desarrollo del software

2.- Determinación de los requerimientos del sistema (Análisis):

Consiste en comprender todos los procesos de la empresa, los analistas al trabajar con los empleados y administradores deben estudiar los procesos de una empresa y definir los requerimientos de negocio para un sistema nuevo.

3.-Diseño del sistema:

El diseño de un sistema de información produce los detalles que establecen la forma en la que el sistema cumplirá con los requerimientos identificados durante la fase de análisis.

4.-Desarrollo del software (codificación):

Los encargados de desarrollar software pueden instalar, (o modificar y después instalar) software comprado a terceros o escribir programas diseñados a la medida del solicitante. La elección depende del costo de cada alternativa, del tiempo disponible para el software y la disponibilidad de los programadores.

5.-Prueba de los sistemas:

Durante la fase de prueba de sistemas, el sistema se emplea de manera experimental para asegurarse de que el software no tenga fallas, en algunas organizaciones, las pruebas son conducidas por personas ajenas al grupo que escribió los programas originales, con esto se busca asegurar que el software sea confiable.

6.-Implantación (validación):
La implantación es el proceso de verificar e instalar nuevo equipo, entrenar a los usuarios, instalar la aplicación y construir todos los ar chivos de dato necesarios para utilizarla.

7.-Evaluación:

La evaluación de un sistema se lleva a cabo para identificar puntos débiles y fuertes. La evaluación ocurre a lo largo de las siguientes dimensiones:

· Evaluación operacional Impacto organizacional

· Opinión de los administradores

· Desempeño del desarrollo

· Valoración de la forma en que funciona el sistema como facilidad de uso, tiempo de respuesta.

· Identificación y medición de los beneficios para la organización en áreas tales como finanzas (costos, ingresos y ganancias)

·  Evaluación de los directivos y administradores, así como de los usuarios finales.

· La evaluación del proceso de desarrollo de acuerdo con criterios tales como tiempo y esfuerzo de desarrollo concuerdan con presupuestos y estándares.

# data[].attributes.headline
Lectura 2. Definición de necesidades “Identificando Ando”

# data[].attributes.subject
Lectura 2. Definición de necesidades “Identificando Ando”

# data[].attributes.body
1. Identificar problemas

Una de las tareas más importantes de la fase de definición de necesidades es establecer una base inicial de los problemas, en este caso una solicitud de proyecto dispara la tarea, este puede ser un memorando donde se solicita el un desarrollo de sistema. En este proceso el analista se reúne con el cliente y/o usuario (un representante institucional, departamental o cliente particular) e identifican las metas globales, se analiza las perspectivas del cliente, sus necesidades y requerimientos, así como otros puntos que puedan ayudar a la identificación y desarrollo del proyecto.

2. Solicitud de servicios de sistemas

La solicitud de servicios de sistemas es un documento que sirve a los analistas para recopilar información que permita identificar:

• A qué empresa o institución va dirigido el sistema de información

• El tipo de servicios que solicita el cliente

• Los problemas y soluciones que se pueden proponer para su desarrollo.

3. Definición de problemas y objetivos de mejoras del sistema

Seguidamente del formato solicitud de servicios de sistemas, se realiza la definición de problemas y objetivos de mejoras del sistema, este documento permite realizar una comprensión del dominio del problema, a la vez identificar las posibles mejoras del sistema que se expresan a través de definiciones precisas que definen las expectativas del nuevo sistema.

# data[].attributes.headline
Lectura 3. Análisis del sistema “Modelando mis Datos”

# data[].attributes.subject
Lectura 3. Análisis del sistema “Modelando mis Datos”

# data[].attributes.body
¿Qué es el análisis de sistemas de información?

Son las fases de desarrollo de un proyecto de desarrollo de sistemas de información que se centran-en los problemas y requerimientos de negocios, con independencia de la tecnología que pueda usarse o se use para implantar una solución al problema.

Propósito del análisis de sistemas de información

Es conseguirla especificación detallada del sistema de información, a través de una serie de modelos que cubran las necesidades de información de los usuarios.

Esta fase incluye las siguientes tareas:

Análisis:

En distintas metodologías la fase de análisis de requerimientos podría ser llamada fase de definición o fase de diseño lógico.

1. Identificación de necesidades

• Entrevistas: Se pueden estructurar en tres formas: pirámide, embudo o diamante. Las estructuras de pirámide empiezan con preguntas cerradas detalladas y se amplían con preguntas más generalizadas.

• Diseño de aplicaciones conjuntas (JAD): Mediante el uso de JAD los analistas pueden analizar los requerimientos humanos de información y diseñar una interfaz de usuario con los usuarios en un ambiente de grupo.

• Encuestas aplicadas a las personas mediante cuestionarios: Los analistas de sistemas pueden recopilar datos sobre cuestiones de HCI(Interacción, Humano, Computadora), posturas, creencias, comportamiento y características de las personas clave en la organización Aunque son distintos en su implementación, estos métodos tienen muchas cosas en común.

Ejemplo:

Aplicando las entrevistas, se obtiene información sobre los procesos actuales que se llevan a cabo en el ingreso y salida de los vehículos, los cuales son:

a) Vehículos

b) Cliente

c) Cobranza

2. Análisis de Requerimientos

Estos diagramas son herramientas estructuradas de análisis y diseño, las cuales permiten al analista comprender el sistema y los subsistemas en forma visual, como un conjunto de flujos de datos interrelacionados.

a) Diagrama de contexto

Tomaremos como ejemplo, el sistema de cobranza del ingreso y salida de vehículos de un estacionamiento.

b) Diagrama de casos de uso

Es una técnica para la captura de requisitos potenciales de un nuevo Sistema o una actualización de Software.

El Diagrama de casos se construye de la siguiente manera:

-Narración de casos de uso:

En esta sección muestra los detalles de cada evento de negocios y especifica como interactúan los usuarios con el sistema durante ese evento.

- Diagrama de casos de uso:
Los diagramas de casos de uso sirven para especificar la comunicación y el comportamiento de un sistema mediante su interacción con los usuarios y/u otros sistemas.

c) Modelo Entidad-Relación

El modelo entidad relación es una herramienta que permite representar de manera simplificada los componentes que participan en un proceso de negocio y el modo en el que estos se relacionan entre sí.

CLIENTES COBRANZA VEHÍCULOS

El modelo entidad relación tiene tres elementos principales:

Entidades: El modelo contará con una entidad por cada uno de los componentes del proceso de negocio. Ejemplo: En un negocio de un estacionamiento de autos, podemos tener entidades “Cliente”, “Cobranza”, “Vehículo”, “Servicios”, entre otras.

Atributos: Los atributos, componente fundamental de cada modelo entidad-relación, nos permiten describir las propiedades que tiene cada entidad. “Nombre”,” Dirección”, “CP”, “Municipio”, “Estado”, “Correo Electrónico”, etc. serán atributos de la entidad “Cliente”. Ejemplo:

Relaciones: Con las relaciones se establecen vínculos entre parejas de entidades. Cada “Cliente” podrá estar tener uno o varios “Vehículos”, el estacionamiento tendrá de uno a varios clientes y podrá guardar de uno a varios vehículos y cada cliente recibirá un “Ticket” cuando entré estacionamiento.

Identificación:

Una entidad tiene muchas instancias, allí existe una necesidad de identificar en forma única cada instancia basada en el valor de datos de uno o más atributos, por tanto, cada entidad debe tener una clave, a veces llamado identificador.

¿Qué es una clave primaria?

Una clave primaria es la clave candidata que más comúnmente se usará para identificar en forma única una instancia de entidad individual.

¿Qué es una clave foránea?

Es una referencia a una llave en otra tabla y determina una relación existente entre 2 tablas.

El diagrama entidad relación es la expresión gráfica del modelo entidad relación. En él las entidades se representan utilizando rectángulos, los atributos por medio de círculos o elipses y las relaciones como líneas que conectan las entidades que tienen algún tipo de vínculo.

·         CLIENTE

·         Id_Cliente

·         Nombre

·         Dirección

·         CP

·         Municipio

·         Estado

·         Correo Electrónico

·         Teléfono

Cardinalidad de las relaciones

✓ El tipo de cardinalidad se representa mediante una etiqueta en el exterior de la relación, respectivamente: "1:1", "1:N" y "N:M", aunque la notación depende del lenguaje utilizado, la que más se usa actualmente es el unificado. Otra forma de expresar la cardinalidad es situando un símbolo cerca de la línea que conecta una entidad con una relación:

✓ "0" si cada instancia de la entidad no está obligada a participar en la relación.

✓ "1" si toda instancia de la entidad está obligada a participar en la relación y, además, solamente participa una vez.

✓ "N", "M", ó "*" si cada instancia de la entidad no está obligada a participar en la relación y puede hacerlo cualquier número de veces.

# data[].attributes.headline
Lectura 4. Diseño del Sistema “Diseñando mis pantallas”

# data[].attributes.subject
Lectura 4. Diseño del Sistema “Diseñando mis pantallas”

# data[].attributes.body
¿Qué es el diseño de sistemas?

Es la definición de la arquitectura del sistema y del entorno tecnológico que le va a dar soporte, junto con la especificación detallada de los componentes del sistema de información.

Etapas del diseño del sistema:

1.- El Diseño de la arquitectura de la aplicación

Define la relación entre cada uno de los elementos estructurales de las tecnologías que se usarán en uno, más o todos los sistemas de información (y que se aplicarán en su construcción) con base en sus datos, procesos, interfaces y componentes de redes.

Arquitectura cliente-servidor definición

La arquitectura cliente-servidor es una aplicación que ofrece un servicio a usuarios de una red, el servidor puede estar instalada en la misma máquina o puede estar instalada en otra máquina.

2.- El diseño de la base de datos del sistema

Una Base de Datos es una herramienta que funciona como “almacén”, es decir, guarda grandes cantidades de información de forma organizada para poder encontrarla y utilizarla de manera fácil y ordenada.

Estas serían algunas de las características de una base de datos electrónica o digital:

✓ Almacena información; cualquiera que necesite guardar.

✓ Esta información se encuentra indexada o registrada y se mantienen los datos almacenados en un orden tal que permite su búsqueda rápida.

✓ Además, incluye un sistema de recuperación rápida. Esta recuperación se llama “Consulta”. Usted hace la consulta y la computadora buscará rápidamente lo que está necesitando.

¿Qué es un diccionario de datos?

Es un listado organizado de todos los datos pertinentes al sistema, con definiciones precisas y rigurosas, estos elementos se centran alrededor de los datos y la forma en que están estructurados para satisfacer los requisitos y las necesidades de una organización.

3.-El diseño de la Interfaz del sistema

El diseño de interfaz de usuario es la construcción del contenido con el cual el usuario final va a interactuar con el sistema. Esto incluye el software, el hardware y todo lo necesario para ser lo más amigable el entorno con el que el usuario se va a encontrar. Principios para lograr el objetivo principal del diseño de la interfaz del usuario Familiaridad del usuario: Utilizar lenguaje y términos reconocidos por el usuario.

· Consistencia: Todos los procesos similares deben cumplir el mismo proceso.

· Mínima sorpresa: No debe haber comportamientos distintos al que espera el usuario en el uso de este.

· Recuperabilidad: Se debe proveer de mecanismos para proteger al usuario de errores o deshacer acciones.

· Guía al usuario: Debe existir un manual de usuario que permita al usuario retroalimentarse y ayudar en ciertos contextos.

· Diversidad de usuarios: Se debe proveer características de interacción apropiada para los diferentes tipos de usuarios.

Esquemas de menú

Los menús proporcionan a los usuarios una forma sencilla y familiar de recuperar información e interactuar con el sistema.

Una característica principal de los menús consiste típicamente en llevar al usuario a través de una serie de submenús que le proporcionan una diversidad de opciones.

Diseño de pantallas

Las formas se utilizan como una herramienta para hacer que el trabajo se realice e introducir datos al sistema.

Al hacer un análisis de formas, se debe determinar qué datos se trata de capturar, cómo se clasificarán e introducirán en la forma, quién capturará los datos y con qué fin, quién obtendrá una copia, qué debe aparecer en las copias, en qué condiciones se llenará la forma, cómo se manejará, y durante cuánto tiempo se archivará.

Lineamientos para el diseño de formularios:

1. Haga que las formas sean fáciles de llenar.

2. Asegúrese de que las formas satisfacen el objetivo para el que fueron diseñadas.

3. Diseñe formas que aseguren el llenado preciso.

4. Las formas deben ser atractivas.

# data[].attributes.headline
Lectura 5. Codificación “Programando Ando”

# data[].attributes.subject
Lectura 5. Codificación “Programando Ando”

# data[].attributes.body
Durante la fase de codificación se realiza el proceso de programación. La codificación es el proceso de escribir cientos de líneas de código en un lenguaje de programación. Consiste en elegir un determinado lenguaje de programación, codificar toda la información generada en las fases anteriores y llevarla a un código fuente.

Las características deseables de todo código son:

A. Modularidad: que esté dividido en trozos más pequeños.

B. Corrección: que haga lo que se le pide realmente.

C. Fácil de leer: para facilitar su desarrollo y mantenimiento futuro.

D. Eficiencia: que haga un buen uso de los recursos.

E. Portabilidad: que se pueda implementar en cualquier equipo.

Durante esta fase, el código pasa por diferentes estados:

1. Código Fuente: es el escrito por los programadores en algún editor de texto. Se escribe usando algún lenguaje de programación de alto nivel y contiene el conjunto de instrucciones necesarias.

2. Código Objeto: es el código binario resultado de compilar el código fuente.

3. La compilación es la traducción de una sola vez del programa, y se realiza utilizando un compilador. La interpretación es la traducción y ejecución simultánea del programa línea a línea.

4. El código objeto: Es un código intermedio entre el código fuente y el ejecutable y sólo existe si el programa se compila, ya que si se interpreta (traducción línea a línea del código) se traduce y se ejecuta en un solo paso.

5. Código Ejecutable: Es el código binario resultante de enlazar los archivos de código objeto con ciertas rutinas y bibliotecas necesarias. El sistema operativo será el encargado de cargar el código ejecutable en memoria RAM y proceder a ejecutarlo.

# data[].attributes.headline
Lectura 6. Validación y Pruebas de un SI “Validar para no Errar”

# data[].attributes.subject
Lectura 6. Validación y Pruebas de un SI “Validar para no Errar”

# data[].attributes.body
Errar es humano y la etapa de pruebas tiene como objetivo detectar los errores que se hayan podido cometer en las etapas anteriores del proyecto (y, eventualmente, corregirlos) (Berzal, 2006). La búsqueda de errores que se realiza en la etapa de pruebas puede adoptar distintas formas, en función del contexto y de la fase del proyecto en la que nos encontremos:
• Las pruebas de unidad sirven para comprobar el correcto funcionamiento de un componente concreto de nuestro sistema.
• Las pruebas de integración son las que se realizan cuando vamos juntando los componentes que conforman nuestro sistema y sirven para detectar errores en sus interfaces.
• Una vez "finalizado" el sistema, se realizan pruebas alfa en el seno de la organización encargada del desarrollo del sistema.
• Cuando el sistema no es un producto a medida, sino que se venderá como un producto en el mercado, también se suelen realizar pruebas beta.
• En sistemas a medida, se suele realizar un test de aceptación que, si se supera con éxito, marcará oficialmente el final del proceso de desarrollo y el comienzo de la etapa de mantenimiento.
• Por último, a lo largo de todo el ciclo de vida del software, se suelen hacer revisiones de todos los productos generados a lo largo del proyecto, desde el documento de especificación de requerimientos hasta el código de los distintos módulos de una aplicación.

Mantenimiento y evaluación

La etapa de mantenimiento consume típicamente del 40 al 80 por ciento de los recursos de una empresa de desarrollo de software. De hecho, con un 60% de media, es probablemente la etapa más importante del ciclo de vida del software. Dada la naturaleza del software, que ni se rompe ni se desgasta con el uso, su mantenimiento incluye tres facetas diferentes:
• Eliminar los defectos que se detecten durante su vida útil (mantenimiento correctivo), lo primero que a uno se le viene a la cabeza cuando piensa en el mantenimiento de cualquier cosa.

• Adaptarlo a nuevas necesidades (mantenimiento adaptativo), cuando el sistema ha de funcionar sobre una nueva versión del sistema operativo o en un entorno hardware diferente, por ejemplo.

• Añadir nueva funcionalidad (mantenimiento perfectivo), cuando se proponen características deseables que supondría una mejora del sistema ya existente.