Este blog està diseñado unicamente para conocer acerca de la Ingenieria de Software
lunes, 9 de agosto de 2010
lunes, 19 de julio de 2010
miércoles, 14 de julio de 2010
miércoles, 30 de junio de 2010
jueves, 3 de junio de 2010
Preguntas y Respuestas Capitulo #2
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
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.
Wearable Computing System
Las computadoras usables nos permiten crear sistemas para ir hacia donde el usuario va, ya sea en la oficina, en casa o en la cola del banco. Esta tecnología proporciona una plataforma que puede mantener un contacto constante con el usuario en la variedad de formas de que el sistema puede requerir, que establecen poder de cómputo para todas las necesidades de computación afectiva, del afecto de detección para las aplicaciones que pueden interpretar, comprender y utilizar los datos, y que pueden almacenar las aplicaciones y los datos de entrada del usuario en la memoria de a bordo.
El tamaño y el peso de estos sistemas de hardware portátiles están bajando, incluso como la durabilidad de estos sistemas va en aumento, también se está diseñando ropa y accesorios (como relojes, joyas, etc) en el que estos dispositivos pueden ser incluidos para que sean no sólo discreta y cómoda para el usuario, sino también invisible para los demás.
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, son un tema de investigación muy activa, con áreas de estudio, incluyendo el diseño de interfaces, realidad aumentada, reconocimiento de patrones, el uso de elementos vestibles para aplicaciones específicas o discapacidades, los textiles electrónicos y diseño de moda.
Las necesidades únicas de un sistema de computación afectiva presentan retos para los diseñadores de hardware, así como de software. La construcción de sistemas que mantienen el contacto constante de detección no sólo con el usuario, sino también contactarlo a través de paradigmas más tradicionales de interfaz de usuario, una solución a estos problemas de hardware de diseño que se está investigando es la computadora usable.
- Una de las características fundamentales de un PC portátiles es la consistencia, Hay una constante interacción entre el ordenador y el usuario, es decir, No hay necesidad de encender el dispositivo encendido o apagado.
- Capacidad de multi-tarea. No es necesario detener lo que está haciendo para utilizar el dispositivo, sino que se aumenta en todas las otras acciones.
- Estos dispositivos pueden ser introducidos por el usuario a actuar como una prótesis, por lo tanto, puede ser una extensión de la mente del usuario y / o el cuerpo.
Preguntas y Respuestas Capitulo #1
Capítulo #1
1.1.- Haciendo referencia a la distribución de costos del Software indicados en la Sección 1.1.6, explique por qué es apropiado considerar que el software es más que programas que son ejecutados por los usuarios finales de un Sistema.
Rta/ De acuerdo a la distribución de costos del software es que nos damos cuenta como es el funcionamiento interno del software, ya que éste es más que un conjunto de programas que son ejecutados por el usuario ya que el software incluye una serie tanto de programas como de procesos, los cuales son usados por usuarios.
Estos procesos son divididos en diferentes modelos que nos ayudarán a comprender de una forma descriptiva y simplificada las actividades que se ejecutarán en dicho proceso.
1.4 ¿Cuál es la diferencia entre un modelo del proceso del software y un proceso del Software? Sugiera dos formas en las que un modelo del proceso del software ayuda en la identificación de posibles mejoras del proceso.
Rta/ La diferencia que existe entre un Modelo del proceso del Software y un Proceso del Software es que el Modelo del proceso del software es una descripción simplificada de un proceso del software que presenta una visión de ése proceso, en donde éstos modelos pueden incluir actividades que son parte de los procesos y productos del software y el papel de las personas involucradas en la ingeniería de Software.
Un Proceso del Software es un conjunto de actividades y resultados asociados que producen un producto de software, y estas actividades son llevadas a cabo por los Ingenieros en Software.
Sugerencias en las que el modelo del proceso ayuda en la identificación de posibles mejoras del proceso:
Mantener un modelo de flujo de Trabajo en donde se muestre la secuencia de actividades en el proceso junto con sus entradas, salidas y dependencias, y en donde esas actividades representan acciones humanas.- Tener un modelo de flujo de datos o de actividad en donde se represente el proceso como un conjunto de actividades, donde cada una de las cuales realiza una trasformación en los datos. Y en donde estas transformaciones sean realizadas tanto por las personas como por las computadoras.
1.5 Explique por qué los costos de pruebas de software son particularmente altos para productos de software genéricos que se venden a un mercado amplio.
Rta/ Los costos de pruebas en productos de Software Genéricos son particularmente altos con respecto a otros productos de software, ya que los Genéricos son sistemas aislados por una organización de desarrollo y que se venden al mercado abierto a cualquier cliente que le sea posible comprarlos.
En los productos Genéricos, la organización que desarrolla el software controla su especificación, y eso hace que los costos de prueba sean más altos comparados con otros productos de Software.
Ejemplos de productos de software genéricos:
Software para PC´s tales como Bases de Datos, Procesadores de Texto, Paquetes de Dibujo, herramientas de gestión de proyectos.
1.8 Comente si los ingenieros profesionales deben atestiguar de la misma forma que los doctores o los abogados.
Rta/ Desde mi punto de vista los ingenieros debemos atestiguar de igual forma que los doctores y abogados, ya que es parte de la ética profesional que hemos adquirido a lo largo de nuestro estudio como de nuestras vidas, ya que un Ingeniero tiene la potestad tanto para causar algún beneficio o peor causar algún daño afectando de ésta forma a nuestros clientes.
Es por eso que los ingenieros debemos comprometernos a hacer de nuestra profesión una carrera limpia, benéfica y respetada, y que éste vaya unida de una buena conducta, lealtad y valores morales que desde nuestros hogares se nos han inculcado, ya que esto es parte fundamental de la ética profesional.
También debemos actuar de forma honesta e imparcial, y servir con fidelidad a nuestros empleados, y a nuestros clientes, sin olvidar que éstos son parte de nuestro círculo de trabajo, .
Al igual que los doctores y abogados los ingenieros debemos actualizar nuestros conocimientos día con día para mantener satisfechos a nuestros clientes, y al igual que éstos debemos mantener una reputación intachable para que los clientes queden satisfechos con el trabajo que realizaremos.
jueves, 20 de mayo de 2010
Bienvenidos a Todos!!!
saludos!!!



