9

Click here to load reader

Clasificacion de La Tecnologia de Desarrollo

Embed Size (px)

Citation preview

Page 1: Clasificacion de La Tecnologia de Desarrollo

Actividad 1.4

Clasificación de la tecnología en el desarrollo de software (Tecnologia estructurada y Orientada a Objetos)

18 DE FEBRERO DEL 2013

Page 2: Clasificacion de La Tecnologia de Desarrollo

1.4 Clasificacion de la tecnología en el desarrollo de software (tecnología estructurada y orientada a objetos)

Se puede clasificar al software en tres grandes tipos:

- Software de programación

Es el conjunto de herramientas que permite al programador desarrollar programas informáticos, usando diferentes alternativas y lenguajes de programación, de una manera práctica. Incluye entre otros:

- Editores de texto

- Compiladores

- Intérpretes

- Enlazadores

- Depuradores

- Entornos de desarrollo integrados (IDE) :

Agrupan las anteriores herramientas, usualmente en un entorno visual, de forma que al programador no necesite introducir múltiples comandos para compilar, interpretar, depurar, etc… Habitualmente cuentan con una avanzada interfaz gráfica de usuario (GUI).

- Software de aplicación :

Aquel que permite a los usuarios llevar a cabo una o varias tareas especificas, en cualquier campo de actividad susceptible de ser automatizado o asistido, con especial énfasis en

los negocios, incluye entre otros:

- Aplicaciones de sistemas de control y automatización

- industrial

- aplicaciones ofimáticas

- software educativo

- software empresarial

- bases de datos

- telecomunicaciones

- videojuegos

- software medico

- software de cálculo numérico

- software de diseño asistido

- software de control numérico

http://clubensayos.com/Tecnolog%C3%ADa/Introduccion-En-Fundamentos-De-Ingenieria/458270.html

Mientras que el Dr. Ingeniero Gonzalo León Serrano nos hace mención a este tema de esta manera:

Page 3: Clasificacion de La Tecnologia de Desarrollo

En la presente sección pasaremos revista a dos grandes grupos de tecnologías de software analizando las principales características de sus componentes en el momento actual y señalando las tendencias observadas. Las tecnologías identificadas son:

a) Tecnologías de desarrollo estructurado.

b) Tecnologías orientadas a objetos.

Se han seleccionado estas dos porque representan dos estadios distintos de la evolución tecnológica en la ingeniería de sistemas de software. Deliberadamente, no entraremos en profundidad en ninguna de ellas.

Tecnologías de desarrollo estructurado

Las tecnologías de desarrollo estructurado son las más convencionales de las empleadas hoy día. Han surgido de la evolución de las ideas de programación estructurada (hace más de veinticinco años) hacia las fases iniciales del ciclo de vida.

En su formulación actual, las notaciones empleadas en las prime-ras fases del ciclo de vida (especificación de requisitos de usuario y sistema) suelen estar constituidas por lenguajes gráficos que permiten: identificar el sistema y el entorno; representar el flujo de información entre los elementos; y, describir los datos y las actividades del sistema.

La idea base de esta tecnología es que es posible estructurar el modelo de un sistema de software en base a funciones que procesan información que reciben de otras funciones (o del exterior) y dirigen la información procesada a otros módulos funcionales (o al exterior). El enfoque seguido, por tanto, es el de pensar en las funciones del sistema necesarias (extraídas de los requisitos del sistema) y luego en los datos que requieren.

Entre las más utilizadas para análisis y especificación de requisitos se encuentra SA/RT (Análisis Estructurado con extensiones para tiempo real). Surgió como un lenguaje gráfico capaz de representar las actividades que deberá realizar el sistema, los intercambios de información entre ellos, etc. La descripción del comportamiento se realiza mediante diagramas de transición de estados.

Existen otras notaciones basadas en conceptos muy similares y el utilizar una u otra es más bien un problema de gusto. Las diferencias entre ellos provienen más de la forma de usarla que de la potencia expresiva del lenguaje.

Como evolución de las técnicas de análisis estructurado, en la fase de diseño se han utilizado variantes de SA/RT: SD/RT (Diseño Estructurado con extensiones para Tiempo Real). Al igual que SA/RT consta de un lenguaje gráfico no ejecutable e incorporan conceptos tales como: tarea, procesador, colas de mensajes, mecanismos de sincronización entre tareas, etc. que son conceptos necesarios en la fase de diseño.

En una línea diferente y para evitar los problemas de la explosión de estados se definieron por Harel los «statecharts» (variante de los diagramas de estado). Con ellos, se lograba compactar el espacio de estados que resultaba al describir sistemas de gran complejidad al permitir jerarquización de estados y descomposición en componentes.

En base a ellos se ha desarrollado una tecnología estructurada adaptada a sistemas de control denominada Statemate Para la fase de análisis y especificación de requisitos, las herramientas están asociadas a la construcción de modelos del sistema (modelos lógicos con diagramas de estado asociados). Estas herramientas no son genéricas sino que soportan métodos concretos. Suelen constar de:

A) Editores gráfico-textuales de la notación asociada a un método (tanto para describir las funciones como para describir el comportamiento mediante diagramas de estado).

Page 4: Clasificacion de La Tecnologia de Desarrollo

B) Comprobadores de consistencia en la información relativa a refinamientos del modelo (nombres, tipos, uso, etc. de los elementos definidos en los diagramas).

C) Sistema de gestión de la información almacenada (en ocasiones basada en bases de datos relacionales u orientados a objetos para gestionar el acceso a la información).

D) Generadores de prototipos (normalmente de interfaz gráfica) con objeto de evaluar los modelos lógicos o de diseño.

En las fases de diseño del sistema se dispone del mismo tipo de herramientas aunque en este caso se suele disponer también de: analizadores temporales y estimadores de tiempos de ejecución, generadores de código (más o menos completos) o facilidades para la utilización de componentes genéricos contenidos en bibliotecas menos comunes pero cada vez más conocidas son herramientas como las de animación gráfica de modelos. Estas herramientas aparecen como extensión de las que permiten editar y validar modelos de especificación y diseño estructurado de sistemas de software.

Finalmente, las herramientas que soportan la fase de implementación son las más conocidas dado que han estado en su mayor parte presentes desde los comienzos de la programación: editores (conociendo la sintaxis del lenguaje en algunos casos), compiladores e intérpretes, generadores/optimizadores de código, ejecutores de casos de prueba, depuradores simbólicos, etc.

Aunque este tipo de tecnologías de software aún se utilizan y sufren rejuvenecimientos periódicos, se está produciendo un desplazamiento de los usuarios hacia tecnologías orientadas a objetos que abordaremos seguidamente. Únicamente en el caso de sistemas de tiempo real existe una inercia a su abandono puesto que aún no se dispone de tecnologías orientadas a objetos validadas industrialmente en ese dominio.

Tecnologías orientadas a objetos

Page 5: Clasificacion de La Tecnologia de Desarrollo

Las tecnologías de desarrollo estructurado han demostrado sus limitaciones a la hora de organizar y facilitar la evolución de sistemas de software complejos. La descomposición en funciones hace difícil al diseñador mantener la relación con los objetos del mundo real sobre los que se modifican generalmente los requisitos del usuario.

Los métodos de descomposición orientada a objetos constituyen la tendencia más influyente observada en la ingeniería de sistemas de software en los últimos años. Con ellos nos referimos a un conjunto de métodos (aún en fase de desarrollo o evolución) que permiten al analista y diseñador concebir su sistema identificando clases de objetos, operaciones permitidas y relaciones entre ellos como base para la estructura del sistema a diseñar.

En ellas, un objeto es un conjunto de datos y funciones de manipulación de los mismos encapsulados en una unidad que es posible tratar como un todo (crear, copiar, destruir, etc.). Un objeto posee unas operaciones visibles a otros objetos aunque éstos no conocen cómo están implementadas. El diseñador reconoce inicialmente clases de objetos de las que se derivan los objetos concretos que utilizará en el diseño.

Un objeto puede construirse jerárquicamente empleando, a su vez, a otros objetos más simples. Una clase implica una generalización del concepto de objeto (identificando similitudes entre objetos similares) y constituye la base a partir de las cuales se construye el sistema.

Existen varias tecnologías orientadas a objetos que, aunque similares en su potencia expresiva, ofrecen algunas diferencias que las hacen más adecuadas para algún tipo concreto de sistemas. Podemos mencionar como una de las más representativas a OMT.

OMT está soportada por muchas herramientas CASE comerciales. Corresponde a una notación gráfica que permite representar las clases de objetos, sus relaciones y la creación de ejemplares de los mismos. Aunque básicamente empleada para la fase de análisis de requisitos del sistema puede también emplearse para las primeras fases del diseño.

La descripción del comportamiento se realiza generalmente asociando a los objetos diagramas de transición de estados similares a los empleados en las tecnologías de software estructuradas (con los mismos problemas de la explosión de estados). En Booch puede verse una idea general de su tecnología orientada a objetos.

Los métodos de diseño orientados a objetos suelen facilitar el desarrollo de una implementación en un lenguaje de programación orientado a objetos (C++, Ada95 o Eiffel). No obstante, la elección del lenguaje de implementación no es realmente importante y esta elección está condicionada por muchas otras razones. Justo es reconocer, sin embargo, que ha sido la Programación Orientada a Objetos la que ha impulsado también la difusión de estas técnicas.

Las herramientas que acompañan a las tecnologías orientadas a objetos y disponibles en sistemas CASE comerciales no se diferencian en esencia de las que aparecen en las tecnologías estructuradas. El único aspecto destacable es la proliferación de catálogos de clases para aplicaciones determinadas y los mecanismos de recuperación y personalización asociados.

Page 6: Clasificacion de La Tecnologia de Desarrollo

(Serrano, 1996)

Page 7: Clasificacion de La Tecnologia de Desarrollo

ReferenciasSerrano, G. L. (1996). Ingeniería de Sistemas de software. Madrid, España: Isdefe.

http://clubensayos.com/Tecnolog%C3%ADa/Introduccion-En-Fundamentos-De-Ingenieria/458270.html