Texto completo

(1)
(2)

CODIFICACIÓN DEL DISEÑO

La fase de codificación constituye el núcleo central en cualquiera de los

modelos y tiene una importancia fundamental ya que elabora los programas

fuente.

Previamente a la codificación es necesario elegir el lenguaje que se empleará

así como la metodología de programación. También se pueden establecer en

el equipo unas normas y un estilo de programación común, lo que mejorará la

coordinación y facilitará el trabajo. Además se consigue facilitar el

mantenimiento y mejorar la reusabilidad del software.

Cuando el resultado de las pruebas no sea satisfactorio será necesario

modificar el código, lo que podrá introducir nuevos errores. Si la

programación es estructurada será más fácil localizar la disfunción y la

(3)

CRITERIOS DE SELECCIÓN DEL LENGUAJE

El lenguaje es uno de los elementos más importantes de cualquier desarrollo y tiene una influencia

decisiva en la depuración y el mantenimiento dela aplicación. Criterios:

IMPOSICIÓN DEL CLIENTE, a veces para disminuir los costes de desarrollo y mantenimiento que

se producen cuando una empresa utiliza lenguajes diferentes.

TIPO DE APLICACIÓN, hay lenguajes orientados a un campo de aplicación concreto.

DISPONIBILIDAD Y ENTORNO, hay que comprobar los compiladores existentes para la

plataforma elegida. Estudio comparativo de eficiencia con un programa de prueba.

Herramientas del entorno de desarrollo: editor, montador, depurador, control versiones, manejo

de librerías, etc.

EXPERIENCIA PREVIA, aprovechar la experiencia aumenta el rendimiento y disminuye las

posibilidades de error. La formación supone una fuerte inversión.

REUSABILIDAD, organización de librerías que faciliten la búsqueda y almacenamiento de

módulos reutilizables.

TRANSPORTABILIDAD, depende del lenguaje

USO DE VARIOS LENGUAJES, no es aconsejable a no ser que las distintas partes sean más fáciles

de desarrollar en lenguajes concretos. Hay que tener en cuenta la compatibilidad de los

(4)

ASPECTOS METODOLÓGICOS: EFICIENCIA Y TRANSPORTABILIDAD

La potencia de cálculo y la cantidad de memoria disponible en los computadores actuales hacer

preferible la claridad en el código que la EFICIENCIA.

EFICIENCIA EN MEMORIA, en la fase de diseño se estudian las posibles alternativas y se opta por

el algoritmo que optimiza el uso dela memoria.

EFICIENCIA DE TIEMPO, es importante en el desarrollo de sistemas de tiempo real muy críticos. A

veces se mejora la eficiencia de tiempo a costa de ocupar más memoria. En el diseño se estudian

las alternativas y se adopta el algoritmo más rápido. Técnicas de codificación para aumentar la

eficiencia de tiempo.

TRANSPORTABILIDAD DEL SOFTWARE, no solo es rentable a corto plazo para obtener versiones

para diferentes plataformas, a medio y largo plazo facilita el mantenimiento y la adaptación de

la aplicación a las nuevas arquitecturas.

Los factores para la transportabilidad son:

Utilización de estándares

Aislar las peculiaridades, colocándolas en módulos separados. Se procurará evitar aquellos elementos no

consolidados y que pueden estar sujetos a futuros cambios o revisiones.

(5)

ESTRATEGIAS DE INTEGRACIÓN

• Se integran los módulos del sistema para conformar el sistema completo. Causas de error:

– Desacuerdos en el interfaz entre módulos

– Interacción indebida entre módulos

– Imprecisiones acumuladas

• Estrategias básicas para la integración:

– INTEGRACIÓN BIG BANG, en un único paso se integran todos los módulos, de forma que todos los defectos se manifiestan a la vez. Solo recomendable para sistemas pequeños.

– INTEGRACIÓN DESCENDENTE, se parte de un módulo principal P, que se prueba con “módulos de andamiaje”, los cuales van siendo sustituidos por los verdaderos de forma progresiva por niveles. Los módulos de andamiaje;

• No hacen nada y solo sirven para comprobar el interfaz

• Imprimen un mensaje de seguimiento, con información de la llamada

• Suministran un resultado fijo

• Suministran un resultado aleatorio

• Suministran un resultado tabulado u obtenido con un algoritmo simplificado

– El trabajo de elaborar estos módulos puede ser aprovechado para hacer un prototipo y mostrar al cliente un avance del programa. Inconvenientes:

• Impide el trabajo en paralelo en las pruebas

(6)

ENTORNOS DE DESARROLLO SOFTWARE

Entorno se refiere al contexto dentro del cual se desarrolla una determinada actividad,

o también a la combinación de instrumentos utilizados.

El entorno de desarrollo software, SEE, cuenta con una serie de técnicas de

automatización denominadas CASE.

Las primeras herramientas se referían a la fase de codificación, así el entorno de

programación clásico consiste en un compilador con editor, montador de enlaces, etc.

Posteriormente con el empleo del término CASE se ha extendido la automatización a

las fases de análisis y diseño.

Para las pruebas de integración se puede disponer de herramientas de ensayo y para la

fase de mantenimiento se dispone de soporte de gestión de configuración, que incluye

la gestión de versiones y el control de cambios.

El futuro de las técnicas CASE está en el soporte completo de todo el ciclo de vida. Se

ha denominado IPSE, ICASE e ISEE.

FORMAS DE ORGANIZACIÓN:

(7)

OBJETIVO Y CLASIFICACIÓN DE ENTORNOS DE DESARROLLO

Dar soporte a la programación en un lenguaje concreto

Dar soporte a una metodología de desarrollo

Ayudar al desarrollo de entornos de desarrollo (meta-entornos)

CLASIFICACIÓN, desde un punto de vista pragmático:

ENTORNOS ASOCIADOS A UN LENGUAJE.

Un primer paso lo constituyen los intérpretes de los

lenguajes de programación interactivos (BASIC, LISP, SmallTalk, ada).

ENTORNOS ASOCIADOS A ESTRUCTURA.

En ellos se almacena la información correspondiente

al programa en forma estructurada y no simplemente como texto. La edición del programa se

consigue mediante un editor de estructura, que permite construir o modificar un programa

operando sobre los elementos de su estructura. El entorno se basa en plantillas que describen

las estructuras básicas (PL/).

ENTORNOS BASADOS EN HERRAMIENTAS.

Consisten en una colección de herramientas (toolkit

o toolbox) relativamente independientes, aunque compatibles entre sí, además deben de existir

algún medio para hacerlas funcionar en forma combinada. Suele presentar como ventaja el ser

bastante abiertos, permitiendo la incorporación de nuevas herramientas. Su inconveniente es la

falta de una interfaz de usuario interactiva y uniforme.

(8)

CLASIFICACIÓN DE ENTORNOS POR NIVELES

Nivel de servicio

.

Corresponde a un producto que realiza una función u

operación elemental, que una vez invocada no se interrumpe (compilador).

Nivel de herramient

a

. Producto software que permite invocar diferentes

servicios u operaciones correspondientes a una misma actividad individual.

(editor de textos).

Nivel de banco de trabajo o equipo de herramientas.

Corresponde a un

producto CASE que automatiza o soporta un perfil concreto de actividad

profesional dentro del proceso de desarrollo. Un banco de trabajo suele

englobar varias herramientas, integradas con una interfaz de usuario uniforme.

En la actividad de codificación el banco de trabajo se denomina entorno de

programación.

Entorno de desarrollo

.

Producto CASE que soporta el proceso completo de

(9)

BANCOS O EQUIPOS DE TRABAJO

Un banco de trabajo debe integrar las herramientas necesarias para dar soporte a un determinado perfil profesional o actividad general de desarrollo. Un banco de trabajo debe de conseguir:

· Integración de la presentación

· Integración de control

· Integración de datos (preferentemente con repositorio común).

Según la actividad soportada, tendremos distintos bancos o equipos de trabajo, entre ellos:

• Equipos de análisis y diseño: Herramienta CASE o CASE superior. Corresponde al entorno asociado a la metodología. Muchos de ellos cubren las dos fases (análisis y diseño), mientras que otros sólo cubren una. El repositorio común almacena todos los elementos definidos en la metodología soportada.

• Entorno de programación. Es el banco de trabajo para la actividad de codificación pudiéndose extender al diseño detallado y a las pruebas de unidades.

• Equipo de verificación y validación: Capaz de facilitar las tareas de inspección y pruebas de módulos y sistemas. Suelen estar ligados al entorno de programación. Pueden incluir funciones de:

¤ Análisis estático, con evaluación de métricas de calidad y generación de matrices o grafos de llamadas entre funciones y módulos.

¤ Generación de tablas de referencias cruzadas.

¤ Gestión de pruebas, automatizando la realización de ensayos.

• Equipo de construcción de interfaz del usuario. Permite definir cómodamente el esquema de diálogo con el usuario, así como los elementos de interacción.

(10)

ENTORNOS ORIENTADOS AL PROCESO

Deben de ser capaces de soportar todas las actividades del ciclo de vida de desarrollo siguiendo un modelo definido. Un entorno global de estas características se designa como IPSE, ICASE o ISEE. La característica principal que distingue un entorno de esta clase de un banco de trabajo amplio es el soporte explícito de un modelo global de desarrollo. El entorno debe poseer las características de integración del proceso, además de las de integración de datos, control y presentación.

Para conseguir este nivel de integración es necesario contar con un modelo formal del proceso de desarrollo. A diferencia de las metodologías parciales de análisis y diseño, este modelo suele construirse a medida de cada empresa productora de software. Un ISEE de uso general deberá permitir:

• Construir la definición formal del modelo del proceso de desarrollo. • Asegurar la aplicación práctica del modelo definido.

Aunque no existen entornos ISEE disponibles si existen esquemas generales de arquitectura de entornos orientados al proceso, que en algunos casos han dado lugar a colecciones de herramientas que facilitan las funciones deseadas. Algunas son:

¤ PCTE (Portable Common Tool Environment). Es una arquitectura de entorno integrado, basada en un repositorio común. Su elemento principal es la definición de interfaz de acceso al repositorio. Sobre él pueden operar herramientas que automaticen las actividades previstas en el modelo del proceso. Existen implementaciones de repositorio que cumplen con la especificación PCTE, y también algunas colecciones de herramientas como las del proyecto PACT.

Figure

Actualización...

Referencias

Related subjects :