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

Slides:



Advertisements
Similar presentations
Chapter 7 System Models.
Advertisements

Requirements Engineering Process
IS301 – Software Engineering V:
Introduction to Product Family Engineering. 11 Oct 2002 Ver 2.0 ©Copyright 2002 Vortex System Concepts 2 Product Family Engineering Overview Project Engineering.
Properties of Logarithms
Week 2 The Object-Oriented Approach to Requirements
Real Time Versions of Linux Operating System Present by Tr n Duy Th nh Quách Phát Tài 1.
RDA Test Train the Trainer Module 2: Structure [Content as of Mar. 31, 2010]
By Waqas Over the many years the people have studied software-development approaches to figure out which approaches are quickest, cheapest, most.
Thermodynamics and Statistical Mechanics Equations of State.
1 A Graph Rewriting Formalism for Object-Oriented Software Evolution Tom Mens FWO Postdoctoral Fellow Programming Technology Lab Vrije.
Technieken van de Software Architectuur, VUB ‘98-’99, Part 11 Technieken van de Software Architectuur Patrick Steyaert
Component-Based Software Engineering Main issues: assemble systems out of (reusable) components compatibility of components.
3442 Industrial Instruments 2 Chapter 7 Final Control
BPS - 5th Ed. Chapter 21 Describing Distributions with Numbers.
Ch.21 Software Its Nature and Qualities. Ch.22 Outline Software engineering (SE) is an intellectual activity and thus human-intensive Software is built.
Lecture 6: Software Design (Part I)
The anthropophilic form of T. mentagrophytes and a common cause of tinea pedis, particularly the vesicular type, tinea corporis and sometimes superficial.
3442 Industrial Instruments 2 Chapter 8 Discrete-State Process Control
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Executional Architecture
RADIATION PROTECTION IN RADIOTHERAPY Part 10: Optimization of protection in External Beam Radiotherapy PRACTICAL EXERCISE IAEA Post Graduate Educational.
Chapter 11 Component-Level Design
Modeling Main issues: What do we want to build How do we write this down.
A component- and message-based architectural style for GUI software
1 IBM SanFrancisco Product Evaluation Negotiated Option Presentation By Les Beckford May 2001.
Satzinger, Jackson, and Burd Object-Orieneted Analysis & Design
Soft. Eng. II, Spring 02Dr Driss Kettani, from I. Sommerville1 CSC-3325: Chapter 6 Title : The Software Reuse Reading: I. Sommerville, Chap. 20.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Developed by Reneta Barneva, SUNY Fredonia Component Level Design.
The OSI Model A layered framework for the design of network systems that allows communication across all types of computer systems regardless of their.
Domain-Specific Software Engineering Alex Adamec.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
Collaborative Systems Developing Collaborative Systems with a Reuse Driven Process.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Software Engineering Muhammad Fahad Khan
Software Reuse Prof. Ian Sommerville
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Architectural Description Languages Patrick Steyaert
1 CS 456 Software Engineering. 2 Contents 3 Chapter 1: Introduction.
المحاضرة الثالثة. Software Requirements Topics covered Functional and non-functional requirements User requirements System requirements Interface specification.
TCP/IP Yang Wang Professor: M.ANVARI.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 09. Review Introduction to architectural styles Distributed architectures – Client Server Architecture – Multi-tier.
The OSI Model.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
Patterns and Reuse. Patterns Reuse of Analysis and Design.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 3: Basing Software Development on Reusable Technology.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
Logical view –show classes and objects Process view –models the executables Implementation view –Files, configuration and versions Deployment view –Physical.
Abstraction ADTs, Information Hiding and Encapsulation.
Basic Concepts of Object Orientation Object-Oriented Analysis CIM2566 Bavy LI.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Week 04 Object Oriented Analysis and Designing. What is a model? A model is quicker and easier to build A model can be used in simulations, to learn more.
Review of Parnas’ Criteria for Decomposing Systems into Modules Zheng Wang, Yuan Zhang Michigan State University 04/19/2002.
Developing Product Line Components Jan Bosch Professor of Software Engineering University of Groningen, Netherlands
February, 2000Programming Technology Lab, Vrije Universiteit Brussel Component and Framework Reuse Dr. Tom Mens Programming Technology Lab Vrije Universiteit.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Collaborative Systems Developing Collaborative Systems with a Reuse Driven Process.
 The Object Oriented concepts was evolved for solving complex problems. Object- oriented software development started in the 1980s. Object-oriented design.
Software Reuse. Objectives l To explain the benefits of software reuse and some reuse problems l To discuss several different ways to implement software.
Programming paradigms
2.3 Collaboration Contracts
Software Reuse ©Ian Sommerville 2006.
OO Methodology OO Architecture.
Object Oriented Concepts -I
Clayton Chang, Justin McCarron, Vincent Pai
FRAMEWORKS AND REUSE What is “Framework”?
Presentation transcript:

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

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

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

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 ? 

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!

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…

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. 

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

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

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

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

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

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

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)

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

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

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,...

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.

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)

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

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

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

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

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

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

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 !

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

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

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

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

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

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.