PDF de programación - Desarrollo de software dirigido por modelos: ¿quién quiere escribir código?

Imágen de pdf Desarrollo de software dirigido por modelos: ¿quién quiere escribir código?

Desarrollo de software dirigido por modelos: ¿quién quiere escribir código?gráfica de visualizaciones

Publicado el 14 de Enero del 2017
1.059 visualizaciones desde el 14 de Enero del 2017
520,0 KB
16 paginas
Creado hace 14a (01/10/2009)
Desarrollo de software
dirigido por modelos:

¿quién quiere escribir código?

Antonio Vallecillo

Universidad de Málaga

Ciudad Real, Abril 2006

Un recorrido por nuestra “historia”

Ensamblador

Registros: AX, BX, …
Segmentos: DS, SS, …
NOP
JMP
CALL
RETURN
Direcciones de memoria


• Demasiado bajo nivel
• Poca expresividad
• Programas muy complejos

Ciudad Real, Abril 2005

2

1

Luego surgió la prog. estructurada

Ensamblador
Prog. Estructurada

Estructuras de control:

if
while


Abstracción de
procedimientos

Lenguajes

Fortan
Pascal
C


• Demasiado bajo nivel
• Poca expresividad
• Programas muy complejos

Ciudad Real, Abril 2005

3

Aparecieron los objetos

Ensamblador
Prog. Estructurada
Prog. O. Objetos

Encapsulacion de datos y
comportamiento
Interacciones mediante

intercambio de mensajes

Mecanismos:
Herencia
Vinculación dinámica
Polimorfismo, …
Lenguajes:
Eiffel, Smalltalk, C++, Java,…
Analisis Orientado a Objetos
Diseño Orientado a Objetos
• Demasiado bajo nivel
• Poca expresividad
• Programas muy complejos

Ciudad Real, Abril 2005

4

2

Aparecen los componentes

Ensamblador
Prog. Estructurada
Prog. O. Objetos
Prog. O. Componentes

Distribución
Heterogeneidad
Packaging
Mecanismos:
Reflexión y Metadata
Polimorfismo paramétrico
“Home”, Contenedores,…
Lenguajes (IDLs), IDEs
Modelos y plataformas
J2EE, CORBA/CCM, .NET
CBSE!

• Demasiado bajo nivel
• Poca expresividad
• Programas muy complejos

El problema es la complejidad

Ciudad Real, Abril 2005

Maininframe
PC/NT apps
Unix apps
3rd Party Interface

Vendor Setup

Budget

Analysis Tool

AIS Calendar

Insertions
Orders

Broadcast

Filter

General

Maintenance

Invoice App

M03 - Millennium 3.0

M02 - Millennium

P15 EES Employee

Change Notice

P14 On-line New

Hire Entry

P09 - P17
Cyborg

Intercept

V03- Mkt
Reactions

I35 - CEI

Rebate
Transfer

POS

S08 - Vertex

Sales
Tax

AIS Reports

Due Dates

Stores & Mrkts

Smart Plus
Smart Plus
Launcher

P16 - Tally Sheet

Stock Options

L02-Resource
Scheduling

Resumix

Cobra

ACH

CTS

Prodigy

Banks - ACH and Pos to

Pay

Plan Administrators
(401K, PCS, Life,
Unicare, Solomon

Smith Barney)

E02-Employee

Purchase

Scorecard - HR

P09

Bonus/HR

ASIS

Store
Monitor

Texlon 3.5

Vendor

Maintenance
Printer

Maintenance

Process Servers

(Imaging)

S20-Sales
Polling

Mesa Data

NEW Soundscan

NPD Group

AIG Warranty Guard

Printer PO

Print Costing

S07 - Cell
Phones

Equifax

A04 - Cust
Refund Chks

P01-

Employee
Masterfile

Frick
Co

V04-Sign
System

Spec Source
SKU Tracking

NPD,

SoundScan

Spec
Source

E13

E3 Interface

D01 Post Load

Billing

AAS

S01 - Sales
Corrections

I12 Entertainment

Software

CTO2

U18 - CTO

B01 - Stock

Status

Roadshow

Sterling VAN
Mailbox (Value)

I06 - Customer

Order

I13- Auto

Replenishment

Depository

Banks

UAR - Universal Account

Reconciliation

Fringe PO

I17 Customer Perceived

In-Stock

I15 Hand Scan

Apps

I06 Warehouse
Management

S04 - Sales Posting

I03 Return to

Vendor

S06 - Credit App

I04 Home
Deliveries

I09 Cycle Counts

I55 SKU

Information

E01-EDI

1

I10 Cycle Physical

Inventory

S02 -

Layaways

K02

Customer Repair

Tracking

S09 - Digital

Satellite
System

S11 - ISP
Tracking

I11 Price
Testing

L60 MDF

Coop

I07 Purchase

Order

NARM

I14 Count Corrections

EDI

Coordinator

Cellular
Rollover

OTHER APPS - PC

AP - Collections/Credit
TM - Credit Card DB

L01-Promo
Analysis

V02-Price
Marketing
Support

I02 -

Transfers

Supplier

Compliance

I01 PO
Receiving

I35 Early Warning

System

Valley Media

Journal Entry Tool Kit

Washington,

RGIS,

Ntl Bus Systems

X92-X96

Host to AS400
Communication

SKU

Performance

SKU Selection

Tool

Arthur Planning

Ad Expense

Store

Scorecard

Store Budget

Reporting

BMP - Bus

performance Mngt

INVENTORY CONTROL APPS - PC

INVENTORY CONTROL APPS - PC

DPI/CPI

IC Batching

Inventory Adj/Count Correct
Inventory Control Reports

Inventory Levels
Inventory Roll

Merchandise Withdrawal

Open Receivings
PI Count Results

PI Time Results from Inv

Price Protection

Sales Flash Reporting

Shrink Reporting
SKU Gross Margin

SKU Shrink Level Detail

USM

VCB Downloads

ACCTS REC APPS - PC

990COR
Bad Debt

Beneficial Fees

Beneficial Reconcile

JEAXF
JEBFA
JEBKA
JEDVA
JESOA
JEVSA
JEVSF
NSF

TeleCredit Fees

Code Alarm

Debit Receivings

Devo Sales

Display Inventory

In Home
Junkouts

Promo Credits
RTV Accrual

Shrink

Merchandise Withdrawal

AP Research - Inv Cntrl
AP Research-Addl Rpts

Book to Perpetual Inventory

Close Out Reporting

Computer Intelligence Data

Count Corrections

Cross Ref for VCB Dnlds

Damage Write Off
Debit Receivings

DFI Vendor Database

Display Inventory Reconcile
Display Inventory Reporting

S03-Polling

V01-Price Management

System

I05

Inventory Info

I18

SKU Rep

G02 - General

Ledger

ELT

PowerSuite

Sign
System

U16-Texlon

CopyWriter's
Workspace

B02 Merchandise

Analysis

Merch Mngr Approval

Batch Forecasting
Ad Measurement

AIMS Admin

Ad

Launcher

Data Warehouse

(Interfaces to and from the
Data Warehouse are not
displayed on this diagram)

A05 - AP

AIMS

AIMS

Reporting

PSP

In-Home
Repair

Warranty
Billing
System

C02 - Capital

Projects

F06 - Fixed

Assets

Star Repair

Optika

SiteSeer

US Bank Recon

File

S05 - House

Charges

Connect 3

ICMS Credit

Connect 3
PDF Transfer

Connect 3
Reports

Cash Over/

Short

Cash Receipts/Credit

COBA

Misc Accounting/Finance Apps - PC/NT
(Corp office Budget Assistant)
PCBS(Profit Center Budget System)
Merchandising Budget

Diseño de una Aplicación Real (Retail)

Ciudad Real, Abril 2005

5

6

3

Otra variante de la POO: los aspectos

Ensamblador
Prog. Estructurada
Prog. O. Objetos
Prog. O. Componentes
Prog. O. Aspectos

Crosscutting concerns
Nuevos conceptos:
Aspecto
Joint point
Weaving

Lenguajes O. aspectos
AspectJ, …
AOSD!
Early aspects
Aspectos y componentes

• Demasiado bajo nivel
• Poca expresividad
• Programas muy complejos

Ciudad Real, Abril 2005

7

Y ahora los servicios

Ensamblador
Prog. Estructurada
Prog. O. Objetos
Prog. O. Componentes
Prog. O. Aspectos
Prog. O. Servicios

Mayor interoperabilidad
Menor acoplamiento
Alta disponibilidad
Nuevos conceptps
Web Services
WSDL, SOAP, UDDI,…
Semantic Web Services
BPEL
“Servicio”
Service Bus
SOA!

• Demasiado bajo nivel
• Poca expresividad
• Programas muy complejos

Ciudad Real, Abril 2005

8

4

Y después?

Ensamblador
Prog. Estructurada
Prog. O. Objetos
Prog. O. Componentes
Prog. O. Aspectos
Prog. O. Servicios
Prog. O. Eventos
Prog. O. X???
Prog. O. Y???
Prog. O. Z???

Ciudad Real, Abril 2005









• Demasiado bajo nivel
• Poca expresividad
• Programas muy complejos

¿Qué hacemos con esto?

Es preciso romper ese nudo “Gordiano”
La programación no debe ser el centro de
atención. Hay que elevar NOTABLEMENTE el
nivel de abstracción
¿Cómo se hace en otras ingenierías más
maduras?

Ingenierías civiles (caminos, canales, puertos, …)
Arquitectura y construcción
Ingeniería aeronáutica y del espacio


Ciudad Real, Abril 2005

9

10

5

Las ingenierías tradicionales

usan “modelos”

Tan antiguos como las Ingenierías (p.e. Vitruvius)

Los ingenieros tradicionales siempre construyen modelos
antes de construir sus obras y artefactos

Los modelos sirven para:

Especificar el sistema
• Estructura, comportamiento,…
• Comunicarse con los distintos stakeholders
Comprender el sistema (si ya existe)
Razonar y validar el sistema
• Detectar errores y omisiones

en el diseño

• Prototipado (ejecutar el modelo)
• Inferir y demostrar propiedades
Guiar la implementación

Ciudad Real, Abril 2005

11

Características de los modelos

Abstractos

Comprensibles

Expresados en un lenguaje
comprensible por por los
usuarios y stakeholders

Precisos

Fieles representaciones del
objeto o sistema modelado

Predictivos

Deben de poder ser usados
para inferir conclusiones
correctas

Baratos

Enfatizan ciertos aspectos, mientras que ocultan otros

[Selic, 2003]

Mas fáciles y baratos de construir y estudiar que el propio sistema

Ciudad Real, Abril 2005

12

6

Limitaciones actuales de los modelos

(de software)

Sólo se usan como documentación

Que además no se actualiza!

“Gap” entre el modelo y la implementación del sistema
Grandes diferencias semánticas en los lenguajes respectivos
No hay herramientas de propagación automática de cambios

• Cambios en el modelo no se reflejan en el código
• Cambios en el código no se reflejan en el modelo

(el modelo no vuelve a usarse jamás tras la primera implementación)

Los distintos modelos del sistema no se armonizan

Suponen vistas de un mismo sistema, pero no hay forma de relacionarlas
No hay herramientas de integración de modelos
Cada lenguaje de vista tiene una semántica distinta del resto (*)

No hay ni lenguajes ni herramientas para manejar modelos

Solo editores, pero no hay “compiladores”, “optimizadores”,
“validadores”, “transformadores de modelos”, etc.

¿Estamos realmente hablando de Ingeniería (del software)??

Ciudad Real, Abril 2005

13

The Remarkable Thing about

Software

Software has the rare property that it allows us
to directly evolve models into full-fledged
implementations without changing the
engineering medium, tools, or methods

[John Hogg, 2003]

Esto facilita enormemente garantizar la fiabilidad entre los modelos y
los sistemas producidos, puesto que todos viven en el mismo mundo

Corolario: El modelo es la implementación.
Salvedad: Sólo si el modelo contiene toda la información necesaria
para producir el sistema

Ciudad Real, Abril 2005

14

7

¿Qué es un modelo (de software)?

A description of (part of) a system written in a well-defined
language. (Equivalent to specification.) [Kleppe, 2003]
A representation of a part of the function, structure and/or
behavior of a system [MDA, 2001]
A description or specification of the system and its environment
for some certain purpose. A model is often presented as a
combination of drawings and text. [MDA Guide, 2003]
A set of state
  • Links de descarga
http://lwp-l.com/pdf1066

Comentarios de: Desarrollo de software dirigido por modelos: ¿quién quiere escribir código? (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad