domingo, 2 de septiembre de 2012


HERRAMIENTAS CASE

Las Herramientas case es la mejor base para el proceso de análisis y desarrollo de software, así que las computadoras afectan nuestras vidas nos guste o no. Utilizamos las maquinas en nuestra vida diaria, la mayor parte del tiempo sin reconocer conscientemente que estamos haciéndolo, a diario utilizamos aplicaciones domésticas como microondas, televisión, vídeo Casseteras o en la calle los cajeros automáticos, entre otros.

La verdad es que no podemos escapar de las computadoras. El rápido incremento es una hazaña de las computadoras junto al dramático decremento en tamaño y costo, y así esta tecnología, es una larga variedad de aplicaciones que éstas pueden soportar.


Desde el inicio de la escritura de software, ha existido un conocimiento de la necesidad de herramientas automatizadas para ayudar al diseñador del software. Inicialmente, la concentración estaba en herramientas de apoyo a programas como traductores, recopiladores, ensambladores, procesadores de macros, montadores y cargadores. Este conjunto de aplicaciones, aumentó de una manera rápida en un breve espacio de tiempo, causando una gran demanda por nuevo software a desarrollar. A medida que se escribía nuevo software, habían ya en existencia millones y millones de líneas de código que necesitaban se mantenidas y actualizadas.

Significado sigla CASE

Computer

Aided Assisted Automated

Software System

Engineering

Ordenador

 Con la ayuda asistida automatizada

 Software del sistema

 Ingeniería

Las Herramientas CASE como un conjunto de programas y ayudas que dan asistencia a los analistas, ingenieros de software y desarrolladores, durante todos los pasos del Ciclo de Vida de desarrollo de un Software (Investigación Preliminar, Análisis, Diseño, Implementación e Instalación.).

CASE es también definido como el Conjunto de métodos, utilidades y técnicas que facilitan el mejoramiento del ciclo de vida del desarrollo de sistemas de información, completamente o en alguna de sus fases.

Se puede ver al CASE como la unión de las herramientas automáticas de software y las metodologías de desarrollo de software formales.

Existe también el CASE integrado que fue comenzando a tener un impacto muy Significativo en los negocios y sistemas de información de las organizaciones, además con este CASE integrado las compañías pueden desarrollar rápidamente sistemas de mejor calidad para soportar procesos críticos del negocio y asistir en el desarrollo y promoción intensiva de la información de productos y servicios.

 

NUEVAS TECNICAS Y METODOS PARA EL DESARROLLO DE SOFTWARE

Conjunto de pasos y procedimientos que deben seguirse para el desarrollo de software.
Cómo se debe dividir un proyecto en etapas.
Qué tareas se llevan a cabo en cada etapa.
Heurísticas para llevar a cabo dichas tareas.
Qué salidas se producen y cuándo se deben producir.
Qué restricciones se aplican.
Qué herramientas se van a utilizar.
Cómo se gestiona y controla un proyecto.
Métodos de desarrollo de software

Es necesario establecer un enfoque disciplinado y sistemático para desarrollar un proyecto de software
Método =(metodología)
Método  Notación
Método  Técnica

¿Qué es un método de
Desarrollo de software?

“Conjunto de procedimientos, técnicas, herramientas, y un soporte documental que ayuda a los desarrolladores a producir nuevo software”.
Modelo de proceso (fases y subfases, actividades, tareas).
Procedimientos que dan lugar a productos.
Técnicas (gráficas, textuales) (p.ej. DFDs, E/R, HVE).

“Un método de ingeniería de software es un enfoque estructurado para el desarrollo de software cuyo propósito es facilitar la producción de software de alta calidad de una forma costeable.” Todos los métodos se basan en la idea de modelos gráficos de desarrollo de un sistema y en el uso de estos modelos como un sistema de especificación o diseño. Desarrollo ágil de Software es un framework conceptual para emprender proyectos de ingeniería de software que abraza y promociona el cambio evolutivo a lo largo de todo el ciclo de vida del proyecto.
Hay varios métodos de desarrollo ágil, la mayoría intentan minimizar el riesgo desarrollando software en períodos de tiempo cortos, llamados iteraciones, las cuales duran típicamente de 1 a 4 semanas. Cada iteración es como un proyecto de software miniatura en sí mismo, e incluye todas las tareas necesarias para lanzar el mini-incremento de nueva funcionalidad: planificación, análisis de requerimientos, diseño, código, testing, y la documentación.
Mientras una iteración no puede agregar suficiente funcionalidad para garantizar el lanzamiento del producto, un proyecto de software ágil tiene la intención de ser capaz de lanzar software nuevo al finalizar cada iteración. En muchos casos, el software es lanzado al final de cada iteración. Esto es particularmente cierto cuando el software es basado en web y puede ser lanzado fácilmente. A pesar de todo, al final de cada iteración, el equipo re-evalúa las prioridades del proyecto.

NO SILVER BULLT

El nombre completo del paper es No Silver Bullet: Essence and Accidents of Software Engineering.
Brooks argumenta que no existe la bala de plata para aniquilar las dificultades en el desarrollo de software.
Brooks entiende por “bala de plata” a una innovación técnica que permitiría mejorar de forma exponencial la calidad del proceso de desarrollo de software, ya sea eliminando errores o aumentando la productividad de los equipos.

Esencial vs. Accidental
Los problemas asociados a la ingeniería de software pueden categorizarse en:

·         Esenciales: son aquellos que son propios a la complejidad del producto que se desea construir

·         Accidentales: son aquellos que están asociados al proceso mediante el cual se construye el producto.

Brooks considera que la dificultad en el desarrollo de software proviene mayormente de las dificultades esenciales, que son muchas y muy amplias. Cita tres breakthroughs que afectaron inmensamente la productividad y la calidad del software: los lenguajes de alto nivel, el time-sharing y los entornos unificados de desarrollo. Si bien estos avances fueron muy importantes, siempre atacaron dificultades accidentales (respectivamente, lidiar con las minucias de implementación, esperar mucho tiempo para tener feedback sobre los programas, y tener que tratar con complicaciones originadas por las distintas herramientas de desarrollo).

Las dificultades esenciales permanecen incólumnes: Brooks identifica cuatro factores que hacen particularmente difícil construir software.

·         La complejidad de las cosas que hay que construir

·         La conformidad que se exige al software respecto de especificaciones muchas veces arbitrarias o inamovibles

·         La “cambiabilidad” (las demás industrias jamás cambian sus productos una vez que son terminados con la liviandad que se hace en el software)

·         La invisibilidad del software que hace muy complicado su análisis y comunicación por las dificultades que se producen al intentar representarlo gráficamente

Intentos fallidos
Durante la mayor parte del paper Brooks se detiene sobre por qué muchas supuestas “soluciones mágicas” a los problemas del software no lo son en realidad. En esta parte, Brooks enumera varias de ellas: Ada, la programación orientada a objetos, la inteligencia artificial, los sistemas expertos, la programación automática, la programación gráfica, la verificación de programas, y por último la utilización de mejores IDEs y mejor hardware. En todos esos casos las dificultades atacadas son accidentales y relacionadas al proceso de construir el softare; jamás se ataca la dificultad esencial de comprender y expresar la funcionalidad del mismo.
Si bien hay grandes beneficios para ganar con varias de esas opciones, ninguna de ellas convertirá el desarrollo de software en una tarea simple.

Soluciones reales
Brooks destaca la existencia de tres herramientas fuertes para atacar el problema de construir software desde la óptica de sus dificultades esenciales:

·         Comprar el software en lugar de construirlo

·         Construir incrementalmente en lugar de hacerlo en un paso

·         Contar con grandes diseñadores (y trabajar para formar más).

DEFINICIONES

PROCESO: Un proceso puede informalmente entenderse como un programa en ejecución. Formalmente un proceso es "Una unidad de actividad que se caracteriza por la ejecución de una secuencia de instrucciones, un estado actual, y un conjunto de recursos del sistemas asociados".

Para entender la diferencia entre un programa y un proceso, A. S. Tanenbaum propone la analogía "Un científico computacional con mente culinaria hornea un pastel de cumpleaños para su hija; tiene la receta para un pastel de cumpleaños y una cocina bien equipada con todos los ingredientes necesarios, harina, huevo azúcar, leche, etcétera." Situando cada parte de la analogía se puede decir que la receta representa el programa (el algoritmo), el científico computacional es el procesador y los ingredientes son las entradas del programa. El proceso es la actividad que consiste en que el científico computacional vaya leyendo la receta, obteniendo los ingredientes y horneando el pastel.

Cada proceso tiene su contador de programa, registros y variables, aislados de otros procesos, incluso siendo el mismo programa en ejecución 2 veces. Cuándo este último caso sucede, el sistema operativo usa la misma región de memoria de código, debido a que dicho código no cambiará, a menos que se ejecute una versión distinta del programa.

Los procesos son gestionados por el sistema operativo y están formados por:

PARADIGMA: El concepto de paradigma (un vocablo que deriva del griego paradeigma) se utiliza en la vida cotidiana como sinónimo de ejemplo o para hacer referencia a algo que se toma como “modelo”. En principio, se tenía en cuenta a nivel gramatical (para definir su uso en un cierto contexto) y se valoraba desde la retórica (para hacer mención a una parábola o fábula). A partir de la década del ’60, los alcances de la noción se ampliaron y ‘paradigma’ comenzó a ser un término común en el vocabulario científico y en expresiones epistemológicas cuando se hacía necesario hablar de modelos o patrones.
HERRAMIENTA: La herramienta es un objeto elaborado a fin de facilitar la realización de una tarea mecánica que requiere de una aplicación correcta de energía (siempre y cuando hablemos de herramienta material). Existen herramientas didácticas que sirven para realizar un proceso de E-A guiado para conseguir unos fines.
El término herramienta, en sentido estricto, se emplea para referirse a utensilios resistentes (hechos de diferentes materiales, pero inicialmente se materializaban en hierro como sugiere la etimología), útiles para realizar trabajos mecánicos que requieren la aplicación de una cierta fuerza física
ESPECTRO: En física, el análisis espectral o espectro energético es la imagen o registro gráfico que presenta un sistema físico al ser excitado y posteriormente analizado. El operador que enlaza con la definición matemática es el operador hamiltoniano . Estos sitemas pueden ser grandes (como estrellas) o pequeños (como átomos, moléculas, etc.). Puede ser de dos tipos: de emisión, cuando el registro es producido por la muestra excitada y de absorción, cuando la muestra es irradiada con una banda de frecuencias adecuada y se evalúan, por defecto, las frecuencias que han sido absorbidas por la muestra. Entre las técnicas usuales de análisis químico se encuentran, entre otras: la resonancia magnética nuclear, la espectrometría de infrarrojos, la espectrometría atómica, la fluorimetría o la polarografía.

El espectro de frecuencias es el gráfico que muestra cómo es la descomposición de una señal ondulatoria (sonora, luminosa, electromagnética,...) en el dominio frecuencial.
El espectro de respuesta es un valor utilizado en ingeniería sísmica, que mide la reacción de una infraestructura ante una vibración.

GESTION : Son guías para orientar la acción, previsión, visualización y empleo de los recursos y esfuerzos a los fines que se desean alcanzar, la secuencia de actividades que habrán de realizarse para logar objetivos y el tiempo requerido para efectuar cada una de sus partes y todos aquellos eventos involucrados en su consecución. Es la esencia que armonizar el conocimiento de ingeniería, ciencias y administración con el fin de desarrollar métodos y procedimientos de operación.

 

No hay comentarios:

Publicar un comentario