Fundamentos de Sistemas de Información y Desarrollo de Software
El Ciclo de Vida del Sistema
El método del ciclo de vida del sistema es un enfoque por etapas para el análisis y diseño. Postula que el desarrollo de los sistemas mejora cuando existe un ciclo específico de actividades compartidas entre el analista y el usuario.
Etapas del Ciclo de Vida del Sistema:
- Identificación de problemas, oportunidades y objetivos.
- Determinación de los requerimientos de información.
- Análisis de las necesidades del sistema.
- Diseño del Sistema.
- Desarrollo y documentación del sistema.
- Prueba y mantenimiento del sistema.
- Implantación y evaluación del Sistema.
- Producción.
Diagramas de Flujo de Datos (DFD)
Representación gráfica que permite al analista definir las entradas, procedimientos y salidas de información.
Componentes de los Diagramas de Flujo:
- Procesos: Componentes funcionales del sistema.
- Almacenes: Representan datos almacenados.
- Entidades Externas: Representan la fuente y el destino de la información.
- Flujo de datos: Representan los datos que fluyen entre las funciones.
Diccionario de Datos
Define la estructura y significado de los datos. Se utilizan símbolos como:
=Definición+Concatenación()Contenido opcional{}Iteración[]Alternativa
Ejemplo de Diccionario de Datos:
Nombre = Título de cortesía + nombre + (Segundo nombre) + apellido
Título de cortesía = [sr|dr|sra]
nombre = {caracteres}
segundo nombre = {Caracteres}
Caracteres = [A-z|a-z|0-9|]
Conceptos Fundamentales de Información y Sistemas
- Información: Cualquier elemento que aumenta nuestro conocimiento o disminuye nuestra incertidumbre.
- Datos: Elementos que no producen un efecto inmediato en la conducta del receptor.
- Sistema: Un conjunto de elementos ordenadamente relacionados entre sí que contribuyen a un determinado objetivo.
Características del Sistema:
- Estructura
- Componentes
- Interrelaciones
- Entorno
- Objetivo
- Límites
- Sinergia
- Recursividad
Sistemas de Información (SI)
Conjunto de componentes interrelacionados que permiten capturar, procesar, administrar, asegurar y distribuir la información para apoyar la toma de decisiones.
Sistemas Expertos
Un sistema experto es un sistema informático (hardware y software) que simula a los expertos humanos en un área de especialización dada. Son capaces de manejar problemas que normalmente requieren intervención humana especializada y ayudan en la toma de decisiones.
Proceso de Creación de un Sistema Experto:
- Experto de campo: Revela la información colapsando sobre el conocimiento.
- Experto analista del conocimiento: Da forma simbólica y automáticamente manipulable a la información (conocimiento) proporcionada por el experto de campo.
Aplicaciones de los Sistemas Expertos:
- Diagnóstico y reparación
- Predicción
- Planificación
- Monitorización de Tareas
- Ayuda a la educación
- Ayuda a la toma de decisiones
- Ayuda a la operación legal y administrativa
- Ayuda a la identificación de problemas
- Interpretación de datos
Niveles de Decisión en Organizaciones:
- MIS (Management Information Systems)
- DSS (Decision Support Systems)
- EIS (Executive Information Systems)
Comparativa: Experto Humano vs. Sistema Experto
Desventajas de un Sistema Experto:
- Dependencia del experto humano para su creación.
- Perecible (si el experto se va).
- Difícil de documentar inicialmente.
- Difícil de transferir el conocimiento.
- Impredecible en ciertos escenarios.
- Costo marginal de mantenimiento puede ser alto.
Ventajas de un Sistema Experto:
- Permanente.
- Fácil de transferir (una vez creado).
- Fácil de documentar (una vez creado).
- Mantenimiento menos costoso a largo plazo.
Ventajas del Experto Humano:
- Creativo.
- Adaptable.
- Experiencia sensorial.
- Conocimiento del sentido común.
Desventajas del Experto Artificial (Sistema Experto):
- No creativo.
- Requiere mantenimiento constante.
- Entrada de datos simbólica.
- Conocimiento técnico específico.
- Conocimiento heurístico limitado.
Sinergia
La sinergia ocurre cuando cada componente de un sistema hace su trabajo para alcanzar un objetivo común, resultando en un efecto mayor que la suma de las partes individuales.
Ingeniería de Software
Es una disciplina de la ingeniería que concierne a todos los aspectos de la producción de software. Los ingenieros de software deben adoptar un enfoque sistemático, utilizando herramientas y técnicas apropiadas para resolver problemas.
Proceso de Software:
Conjunto estructurado de actividades cuya meta es el desarrollo y la evolución del software. Algunas actividades genéricas incluyen:
- Especificación
- Desarrollo
- Validación
- Evaluación
Procedimientos
Método o conjunto de pasos definidos que permiten realizar una tarea específica.
Tipos de Decisiones
- Estructuradas: Decisiones repetidas y solucionadas con métodos con los cuales la organización está familiarizada y tiene experiencia.
- No estructuradas: Casos nuevos, poco conocidos, inesperados, sin antecedentes y con consecuencias no predecibles.
Especificación de Procesos
Técnica que define el procedimiento realizado por un proceso primitivo. Algunas técnicas incluyen:
- Árboles de decisión
- Tablas de decisión
- Diagramas PERT/CPM
- Lenguaje estructurado
Técnicas de Especificación:
- Árbol de decisión: Representación en forma de árbol que muestra los valores de las variables y las acciones tomadas.
- Tablas de Decisión: Modelo alternativo que muestra la función en forma tabular o matricial.
Tipos de Tablas de Verdad:
- Tablas de entrada limitada (Valores S o N).
- Tablas de entrada extendida (valores con más de dos opciones).
- Tablas de entrada mixta.
Depuración de Tablas:
- Eliminación de reglas inconsistentes.
- Eliminación de reglas redundantes.
Pérdida de Información
Ocurre cuando un dato se pierde o se vuelve inaccesible dentro del proceso.
Fórmulas PERT/CPM
Utilizadas para la planificación y gestión de proyectos.
te = (a + 4m + b) / 6(Tiempo estimado)d = (b - a) / 6(Desviación estándar)Variación = d²(Varianza)
Donde:
a= tiempo optimistab= tiempo pesimistam= tiempo más probable
Ejemplo de Proyecto: Aplicación de Navegación (FESC)
- Especificar necesidades
- Estudiar el mapa de la Facultad para localizar edificios.
- Identificar la ubicación actual del usuario.
- Calcular distancias a lugares de interés.
- Establecer posibles rutas.
- Uso de Google Maps.
- Uso de fotografías.
- Añadir características
- Estudiar Procesos.
- Estudiar APIs externas.
- Estudiar Datos.
- Diseño de la Aplicación (Front-End)
- Diseño de GUI’s (Interfaces Gráficas de Usuario).
- Diseño de Rutas.
- Codificación
- Construcción del Esquema.
- Codificación del Programa.
- Prueba del Sistema
- Corrección del sistema.
- Ejecución del Sistema.