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:
- Las instrucciones de un
programa destinadas a ser ejecutadas por el microprocesador.
- Su estado de ejecución en un momento dado, esto es,
los valores de los registros de la unidad central de procesamiento
para dicho programa.
- Su memoria de trabajo (memoria crítica), es decir,
la memoria que ha reservado y sus contenidos.
- Otra información que permite al sistema operativo su planificación.
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