martes, 27 de noviembre de 2012

CASE (Ingenieria del Software Asistida por Computadora)


Computer Aided Software Engineering.

CASE proporciona al ingeniero la posibilidad de automatizar actividades  manuales y de mejorar su visión general de la ingeniería. Al igual que las herramientas de ingeniería y de diseño asistidos por computadora que utilizan los ingenieros de otras disciplinas, las herramientas CASE ayudan a garantizar que la calidad se diseñe antes de llegar a construir el producto.

La ingeniería del software asistida por computadora puede ser tan sencilla como una única herramienta que preste su apoyo para una única actividad de ingeniería del software, o tan compleja como todo un entorno que abarque «herramientas», una base de datos, personas, hardware, una red, sistemas operativos, estándares, y otros mil componentes
Marco de integración: Es un conjunto de programas especializados  que permiten a cada herramienta CASE comunicarse con las demás.
Servicios de portabilidad: Este conjunto constituye un puente entre las herramientas CASE, su marco de integración y la arquitectura de entorno. De esta forma permiten que las herramientas CASE y su marco de integración puedan migrar a través de diferentes plataformas de hardware y sistemas operativos sin problemas de adaptación.
Sistema operativo: Gestiona el hardware, la red y las herramientas; mantiene el entorno unido.
Plataforma hardware: Son las estaciones de trabajo individuales interconectadas mediante la red para que los ingenieros del software puedan comunicarse de forma efectiva.
Arquitectura de entorno: Es la base del CASE, en este bloque se construyen los entornos de la ingeniería del software, engloba los sistemas de software y hardware. Además considera los patrones del trabajo humano que se aplican durante el proceso de ingeniería del software.

REINGENIERIA

CONCEPTO

Reingeniería del software se puede definir como: “modificación de un producto software, o de ciertos componentes, usando para el análisis del sistema existente técnicas de Ingeniería Inversa y, para la etapa de reconstrucción, herramientas de Ingeniería Directa, de tal manera que se oriente este cambio hacia mayores niveles de facilidad en cuanto a mantenimiento, reutilización, comprensión o evaluación.”
BENEFICIOS

  • Pueden reducir los riegos evolutivos de una organización.
  • Puede ayudar a las organizaciones a recuperar sus inversiones en software.
  • Puede hacer el software más fácilmente modificable
  • Amplía las capacidades de las herramientas CASE
  • Es un catalizador para la automatización del mantenimiento del software
  • Puede actuar como catalizador para la aplicación de técnicas de inteligencia artificial para resolver problemas de reingeniería
ACTIVIDADES
  • análisis de inventarios
  • reestructuración de documentos
  • ingeniería inversa
  • reestructuración de programas y datos
  • ingeniería directa


Análisis de Inventarios
Todas las organizaciones de software deberían tener un inventario de todas sus aplicaciones. El inventario tal vez no sea más que un modelo en una hoja de cálculo que contenga información que proporcione una descripción detallada (tamaño, edad, importancia para el negocio) de las aplicaciones activas.
Los candidatos a la reingeniería aparecen cuando se ordena esta información en función de su importancia para el negocio, longevidad, mantenibilidad actual y otros criterios localmente importantes. Es entonces cuando es posible asignar recursos a las aplicaciones candidatas para el trabajo de reingeniería.
Reestructuración de documentos
La documentación débil es la marca de muchos sistemas heredados. ¿Pero que se hace acerca de ellos? ¿Cuáles son las opciones? Crear documentación consume mucho tiempo, si el sistema funciona vivirá con lo que tenga. La documentación debe actualizarse pero se tiene recursos limitados. Se utiliza un enfoque de “documentar cuando se toque”. El sistema es crucial para el negocio y debe volver a documentarse por completo incluso en este caso un enfoque inteligente es recortar la documentación a un mínimo esencial. Cada una de estas opciones es viable. Una organización de software debe elegir la más apropiada para cada caso.
Ingeniería Inversa
La ingeniería inversa del software es algo similar. En la mayoría de los casos, el programa del cual hay que hacer una ingeniería inversa no es el de un rival, sino, más bien, el propio trabajo de la compañía. Los “secretos” que hay que comprender resultan incomprensibles porque nunca se llegó a desarrollar una especificación. Consiguientemente, la ingeniería inversa del software es el proceso de análisis de un programa con el fin de crear una representación de programa con un nivel de abstracción más elevado que el código fuente.
La Ingeniería inversa es un proceso de recuperación de diseño. Con las herramientas de la ingeniería inversa se extraerá del programa existente información del diseño arquitectónico y de proceso, e información de los datos.
Reestructuración de código
El tipo más común de reingeniería es la reestructuración de código, se puede hacer con módulos individuales que se codifican de una manera que dificultan comprenderlos, probarlos y mantenerlos.
Llevar a cabo esta actividad requiere analizar el código fuente empleando una herramienta de reestructuración, se indican las violaciones de las estructuras de programación estructurada, y entonces se reestructura el código (esto se puede hacer automáticamente). El código reestructurado resultante se revisa y se comprueba para asegurar que no se hayan introducido anomalías. Se actualiza la documentación interna del código.
Reestructuración de datos
La reestructuración de datos es una actividad de reingeniería a gran escala. En la mayoría de los casos, la reestructuración de datos comienza con una actividad de ingeniería inversa. La arquitectura de datos actual se analiza con minuciosidad y se define los modelos de datos necesarios, se identifican los objetivos de datos y los atributos, y después se revisa la calidad de las estructuras de datos existentes.
Ingeniería directa
En un mundo ideal, las aplicaciones se reconstruyen utilizando un “motor de reingeniería” automatizado. En el motor se insertaría el programa viejo, que lo analizaría, reestructuraría y después regeneraría la forma de exhibir los mejores aspectos de la calidad del software. Después de un espacio de tiempo corto, es probable que llegue a aparecer este “motor”, pero los fabricantes de CASE han presentado herramientas que proporcionan un subconjunto limitado de estas capacidades y que se enfrentan con dominios de aplicaciones específicos. Lo que es más importante, estas herramientas de reingeniería cada vez son más sofisticadas.

jueves, 22 de noviembre de 2012

INGENIERIA WEB


¿QUE ENTIENDE USTED POR INGENIERIA WEB?

La ingeniería web es la aplicación de metodologías sistemáticas, disciplinadas y cuantificables al desarrollo eficiente, operación y evolución de aplicaciones de alta calidad.

¿QUE COMPONENTES FORMAN PARTE DE LA INGENIERIA WEB?
  1-Diseño de sitio web
        -Interfaz
        -Estetica
        -Contenido
        -Navegacion
        -Arquitectura
        -Componentes
2-Herramientas para el diseño.
3-Personal espcialista para cada componente.
4-Procesos de la ingenieria web.

3¿INGENIERIA WEB ES UNA METODO UNICO O ES LA MEZCLA DE ALGUNOS METODOS YA ESTUDIADOS?
Es una mezcla de metodos como son:


-diseño de proesos para aplicaciones web
-generacion de codigo para aplicaciones web
-herramientas case para aplicaciones web
-desarrollo de web
-modelo conceptual de aplicaciones web
-control de calidad y prueba de sistema
-ingenieria de requisito
-metricas
-gestion de proyecto

4-¿CUAL ES EL PROCESO QUE DEBE SEGUIR EL EQUIPO DE INGENIERIA WEB?
Existen algunas actividades importantes y que forman parte el proceso, estas son:
-formulación
-planificación
- análisis
-modelización
-generación de páginas
 -test
-evaluación del cliente
5-¿QUIENES CONFORMAN EL EQUIPO DE INGENIERIA WEB?
- Desarrolladores y proveedores de contenido:Generacion y copilacion de contendio abarca una amplia gama de objetos de datos.
- Editores de Web:organizacion de variado contenido para poder incluirlo en la web apps,debe haber una conexion entre el equipo tecnico de diseño y los proveedores de contenido.
- Ingeniero de Web:iinvolucrado en el amplio rango de actividades,obtencion de requisitos,modelo de analisis,diseo arquitectonico,de interfaz etc..
- Especialistas de soporte_apoyo continuo a las web apps dado que esta evolucionando constantemente,los especialistas de soporte es responsable de correccion,adaptacion,y mejoras del sitio,actualizando contenido e implementando procedimientos.
- Administrador:tiene la responsabilidad de la operacion diaria de la apps,desarrollo e implementacion de politicas de operaciones y de procedimientos de soporte y realimentacion.
- Diseño de interfaces de usuario.
- Desarrollo y despliegue de servicios web.
- Metodologías de diseño web.
- Métodos, herramientas y automatización de pruebas para aplicaciones web.
6-¿INDIQUE ALGUNAS APLICACIONES QUE NOS SIRVEN DE HERRAMIENTAS PARA LA INGENIERIA WEB?
-Team Viewer
-Wix
-Active Web
-Webs
-Magicx web Designe

7-¿INDIQUE QUE APLICACIONES DE LAS QUE HACE USB,UTILIZA LA ING. WEB?
-Ingeniería web empírica
-Ingeniería web movil
-Personalización y adaptación de aplicaciones web
-Herramientas y métodos de prototipado.
-Control de calidad y pruebas de sistemas
-Diseño de interfaces de usuario


jueves, 8 de noviembre de 2012

MODELO CLIENTE / SERVIDOR

La arquitectura cliente-servidor es un modelo de aplicación distribuida en el que las tareas se reparten entre los proveedores de recursos o servicios, llamados servidores, y los demandantes, llamados clientes. Un cliente realiza peticiones a otro programa, el servidor, que le da respuesta. Esta idea también se puede aplicar a programas que se ejecutan sobre una sola computadora, aunque es más ventajosa en un sistema operativo multiusuario distribuido a través de una red de computadoras

En la arquitectura C/S el remitente de una solicitud es conocido como cliente. Sus características son:
  • Es quien inicia solicitudes o peticiones, tienen por tanto un papel activo en la comunicación (dispositivo maestro o amo).
  • Espera y recibe las respuestas del servidor.
  • Por lo general, puede conectarse a varios servidores a la vez.
  • Normalmente interactúa directamente con los usuarios finales mediante una interfaz gráfica de usuario
  • Al contratar un servicio de redes, se debe tener en cuenta la velocidad de conexión que le otorga al cliente y el tipo de cable que utiliza , por ejemplo : cable de cobre ronda entre 1 ms y 50 ms.
Al receptor de la solicitud enviada por el cliente se conoce como servidor. Sus características son:
  • Al iniciarse esperan a que lleguen las solicitudes de los clientes, desempeñan entonces un papel pasivo en la comunicación (dispositivo esclavo).
  • Tras la recepción de una solicitud, la procesan y luego envían la respuesta al cliente.
  • Por lo general, aceptan conexiones desde un gran número de clientes (en ciertos casos el número máximo de peticiones puede estar limitado).
  • No es frecuente que interactúen directamente con los usuarios finales.



MODELO DE SALA LIMPIA

La ingeniería del software de sala limpia

es un enfoque formal para el desarrollo del software, que pueda dar lugar a un software con una calidad notablemente alta. Emplea la especificación de estructura de cajas para el modelado de análisis y diseño, haciendo hincapié en la verificación de la corrección, más que en la comprobación, como mecanismo fundamental para encontrar y eliminar errores. Se aplica una comprobación estadística de uso para desarrollar la información relativa a la tasa de fallos necesaria para certificar la fiabilidad del producto software.  El resultado final es una tasa de fallo extremadamente baja, que sería difícil o imposible de conseguir empleando métodos menos formales.

Fases
  • Planificación de incrementos.-Permite la calidad temprana y continua interacción con el usuario. Facilita mejoras de proceso mientras progresa el desarrollo. El acercamiento incremental evita los riesgos inherentes a la integración tardía en el ciclo de desarrollo.
  • Recolección de requisitos.- Define requisitos para el producto software, incluyendo función, uso, ambiente, y funcionamiento; la parte complementaria constituye el obtener un acuerdo con el cliente en los requisitos como base para la función y especificación de uso.
  • Especificación de la estructura de cajas.- Tres tipos especiales de funciones matemáticas son importantes en el desarrollo de sala limpia, debido a su correspondencia y correlación en el proceso de descomposición y verificación.  Estas funciones son conocidas como la caja negra, la caja de estado y caja limpia. En la estructura de las cajas se pueden aplicar una variedad de estrategias de descomposición, además se puede incluir funcionalidad y orientación a objeto.
  • Diseño formal.- Mediante el uso del enfoque de estructura de cajas, el diseño de sala limpia es una extensión natural y sin discontinuidades de la especificación. Los participantes proporcionan los objetivos, los criterios de entrada, las tareas, la verificación, las medidas y los criterios  comunes de la salida en los procesos, así como elementos de proceso común.
  • Verificación de corrección.- El equipo de sala limpia lleva a cabo una serie de rigurosas actividades de verificación de corrección, las cuales se aplican primero al diseño y después al código. El propósito del proceso de verificación de la corrección, es verificar la corrección del incremento asociado al producto de software utilizando técnicas matemáticas.
  • Generación de código, inspección y verificación.- Las especificaciones de estructura de caja que se representan mediante un lenguaje especializado se traducen en un lenguaje de programación adecuado.
  • Planificación de la comprobación estadística.- El propósito es demostrar la aptitud del software para el uso en un experimento estadístico formal.  Se la define con respecto a los modelos de uso y a las metas de la certificación empleados en el proceso de prueba. Las metas de certificación, primero establecidas en el plan de medida y refinadas en el plan de prueba de incremento, se pueden expresar en términos tales como el índice de confiabilidad del software.
TIPOS DE CAJAS
  • Caja negra.- Especifica el comportamiento del sistema, o de una parte de un sistema.
  • Caja de estado.- Esta caja encapsula los datos de estados y de servicios de forma análoga a los objetos. En esta vista de especificación, se representan las entradas a la caja de estados y sus salidas.
  • Caja transparente.- Las funciones de transición que están implicadas en la caja de estados se definen en la caja transparente.

INGENIERIA DE SISTEMAS

1-¿CUAL ES EL ORIGEN DE LA INGENIERIA DE SISTEMAS?
R:Durante los ultimos 50 años los sistemas basados en computadora han introducido ,aunque la tecnologia ha conseguido grandes avances.

La ingenieria del software aparece como consecuencia de un proceso denominado ingenieria de sistemas,en lugar de centrarse unicamente en el software la ingenieria de sistemas se centra en diversos elementos,analizando,diseñando y organizando esos elementos de un sistema que puede ser producto.




2-¿EN QUE CONSISTE CADA ELEMENTO DEL SISTEMA BASADO EN COMPUTADORAS?
R:
  • Software, que son Programas de computadora, con estructuras de datos y su documentación que hacen efectiva la logística metodología o controles de requerimientos del Programa.

  • Hardware, dispositivos electrónicos y electromecánicos, que proporcionan capacidad de cálculos y funciones rápidas, exactas y efectivas (Computadoras, Censores, maquinarias, bombas, lectores, etc.), que proporcionan una función externa dentro de los Sistemas.

  • Personal, son los operadores o usuarios directos de las herramientas del Sistema.

  • Base de Datos, una gran colección de informaciones organizadas y enlazadas al Sistema a las que se accede por medio del Software.

  • Documentación, Manuales, formularios, y otra información descriptiva que detalla o da instrucciones sobre el empleo y operación del Programa.

  • Procedimientos, o pasos que definen el uso especifico de cada uno de los elementos o componentes del Sistema y las reglas de su manejo y mantenimiento.

  • 3-EXPLIQUE C/U DE LAS RESTRICCIONES QUE EL EQUIPO TRABAJA PUEDE EMITIR PARA CONSTRUIR UN MODELO DE SISTEMAS.
    R:

    Restricciones  del modelo de sistema:
    *Supuestos:reduce el numero de permutaciones y variaciones posibles,permitiendo asi el modelo a reflejr el problema de manera razonable.
    *Simplificaciones - Generalizar:permite crear el modelo a tiempo.
    *Limitaciones - Tamaño BBDD:son los que ayudan a delimitar el sistema.
    *Restricciones:es una guia para crear el modelo y el enfoque que se toma al implementarlo.
    *Preferencias:indica la arquitectura preferida para los datos,funciones y tecnologia.la solucion preferida entra aveces en conflicto con otros factores restrictivos.

    4-¿EN QUE CONSISTE LA INGENIERIA DE PROCESO DE NEGOCIO?
    R:Un proceso de negocio es un conjunto de tareas relacionadas lógicamente llevadas a cabo para lograr un resultado de negocio definido. Cada proceso de negocio tiene sus entradas, funciones y salidas. Las entradas son requisitos que deben tenerse antes de que una función pueda ser aplicada. Cuando una función es aplicada a las entradas de un método, tendremos ciertas salidas resultantes.

    La ingenieria de proceso de negocio es un acercamiento para crear un plan general para implementar la arquitectura de computacion.
               arquitectura de datos
               arquitectura de aplicaciones.
                  arquitectura de la tecnologia.

    5-¿EN QUE CONSISTE LA INGENIERIA DE PRODUCTO?
    R:La meta de la ingenieria de producto es traducir el deceo del cliente con todas sus caracteristicas y requisitos de un conjunto de capacidades deinidas a un producto operativo.

    La expresión ingeniería de producto se refiere al proceso de
    diseño y desarrollo de un equipo, sistema o aparato de forma tal que se obtiene un elemento apto para su comercialización mediante algún proceso de fabricacion.

    CAJAS NEGRAS(ING. DE REQUISITO)



    EN UNA EMPRESA TRICOTEXTIL SE TIENE EL SIGUIENTE ORGANIGRAMA:




    1) Para obtener el modelo de sistemas, ¿cual seria su proceder? Sabiendo que uno de los jornaleros que trabaja en el área de producción, es el único contacto.

    Como el unico contacto en el area de produccion,pediríamos que nos mostrara cada uno de las áreas de la empresa,y asi poder conocer a otras personas que nos podrian seguir ayudando ala recolecta de la informacion segun su area.

    Después se le podria pedir que nos muestre el sistema que tienen actualmente o si todo lo llevan a mano y pedirle que es lo que necesitan en la empresa textilera.. 

    2) ¿En cuantos sistemas podría dividir el modelo de sistema? Justifique cada subsistema 

    Subsistema de inventario: se requiere que se puedan visualizar de manera más efectiva la materia prima que entra y sale de bodega para llevar un mejor control  de todo lo que hay .

    Sistema de producción: Se requiere la cantidad de producción diaria, la cantidad de materia prima que no se utiliza y las que si son utilizadas,  el numero de empleados que se encuentran en cada una de las áreas de producción etc.

    Subsistema de atención al cliente: Se llevara el control de las personas a la que se le estará entregando el producto, las cantidades devueltas y cantidades perdidas y alas personas que son los proveedores.

    Subsistema de Contabilidad: Se controlan cada uno de los ingresos y egresos, las ganancias del año.
    3) ¿Qué tipo de software podría implementar en dicha empresa, si actualmente existen dos computadoras con Ms office (una en el área de atención y otra en contabilidad)?

    En el área de atención al cliente se necesita un software que pueda registrar las peticiones de los clientes y que este pueda ser procesado por lo operarios y les permita tomar una decisión mas rápidamente.

    En el área de contabilidad un software que sea capaz de agilizar los procesos de cálculos, esto se puede lograr atreves de la selección de las cuentas y operaciones mas usadas en la empresa.

    4) ¿Qué estrategia sugiere para la propuesta a presentar?  

    - Identificar los requisitos  que se requieren.
    - Analizar las prioridades  de la empresa.
    - Validación de implementación del sistema.
    - Realización de evaluación del sistema.
    - Elaboración de planes al analizar el proyecto.


     ¿A quien le presentaría dicha propuesta? 
    La propuesta se le presentaría a los propietarios de la empresa junto con los encargados de llevar a cabo el mantenimiento y monitoreo del software a desarrollar, además de los trabajadores que van a interactuar directamente con el sistema. 

    ¿Qué aspectos de tecnologías sugiere?   

    se necesita una computadora por área que esté conectado mediante una red, que permita actualizaciones constantes de información atreves de la empresa y sus operaciones.

    Que el área de contabilidad pueda acceder a todos los datos monetarios en tiempo real, manteniendo una comunicación constante entre las demás áreas y sus registros y que haiga un seguimiento por el administrador o gerente general.



    EN EL CASO DE LA EMPRESA DE SERVICIOS TECNOLOGICOS:
    SE LLEVA A CABO LOS PROCESOS DE ATENCION Y LEVANTAMIENTO DE PEDIDO,PRESENTACION DE PRESUPUESTOS Y SUS PRESUPUESTOS,ASIGNACION DE PERSONAL,DESARROLLO DE SERVIDOR,FACTURACION, CAPACITACION Y GARANTIA.PRESENTA ALGUNAS IDEAS DE METODOS CON QUE APLICARIAS LA INGENIRIA DEL SOFTWARE DE SALA LIMPIA.




    CAJA TRANSPARENTE DE CORREO, VIDEO-LLAMADA, DE PEDIDO,CONTRATO