Page 1 Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based Systems Chapter 3 Architecting Component-Based Systems.

Slides:



Advertisements
Similar presentations
Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Software Systems.
Advertisements

Architecture Representation
Lecture # 2 : Process Models
By Xiangzhe Li Thanh Nguyen.  Components and connectors are composed in a specific way in a given system’s architecture to accomplish that system’s objective.
© 2005 Prentice Hall6-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
Basic Concepts in Component-Based Software Engineering
Page 1 Building Reliable Component-based Systems Chapter 16 - Component based embedded systems Chapter 16 Component based embedded systems.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
The Architecture Design Process
Essential Software Architecture Ian Gorton CS590 – Winter 2008.
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Page 1 Building Reliable Component-based Systems Chapter 18 - A Framework for Integrating Business Applications Chapter 18 A Framework for Integrating.
Page 1, July 3, 2015 CBSE – graduate course Component-Based Software Engineering Building reliable component-based systems Overview
Software Architecture Quality. Outline Importance of assessing software architecture Better predict the quality of the system to be built How to improve.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Course Instructor: Aisha Azeem
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.
Domain-Specific Software Engineering Alex Adamec.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
What is Software Architecture?
Chapter 8 Architecture Analysis. 8 – Architecture Analysis 8.1 Analysis Techniques 8.2 Quantitative Analysis  Performance Views  Performance.
An Introduction to Software Architecture
Software System Engineering: A tutorial
Chapter 6 : Software Metrics
Computer Systems & Architecture Lesson Software Architecture in the Future.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
10 Software Architecture CSCU 411 Software Engineering.
Lecture 7: Requirements Engineering
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering 1.
Design Principle & Patterns by A.Surasit Samaisut Copyrights : All Rights Reserved.
Developing Component- Based Systems X LIU, School of Computing, Napier University TIP This chapter discusses the techniques to develop component-based.
John D. McGregor Class 4 – Initial decomposition
Rational Unified Process Fundamentals Module 7: Process for e-Business Development Rational Unified Process Fundamentals Module 7: Process for e-Business.
Software Architecture Evaluation Methodologies Presented By: Anthony Register.
Page 1, December 8, 2015 CBSE – graduate course Component-Based Software Engineering Building reliable component-based systems Overview
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Designing a Product Line Architecture Jan Bosch Professor of Software Engineering University of Groningen, Netherlands
Overview of SAIP and LSSA. Software Architecture in Practice Provides a set of techniques, not a prescriptive method for architectural design. Based on.
Architectural Design Introduction Design has been described as a multistep process in which representations of data and program structure,
Software Architecture Design Processes
Software Architecture in the Future 1960s. Assembly languages, subroutines, semicolon as connectors 1970s. Structuring of programs to achieve qualities.
CSCE 240 – Intro to Software Engineering Lecture 2.
Page 1 Building Reliable Component-based Systems Chapter 9 - Component Composition and Integration Chapter 9 Component Composition and Integration.
Object-Oriented Software Engineering Chapter 1 Software and Software Engineering.
Software Architecture Transformation Jan Bosch Professor of Software Engineering University of Groningen, Netherlands
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Basic Concepts and Definitions
Chapter : 9 Architectural Design
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Visual Basic.NET Comprehensive Concepts and Techniques Chapter 1 An Introduction to Visual Basic.NET and Program Design.
 System Requirement Specification and System Planning.
Software Design Process. What is software? mid-1970s executable binary code ‘source code’ and the resulting binary code 1990s development of the Internet.
Why is Design so Difficult? Analysis: Focuses on the application domain Design: Focuses on the solution domain –The solution domain is changing very rapidly.
Quality Management chapter 27.
Software Design and Architecture
Advance Software Engineering
TIM 58 Chapter 8: Class and Method Design
Software Project Planning &
Software Connectors – A Taxonomy Approach
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Software Metrics “How do we measure the software?”
An Introduction to Software Architecture
Software Architecture
Chapter 1: Software and Software Engineering
Presentation transcript:

Page 1 Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based Systems Chapter 3 Architecting Component-Based Systems

Page 2 Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based Systems Overview qThe Role of Software Architecture qDesigning Software Architectures qArchitecture-driven Component Development qComponent-driven Architecture Development qSummary

Page 3 Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based Systems The Software Architecture “The software architecture of a program or computing system is the structure or structures of the system, which comprise software components [and connectors], the externally visible properties of those components [and connectors] and the relationships among them.”

Page 4 Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based Systems The Role of the Software Architecture q The main uses of a software architecture are: l Assessment and evaluation l Configuration management l Dynamic software architectures

Page 5 Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based Systems Assessment and Evaluation q Stakeholder-based assessment l Is concerned with determining whether the trade-offs between requirements in the software architecture match the actual stakeholder priorities of these requirements. q Examples l SAAM l ATAM

Page 6 Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based Systems Assessment Continued q Quality-attribute oriented assessment l Aims at providing a quantitative prediction of one quality attribute (e.g. maintainability, performance, reliability or security)

Page 7 Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based Systems Configuration Management qThe software architecture is frequently used as a means to manage the configuration of the product.

Page 8 Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based Systems Dynamic Software Architectures qThe software architecture should reorganize itself in response to the dynamic change of the systems quality requirements. q Maintained even during run-time.

Page 9 Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based Systems Designing Software Architectures qArchitecture Design Process qArchitectural Styles

Page 10 Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based Systems Architecture Design Process q Can be seen as a function that: l Takes a requirement specification as input. l Generates an architectural design as output. l Is not an automated process, necessitating great effort and creativity from the involved software architects. q Is comprised of three steps: l Functionality-based design. l Assessment of the quality attributes. l Architecture Transformation.

Page 11 Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based Systems General software architecture design process Application architecture Requirement specification Requirement selection Functionality-based architectural design (Partial) requirement specification Estimate quality attributes Architecture transformation QA-optimizing solutions More Requirements? OK Yes no not OK F.R.

Page 12 Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based Systems Functionality-based Design q The design process starts with functionality-based design and consists of four steps: l Defining the boundaries and context of the system. l Identification of archetypes. l Decomposition of the system into its main components. l The first validation of the architecture by describing a number of system instances.

Page 13 Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based Systems Assessment of the quality attributes q The second phase is the assessment of the quality attributes in which: l Each quality attribute is given an estimate. l If all estimated quality attributes are as good or better than required, the architectural design process is finished. l If not the third phase of software architecture design is entered: architecture transformation

Page 14 Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based Systems Architecture Transformation qIs concerned with selecting design solutions to improve the quality attributes while preserving the domain functionality. l The design is again evaluated and the same process is repeated if necessary. l The transformations (i.e. quality attribute optimizing solutions) generally improve one or some quality attributes while they affect others negatively.

Page 15 Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based Systems Architecture transformation categories Impose architectural pattern Convert QR to functionality Apply Design pattern Impose architectural style ComponentArchitecture Scope of impact Transformation type Restructuring Added functionality, rules and/or constraints

Page 16 Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based Systems Architectural Styles qAre structures that recur and are used to solve specific types of problems. These include: l Pipes and Filters l Blackboard l Object-oriented qSystem-level quality attributes can often be predicted based on the observation of certain architectural styles in a system’s architecture.

Page 17 Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based Systems Architectural Styles Continued q In some cases it is possible to moderate the degree to which a quality attribute is affected by using a variant of the style. qIt is also possible for a particular variant of a style to have both positive and negative affects on a given quality attribute

Page 18 Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based Systems Architectural Styles Considered PerformanceMaintainabilityReliabilit y Safet y Securit y Pipes and Filters+ – ––+ Blackboard–++ –– Object-Oriented+ – +

Page 19 Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based Systems Architecture-driven Component Development qThe goal for the embodiment phase of design is to either build or select components and connectors that possess the quality attributes identified during the architecting phase of development. q Three types of components: l Custom built components l Reusable components l Commercial components

Page 20 Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based Systems Custom Components q Demands both time and money. q Are most likely to pay off in cases of software that are: l Very unusual l Safety critical l Highly secure q The component assembly will possess the quality attributes it was designed around.

Page 21 Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based Systems Pre-existing Components q There are two main classes of pre-existing components: l Reusable components l Commercial components q Is a fundamentally different problem than custom design. l The requirements to use specific components and component frameworks drive the architecture.

Page 22 Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based Systems Reusable Components qCan exist on a wide scale of reusableness within any organization. qThey must be adapted; l In most cases it will be necessary to create adaptors, often referred to as glue code. qAre developed with reuse in mind. q Product line development exemplifies the use of pre- planned reusable components.

Page 23 Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based Systems Commercial Components q Introduce a large degree of uncertainty. q Tend to be l Complex l Idiosyncratic l Unstable

Page 24 Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based Systems Component-driven Architecture Development qConstraints due to the use of pre-existing components: l Design freedom is limited to component selection. l Sufficient information about how a component will behave is not generally provieded. l Component properties must be verified. l The framework into which components are to be plugged influences the architecture and the process by which the system is designed. l Such components can not be optimized.

Page 25 Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based Systems Component-driven Architecture Development qIt is expected that more reliable systems will be produced, with greater speed and at lower expense due to the restrictions on design freedom.

Page 26 Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based Systems Summary q Components and Software Architectures form two sides of the same coin. q Software architecture has multiple roles: l May be used for stakeholder-, expert-, or quality attribute-oriented assessment. l May be used for configuration management. l May be used to dynamically reorganize the system at run time (i.e. dynamic software architectures).

Page 27 Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based Systems Summary Continued q Design of software architectures consists of three main phases. l functionality-based architectural design l software architecture assessment l architecture transformation

Page 28 Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based Systems Summary Concluded q Three types of software components: l Custom l Reusable l Commercial components.