Download presentation
Presentation is loading. Please wait.
1
Eduardo Santana de Almeida www.cin.ufpe.br/~esa2 esa2@cin.ufpe.br Aspects of scale and granularity
2
“It is difficult to reduce these obervations to a rule of thumb as to what granulatiry is right. Instead, it is probably best to use the discussed aspects to perform a detailed analysis for specific cases”. Clemens Szyperski, pp. 150, section 8.6
3
Units of abstraction Benefit expertise for reuse Framework Black-box (unit of abstraction) …classes, components component {unit of deployment} conventional framework nested frameworks cyclic dependency pre-condition
4
Units of accounting Costs individual blocks the granularity problem COTS, reenginering, development…
5
Units of analysis Divide et impera Modular x Global analysis modular global {component version check} classes, methods…. “The unit of analysis can never be bigger than the unit of deployment; thus a component is the largest possible unit of (complete) analysis”. Clemens Szyperski, pp.142, section 8.3
6
Units of compilation Full interpretation, mixed compilation and interpretation, just-in- time compilation, ….. Units components {the limit} modules {component version check} classes
7
Units of delivery Components and applications contracts, documentation….($)
8
Units of deployment Deployment is the process of readying a unit for operation in a particular environment deployment x installation context/container-based platforms {beans} deployment descriptor
9
Units of dispute Component-based systems: Fails have occurred…Who are the responsible? fail propagation exceptions contracts
10
Units of fault containment Distributed systems networks, machines Fault tolerance redundancy physical temporal {transaction monitor}
11
Units of installation Installation is a platform-specific activity that makes an installed unit available for use on a particular hardware configuration supported by that platform pp. 147, section 8.11 Installation (hardware) x Deployment (platform)
12
Units of loading Local x network component load Problems versions {class, interface, method} recovery name collisions name schemes, globally unique identifiers (GUIDs) Observable state COM, CLR {side-by-side installation and loading} problem
13
The problem – transitive dependencies B depends on version 1 of component A C depends on version 2 of component A B and C expose definitions from A in their signature D needs to use B and C – 1 and 2 versions
14
Units of locality Distributed computing tradeoff minimize communication cost x distribution to maximize resource utilization cross process – in process – lans distributed components caching Units of maintenance and management problems tradeoffs
15
Eduardo Santana de Almeida www.cin.ufpe.br/~esa2 esa2@cin.ufpe.br Patterns, frameworks, architecture
16
Forms of design- level reuse Sharing: consistency: programming and scripting languages concrete solution fragments: libraries contracts: interfaces individual interaction fragments: messages and protocols interaction architectures: patterns subsystem architecture: frameworks overall structure: system architectures
17
Programming languages Difficulty x Flexibility Features static type systems, polymorphism functions exceptions classes, inheritance memory management concurrency …..
18
Libraries Reuse APIs
19
Interfaces Messages and protocols Patterns – Design patterns x frameworks Frameworks – black-box, white-box – top down, bottom up, pattern driven, target driven
20
System architecture Strict layer approach Operating system Hardware Device driv. OS Kernel Libraries Applications Downsides: Extensibility Performance
21
System architecture Non-Strict layer approach
22
Interoperability, legacy and reengineering Legacy systems the problems cbd architecture benefits {refactoring} Interoperability OO Legacy sistems FAMOOS
23
Eduardo Santana de Almeida www.cin.ufpe.br/~esa2 esa2@cin.ufpe.br Aspects of scale and granularity
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.