Taller Final Sistemas de Software

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 29

TALLER SISTEMAS DE SOFTWARE

1. ¿De qué forma los Sistemas Operativos sirven de puente de comunicación entre el usuario y la
máquina a través de los programas?

Son los que se encargan de traducir la instrucción que ha digitado el usuario a través de una
línea de órdenes o comandos para que el computador pueda entender el requerimiento que el
usuario ha solicitado, posteriormente el sistema operativo se encarga de asignar los recursos
correspondientes y efectuar las gestiones de control requeridas para que el programa pueda
funcionar (abrir – cerrar el programa, asignar - quitar memoria, manipular información,
seguridad de la información, envió - recepción de información).

2. ¿En qué consiste el lenguaje fuente y el lenguaje objeto y para qué sirven ambos?

El lenguaje fuente es el conjunto se palabras propias de un lenguaje de programación que un


desarrollador ensambla de una forma lógica para lograr que el sistema ejecute una necesidad o
función requerida. El lenguaje objeto es el código fuente analizado y verificado por un
compilador que se encarga de traducirlo a un lenguaje entendible por la maquina. El servicio
que presta el lenguaje fuente es que con él, los diferentes usuarios crean el software requerido
para determinadas necesidades que requieran los clientes, previamente el desarrollador debe
tener un conocimiento de palabras y lógica requerida para poder ensamblarlo correctamente y
el lenguaje objeto sirve para poder generar un ejecutable que pueda ser utilizado por el usuario
final cada vez que él lo requiera.

3. ¿Qué importancia tienen las Bases de Datos, para las organizaciones?

La importancia principal es que son la fuente y almacenamiento principal de información que le


permite a una organización la toma de decisiones importantes propias a la razón de su negocio
con ayuda de los sistemas de información que se encargan de establecer las relaciones
necesarias en ellas para producir información coherente que permita soportar la administración
de los diferentes procesos de la compañía.

4. ¿De qué forma los Sistemas de Aplicación han entrado a dinamizar los diferentes ambientes
personales, profesionales y laborales?

Han logrado crear herramientas de software propias para cada tipo de negocio que han
mejorada la productividad del recurso humano, han incentivado a las personas a capacitarse en
diferentes lenguajes de programación para que entren a solucionar diferentes necesidades del
mercado.

5. ¿Qué aporte ofrecen los sistemas expertos en la generación del conocimiento?

Ayudan a automatizar procesos repetitivos, cuando se ha generado un alto control de calidad


aportan fiabilidad a los procesos que están soportando, ayudan a mejorar los tiempos de
respuesta ya que son rápidos, después de programadas ayudan a reducir los costos y poseen
alta durabilidad en el tiempo.

6. Observar la siguiente diapositiva http://www.slideshare.net/angyespinosa86/capitulo-1-353609

7. Elaborar un mapa conceptual que muestre elementos importantes que sobre el sistema
operativo, sus servicios, evolución y componentes.
8. Investigar qué función cumple el Núcleo o Kernel del Sistema Operativo.

Es el software más parte más importante del sistema operativo, la mayoría de los sistemas
operativos se construyen en torno al concepto de núcleo. La existencia de un núcleo es decir un
único programa responsable de la comunicación entre el hardware y el software informático,
resulta del compromiso que este debe tener con aspectos como resultados, seguridad y
arquitectura del procesador al cual estará unido. El núcleo tiene grandes poderes sobre la
utilización de los recursos materiales (hardware) y sobre todo la memoria, tienen como
funciones básicas las siguientes:

 Administración de la memoria para todos los programas y procesos que se están


ejecutando.
 La comunicación entre los programas informáticos y el hardware.
 Se encarga de gestionar el acceso seguro de los programas a los recursos del hardware
y gestiona los recursos que dichos programas van a utilizar.
 Se encarga de decidir qué programa utilizara determinada dispositivo de hardware y
por cuánto tiempo lo cual se conoce como multiplexado.
 Proporcionan una interfaz limpia y uniforme al software autorizado escondiendo la
complejidad que presenta el acceso al hardware subyacente (abstracción).
 Garantizan la carga y ejecución de los procesos.

La manipulación del hardware se realiza por medio de controladores que conocen la forma de
comunicarse con el kernel por medio de “llamadas al sistema”, las cuales le indican al kernel que
realice tareas como escribir en un archivo, ejecutar un programa, obtener una fecha o la hora
del sistema; existen 4 clases de núcleos:

a) Monolíticos: Son programas de tamaña considerables que deben recompilarse y


reiniciarse cada vez que se necesite adicionar una nueva funcionalidad ya que ellos
concentran todas los oficios posibles (planificación, sistemas de archivos, redes,
controladores de dispositivos), facilitan abstracciones del hardware subyacente
realmente potentes y variadas.
b) Micronucleos: Con ellos se pretende reducir a su mínima expresión el kernel, dejando a
los niveles superiores el resto de las funcionalidades, debido a que proporcionan un
pequeño conjunto de abstracciones simples del hardware no ha sido tenido en cuenta
por el rendimiento bajo que presenta.
c) Núcleos híbridos: Fundamentalmente son micronucleos puros que tienen código no
esencial en el espacio del kernel, dejando que en el espacio del usuario se ejecuten
otros tipos de códigos que se ejecuta más rápidamente al no estar en el espacio del
kernel. Ejecuta conceptos de arquitectura tanto monolítica como de micronucleo,
d) Exonucleos: Concepto introducido en 1994 y es un tipo de núcleo que no permite
abstracciones, pero si permiten el uso de bibliotecas que proporcionan mayor
funcionalidad gracias al acceso directo al hardware. Su propósito es crear una capa de
software para otros sistemas operativos por lo cual se pueden ejecutar dos sistemas
operativos al mismo tiempo como Windows y Linux en el mismo exonucleo, con este
tipo de núcleo se asigna los recursos físicos de la maquina a las aplicaciones y se decide
que recursos se destinan a esa aplicación, para ellos se utilizan las LibOS que son las
encargadas de implementar las abstracciones comunes para cada aplicación.

9. Observar el video sobre la evolución de los Lenguajes de Programación en el link


http://www.youtube.com/watch?v=qFSUiDGh6RE

10. Elaborar un cuadro que posea 3 columnas, donde se debe ubicar año, nombre del lenguaje,
características del lenguaje.

AÑO NOMBRE DEL LENGUAJE CARACTERISTICAS


# Fue creado por Mauricio V. Wilkes de la Universidad de Cambridge.
# Utilizan mnemotécnicos (técnica o procedimiento de asociación mental de ideas o
esquemas para recordar algo), constituidos por tres o cuatro letras que indican la
operación a realizar, en lugar de utilizar la codificación en binario. Ej. ADD,SUB, CALL,
etc.
195
Lenguaje Ensamblador # Utilizan para los datos, direcciones simbólicas de memoria en lugar de direcciones
0
binarias absolutas. Así, por ejemplo, los datos pueden ser referenciados mediante
identificadores, tales como I, SUMA, CONT, etc.
# Son lenguajes de “bajo nivel”: A pesar de utilizar palabras en lugar de códigos
binarios, la programación es muy cercana al lenguaje de máquina. Se hace
corresponder a cada instrucción en ensamblador una instrucción en código máquina.
# El primer compilador fue escrito por Grace Hopper o Grace Murray para el lenguaje
de programación A-0.
# Generaba un binario a partir de un código fuente.
# Fue el primer compilador desarrollado para una computadora electrónica.
# El A-0 funcionaba más como un cargador o enlazador que como la noción moderna de
195
Sistema A-0 compilador.
1
# Un programa era especificado como una secuencia de subrutinas y argumentos.
# Las subrutinas eran identificadas por un código numérico y los argumentos de las
subrutinas eran escritas directamente después de cada código de subrutinas.
# El sistema A-0 convertía la especificación en código máquina que podía ser
alimentado a una computadora para ejecutar el programa.
# Es un lenguaje muy simple y fácil de aprender.
# Se diseñó para trabajar con expresiones matemáticas y Matrices, es todavía uno de
los lenguajes más usados para cálculo numérico.
# Existen cientos de librerías probadas y eficientes, los compiladores tienen más de 50
195 años de experiencia para optimizar el tiempo de cálculo de los do-loops 
Fortran
7
# No existen clases o estructuras y no se puede hacer una reserva de memoria
dinámica.
# Es un lenguaje primitivo para proceso de textos, listas y estructuras de datos más
complejas y puede haber mayor dificultad en el rastreo de la lógica de un programa en
el código Fortran que en algunos otros lenguajes de alto nivel.
# Lenguaje informático de programación desarrollado para la programación de cálculos
científicos que se convirtió en la forma estándar para informar algoritmos en papel
durante los próximos 30 años a partir de su invención.
# Algol-58 utiliza entre bloques de corchetes la declaración y fue el primer lenguaje
que los comenzó a utilizar en pares (inicio-final) para la delimitación de ellos y su
declaración.
# Fue uno de los primeros intentos formales para abordar la cuestión de la portabilidad
de software.
# ALGOL fue desarrollado conjuntamente por un comité de científicos de la
Algol - 58 computación Europea y de Estados Unidos.
# Se especifican tres sintaxis diferentes: una sintaxis de referencia, una sintaxis de la
publicación y una sintaxis de aplicación.
# Las diferentes sintaxis permiten utilizar nombres de palabras clave diferentes y
convenciones para los puntos decimales (coma frente a períodos) en diferentes
idiomas.
# Las estructuras sintácticas y lexicográficas de ALGOL, fueron tan populares que
virtualmente todos los lenguajes que se han diseñado después se les refiere como 'tipo
ALGOL'; es decir, que son jerárquicos en estructura, con ambiente y estructuras de
195 control anidados.
8 # Un lenguaje de programación para ordenadores o computadoras orientadas a la
generación de listas, desarrollado en 1959-1960 por John McCarthy y usado
principalmente para manipular listas de datos.
# El LISP es un lenguaje interpretado, en el que cada expresión es una lista de llamadas
a funciones. Este lenguaje se sigue utilizando con frecuencia en investigación y en
círculos académicos, y fue considerado durante mucho tiempo el lenguaje modelo para
la investigación de la inteligencia artificial (IA).
# El Lisp era un sistema difícil de implementar con las técnicas de compilador y
Lisp (List Processing) hardware común de los años 1970; pero rutinas de recolección de basura, desarrolladas
por estudiante del MIT Daniel Edwards, hicieron práctico correr Lisp en sistemas de
computación de propósito general, pero su eficacia sigue siendo un problema.
# Durante los años 1980 y 1990 se hizo un gran esfuerzo para unificar los numerosos
dialectos del Lisp en un solo lenguaje (InterLisp, Maclisp, ZetaLisp, MetaLisp y Franz
Lisp), el nuevo lenguaje "Common Lisp", fue esencialmente un subconjunto compatible
de los dialectos que reemplazó.
# Los dos principales dialectos del Lisp usados para la programación de propósitos
generales hoy en día son Common Lisp y Scheme, estos lenguajes representan opciones
de diseño significativamente diferentes.
# Nace del consenso entre el departamento de defensa de los EEUU y varias empresas
de la industria de la computación, las cuales convocaran un congreso denominado
"CODASYL" (Conference on Data Systems Languages) buscando una normalización para
trabajar con un único lenguaje que permitiese ser utilizado en cualquier computador;
es así como nace el COBOL (Common Business-Oriented Language) el cual es un
estándar en el ámbito de la gestión y cuyo nombre fue dado el 18/09/1959.
# Los primeros compiladores de este lenguaje se desarrollaron en 1960 y tras esto, los
días 6 y 7 de diciembre de ese mismo año se llevó a cabo la prueba de fuego: escribir un
programa en COBOL para ejecutarlo en dos computadores de fabricantes distintos (una
computadora de RCA y una Univac de Remington-Rand) la cual fue satisfactoria y el
196 programa funciono correctamente.
COBOL ( Common Business-Oriented Language )
0 # Orientado de manera principal a la automatización de procesos relacionados con el
negocio, utiliza nombres de hasta 30 caracteres los cuales se pueden unir con guiones;
esto hace que el código sea legible en nombres bastantes autoexplicativos.
# Cada variable debe ser bastantes explicativa (numero de dígitos, posición del punto
decimal, tipo de campo).
# Los archivos de salida tenían ya un formato preestablecido para su impresión, lo cual
hacia que los datos numéricos fueran comprensibles fácilmente.
# Programación visual con la posibilidad de usar objetos, uso de biblioteca de clases.
# La sintaxis del Cobol esta implementada en Ingles, no utiliza signos especiales; lo cual
hace que sea comprensible con la solo lectura para cualquier persona que lo sepa
traducir.
# Proviene de Beginners All-purpose Symbolic Instruction Code (código de instrucciones
simbólicas de propósito general para principiantes, en español).
# El lenguaje BASIC se desarrolló en 1964 por John George Kemeny y Thomas Eugene
Kurtz en el Dartmouth College, fue conocido como BASIC Dartmouth por tal motivo.
196
BASIC Dartmouth # Este lenguaje se diseñó para permitir que los estudiantes pudieran escribir programas
4
utilizando terminales de un computador en tiempo compartido y con el fin de reducir la
complejidad de otros lenguajes.

# Las características principales de este programa son: fácil de usar para los
principiantes, lenguaje de propósito general (no orientado), permitir a los más
avanzados añadir características avanzadas siempre y cuando se conserve simple el
lenguaje para principiantes, interactivo, mensajes de error claros, no requerir un
conocimiento del hardware de la computadora y que se protegiera al usuario del
sistema operativo.
# Este lenguaje se basó en FORTRAN II y Algol 60, agregando algunas cosas para hacerlo
apropiado en sistemas de tiempo compartido y que incluyera elementos que hicieran
más fácil la operación aritmética de las matrices.
# La sintaxis de BASIC solo necesita los comandos LET, INPUT, PRINT, IF Y GOTO. Si a
algún programa se le agrega una pila, también se puede agregar ciclos FOR anidados y
el comando GOSUB. Un lenguaje como BASIC con dichas características necesita que el
código tenga números de línea.
# Al usar números de línea en el código fuente se tiene una desventaja, la cual es que
necesita que el programador haga un estimado de cuantas líneas ocupará el programa
que está escribiendo, esta necesidad se suple incrementando los números de línea en
intervalo regular como 10, pero esto tiene un problema a la hora que el código exceda
el espacio disponible entre las líneas originales; la inconsistencia fue solucionada más
tarde al entrar en vigencia el comando RENUMBER.
# Lenguaje de programación de alto nivel que pretende reunir las mejores
características del COBOL y del FORTRAN, fue puesto en marcha a mediados de la
década de los 60 para resolver todo tipo de problemas tanto de negocios como
científicos.
# Su nombre deriva de la expresión inglesa Programmíng Language, es decir, lenguaje
de programación. Se trata de un lenguaje de propósito general creado especialmente
para poder soportar aplicaciones de tipo científico (característica del FORTRAN) como
proceso de datos y textos (características del COBOL), además de programación de
sistemas a alto nivel.
PL/1 o PL/I
# Se emplea con éxito en el diseño e implementación de grandes sistemas que
requieren características avanzadas y gran robustez para la programación en sistemas
operativos IBM, se aplican esencialmente en el procesamiento de archivos y textos de
forma combinada en un mismo lenguaje
# El PL/I es un lenguaje flexible y sofisticado, los programas de PL/I pueden ser
preparados en cualquier formato libre, el elemento básico en el PL/I es el enunciado,
que termina con un 'punto y coma' (;). Los enunciados se combinan en procedimientos
y estos pueden representar por completo a un programa pequeño o un "bloque de
construcción" o módulo de un programa más complejo.
# Lenguaje de programación creado en los laboratorios Bell en el año de 1969, en su
mayoría fue un trabajo de Kenneth L. Thompson con contribuciones de Dennis M.
Ritchie.
# Este lenguaje es una simplificación del BCPL, en la cual se elimina cualquier tipo de
componente que no se considere prescindible para que este pudiese caber en la
memoria de una minicomputadoras de la época, también se incluyeron cambios para
reducir el número de caracteres de un programa típico.
# B sólo tenía un tipo de datos, que correspondía con una palabra de máquina, la
197 mayoría de operadores lo manejaban como un entero; por ejemplo + (suma), - (resta),
Lenguaje B:
0 * (multiplicación) ó / (división).
# B se continuó utilizando hasta los años 90 en los mainframes Honeywell y en ciertos
sistemas embebidos por una variedad de razones, incluyendo el uso de hardware
limitado en estos sistemas, librerías extensivas, herramientas o simplemente porque
era lo suficientemente bueno como para programar en el.
# B es un lenguaje orientado a la implementación de Sistemas Operativos
concretamente Unix, es el predecesor del lenguaje C.
# El trabajo de procesar un elemento como un número completo o un número real era
responsabilidad del programador.
# La primera versión fue liderada por Alan Kay miembro del equipo de investigación
Xerox Parc, pero también existió aportes de un desarrollador de nombre Dan Ingalls
cuya idea estaba basada en mensajes y cuyo código se podía reducir a solo una página.
# Es uno de los primeros lenguajes de programación gráficos orientado a objetos y todo
el entorno es tratado como un objeto.
# Las versiones lanzadas posteriormente incluían elementos como librerías, editor de
código, metaclases y su elaboración fue elaborada junto con otras compañías como
197 Hewlett-Packard y Apple.
SmallTalk
2 # El concepto central de Smalltalk es el objeto, en la que la interacción no es
directamente con el código sino que se hace en un entorno de objetos virtuales
# Las características principales son que es un lenguaje que tiene memoria propia,
comunicación con otros objetos, posibilidad de heredar las características de otros
objetos y de procesamiento.
# Una de las mejores características de Smalltalk es el alto grado de reutilización,
Smalltalk contiene un gran conjunto de objetos que pueden ser utilizados directamente
o fácilmente modificados para satisfacer la necesidad de una aplicación en general; los
objetos suelen ser utilizados en más de una aplicación, esto permite una mejora en la
productividad y una calidad en la zona de trabajo.
# Es uno de los lenguajes de programación más antiguos que existe, fue creado en 1972
por Dennis Ritchie.
# C es un programa de propósito general asociado universalmente al S.O. Unix, pero
cuya popularidad se base en que no está asociado a ningún sistema operativo ni a
ninguna maquina en especial.
# C es un programa tipificado de alto nivel y programación estructurada de propósito
general pero contiene construcciones de lenguaje que permiten control a bajo nivel,
aunque durante su diseño se pensó también en ser un lenguaje de programación de
sistemas característica que le da también potencia, velocidad de ejecución y flexibilidad
también se utiliza para crear aplicaciones.
# La sintaxis para declarar funciones hace que se describan los argumentos de la
función, esta información adicional hace que el compilador detecte fácilmente los
errores de argumento que no coinciden.
# Con el lenguaje C se puede trabajar un programa en módulos lo que permite que se
puedan compilar de modo independiente.
# El lenguaje C trabaja con librerías de funciones en las que básicamente sólo se
Lenguaje C: necesitan cambiar los valores dentro de una aplicación dada.
# El código generado por el lenguaje C es muy eficiente ya que los datos son tratados
directamente por el hardware de números, caracteres y direcciones de los
computadores.
# Poses un núcleo del lenguaje simple, con funcionalidades añadidas importantes como
funciones matemáticas y de manejo de archivos, proporcionadas por bibliotecas.
# Tipos de datos agregados (struct) que permiten que datos relacionados como un
funcionario que tiene una cedula, un nombre y un salario, se combinen y se manipulen
como un todo en una única variable "funcionario".
# La gestión de la memoria tiene que ser reservada y liberada explícitamente por el
programador. En otros lenguajes (como BASIC, Matlab o C#) la memoria es gestionada
de forma transparente para el programador. Esto alivia la carga de trabajo humano y en
muchas ocasiones previene errores.
# El fallo de seguridad clásico consiste en que algunas entradas de información al
programa no se comprueban en longitud, si un Hacker introduce datos lo bastante
grandes puede provocar la sobreescritura de código en la pila del programa e incluso
llegar a forzar la ejecución de código malware.
Prolog # La historia de Prolog inicia así con sus creadores que fueron Robert Kowalski (1970 en
la parte teórica), Maarten van Emden (en la demostración experimental) de Edimburgo
y Alain Colmerauer de Marsella (en la implementación).
# Este lenguaje fue creado para bajar los costos y tener facilidad en la programación, es
un programa que utiliza lógica para resolver los problemas y está orientado para
trabajar en aplicaciones de inteligencia artificial. Se compone de un compilador, un
intérprete, una Shell y una biblioteca de utilidades.
# Prolog es un lenguaje de programación creado para representar y utilizar el
conocimiento que se tiene sobre un determinado dominio, es usado para resolver
problemas que envuelven objetos y las relaciones entre ellos; donde el dominio es un
conjunto de objetos y el conocimiento se representa por un conjunto de relaciones que
describen las propiedades de los objetos y sus interrelaciones.
# Es un lenguaje de programación declarativo, lo cual quiere decir que el ordenador y el
programador sostienen una especie de conversación; Prolog espera a que se
introduzcan los hechos y las reglas que definen el problema a resolver. Posteriormente,
si se hacen las preguntas adecuadas, Prolog buscará las respuestas y las presentará en
la pantalla.
# Un programa prolog está formado por una serie de clausulas las cuales se dividen en
hechos, reglas y variables.
# Los hechos expresan relaciones entre objetos, por ejemplo queremos expresar el
hecho de que "un coche tiene ruedas", este hecho consta de dos objetos: "coche" y
"ruedas" y de una relación llamada "tiene", la forma de representarlo en PROLOG es: --
> tiene(coche,ruedas). Los nombres de objetos y relaciones deben comenzar con una
letra minúscula, primero se escribe la relación y luego los objetos separados por comas
y encerrados entre paréntesis, al final de un hecho debe ir el carácter "." (punto).
# Las reglas se utilizan para definir que un hecho depende de uno o más hechos. Una
regla consiste de una cabeza y un cuerpo unidos por el signo " :- ", la cabeza está
formada por un único hecho, el cuerpo puede ser uno o más hechos (conjunción de
hechos), separados por una coma (","), que actúa como el "y" lógico. Las reglas finalizan
con un punto (".").
# Las variables representan objetos que el mismo PROLOG determina, una variable
puede estar instanciada o no instanciada; esta instanciada cuando ya existe un objeto
que está representado por una variable.
# En conclusión podríamos decir que un conjunto de reglas que describa un dominio y
las relaciones es un programa PROLOG; los programas son generales, ligeros y cortos en
código. En dicho programa se pueden realizar las siguientes aplicaciones: pruebas
matemáticas “demostración de teoremas”, inteligencia artificial “sistema expertos” y
consultas a bases de datos “permitir inferir relaciones no especificadas”.
# El Altair-Basic fue un intérprete para el lenguaje de programación Basic que
funcionaba sobre una maquina Altair 800 del MITS (Micro Instrumentation and
Telemetry Systems), por lo que su nombre se deriva de esta máquina. Fue el primer
197
Altair Basic producto de Microsoft distribuido inicialmente por el MITS bajo contrato.
5
# Su característica principal es su eficiencia y bajo consumo de memoria.
# Con este programa se inicia la industria del Software para microcomputadoras y fue el
primero de alto nivel con el cual se le ejecutaban.
# Oficialmente fue creado en 1983 en los laboratorios Bell (hoy AT&T) por Bjarne
Stroustrup, empezando su desarrollo hacia el año1980.
# C++ es un lenguaje basado en C, incorporando todas las características de este:
Funciones definidas por el usuario, tipos de datos básicos, arreglos. Además se
adicionan características para programación orientada a objetos: Abstracción de datos,
encapsulamiento, herencia, polimorfismo.
# Este lenguaje es potente, expresivo, flexible, tiene comandos breves, su tamaño es
pequeño y su lenguaje es estructurado; su uso se hace más extenso debido a que
puede ser compilado en una gran cantidad de maquinas diferentes (portabilidad) y los
programas construidos son eficientes, un punto en contra es que la detección de
198
C ++ errores es muy pobre, lo que acarrea un problema para los principiantes.
3
# En un principio fue un lenguaje que se destino a la creación de sistemas operativos o
parte de ellos, los Macintosh y la interfaz grafica de Windows están codificados en este
lenguaje; mas adelante debido a su desarrollo también se destino para la creación de
aplicaciones.
# Debido a que originalmente el lenguaje sobre el que estaba basado "C" tenía una
cantidad numérica limitada con tendencia a conducirlo todo a un byte, C++ soluciona
este inconveniente enriqueciéndose con clases que describen tipos de datos acorde a
las necesidades del programador.
# En conclusión se puede decir que es un lenguaje de alto nivel que al mismo tiempo se
base en instrucciones cercanas a la maquina.
# Perl es un lenguaje que deriva ampliamente del lenguaje C, es un lenguaje de
programación diseñado por Larry Wall en 1987.
# Es un lenguaje ensamblado para leer archivos texto, extraer información de ellos y
crear reportes basados en la información que ellos contengan. Es una combinación de
características de C, sed, awk y sh.
# Es un lenguaje de script, debido a una gran cantidad de comandos en ingles utilizados
en la programación; se diseño para ayudar a efectuar tareas demasiados difíciles o
complicadas para crear una Shell script o muy simples para desarrollar rutinas
complicadas en C.
# Es un lenguaje imperativo con variables, expresiones y los bloques de código están
escritos entre llaves. Las variables cuando van a ser publicadas tienen un signo
precedente (sigil) los cuales son los que especifican que es una variable, Los
comentarios en Perl se definen con un símbolo de número #, su interpretación puede
ser por shells.
# Es fácil de usar pero su aprendizaje es lento y difícil, este lenguaje se desarrollo
Perl pensando en que fuera practico, eficiente y completo por lo que su enfoque fue para
desarrolladores que posean cierto conocimiento sobre el lenguaje.
# Con él se puede programar hacia cualquier necesidad, ya que alberga una gran
cantidad de librerías y módulos. Es un lenguaje muy intuitivo, ya que las funciones
creadas hacen exactamente lo que describen (print = impresión, delete = elimina,
return = regresa valor).
# Trabaja sobre varios entornos (Windows, OS/2, Linux) sin realizar cambios
significativos sobre el código, lo único es introducir el interprete correspondiente para
cada sistema operativo.
# Tiene diferentes características en su programación (estructural, funcional, orientada
a objetos), tiene un editor para procesar texto, es un lenguaje sensitivo a la forma en
que se declara las variables y funciones (es decir detecta mayúsculas y minúsculas).
# Perl es como un compilador y un intérprete. Es un compilador porque el programa
completo es leído y filtrado antes de que se ejecute la primera expresión y es un
198 intérprete porque no hay ningún código flotando por ahí que haga que consumas
7 espacio en el disco duro, así que de alguna manera Perl es lo mejor de ambos mundos.
# Python es de código abierto y fue desarrollado aproximadamente en 1991 por Guido
van Rossum, leer un programo en Python es como leer en Ingles, pero un ingles muy
Python estricto (simple y minimalistico).
199 # Es un lenguaje interpretado es decir que no requiere compilación, se ejecuta el código
1 fuente e internamente el programa lo convierte en una forma intermedia llamada
Bytecode para posteriormente si traducirlo al lenguaje nativo de la maquina y
ejecutarlo; no requiere que se declare el tipo de variable; no es necesario escribir el
código entre llaves; no requiere punto y coma al final de la sentencia.
# Es un lenguaje de programación de alto nivel (no hay que preocuparse por la
memoria que emplea el programa) no recomendado para programación de drivers o
kernel; se utiliza para diseños Web, programación de aplicaciones o video-juegos de
alta calidad.
# Debido a su naturaleza de software libre puede trabajar en diversas plataformas, el
código funciona sin requerir cambio alguno; aunque se debe ser cuidadoso cuando se
invocan librerías de un sistema determinado (dependencias a librerías o módulos que
funcionan en un S.O. determinado); este puede funcionar correctamente sobre Linux,
Windows, Macintosh, Solaris, OS/2 entre otros.
# Python es un programa orientado a procedimientos y orientado a objetos, es decir
está construido sobre procedimientos o funciones reutilizables (piezas de programa) y
objetos los cuales combinan datos y funcionalidad.
# Es un programa que puede trabajar de forma ampliable o incrustable, en la primera
podemos escribir una parte de él en lenguaje C/C++ para ejecutarlo rápidamente y en
la segunda podemos incrustarlo en un lenguaje construido en C/C++ para que trabaje
como un script.
# Las librerías son muy amplias, pueden hacer varias cosas: generación de documentos,
bases de datos, navegadores web, ftp, correo electrónico.
# Es un lenguaje de programación diseñado para facilitar el desarrollo de aplicaciones
en un entorno grafico, combina la sencillez del BASIC con un poderoso lenguaje de
programación visual los cuales desarrollan programan que corren a 32 bits para
Windows; esto ha hecho que sea un programa compatible únicamente bajo S.O.
Windows y por lo tanto monopólico.
# Fácil y sencillo de manejar, orientado y controlado por eventos, centrado en un motor
de formulario para el fácil desarrollo de aplicaciones graficas. Los elementos de
programación incluyen propiedades (datos que describen el objeto), instrucciones,
declaraciones, métodos (agrupa el código que se ejecuta en respuesta a un evento),
eventos (hechos que pueden ocurrir sobre un objeto p.ej. Click), operadores y palabras
Visual Basic claves.
# Posee varias bibliotecas para manejo de bases de datos, pudiéndose conectar con
cualquier base de datos a través de ODBC (Informix, DBase, Access, MySQL, SQL Server,
PostgreSQL, etc.) a través de ADO.
# Es utilizado principalmente para aplicaciones de gestión de empresas, debido a la
rapidez con la que puede hacerse un programa que utilice una base de datos sencilla,
además de la abundancia de programadores en este lenguaje.
# El compilador genera ejecutables que requieren librerías DLL para que funcionen y
provean todas las funciones implementadas en el lenguaje.
# Los objetos en visual Basic están encapsulados, es decir contienen su propio código y
sus propios datos.
# Es un lenguaje de programación que se utiliza para automatizar tareas comunes en
maquinas Mac como operaciones de sistemas de archivos, datos textuales, análisis y
ejecución de programas entre otros o ganar tiempo en tareas complejas y de larga
duración.
# Una ventaja de este lenguaje es que se puede automatizar las acciones de otras
aplicaciones en el Mac, consiste en una serie de comandos en inglés que realizan
acciones sobre objetos. Ejemplos de acciones: open, close, get the name of (es decir,
abrir, cerrar, obtener el nombre de). Los objetos pueden ser, por ejemplo, una
aplicación, una ventana o un ajuste de preferencias; adicionalmente su sintaxis al estar
escrita en ingles puede ser utilizada por la gente común.
199
Apple Script # Una ventaja de este lenguaje es que se puede automatizar las acciones de otras
3
aplicaciones en el Mac
# Al igual que en otros lenguajes de programación, permite utilizar variables para
almacenar y manipular información; su uso es muy sencillo, para declarar y asignar un
valor a una variable debemos seguir la siguiente sintaxis: set nombreDeVariable to
valorParaLaVariable.
# Posee un editor para crear los scripts el cual permite leerlos, escribirlos, grabarlos y
guardarlos; las características principales de este editor es que es fácil de usar, permite
buscar y reemplazar un texto determinado en el script, ajuste automático a sentencias
de gran longitud, permite deshacer varias acciones, ofrece un asistente que le ayuda a
completar las sentencias.
199 Java # Es un lenguaje simple debido a su cercanía con C/C++ y orientado a objetos, estos
5 objetos tienen encapsulados sus datos y métodos durante su manipulación.
# Es un lenguaje interpretado es decir que no requiere compilación, se ejecuta el código
fuente e internamente el programa lo convierte en una forma intermedia llamada
Bytecode para posteriormente si traducirlo al lenguaje nativo de la maquina al cual se
haya portado el interprete.
# Es un lenguaje robusto y diseñado para crear software altamente confiable. Es seguro
e indiferente a la arquitectura en los más variados entornos de red, desde Unix a
Windows, pasando por Mac y estaciones de trabajo, sobre arquitecturas distintas y con
sistemas operativos diversos.
# Java especifica los tamaños de sus tipos de datos básicos y el comportamiento de sus
operadores aritméticos, de manera que los programas son iguales en todas las
plataformas. Estas dos últimas características se conocen como la Máquina Virtual Java
(JVM).
# Java soporta sincronización de múltiples hilos de ejecución (multithreading) a nivel de
lenguaje, especialmente útiles en la creación de aplicaciones de red distribuidas. Así,
mientras un hilo se encarga de la comunicación, otro puede interactuar con el usuario
mientras otro presenta una animación en pantalla y otro realiza cálculos.
# Java puede ser usado para crear dos tipos de programas: aplicaciones independientes
y applets. Las aplicaciones independientes se comportan como cualquier otro
programa escrito en cualquier lenguaje, como por ejemplo el navegador de Web
HotJava, escrito íntegramente en Java. Por su parte, las applets son pequeños
programas que aparecen embebidos en las páginas Web, como aparecen los gráficos o
el texto, pero con la capacidad de ejecutar acciones muy complejas, como animar
imágenes, establecer conexiones de red, presentar menús y cuadros de diálogo para
luego emprender acciones, etc.
# Fue originalmente creado por Rasmus Lerdorf en el año de 1994. Originalmente fue
desarrollado en perl, PHP al principio significaba Personal Home Page pero con el
tiempo como ya es desarrollado por otro grupo se llama PHP Hypertext preprocesor.
# Es un lenguaje multiplataforma y orientado al desarrollo de aplicaciones web
dinámicas con acceso a información almacenada en una base de datos.
# El código fuente es invisible al navegador, ya que este es ejecutado por el servidor y
su resultado es embebido en HTML para luego ser enviado al navegador (lenguaje del
lado del servidor); esto hace que la programación en PHP sea segura y confiable.
# Tiene capacidad de conexión con gran cantidad de motores de bases de datos
utilizados en la actualidad (MySQL, PostgreSQL).
# Es libre y permite aplicar técnicas de programación orientada a objetos, no requiere
definición de tipos de variables, aunque pueden ser evaluadas dependiendo del tipo de
PHP
dato que este manejando en tiempo de ejecución.
# No es case sensitive en cuanto a las funciones propias del lenguaje, pero si en las
declaraciones de variables que se hagan.
# Con este lenguaje se pueden hacer potentes aplicaciones para manejo de bases de
datos, formularios web, envíos de emails, foros, libros de visitas o aplicaciones
dinámicas estilo youtube, twitter.
# PHP no solo es rápido al ser ejecutado ya que utiliza su propio sistema de
administración de recursos sino que no genera retrasos en la máquina, por esto no
requiere grandes recursos del sistema. PHP se integra muy bien junto a otras
aplicaciones, especialmente bajo ambientes Unix.
199 # PHP es Open Source (código abierto) esto significa que no depende de ninguna
7 compañía comercial y que no requiere de licencias.
# El lenguaje de programación C# fue creado por Scott Wiltamuth y el danés Anders
Hejlsberg quien diseño también los lenguajes Turbo Pascal y Delphi. El C# (pronunciado
en inglés “C Sharp” o en español “C sostenido”) es un lenguaje de programación
orientado a objetos con el que se quiso mejorar los dos lenguajes anteriores de los que
se deriva, el C y el C++.
# Su código se puede tratar íntegramente como un objeto, la sintaxis es muy similar a la
del JAVA; es un lenguaje orientado a objetos y a componentes. Armoniza la
productividad del Visual Basic con el poder y la flexibilidad del C++, se ahorra tiempo en
la programación ya que tiene una librería de clases muy completa y bien diseñada.
# El lenguaje C# es el único que ha sido diseñado específicamente para ser utilizado en
la plataforma .NET, por lo que programarla usando C# es mucho más sencillo e intuitivo
que hacerlo con cualquiera de los otros lenguajes; por esta razón se suele decir que C#
200 es el lenguaje nativo de .NET.
C#
1 # La sintaxis de C# también es muy similar a la de C++, ya que la intención de Microsoft
con C# es facilitar la migración de códigos escritos en estos lenguajes a C# y facilitar su
aprendizaje a los desarrolladores habituados a ellos; otra característica es su sencillez y
el alto nivel de productividad que son equiparables a los de Visual Basic.
# Como es un lenguaje sencillo, C# elimina muchos elementos que otros lenguajes
incluyen; tal es que el código escrito es "autocontenido" lo que significa que no
necesita ficheros adicionales.
# El tamaño de los tipos de datos básicos es fijo e independiente del compilador,
sistema operativo o maquina en donde se haga la compilación; esto facilita la
portabilidad del código.
# La modernidad de este tipo de lenguaje le hace incorporar elementos que en otros
lenguajes han sido simulados como un tipo básico de datos "decimal", lo cual permite
realizar operaciones de alta precisión; la instrucción foreach que permite colecciones
con facilidad.
# C# soporta todas las características propias del paradigma de programación
orientada a objetos: encapsulación, herencia y polimorfismo.
# La web 2.0 es un conjunto de redes, tecnología y sistemas que conforman la sociedad
de la información y que tienen en internet su principal escenario de acción.
# Esta nueva web es dinámica, participativa y colaborativa donde los usuarios se
convierten en protagonistas activos creando y compartiendo contenido, opinando y
relacionándose.
# Las aplicaciones Web tiene 7 principios constitutivos: 1. La WWW como plataforma
2.Aprovechar la inteligencia colectiva 3.La gestión de las bases de datos 4. Fin del ciclo
de las actualizaciones 5. Modelo de programación ligera 6. El software no limitado a un
solo dispositivo 7. Experiencias enriquecedoras de usuario.
# En el principio 1, las herramientas web almacenan la información en un servidor y los
usuarios se conectan a la red donde tienen acceso constante a la información. Al
tenerlos en la red, es importante saber que podemos accezarla a cualquier momento,
también nos despreocuparemos de temas como los virus, fallas o daños de los equipos
personales pues tanto la aplicación como la información está disponible en un servidor
en cualquier momento.
# En el principio 2, se establece una relación de confianza entre todos los usuarios; ya
que un usuario puede realizar un aporte en cualquier tema o definición, otro cualquiera
le puede hacer una corrección; logrando con esto la transformación del usuario de
simple consumidor a un coodesarrollador en forma productiva para la plataforma
dando vida a los servicios y sitios web.
# Para el principio 3 lo valioso son los datos, ya que el software es un recurso abierto y
200 para estos servicios lo importante es la opinión de una masa crítica de usuarios que
WEB 2.0
4 produzca un volumen de datos de gran valor, como pueden ser comentarios y
calificaciones de productos o servicios. Logrando que un producto o servicio pueda
aumentar de valor comercial o pueda ser complementado de acuerdo a las críticas
recibidas.
# Del principio 4 podemos concluir que los productos hoy en día se lanzan
considerando las mejoras que los mismo usuarios sugieren mediante una versión beta
en línea, más que lanzar un producto al 100% y evaluado solo por unos pocos es mejor
la técnica del ensayo y el error para aprender del consumo de los usuarios.
# En cuanto al principio 5 sus objetivos son la simplicidad y eficiencia, no solo a nivel
técnico sino también a nivel del negocio; esto ofrece al usuario aplicaciones más
pequeñas pero más especializadas, diseñando aplicaciones ligeras y adaptables con las
cuales las empresas pueden responder rápidamente a las necesidades del mercado.
# Con el principio 6 se observa que ya el PC no es el único dispositivo que nos permite
acceder a servicios y a las aplicaciones de internet; hoy en día la computación obicua
que es la que integra la informática al entorno de las personas nos está haciendo
relacionar otros dispositivos inteligentes como los celulares, aparatos eléctricos caseros
y consolas de juego con conexiones vía internet, logrando que se establezcan
interactuaciones con otras personas en lugares remotos en tiempo real.
# Para finalizar el principio 7 nos dice que los usuarios en cada momento están
enriqueciéndose en su interactuación con la web, la tecnología nos provee de mejoras
en la interactividad con los sitios en diferentes tipos de formato (multimedia) que
hacen que hayan diferentes formas de entregar y compartir contenidos.

11. Redactar la situación problemática a la cual se le está dando solución con el siguiente modelo de
datos.

El modelo expresa un sistema de información con bases independientes de acudiente, EPS,


horario, nivel, recibo y costo las cuales permiten ingresar solo 1 vez la información y evita
duplicidad de registros, estas tablas están relacionadas entre sí para permitir el flujo de
información de estas a las tablas niño y matricula permitiendo el proceso de matrícula de un
niño.
12. ¿Qué formas normales se están violando?

No encuentro alguna forma violada.

13. ¿Qué propondría usted para mejorar el modelo de datos

 Generar llaves primarias en todas las tablas, se ha notado que algunas de ellas no los
manejan y esto ocasiona un lento procesamiento de la información.

14. Sacar un listado de 10 necesidades de software que se encuentren en su medio y que permitan
la agilización de los procesos, garantizando el eficiente manejo de datos y la generación de la
información para la toma de decisiones.

* Software para permitir la lectura de placas de carros (OCR) y hacer verificación en línea si el carro
presenta moras de comparendos.
* Software para policías de tránsito, que permita una vez que la persona ha pasado su documento se haga
la constatación en línea de si la persona debe multas de transito.
* Software para integrar planillas de operaciones en una sola base de datos, permita cálculos de tiempo y
realiza las graficas necesarias de productividad.
* Software para elaboración de solicitudes operativas empresariales vía intranet.
* Software para monitoreo de bebes en línea.

15. Realizar la siguiente lectura (http://es.wikipedia.org/wiki/Sistema_experto). ¿Qué tarea


realizan los Sistemas Expertos?
Los sistemas expertos tiene como función principal emular el razonamiento humano de un
experto en una determina actividad que se esté dominando por parte de el, el objetivo es
mejorar la calidad de la información y las respuestas que pudiese dar el ser humano conllevando
a que se obtenga un aumento en la productividad.

Dentro de las actividades donde puede ser implementado el Sistema experto encontramos
todas aquellas tareas donde se aporta a la seguridad del ser humano al trabajar en entornos
peligrosos, realizar tareas donde las personas puedan tener cansancio o fatigo al realizar una
actividad, realizar cálculos de una manera mucho mas rápida y precisa, tareas donde se requiera
aumentar la productividad sobre todo en aquellas que puedan llegar a ser repetitivas para el ser
humano, con una programación lógica completa pueden ayudar a la toma de decisiones con
base en una gran cantidad de información que se pueda encontrar en sus registros de bases de
datos con respecto a un determinado tema, pueden monitorear sistemas complejos donde
ayudan a generar alertas sobre cambios imprevistos o muestran la situación actual de dicho
sistema, actividades donde por la gran cantidad de información involucrada se requiera
simulaciones lo más rápido posible ya que implican el cambio constante de variables a cualquier
momento.

Los Sistemas Expertos emplean métodos matemáticos, informáticos y lingüísticos para crear
nuevo conocimiento a partir del conocimiento explícito presente en las bases de datos
levantadas por el ingeniero del conocimiento, los sistemas expertos tienen su origen en los
softwares ciencimétricos desarrollados para facilitar el análisis de grandes volúmenes de
información y su evolución ha sido constante durante los últimos años permitiendo la creación
de nuevo conocimiento en diferentes formatos de salida: listados basados en índices, gráficos,
diagramas, mapas, etc. Este nuevo conocimiento objetivo o explicito es compartido para toda
la comunidad investigativa y se colocan a disposición de otros investigadores en la base de datos
para descubrir y crear nuevo conocimiento.

16. ¿Qué es Ingeniería del Conocimiento?

La ingeniería del conocimiento es una rama de la inteligencia artificial cuyo fin es el diseño,
desarrollo e implementación de sistemas expertos (S.E.) o sistemas basados en el conocimiento
(SS.BB.CC). Esta rama tiene como función extraer el conocimiento de los expertos humanos en
un determinado campo y codificarlo de manera que pueda ser procesado por un sistema de
software. Para esto el ingeniero del conocimiento se base en metodologías instruccionales,
ciencias de la computación y tecnologías de la información para intentar representar el
conocimiento y razonamiento humano en un determinado campo y lograr que sea procesado
por un sistema artificial.
Figura 1.- Pirámide del conocimiento. En la base están los datos y su reelaboración mediante sistemas de conocimiento
Conduce a la creación de nuevo conocimiento y su representación cartográfica que ayudan a la toma de decisiones.

Los problemas que surgen a la hora de su diseño radica en que el ingeniero del conocimiento no
es experto en el campo que intenta implementar artificialmente y el ser humano experto no
tiene bases sobre modelación de su conocimiento a nivel artificial para ser implementado en
algún lenguaje de programación, es por tal razón que los dos deben implementar sinergias para
lograr realizar el diseño.

Figura 2. - Ingeniería del Conocimiento y sus aplicaciones

El objetivo de esta ingeniería es permitir la generación de nuevo conocimiento a partir del


conocimiento objetivo o explicito almacenado en las bases de datos que el ingeniero del
conocimiento ha logrado consolidar. Esta disciplina es de gran utilidad para las organizaciones
en ámbitos de investigación o desarrollo e innovación, ya que facilitan y mejoran el
funcionamiento de su sistema de toma de decisiones, optimizan el desarrollo de investigaciones
científicas o el desarrollo de productos y servicios.

17. ¿Qué es Gestión del Conocimiento?

Gestión del conocimiento es el proceso por el cual una organización, facilita la trasmisión de
informaciones y habilidades a sus empleados, de una manera sistemática y eficiente, es
importante aclarar que las informaciones y habilidades no tienen por qué estar exclusivamente
dentro de la empresa, sino que pueden estar o generarse generalmente fuera de ella.
Este matiz final es muy importante, generalmente la mayoría de las empresas identifican gestión
del conocimiento solamente con la información y habilidades internas de la empresa, lo que se
conoce como Business Intelligence o inteligencia de negocios, de esta forma casi todos los
esfuerzos se orientan a canalizar la información y habilidades que ya posee una organización
centrándose en la eficiencia de los procesos de comunicación interna a través de la
implantación de sistemas como CRM, ERP y un CMI. Esto ha sido tradicionalmente así porque
siempre ha sido mucho más fácil controlar los volúmenes de información interna que la
información externa que se encuentra fuera de la organización que es más difícil de encontrar,
buscar, seleccionar y organizar.

Una empresa que solo se centre en la gestión del conocimiento interno está destinada al
desastre, simplemente porque el resto de los agentes de su mercado (consumidores,
competidores, proveedores, etc.) actúan fuera de la organización y si no tienen conocimiento de
lo que hacen o lo que quieren estos agentes la organización no será capaz de visualizar los
comportamiento y evolución de estos para efectuar correcciones a sus procesos. Hoy en día
casi todas las empresas disponen de redes comerciales y de proveedores que les trasmiten este
conocimiento e incluso ahora existen sistemas de vigilancia tecnológica y de inteligencia
competitiva que les proveen de la información necesaria para detectar lo que ocurre en su
mercado.

La gestión del conocimiento interno permite conocer la situación actual de la empresa o las
necesidades que se tienen (flujo de caja, materias primas o productos); pero la gestión del
conocimiento externo dice que ocurre en el mercado donde realmente se generan los ingresos
para la organización y las oportunidades y amenazas que se están formando. Las personas
están en el centro de la gestión del conocimiento, pero es más importante conocer sobre sus
habilidades y la información disponible en la organización, estos dos componentes son básicos
a la hora de tener en cuenta el proceso de Gestión del conocimiento en una organización; La
información puede ser recogida tratada y almacenada por los sistemas de información de la
empresa facilitando la creación de un cuadro de mando del entorno y un cuadro de mando
integral para la dirección, pero Las habilidades son en cambio más complicadas de trasmitir ya
que implica adquirir nuevo conocimiento para el que las recibe lo cual supone más tiempo.

La Gestión del conocimiento implica ir mucho más allá de los sistemas de información o un plan
de formación, es esencial favorecer una estructura empresarial innovadora y eficiente; si el
conocimiento fluye y se transmite de manera correcta en la organización, este solo puede
crecer. Las habilidades e informaciones útiles se trasmiten entre los empleados de forma rápida
y de esta manera aumenta la posibilidad de generar nuevo conocimiento que deriva en
aplicaciones nuevas, mejoras en procesos o productos y nuevas formas de hacer negocio para
alcanzar nuevas oportunidades.

18. ¿Cómo aportan las metodologías de desarrollo de software en la estandarización de los


procesos de Ingeniería del Software?
Apoyan la creación de un producto final mediante la estandarización del proceso de ensamblaje
de este, ya que a través de una serie de etapas que se definen garantizan ir desarrollando paso
por paso la necesidad que se ha solicitado, cada uno de estas etapas garantizan su ejecución y
nos ayudan a sentar las bases de las subsecuentes etapas que entremos a desarrollar,
adicionalmente las metodologías pueden otorgar la capacidad de solucionar imprevistos que
puedan ocurrir durante su desarrollo y puesta en producción, así mismo pueden poner en
desarrollo un versión beta que pueda ser probada por el usuario final antes de ser puesta en
producción.

19. ¿Por qué se dice que los requerimientos es una de las etapas más importantes para que el
producto de software tenga calidad?

Dan las pautas necesarias sobre los requerimientos solicitados en la realización del producto,
ayudan a entender el problema que se quiere abordar, se verifican las necesidades que se
quieren solucionar, se identifican las entradas y salidas del sistema, cual son los objetivos de la
puesta en producción de este producto, nos pueden informar sobre el impacto que generara la
creación del producto y su interactividad con los demás usuarios o productos existentes.

20. ¿Qué herramientas cree usted que faltan para fortalecer los procesos de Ingeniería del Software
y así minimizar los errores y defectos en los diferentes procesos y producto final?

Creería que un modelo de simulación de seguridad que permita verificar la vulnerabilidad del
código ensamblado a malwares o a agentes externos, así mismo un modelo de encriptación del
software que permita solo ser tocado por las personas autorizada para tal fin, esto ayudaría a
efectuar las correcciones necesarias durante el desarrollo del proyecto.

21. ¿Por qué la programación orientada a objetos desplazó al desarrollo de software estructural?

La programación orientada a objetos es mucho más interactiva, permite una gran cantidad de
herramientas graficas que ayudan al usuario a capturar información de forma mucho más
rápida, conllevando al aumento de la productividad de este. Así mismo la mayoría de los
lenguajes orientados a objetos tienen una versatilidad mucho mayor en su lenguaje, que hace
que el ensamblaje del código sea mucho más rápido.

22. ¿Por qué se debe considerar los riesgos en el proceso de Ingeniería del Software. Cuáles
pueden impedir que se desarrolle definitivamente el proyecto?

Los riesgos se consideran porque nos pueden ayudar a cuantificar el nivel de incertidumbre y el
grado de perdida que este puede ocasionar, amenazan al cronograma del proyecto y si estos se
hacen realidad pueden ocasionar retrasos y que los costes aumenten. Entre los tipos de riesgos
que se puedan presentar están los del proyecto (presupuesto, personal, cliente), técnicos
(diseño, implementación, técnicas anticuadas, mantenimiento), del negocio (producto no
requerido, producto no estratégico, productos no comerciales, cambios de enfoque directivos,
perdidas de presupuesto o personal asignado).
23. Observar cada uno de los videos para desarrollo de software y elaborar un esquema, donde se
muestre el nombre del modelo, sus principales características, sus ventajas y sus desventajas.

VENTAJAS DESVENTAJES
MODELO CASCADA
Ayuda a administrar el progreso del desarrollo Restrictivo y rígido para proyectos modernos.
Proveen un espacio para detallar minuciosamente el La vida real de un proyecto rara vez sigue una secuencia lineal,
proceso de desarrollo del software.. una mala improvisación del modelo que conlleva al fracaso.
Tarda muchísimo tiempo en ponerlo en producción, pasa por
Se establecen metas bien definidas en cada etapa del modelo de pruebas y hasta que no las pase no se pone en
proceso. producción.
Suministran una guía al ingeniería de software con el Errores de diseño en primeras etapas de prueba, produce a
fin de ordenar las actividades técnicas. rediseño y a nueva programación de código afectado
Suministran marco para la administración y
mantenimiento del desarrollo. Aumento de costos de desarrollo.
Definir puntos de control intermedio y monitorear
avances. No refleja realmente el proceso de desarrollo del software.
Se tarda mucho tiempo en completar todo el ciclo del
Permiten estipular recursos. desarrollo de software.
  El mantenimiento se realiza en el código fuente.
  Las revisiones de proyectos de gran complejidad son difíciles.
  Impone una estructura de gestión de proyectos.
  No se tiene en cuenta la naturaleza evolutiva del software.
MODELO INCREMENTAL
Se puede financiar el proyecto por partes Difícil de evaluar el costo total.
Apropiado para proyectos grandes de larga duración,
ya que al usuario se le está entregando con cierta Difícil de aplicar a sistemas transaccionales que tienen
frecuencia módulos de desarrollo. integrado su código fuente en C.
No se necesita tanto personal al principio como para
una implementación completa. Requiere gestores experimentados.
Es interactivo por naturaleza, el usuario se involucra
más. Los errores en los requisitos se detectan tarde.
Bajo riesgo de falla al no ser un proyecto global. Las primeras versiones son incompletas.
Los sistemas más prioritarios tienden a recibir la
mayor cantidad de pruebas. Se necesitan pruebas de regresión.
Se le puede dar prioridad a las necesidades que el
usuario nos informe o a aquellos que el proyecto a
definido en las etapas iniciales incrementales. Aumento de costes debido a las pruebas.
MODELO PROTOTIPO
El usuario se involucra más que en los anteriores, ya Debido a que el prototipo puede llegar a ser muy básico puede
que entiende de mejor manera el resultado de la ocasionar que el usuario final sienta que no satisface las
construcción. necesidades que él tiene.
Reduce el riesgo de producir productos que no Solo surte efecto si los datos con los que es diseñado son
satisfagan las necesidades de los usuarios. reales.
Reduce costos y disminuye la probabilidad de riesgo. Exige disponer de las herramientas adecuadas.
Hay retroalimentación por parte del usuario final lo
que ocasiona evolución del producto final. El prototipo no presenta calidad ni robustez.
Se pueden utilizar en proyecto excepcionales donde
los desarrolladores no tengan mucha experiencia o Construirse con menos del 10 % del costo total del producto y
información. construirse rápidamente.
Proyectos novedosos y aun no es demostrada la
factibilidad de ser proyecto exitoso.  
Situaciones de riesgo o costo elevado.  
Equipos de desarrollo reducidos.  
MODELO EN ESPIRAL
Ayuda a seleccionar la mejor metodología que se Es un reto encontrar la metodología adecuada para la
adecue al desarrollo del software. siguiente interacción.
La metodología utilizada en ocasiones anteriores no puede ser
Se toman en cuenta los riesgos para evitarlos y se utilizada en otros posteriores (varia con cada proyecto), se
establece un plan de contingencia. limita la reusabilidad.
Permite una mezcla con las metodologías de
prototipo, cascada o incremental. Es difícil elaborar la evaluación de riesgos.
Existe el riesgo de que el proyecto se vuelva una simple
  metodología en cascada.
El gestor del proyecto debe ser una persona idónea y
  altamente experimentada.
Debe hacerse un minucioso levantamiento de documentación
  de los requerimientos solicitados.
MODELO RUP
No es efectivo en sistemas de información híbridos, es decir
organizaciones donde todos los sistemas no están orientados a
Es un metodología madura y evolutiva. objetos.
El uso de herramientas de análisis como el UML hace
que este normalizado con los estándares industriales La sintaxis de notación utilizada requiere de conocimientos
existentes. avanzados que el desarrollador promedio no tiene.
Comprar las herramientas y entrenar los equipos utilizados en
Las fases del diseño son adaptables a la organización. el desarrollo puede llegar a ser costoso.
Contiene herramientas que facilitan su Limitación con el ciclo de vida del producto, no contempla el
implementación en todas las aéreas de la empresa. retiro de este con el tiempo.
Define detalladamente las actividades, roles y
responsabilidades.  
MODELO XP
Se interactúa bastante con el cliente, la comunicación
constante ejerce retroalimentación que hace La pareja de programación debe trabajar de manera
evolucionar el producto a cada momento. coordinada y tener empatía entre ellos (buena comunicación).
Es una metodología simple de trabajo. El estilo de programación debe ser similar.
Metodología de ensayo y error, constantemente se Se comparte el código entre dos personas realizando el mismo
está efectuando correcciones al código. trabajo.
Se utiliza en proyectos que involucren alto riesgo. No se puede definir costo y tiempo del desarrollo a realizar.
El jefe de desarrollo debe saber delegar el proyecto y ejercer
tareas de dirección constantemente con las parejas
Aumenta la productividad al trabajar en parejas. desarrolladoras.
El modo de trabajo hace que todos los desarrolladores
conozcan cómo funciona el producto a desarrollar.  
Se efectúan reuniones de seguimiento diarias.  
Al producto se le efectúa constantemente pruebas.  

24. Argumentar en 20 líneas cuál es el mejor modelo y por qué.

En mi concepto el mejor modelo es la programación XP, ya que el proyecto se puede desarrollar


normalmente al contar con un grupo de personas programadoras conocedoras del código en
general; el hecho de contar con personal que conoce todos los desarrollos efectuados hasta el
momento garantiza que sean reubicados en caso de abandono por parte de algunos de ellos,
reuniones de seguimiento generales en donde se notifica a todo el grupo desarrollador que
avances se han tenido y que problemas han surgido garantizan soluciones a nivel general por el
aporte de todo el grupo, una interacción mas constante con el cliente garantiza una
retroalimentación al producto en tiempo real, así mismo las correcciones son efectuadas más
rápidamente debido a que constantemente se están efectuando correcciones al código.

25. Usted es contratado para desarrollar un software basado en la situación problemática expuesta,
tiene cita mañana a primera hora con el director del centro médico. Se pide diseñar un formato
de entrevista, donde se muestre, hora, fecha, datos del entrevistador, datos del entrevistado,
preguntas relevantes que permita tener claridad sobre lo que se debe saber antes de abordar el
proceso de requerimientos.

NOMBRE DEL PROYECTO:  

CLIENTE SOLICITA:  

FECHA:  

HORA:  

ENTREVISTADO:  

CUESTIONARIO INICIAL

1. Introducción.

1.1 Propósito y alcance del proyecto(Propósito del software y su impacto en la organizacion)

1.2 Personal Involucrado (Relación de personas involucradas en el desarrollo del sistema)

NOMBRE CARGO NIVEL EDUCATIVO FUNCION INF. CONTACTO

         

         

         

         

         

         

         

         

1.3 Definiciones, Acrónimos y Abreviaturas (terminología interna utilizada en el trabajo)

TERMINO SIGNIFICADO

   

   

   

   

   

2. Descripción General

2.1 Perspectiva del producto (indicar si es un producto independiente o forma parte de otro)

 
2.2 Funcionalidad del producto(funciones principales que el producto debe realizar, sin entrar en detalle)

FUNCION DETALLE DE LA FUNCION

   

   

   

   

   

   

   

2.3 Características de los usuarios(Nivel educacional, actividad que realiza y experiencia técnica.)

TIPO DE USUARIO FORMACION HABILIDAD ACTIVIDADES

       

       

       

       

       

       

2.4 Restricciones(Planta física, eléctrica, comunicaciones, software, hardware)

LIMITACION DETALLE

Planta Física  

Planta Eléctrica  

Comunicaciones  

Software  

Hardware  

2.5 Evolución previsible del sistema(futuras mejoras que podrán analizarse e implementarse en un futuro)

3. Requisitos específicos

3.1 Requisitos comunes de las interfaces(Descripción detallada de todas las entradas y salidas del sistema de software)

3.1.1 Interfaces de usuario(requisitos del interfaz de usuario para el producto: tipo del texto, estilo y colores del producto)

Nombre Tipo   Prioridad del Requisito  


No Rqsito Fuente del Rqsto
Requisito
Requisito Restricción Alta/Esencial Media/Deseado Baja/Opcional
               

               

               

               

3.1.2 Interfaces de hardware(especificar relación del hardware actual con las interfaces del producto a desarrollar, configuracion existente)

Nombre Tipo   Prioridad del Requisito  


No Rqsito Fuente del Rqsto
Requisito
Requisito Restricción Alta/Esencial Media/Deseado Baja/Opcional

               

               

               

               

3.1.3 Interfaces de software(Preguntas relacionados con integración del producto con otros productos de software existentes)

Nombre Tipo   Prioridad del Requisito  


No Rqsito Fuente del Rqsto
Requisito
Requisito Restricción Alta/Esencial Media/Deseado Baja/Opcional

               

               

               

               

3.1.4 Interfaces de comunicación(Establecer si hay comunicaciones con otros sistemas y cuáles son las protocolos de comunicación)

Nombre Tipo   Prioridad del Requisito  


No Rqsito Fuente del Rqsto
Requisito
Requisito Restricción Alta/Esencial Media/Deseado Baja/Opcional

               

               

               

               

3.2 Requisitos funcionales


Comprobación de validez de las entradas

Secuencia exacta de operaciones

Verificar interacciones de los usuarios

 
Generación de salidas

Relaciones entre entradas y salidas (secuencias de entradas y salidas, formulas para la conversión de información)
 
Especificación de los requisitos lógicos para la información que será almacenada en base de datos (tipo de información, requerido)

3.3 Requisitos no funcionales

3.3.1 Requisitos de rendimiento

Cantidad de afiliados actuales.

Nivel de transacciones que deberá soportar el sistema por segundo (basados en requerimientos actuales)

Nivel de proyecciones anuales en que se ha incrementado las transacciones

Numero de terminales que deben estar conectadas al mismo tiempo.

3.3.2 Seguridad (Restricciones de comunicación entre determinados módulos)

3.3.3 Mantenimiento (Especificación de quien realizara las tareas de mantenimiento: usuarios o un desarrollador)

3.3.4 Portabilidad (Verificar instalación en tipos de software utilizados y sus versiones)

3.4 Otros Requisitos

26. Elaborar un mapa conceptual que muestre cada uno de los diagramas UML, su utilidad en el
proceso de Ingeniería del Software.

Diagrama
de Clases

Donde se crea Tipo Estatico


Estructura
Utilizado Describe Muestra
Sistema

Durante

Clases Atributos Relaciones


Proceso de Analisis Diseño

Presentes
Sistema

Código
Diseño
De la Informacion Que Manejara
Conceptual

Sistema Componentes

Diagrama de
Componentes

Tipo

Lenguaje Unificado
de Modelado

Representa Muestra Usado en


como

Dependencias Arquitectura
Sistema de de Software
Software
Entre
Para
es Dividido
Componentes
Físicos Modelar Documentar

Componentes
Arquitectura
como Cualquier
de Software

Archivos Bibliotecas Módulos Ejecutables Paquetes

27. Realizar la lectura del siguiente documento:


http://indalog.ual.es/mtorres/LP/FundamentosDiseno.pdf; sacar tres conclusiones sobre las
características principales que deben cumplir los diseños de software.

a) Dentro del diseño de un software es muy recomendable dividir el proyecto en


módulos que garanticen el desarrollo del mismo, ya que se garantiza menos
complejidad y facilita cambios posteriores; así mismo cuando este se encuentre
totalmente ensamblado esta modularidad también ayudara a su mantenimiento;
logrando reducir los tiempos y costes que esta operación pueda requerir.
b) El diseño es la parte principal durante la implementación de un producto, ya que
aquí se traduce con precisión todos los requerimientos del cliente (de lo
abstracto se pasa lo real) y es la base para las subsecuentes etapas del desarrollo
del producto (implementación, prueba, mantenimiento).
c) En los diseños modulares el concepto de independencia funcional evita que
estos entren en relaciones que provoquen errores al efectuar cambios al código,
las interfaces desarrolladas son más fáciles y los módulos son más fáciles de
desarrollar.

28. Teniendo en cuenta los elementos dados para aplicar pruebas de caja blanca. Aplicar prueba
del camino básico, al siguiente algoritmo; Dibujar el grafo de flujo:

8 9
5

10
6

29. Determinar la complejidad ciclomática del grafo de flujo.

V(G) = 3 Regiones (El # de regiones del grafo coincide con la complejidad ciclomática )
V(G) = A – N + 2 = 11 – 10 + 2 = 3 (A: Nº de aristas, N: Nº de nodos)
V(G) = P + 1 = 2 + 1 = 3 (P: Nº de nodos predicados)

30. Determinar conjunto de caminos linealmente independientes.

Camino 1 = 1, 2, 3, 4, 5, 6, 3
Camino 2 = 1, 2, 3, 7, 8, 10
Camino 3 = 1, 2, 3, 7, 9, 10
Camino 4 = 1, 2, 3, 4, 7, 8, 10
Camino 5 = 1, 2, 3, 4, 7, 9, 10
31. Preparar los casos de prueba para cada camino. De acuerdo al vector dado, en caso de buscar.

Camino 1 =

32. Los datos (40, 20, 15).

Índices :

1 2 3 4 5

50 40 10 5 20
VEC
BUSCAR(VEC,N,DATO)
I=1,POS=0
MIENTRAS (I<=N)HAGA
SI(VEC[I]=DATO
POS=I
I=N+1
SINO
I=I+1
FIN-SI
FIN-MIENTRAS
SI (POS<>0) ENTONCES
IMPRIMIR “SI EXISTE”
SINO
IMPRIMIR “NO EXISTE”
FIN-SI
REGRESE

33. De qué forma las plataformas LMS, han aportado al sistema educativo y cómo se visiona el
futuro educativo con el apoyo de estas o de otras herramientas.

Las LMS han ayudado a descongestionar procesos administrativos en las instituciones


académicas, mejorado la adquisición de literatura especifica de una materia, se ha aumentado
la interactuación entre los estudiantes; al contar con este plataformas los estudiantes se han
vuelto más independientes ya que una serie de tareas administrativas las pueden realizar ellos
mismos y en cualquier horario de las fechas que establece la institución, el aprendizaje se
enfoca mucho a la parte autodidacta y ha sido una de las premisas de este concepto, todas las
herramientas de aporte interactivo hacen que los estudiantes cuenten con posibilidad de
compartir conocimientos y experiencias en tiempo real.

El futuro educativo tiende hacia lo no presencial, las herramientas hoy en día proveen la
posibilidad de establecer contactos con personas de muchas otras partes y así mismo poder
estar estudiando en la misma institución con horarios flexibles de aprendizaje. El contacto físico
poco a poco puede ser abolido y se hará mas común la interacción por chat, blogs, redes
sociales o tableros de discusión, esto lo único que requerirá será una conducta mas autodidacta,
responsable y honesta con respecto a la realización de las actividades extracurriculares.

34. Qué hace que una herramienta sea mejor que otra.

El formato multimedia de una herramienta, el grado de interactividad, el rápido acceso a ella, la


personalización del espacio virtual, tipo de actividades y material que se ha subido a la
plataforma son las características principales que harán que las herramientas sean utilizadas en
menor o mayor grado y que permitirán dinamizar los procesos educativos.

35. Cómo cree que se pueden utilizar las herramientas informáticas para la generación de nuevo
conocimiento.

Las herramientas informáticas están ayudando a fomentar un conocimiento colectivo,


mejorando las capacidades intelectuales de muchos individuos en lugares diferentes y
apartados el uno del otro; esto ha logrado que muchos proyectos investigativos tengan aportes
de muchas personas que hacen que la evolución del conocimiento sea mucho más rápido y así
mismo se está garantizando que el conocimiento sea libre y que todos tengamos acceso a él,

36. Qué es Moodle y qué ventajas ofrece.

Es una plataforma de aprendizaje en línea o e-learning también denominada “Entorno


virtual de Enseñanza –Aprendizaje”, la sigla significa Modular Object-Oriented Dynamic
Learning Environment (Entorno de Aprendizaje Dinámico Orientado a Objetos y
Modular) y está basada en un software libre, en la actualidad es una de las plataformas
de más amplia difusión para el aprendizaje a distancia; es un sistema de gestión
avanzado que fue diseñado para ayudar a los educadores a crear cursos de calidad en
línea. Fue creada en el año de 1999 por un australiano de nombre Martin Dougiamas y
su evolución ha sido constante desde ese año, logrando que se haya traducido a 50
idiomas y esté presente en más de 100 países.

Las ventajas principales son:

 Mejora la forma de enseñar.


 Es un sistema de gestión académica gratuito que le permite crear un tipo de
formación académica en línea avanzado, flexible y atractivo.
 Los cursos contiene chat en vivo entre los estudiantes y los profesores.
 Las páginas Web pueden explorarse en cualquier orden.
 Los foros pueden contener un punteo de los mensajes para dar a entender su
relevancia.
 Hay talleres en línea que permiten evaluar el desarrollo de los presentados por
otros compañeros.
 Existen encuestas que permiten evaluar al profesor la opinión de los estudiantes
a lo largo de un curso.
 Existen directorios que permiten subir y descargar archivos para que sean
compartidos por el resto de la comunidad académica.

37. Qué es WebCT y qué ventajas ofrece.

Es una plataforma que funciona en modo servidor sobre sistema operativo Unix o Windows y
donde los clientes (Estudiantes y profesores) solo requieren de un PC conectado a internet y un
navegador estándar (Mozilla, Explorer), este PC puede tener cualquier sistema operativo y aun
así no hay impedimento para que se ejecute la plataforma; WebCT significa Web Course Tools o
Herramientas para Cursos Web; el acceso a los cursos es personal para cada alumno por lo que
se requiere de unos datos de acceso (Nombre de Usuario y Contraseña) para lograr establecer la
conexión, los profesores pueden añadir a sus cursos WebCT varias herramientas interactivas
tales como: tableros de discusión o foros, sistemas de correos electrónicos, conversaciones en
vivo (chats), contenido en formato de páginas web, archivos PDF entre otros. Este sistema
comercial de aprendizaje virtual online está compuesto de varios programas que permiten crear
y administrar un curso en línea, su desarrollo fue comenzado en el año 1995 y terminado en
1997 por los estudiantes Murray W. Gooldberg y Sasan Salari en el departamento de Ciencias de
la computación de la Universidad de la Columbia Británica en Canadá.

Las ventajas que ofrece esta plataforma son:

 Puede otorgar una gran cobertura ya que a partir de un entorno virtual de aprendizaje
la oferta académica puede ser implementada en vastas regiones geográficas.
 Existe flexibilidad en el tiempo de aprendizaje, ya que la comunicación puede ser
asincrónica o sincrónica y así mismo la permanencia de contenidos didácticos en el
tiempo permite al estudiante decidir el momento para efectuar su aprendizaje.
 La plataforma ofrece una gran diversidad de herramientas virtuales (foros, exámenes
virtuales, portafolios, etc.).
 Se puede verificar el avance de los estudiantes con los informes de rendimiento que
suministra la plataforma.
 Se puede ofrecer una gran distribución de contenidos didácticos y en diferentes
formatos dinámicos que los hacen más atractivos, como bibliotecas virtuales y enlaces a
sitios que ofrezcan mayor información.

38. Qué ventajas ofrece la Cloud Computing.

 Permite la “descentralización del software” y la agilización de todos los procesos


internos y externos que puede tener una empresa favoreciendo un ahorro en los
costes.
 Ahorro de costes: la empresa ya no tendrá que soportar el coste del
mantenimiento de toda la infraestructura de las TIC, ya que la empresa podrá
seguir gozando del software, dispositivos de almacenamiento y hardware a
través de internet mediante un usuario y contraseña.
 Escalabilidad: cada empresa paga una cuota en función de los servicios que ha
suscrito, cuando esta requiere un aumento o disminución de los servicios la
cuota ira proporcionalmente al requerimiento efectuado.
 Mantenimiento y gestión: a nivel de licencias de software el cliente no tendrá
que ejercer ningún tipo de gestión, ya que el proveedor se encargara de
mantenerlas actualizadas. El cliente únicamente se encarga de usarlas para
trabajar.
 Accesibilidad: acceso desde donde sea necesario, lo único es tener un ordenador
conectado a internet; logrando ventajas en la ubicación y compartir archivos
para un grupo de trabajo.
 Rendimiento y mejora del tiempo de respuesta: los errores se reducen ya que el
proveedor utiliza un único software, el tiempo y agilidad en las respuestas a la
hora de la implementación de nuevos servicios es reducido considerablemente
ya que el proveedor se encarga de realizar cualquier tipo de desarrollo.
 Las empresas de cloud computing cuentan con profesionales muy cualificados,
importantes presupuestos y grandes infraestructuras que les permiten crear
productos más potentes y mejorados.
 La adaptabilidad que ofrece el cloud computing con respecto a actualizaciones
constantes, permite a sus usuarios beneficiarse de los últimos avances sin tener
que hacer nada.

Plataformas virtuales de aprendizaje opensource:

a) ATutor: Se trata de una de las plataformas más utilizadas, con más de 30000
instaladas en diferentes centros educativos. Permite a los docentes y a sus
estudiantes de seguir el curso, de intercambiar mensajes con los otros
participantes, crear grupos, trabajar colaborativamente, etc.
b) Chamilo:
c) Claroline: es una plataforma de aprendizaje y trabajo virtual (eLearning y
eWorking) de código abierto y software libre (open source) que permite a los
formadores construir eficaces cursos online y gestionar las actividades de
aprendizaje y colaboración en la web. Traducido a 35 idiomas, Claroline tiene
una gran comunidad de desarrolladores y usuarios en todo el mundo.
d) Dokeos: se trata de una plataforma completa. Se usa en muchos centros
educativos y tiene las herramientas adecuadas para planificar, organizar y
desarrollar cursos, es una de las plataformas más fáciles de aprender para su uso
por parte de los alumnos, aunque para los docentes “realizar un buen control de
la misma” es un poco más complicado.

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy