Presentation is loading. Please wait.

Presentation is loading. Please wait.

Technieken van de Software Architectuur, VUB ‘98-’99, Part 21 Part 2: Component and Framework Reuse Technieken van de Software Architectuur.

Similar presentations


Presentation on theme: "Technieken van de Software Architectuur, VUB ‘98-’99, Part 21 Part 2: Component and Framework Reuse Technieken van de Software Architectuur."— Presentation transcript:

1 Technieken van de Software Architectuur, VUB ‘98-’99, Part 21 Part 2: Component and Framework Reuse Technieken van de Software Architectuur

2 Technieken van de Software Architectuur, VUB ‘98-’99, Part Object-oriented Domain Engineering

3 Technieken van de Software Architectuur, VUB ‘98-’99, Part 23 Goals 4Learn about “the big picture” of reuse 4Learn about variabilities and commonalities 4Learn about components and frameworks 4Learn about reuse in OO

4 Technieken van de Software Architectuur, VUB ‘98-’99, Part 24 Software Development Success Stories 4Building applications from components bought on the “components market- place”. 4Documented levels of 50-90% reuse. 4From hand-crafted, single systems to software components and product lines. Has our problem been solved ? 

5 Technieken van de Software Architectuur, VUB ‘98-’99, Part 25 Basis of Success 4Systematic approach to reuse ! »reuse is planned »organizational/process models for reuse »use of object-orientation as a basis for components and frameworks »analysis/design for reuse Success is not so much because object-orientation is used, but the way object-orientation is used!

6 Technieken van de Software Architectuur, VUB ‘98-’99, Part 26 Reuse must be Planned 4in a particular domain or vertical market (finance, planning, group discussion,...) 4variants of one application 4applications based on a common core 4… … much like product lines in, e.g., consumer electronics, car manufacturing, computers,... Building applications…

7 Technieken van de Software Architectuur, VUB ‘98-’99, Part 27 Application Systems An application system is a well engineered system product delivered outside of the developer organization that offers a coherent set of services (use cases) to an end user. The product as delivered to a particular client. 

8 Technieken van de Software Architectuur, VUB ‘98-’99, Part 28 Example: LAN Application System Node WorkStation Node OutputServer #John from: #John to: #Printer1 bla bla bla bla accept: packet #Printer1 packet End user: LAN expert Services: simulations

9 Technieken van de Software Architectuur, VUB ‘98-’99, Part 29 LAN classes Workstation originate (p : Packet) Printserver print (p : Packet) Node name accept(p:Packet) send(p:Packet) 1 nextNode 1 Packet originator addressee contents

10 Technieken van de Software Architectuur, VUB ‘98-’99, Part 210 Node

11 Technieken van de Software Architectuur, VUB ‘98-’99, Part 211 Workstation

12 Technieken van de Software Architectuur, VUB ‘98-’99, Part 212 Printserver

13 Technieken van de Software Architectuur, VUB ‘98-’99, Part 213 Packet Use of accessor and mutator methods. This is good OO coding practice !

14 Technieken van de Software Architectuur, VUB ‘98-’99, Part 214 Application Families 4An application system family is a set of application systems with common features »application system suite: applications that are intended to work together (e.g. MS Office) »application system variants (e.g. viruses and virus scanners) »application systems that share certain foundations or are interoperable in some way (e.g. running on the same windowing system)

15 Technieken van de Software Architectuur, VUB ‘98-’99, Part 215 Variations in an Application Family 4Different application systems can be distinguished from similar systems on the basis of the functionality, services and many other features they offer. 4In general any distinguishing characteristic can be a feature — “a difference that makes a difference” cfr. Mark Simos

16 Technieken van de Software Architectuur, VUB ‘98-’99, Part 216 Application Families we Know About ??

17 Technieken van de Software Architectuur, VUB ‘98-’99, Part 217 LAN Simulations Application Family 4Application family of different LAN simulations 4Variations on »nodes and outputservers »packets and packet delivery services »addressing schemes »network topology: ring, gateways, … »simulation services: logging, tracing,...

18 Technieken van de Software Architectuur, VUB ‘98-’99, Part 218 Software Models: Component Systems A component system is a system product that offers a set of reusable features. Features are implemented as related and interconnected sets of components of various types, associated packages and descriptive documents.

19 Technieken van de Software Architectuur, VUB ‘98-’99, Part 219 Components are the Units of Reuse 4A component is a type, class or any other work product that has been specifically designed to be reusable »classes, collaborations, use cases, models,... 4Designed, packaged and documented to be reusable »components have an interface 4Different reuse mechanisms imply different components »inheritance  class (source code level) »copy-past-reuse  anything »CORBA  class (executable level)

20 Technieken van de Software Architectuur, VUB ‘98-’99, Part 220 LAN Component System Node Packet PSPrinter ASCIIPrinter Components MyPacket 4Components = classes 4Connections = message passing

21 Technieken van de Software Architectuur, VUB ‘98-’99, Part 221 Software Process: Domain Engineering Domain Analysis Domain Design Domain Implementation Domain Engineering Application Engineering Application Analysis Application Design Application Implementation

22 Technieken van de Software Architectuur, VUB ‘98-’99, Part 222 Clear Separation of Concerns (SOC) natural decomposition »“the program looks like the design” »synergy among –problem structure –design concepts –implementation components »concerns are cleanly localized in both design and implementation »concerns are explicitly handled

23 Technieken van de Software Architectuur, VUB ‘98-’99, Part 223 The Code

24 Technieken van de Software Architectuur, VUB ‘98-’99, Part 224 The Design Workstation originate (p : Packet) Printserver print (p : Packet) Node name accept(p:Packet) send(p:Packet) 1 nextNode 1 Packet originator addressee contents

25 Technieken van de Software Architectuur, VUB ‘98-’99, Part 225 All is Well 4Design is natural 4Code looks like design 4Good separation of concerns PrintServer Node Packet PrintServer Node Packet

26 Technieken van de Software Architectuur, VUB ‘98-’99, Part 226 But, but, but,... Variations on 4nodes and outputservers 4packets ?packet delivery services ?addressing schemes ?network topology: ring, gateways, … ?simulation services: logging, tracing,... Does not address all concerns !

27 Technieken van de Software Architectuur, VUB ‘98-’99, Part 227 Reuse of Components in Isolation is not Enough 4Difficult to reuse application logic »e.g. logic for passing packets around »application logic is spread among different classes »application logic can only be reused by “Hollywood principle”: don’t call us we’ll call you 4Difficult to understand how components work together

28 Technieken van de Software Architectuur, VUB ‘98-’99, Part 228 Range of Component Systems in OO 4Classes are used in isolation 4Application calls library 4No template solution (no hot spots) 4Framework as a whole is reused 4Framework calls application 4Template solution Class LibraryFramework

29 Technieken van de Software Architectuur, VUB ‘98-’99, Part 229 LAN Framework Addressable- Node Active- Packet Address PSPrinter ASCIIPrinter Hot Spots 3 Abstract classes 3 Collaboration Contracts 3 Templates CountingPacket Broadcast- Packet

30 Technieken van de Software Architectuur, VUB ‘98-’99, Part 230 Frameworks are Component Systems 4A framework is a design for a set of classes that can be reused »consisting of abstract and concrete classes »emphasis on the collaboration between classes »a framework is an adaptable, reusable system 4A framework is not necessarily a working application »all abstract classes must be “filled in” with concrete ones first »the places where the framework must be “filled in” are called the hot spots

31 Technieken van de Software Architectuur, VUB ‘98-’99, Part 231 Conclusion 4Focus on application families/component systems »analyse, design and implement application families by focussing on commonalities and variabilities 4Object-oriented Domain Engineering »models: component systems –components = classes »process: separation of concerns –not all concerns can be cleanly localized in classes

32 Technieken van de Software Architectuur, VUB ‘98-’99, Part 232 References 4[Jacobson&al.1997]Jacobson, I., Griss, M., Jonsson, P., Software Reuse, Architecture, Process and Organization for Business Success, Addisson-Wesley, 1997.


Download ppt "Technieken van de Software Architectuur, VUB ‘98-’99, Part 21 Part 2: Component and Framework Reuse Technieken van de Software Architectuur."

Similar presentations


Ads by Google