Publicado el 14 de Enero del 2017
1.199 visualizaciones desde el 14 de Enero del 2017
520,0 KB
16 paginas
Creado hace 15a (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
Comentarios de: Desarrollo de software dirigido por modelos: ¿quién quiere escribir código? (0)
No hay comentarios