jueves, 3 de junio de 2010

Preguntas y Respuestas Capitulo #2





Ejercicios
Capítulo #2

2.4 Explique por qué es importante presentar una descripción completa de una arquitectura del sistema en una etapa inicial del proceso de especificación del sistema.

Rta/ Es muy importante la presencia de una descripción completa de la arquitectura del sistema desde la etapa inicial, ya que es desde aquí en donde se formarán las bases que requerirá el desarrollo del sistema, y en donde se encontrarán las funciones, procesos y propiedades esenciales que tendrá el sistema.
La arquitectura del sistema comienza desde que el cliente se sienta con el desarrollador, y el cliente le otorga toda la información, especificación y requerimientos que desea que tenga su sistema.

2.5 Considere un sistema de seguridad que es una versión extendida del sistema en la figura 2.6, que está pensado para proteger contra la intrusión y para detectar fuego. Contiene sensores de humo, de movimiento y de puertas, videocámaras controladas por computadora, que se encuentran en varios lugares del edificio, una consola de operación donde se informa del estado del sistema, y facilidades de comunicación externa para llamar a los servicios apropiados como la policía y los bomberos.

Dibuje un diagrama de bloques de un posible diseño de dicho sistema.
























2.8 Explique por qué los sistemas heredados pueden ser críticos en el funcionamiento de un negocio.


Rta/ Los sistemas heredados pueden ser críticos en el funcionamiento de un negocio, ya que los sistemas heredados son sistemas infórmaticos socio-tecnicos que han sido desarrollados en el pasado, y que a menudo utilizan una tecnología antigua y obsoleta, y no incluye solamente tecnología si no tambien procesos y procedimientos que han sido utilizados a lo largo del sistema, y que al momento de presentarse algún cambio en el sistema éste se producirá en una forma dificil ya que depende de hardware, software, procesos y procedimientos heredados de otros, siguiendo el concepto de que algún cambio en una parte del sistema inevitablemente implican cambios en otros componentes.

2.9 Explique por qué los sistemas heredados pueden causar dificultades para las compañías que desean reorganizar sus procesos de negocio.


Rta/ Los sistemas heredados pueden causar dificultades para las compañías que desean reorganizar sus procesos de negocio, ya que éstos sistemas como lo mencioné anteriormente son sistemas socio-técnicos que utilizan tanto procesos como ciertos procedimientos antiguos.

Tambien pueden utilizar tanto software como hardware, los cuales tienen su tiempo de vida útil, hasta que llega el día de adquirir nuevos, y es en donde las compañias presentan ciertas dificultades como ser:

  • Costos
  • Temor a obtener algún rechazo por parte de los usuarios del sistema
  • Temor a descartar los sistemas de negocio críticos despues de años de uso
  • Entre otros

Es por tales razones que las compañías pueden presentar dificultades al momento de reorganizar sus procesos de negocio, ya que éstos sistemas requieren de sistemas heredados y que al momento de un cambio en el sistema se podría presentar algún tipo de dificultad en el sistema, ya que es muy arriesgado reemplazarlos.

2.10 ¿Cuáles son los argumentos a favor y en contra para considerar que la ingeniería de sistemas es una profesión, como la ingeniería eléctrica o la de software?


Rta/ La ingeniería de sistemas es una pofesión como la ingeniería eléctrica o como la Ingeniería de software, ya que la ingeniería de sistemas es la encargada de especificar, diseñar, implementar, validar, utilizar y mantener los sistemas socio-tecnicos en una empresa.


Los ingenieros en sistemas no sólo tratan con el software, sino también con el hardware y con las interacciones del sistema con los usuarios y su entorno.

Los ingenieros en sistemas deben pensar en los servicios que el sistema proporciona, incluyendo las restricciones sobre las que el sistema se debe construir, funcionar y las formas en las que el sistema es usado para cumplir con su propósito.


Es por esas razones que la Ingeniería de sistemas es considerada como una profesión, sin olvidar que los ingenieros en software, necesitan tener conocimientos de Ingeniería en sistemas, ya que los problemas de ingeniería de software son a menudo el resultado de decisiones de la ingeniería de sistemas.







jueves, 27 de mayo de 2010

Herramientas CASE

Antes de mencionar las herramientas investigadas, le presentó una breve información que sirvió como base para la lectura de dicho tema

Concepto Herramientas CASE:


Las herramientas CASE son diversas aplicaciones informáticas destinadas a aumentar la productividad en el desarrollo de software reduciendo el costo de las mismas en términos de tiempo y de dinero.


Componentes de una Herramienta CASE:

Repositorio (Diccionario):
Es donde se almacenan los elementos definidos o creados por la herramienta, cuya gestión se realiza mediante el apoyo de un Sistema de Gestión de Base de Dato (SGBD) o de un sistema de gestión de Ficheros.

Meta modelo (No siempre Visible): Este constituye el marco para la definición de las técnicas y metodologías soportadas por la herramienta.

Carga o Descarga de Datos: Son facilidades que permiten cargar el repertorio de la herramienta CASE con datos provenientes con otros sistemas, o bien generar a partir de la propia herramienta.

Comprobación de errores: Son las facilidades que permiten llevar a cabo un análisis de la exactitud, integridad, y consistencia de los esquemas generados por la herramienta.

Interfaz de Usuario: Este constará de editores de texto y herramientas de diseño gráfico que permitan, mediante la utilización de un sistema de ventanas, íconos, y menús, con la ayuda del ratón.

Estructura general de una herramienta CASE:

La estructura CASE se basa en la siguiente terminología:

CASE de alto nivel: Son aquellas herramientas que automatizan o apoyan las fases finales o superiores del ciclo de vida del desarrollo de sistemas como la planificación de sistemas, el análisis de sistemas y el diseño de sistemas.



CASE de bajo nivel: Son aquellas herramientas que automatizan o apoyan las fases finales o inferiores del ciclo de vida como el diseño detallado de sistemas, la implantación de sistemas y el soporte de sistemas.

CASE cruzado de ciclo de vida: se aplica a aquellas herramientas que apoyan actividades que tienen lugar a lo largo de todo el ciclo de vida, se incluyen actividades como la gestión de proyectos y la estimación.


A continuación me enfocaré a hablar sobre 2 de las herramientas CASE



GeneXus

Concepto:

GeneXus es una herramienta de desarrollo de software basada en conocimiento, orientada principalmente a aplicaciones de clase empresarial para la web y plataformas Windows. El desarrollador especifica sus aplicaciones en alto nivel (de manera mayormente declarativa), a partir de lo cual se genera código para múltiples entornos.


Los lenguajes para los que se puede generar código incluyen Cobol, Visual Basic, Visual FoxPro, Ruby, C# y Java, actualmente con énfasis en los últimos tres. Los DBMSs más populares son soportados, como Microsoft SQL Server, Oracle, IBM DB2, Informix, PostgreSQL y MySQL.


GeneXus es el producto principal de la compañía uruguaya Artech. Es comercializado en más de 30 países, incluyendo la mayor parte de Latinoamérica y el Caribe, Estados Unidos, países de Europa occidental como España, Italia, Francia y Portugal y los mercados chino y japonés. Alrededor de 5.500 clientes han comprado el producto, con más de 50.000 licencias vendidas en todo el mundo.

GeneXus incluye un módulo de normalización, que crea y mantiene una estructura de base de datos óptima basada en el modelo de datos no normalizado definido por los Usuarios, un lenguaje declarativo (basado en reglas) y un lenguaje procedural simple pero poderoso.

Herramienta CASE UMBRELLO UML

Umbrello es una herramienta libre para crear y editar diagramas UML , que ayuda en el proceso del desarrollo de software. Fue desarrollada por Paul Hensgen, y está diseñado principalmente para KDE, aunque funciona en otros entornos de escritorio.

Umbrello maneja gran parte de los diagramas estándar UML pudiendo crearlos, además de manualmente, importándolos a partir de código en C++, Java, Python, IDL, Pascal/Delphi, Ada, o también Perl (haciendo uso de una aplicación externa). Así mismo, permite crear un diagrama y generar el código automáticamente en los lenguajes antes citados, entre otros. El formato de fichero que utiliza está basado en XMI.

También permite la distribución de los modelos exportándolos en los formatos DocBook y XHTML, lo que facilita los proyectos colaborativos donde los desarrolladores no tienen acceso directo a Umbrello o donde los modelos van a ser publicados vía web.
Umbrello se distribuye en el módulo kdesdk de KDE.


Sistemas de Còmputo Ubiquos


El término fué acuñado en 1988 por Mark Weiser, cuando laboraba en el Laboratorio de CS en el Xerox PARC.

Concepto:

Se entiende por computación ubicua (ubicomp) la integración de la informática en el entorno de la persona, de forma que los ordenadores no se perciban como objetos diferenciados.

Es un modelo post-desktop de computadora a la interacción humana en la que ha sido el procesamiento de información totalmente integrado en los objetos y actividades diarias.


Esta disciplina se conoce en inglés por otros términos como pervasive computing, calm technology, things that think y everyware. Desde hace unos años también se denomina inteligencia ambiental.

Objetivo de Computación Ubicua:

El objetivo de la computación ubicua es crear sistemas que están discretamente integrados en el entorno, constantemente, y de manera intuitiva a operar.


Sus promotores tienen como objetivo insertar dispositivos inteligentes tanto en el entorno como en aparatos de uso diario para que las personas puedan interactuar con ellos de una manera natural y desinhibida en todo tipo de situaciones y circunstancias.


La Computación ubicua es celebrada por algunos como la tercera ola de la computación. La primera ola fue mucha gente por ordenador, la segunda ola fue una persona por ordenador. La tercera ola será muchos ordenadores por persona. Tres cuestiones técnicas principales son: el consumo de energía, interfaz de usuario, y conectividad inalámbrica.

La Computación Ubicua: Incorpora cuatro nuevos conceptos:

Uso eficaz de espacios "perspicaces": Se basa, en la detección del estado de un individuo y de sus necesidades, deducidas de dicho estado, ya sea en la oficina, sala de reuniones, clase, domicilio, coche, etc. El espacio perspicaz surge cuando varios de estos dispositivos coinciden en el mismo espacio físico e interactúan colaborativamente para dar soporte a los individuos que se encuentren en él.

Invisibilidad: La invisibilidad va a requerir del cambio drástico en el tipo de interfaces que nos comunican con los computadores. Reconocimiento de voz y de gestos, comprensión del lenguaje natural y del texto manuscrito, en la dirección hombre-máquina y en el sentido contrario, síntesis de lenguaje hablado y escrito y de representaciones gráficas.

Escalabilidad local A priori, es natural pensar en la computación ubicua como un trasvase de la filosofía de Internet; cualquier servicio de computación, en cualquier sitio. Nada más alejado de la realidad.

Ocultación de los desniveles de acondicionamiento. Dependiendo de la infraestructura y del desarrollo tecnológico disponible, la distribución de los servicios ofrecidos puede ser muy poco uniforme, en esta situación el principio de invisibilidad puede no cumplirse ya que el usuario detectaría desagradables transiciones. Este requisito es hoy día el más alejado respecto de la situación ideal, los sistemas que incorporan computación ubicua están aislados, sin continuidad entre unos y otros.


Por último, estos sistemas pueden vincular a las computadoras personales y el Internet, proporcionando la misma versatilidad de las comunicaciones y aplicaciones como la mayoría de las computadoras de escritorio.