Developing Component- Based Systems X LIU, School of Computing, Napier University TIP This chapter discusses the techniques to develop component-based.

Slides:



Advertisements
Similar presentations
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
Advertisements

Applying Architectural Styles and Patterns. Outline  Defining Architectural Patterns and Style The activation model Styles and Quality Attributes  Common.
Chapter 14: Design Method --- data and architectural design Design -- A multistep process in which representations of data structure, program structure,
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Establishing the overall structure of a software system
Architectural Design Principles. Outline  Architectural level of design The design of the system in terms of components and connectors and their arrangements.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Software Architecture in Practice
Architectural Design, Distributed Systems Architectures
Course Instructor: Aisha Azeem
Chapter 10: Architectural Design
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Software Architecture premaster course 1.  Israa Mosatafa Islam  Neveen Adel Mohamed  Omnia Ibrahim Ahmed  Dr Hany Ammar 2.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Architectural Design.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Chapter 10 Architectural Design
Chapter 7: Architecture Design Omar Meqdadi SE 273 Lecture 7 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
1 Chapter 14 Architectural Design. 2 Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a.
1 COSC 4406 Software Engineering COSC 4406 Software Engineering Haibin Zhu, Ph.D. Dept. of Computer Science and mathematics, Nipissing University, 100.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
CS451 Lecture 13: Architectural Design Chapter 10
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 1 Architectural Design u Establishing the overall structure of a software system.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 10 Architectural Design.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.1.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
An Introduction to Software Architecture
Architectural Design portions ©Ian Sommerville 1995 Establishing the overall structure of a software system.
1 Chapter 14 Architectural Design 2 Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a.
Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a software engineer to: (1) analyze the.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
Lecture 9: Chapter 9 Architectural Design
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
SOFTWARE DESIGN.
Chapter 13 Architectural Design
Component frameworks Roy Kensmil. Historical trens in software development. ABSTRACT INTERACTIONS COMPONENT BUS COMPONENT GLUE THIRD-PARTY BINDING.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Architectural Design Yonsei University 2 nd Semester, 2014 Sanghyun Park.
Unit 2 Architectural Styles and Case Studies | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS 1.
ARCHITECTURAL DESIGN. Why is Architecture Important? Representations of software architecture are an enabler for communication between all parties (stakeholders)
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 10a: Architectural Design Software Engineering: A Practitioner’s Approach, 6/e Chapter 10a:
1 Supplementary Slides for Software Engineering: A Practitioner's Approach, 5/e Supplementary Slides for Software Engineering: A Practitioner's Approach,
CSC480 Software Engineering Lecture 10 September 25, 2002.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Architectural Design Introduction Design has been described as a multistep process in which representations of data and program structure,
Lecture VIII: Software Architecture
Chapter : 9 Architectural Design
Chapter 13 설계 개념 Architectural Design 임현승 강원대학교 Revised from the slides by Roger S. Pressman and Bruce R. Maxim for the book “Software Engineering: A Practitioner’s.
Chapter : 9 Architectural Design. Software Architecture What Is Architecture? The software architecture of a program or computing system is the structure.
1 Chapter : Architecture & User Interface Design.
Slide 1 Chapter 8 Architectural Design. Slide 2 Topics covered l System structuring l Control models l Modular decomposition l Domain-specific architectures.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 5:Architectural Design l Establishing the overall structure of a software.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Chapter 9 Architectural Design. Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a software.
1 Chapter 2: Architectural Design. 2 Introduction Structure or structures of the system, which comprise software components, the externally visible properties.
Chapter 13 Architectural Design
Architectural Design.
Chapter 13 Architectural Design
CHAPTER 2 CREATING AN ARCHITECTURAL DESIGN.
Software Connectors – A Taxonomy Approach
Chapter 9 Architectural Design
Software Architecture
Design Model Like a Pyramid Component Level Design i n t e r f a c d s
Chapter 13 Architectural Design
An Introduction to Software Architecture
Chapter 9 Architectural Design.
Software Engineering: A Practitioner’s Approach, 6/e Chapter 10 Architectural Design copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For.
Presentation transcript:

Developing Component- Based Systems X LIU, School of Computing, Napier University TIP This chapter discusses the techniques to develop component-based systems, i.e., architecture design, components and interface, component assembly, and testing.

What is architecture The software architecture of a program or computing system is the structure or structures of the system, which comprise software components, the externally visible properties of those components, and the relationships among them.The software architecture of a program or computing system is the structure or structures of the system, which comprise software components, the externally visible properties of those components, and the relationships among them.

What is architecture The architecture is not the operational software, rather, it is a representation that enables a software engineer toThe architecture is not the operational software, rather, it is a representation that enables a software engineer to –Analyze the effectiveness of the design in meeting its stated requirements –Consider architectural alternatives at a stage when making design changes is still relatively easy –Reducing the risks associated with the construction of the software

Why is architecture important Representations of software architecture are an enabler for communication between all parties interested in the development of a computer-based systemRepresentations of software architecture are an enabler for communication between all parties interested in the development of a computer-based system The architecture highlights early design decisions that will have a profound impact of all software engineering work that follows, and as important, on the ultimate success of the system as an operational entityThe architecture highlights early design decisions that will have a profound impact of all software engineering work that follows, and as important, on the ultimate success of the system as an operational entity Architecture constitutes a relatively small, intellectually graspable model of how the system is structured and how its components work togetherArchitecture constitutes a relatively small, intellectually graspable model of how the system is structured and how its components work together

Components and architecture A component system architecture consists ofA component system architecture consists of –a set of platform decisions –a set of component frameworks –an interoperation design for the component frameworks.

Platform A platform is the substrate that allows for installation of components and component frameworks, such that these can be instantiated and activated.A platform is the substrate that allows for installation of components and component frameworks, such that these can be instantiated and activated. A platform can be concrete or virtual.A platform can be concrete or virtual. Concrete platforms provide direct physical support, that is implement their services in hardwareConcrete platforms provide direct physical support, that is implement their services in hardware Virtual platforms, also called platform abstractions or platform shields, emulate a platform on top of another, introducing a cost-flexibility trade-off.Virtual platforms, also called platform abstractions or platform shields, emulate a platform on top of another, introducing a cost-flexibility trade-off. In practice, all platforms are virtual to some degree, and a sharp distinction is academic.In practice, all platforms are virtual to some degree, and a sharp distinction is academic.

Component Framework A component framework is a dedicated and focused architecture, usually around a few key mechanisms, and a fixed set of policies for mechanisms at the component level.A component framework is a dedicated and focused architecture, usually around a few key mechanisms, and a fixed set of policies for mechanisms at the component level. Component frameworks often implement protocols to connect participating components and enforce some of the polices set by the framework.Component frameworks often implement protocols to connect participating components and enforce some of the polices set by the framework. The polices governing the use of the mechanisms that are used by the framework itself are not necessarily fixed, instead, they can be left to higher-level architectures.The polices governing the use of the mechanisms that are used by the framework itself are not necessarily fixed, instead, they can be left to higher-level architectures.

Interoperation Design A interoperation design for component frameworks comprises the rules of interoperation among all the frameworks joined by the system architectureA interoperation design for component frameworks comprises the rules of interoperation among all the frameworks joined by the system architecture

The Structure of a Component A component is a set of normally simultaneously deployed atomic components.A component is a set of normally simultaneously deployed atomic components. The distinction between components and atomic components caters for the fact that most atomic components will never de deployed individually, although they could.The distinction between components and atomic components caters for the fact that most atomic components will never de deployed individually, although they could. Instead, most atomic components belong to a family of components and a typical deployment will cover the entire family.Instead, most atomic components belong to a family of components and a typical deployment will cover the entire family.

The Structure of a Component An atomic component is a module and a set of resourcesAn atomic component is a module and a set of resources Atomic components are the elementary units of deployments, versioning and replacement. Although usually deployed in groups, individual deployment is possible.Atomic components are the elementary units of deployments, versioning and replacement. Although usually deployed in groups, individual deployment is possible. A module is a set of classes and possible non- object-oriented constructs, such as procedures or functions.A module is a set of classes and possible non- object-oriented constructs, such as procedures or functions.

Architectural styles Any software system is based on certain architectural style.Any software system is based on certain architectural style. Each style describes a system category that encompasses:Each style describes a system category that encompasses: –A set of components that perform a function required by a system –A set of connectors that enable communication, coordinations and cooperation among components

Architectural styles –Constrains that define how components can be integrated to form the system –Semantic models that enable a designer to understand the overall properties of a system by analyzing the known properties of its constituent parts.

Architectural styles Data centered architecturesData centered architectures Data flow architecturesData flow architectures Call and return architecturesCall and return architectures Object-oriented architecturesObject-oriented architectures Layered architecturesLayered architectures Tiered component architectureTiered component architecture

Data centered architectures

Client software accesses a central repository.Client software accesses a central repository. In some cases, the data repository is passive, i.e., client software accesses the data independent to any changes to the data or the actions of other client software.In some cases, the data repository is passive, i.e., client software accesses the data independent to any changes to the data or the actions of other client software. A variation on this approach transforms the repository into a blackboard that sends notifications to client software when data of interest to the client changes.A variation on this approach transforms the repository into a blackboard that sends notifications to client software when data of interest to the client changes.

Data centered architectures Data centered architectures promote integrability. Existing components can be changed or new client components can be added to the architecture without concern about other clients because the components operate independently.Data centered architectures promote integrability. Existing components can be changed or new client components can be added to the architecture without concern about other clients because the components operate independently. In addition, data can be passed among clients using the blackboard mechanism, i.e., the blackboard component serves to coordinate the transfer of information between clients.In addition, data can be passed among clients using the blackboard mechanism, i.e., the blackboard component serves to coordinate the transfer of information between clients. Client components are independently executing processes.Client components are independently executing processes.

Data flow architectures

A pipe and filter pattern has a set of components, called filters, connected by pipes that transmit data from one component to the next.A pipe and filter pattern has a set of components, called filters, connected by pipes that transmit data from one component to the next. Each filter works independently of those components upstream and down stream; is designed to expect data input of a certain form, and produces data output to the next filter of a specified form.Each filter works independently of those components upstream and down stream; is designed to expect data input of a certain form, and produces data output to the next filter of a specified form.

Data flow architectures However, the filter does not require knowledge of the working of its neighboring filters.However, the filter does not require knowledge of the working of its neighboring filters. If data flow degenerates into a single line of transform, it is termed batch sequential. This pattern accepts a batch of data and then applies a series of sequential components to transform it.If data flow degenerates into a single line of transform, it is termed batch sequential. This pattern accepts a batch of data and then applies a series of sequential components to transform it.