1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.

Slides:



Advertisements
Similar presentations
Dr. Rogelio Dávila Pérez
Advertisements

Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Software Systems.
ARCH-05 Application Prophecy UML 101 Peter Varhol Principal Product Manager.
By Philippe Kruchten Rational Software
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Outline About author. The problem that discussed in the article.
OBJECT ORIENTED PROGRAMMING M Taimoor Khan
UML Static diagrams. Static View: UML Component Diagram Component diagrams show the organization and dependencies among software components. Component:
Software Architecture for DSD DSD Team. Overview What is software architecture and why is it so important? The role of architecture in determining system.
The Architecture Design Process
Recall The Team Skills 1. Analyzing the Problem (with 5 steps) 2. Understanding User and Stakeholder Needs 3. Defining the System 4. Managing Scope 5.
Software Architecture in Perspective SENG 480/580 (H. Muller) Today: Margaret-Anne Storey
Essential Software Architecture Ian Gorton CS590 – Winter 2008.
Software Architecture in Practice
1 / 26 CS 425/625 Software Engineering Architectural Design Based on Chapter 11 of the textbook [SE-8] Ian Sommerville, Software Engineering, 8t h Ed.,
Software Architecture in Practice
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. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?
Software Architecture premaster course 1.  Israa Mosatafa Islam  Neveen Adel Mohamed  Omnia Ibrahim Ahmed  Dr Hany Ammar 2.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Architectural Design.
What is Software Architecture?
Software Architecture in Practice (3rd Ed) Introduction
Chapter 10 Architectural Design
Documenting Software Architectures
Design and Architecture of Complex Software Systems Conf.dr.ing. Ioana Şora
An Introduction to Software Architecture
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department of Defense © 1998 by Carnegie Mellon.
What is Software Architecture? | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS Chapter 2, Authors: Len Bass, Paul,
1 Introduction to Software Architectures Lecture - 3.
SOFTWARE SYSTEMS DEVELOPMENT 4: System Design. Simplified view on software product development process 2 Product Planning System Design Project Planning.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
10 Software Architecture CSCU 411 Software Engineering.
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
Architectural Design lecture 10. Topics covered Architectural design decisions System organisation Control styles Reference architectures.
Lecture 7: Requirements Engineering
Architectural Design Yonsei University 2 nd Semester, 2014 Sanghyun Park.
An Introduction to Software Architecture Software Engineering Lab.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Documenting Software Architectures 1.Uses and Audiences for Architecture Documentation Architecture documentation serves as a means of education Architecture.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
John D. McGregor Class 4 – Initial decomposition
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 10a: Architectural Design Software Engineering: A Practitioner’s Approach, 6/e Chapter 10a:
CSC480 Software Engineering Lecture 10 September 25, 2002.
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Overview of SAIP and LSSA. Software Architecture in Practice Provides a set of techniques, not a prescriptive method for architectural design. Based on.
Object Oriented Analysis and Design 1 Chapter 9 From Design to Implementation  Implementation Model  Forward, Reverse, and Round-Trip Engineering  Mapping.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
CSC 480 Software Engineering High Level Design. Topics Architectural Design Overview of Distributed Architectures User Interface Design Guidelines.
Basic Concepts and Definitions
4+1 View Model of Software Architecture
CS223: Software Engineering Lecture 13: Software Architecture.
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
Wrap up. Structures and views Quality attribute scenarios Achieving quality attributes via tactics Architectural pattern and styles.
TAL Lecture 1 Introduction to Software Architecture
Unit-1 INTRODUCTION Presented by Sushma Narasimhan Asst. Professor,
OO Methodology OO Architecture.
Part 3 Design What does design mean in different fields?
Design and Architecture of Complex Software Systems
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Design Model Like a Pyramid Component Level Design i n t e r f a c d s
An Introduction to Software Architecture
Software Architecture
Design Yaodong Bi.
Presentation transcript:

1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University

Outline 1. What Software Architecture is and What isn’t 2. Other Points of View 3. Architectural Patterns, Reference Models, and Reference Architecture 4. Why is Software Architecture Important? 5. Architectural Structures and Views 6. Summary 2

What is Software Architecture? Lecture: 2 3

1. What is Software Architecture? Quite often shown as box-and-arrow diagrams 4 Control Process (CP) Prop Loss Model (MODP) Reverb Model (MODR) Noise Model (MODN)

What is Missing? What is the nature of the elements? What are the responsibilities of the elements? What is the significance of the connections? What is the significance of the layout? Unless we know precisely what the elements are & how they cooperate to accomplish the purpose of the system, this diagram is unhelpful! 5

Definition Again Definition; The software architecture of a program is the structure or structures of the system, which comprise software elements, the externally visible properties of these elements, and the relationships among them We see the elements (CP, MODP, MODR, MODN), but what properties do they or their relationships have? 6

Externally Visible Properties The assumptions that other elements can make of an element, such as:  its provided services,  performance characteristics,  fault handling,  shared resource usage,  etc. 7

Definition Implications 1. Architecture defines software elements 2. Systems can and do comprise more than one structure, all are part of the architecture 3. Every computing system with software has an architecture 4. The behavior of each element is part of the architecture as far as its behavior can be observed or discerned from the point of view of another element 5. The definition doesn’t judge goodness or badness 8

2. Other Points of View Architecture is high-level design Architecture is the overall structure of the system Architecture is the structure of the components of a program or a system, their relationships, and the principles and guidelines governing their design and evolution over time Architecture is components and connectors 9

3. Useful Concepts Three stages that capture characteristics of an architecture, on the way from box-and-arrow to full software architectures:  Architectural Patterns  Reference Models  Reference Architectures 10

Architectural Patterns A description of element & relation types together with a set of constraints on how they may be used These constraints on an architecture define a set or family of architectures  For example, the client-server pattern has 2 element types (?); their relationship is a protocol that the server uses to communicate with each of its clients, the clients don’t communicate directly and functionality is excluded 11

Value of Patterns They exhibit known quality attributes, and are a reuse of experience Some patterns solve performance problems, others apply to high-security systems, or high-availability goals Often the architect’s first major design decision Also referred to as architectural styles 12

Reference Models A division of functionality together with data flow between the pieces A standard decomposition of a known problem into parts that cooperatively solve the problem They arise from experience, and are thus a characteristic of mature domains  For example, the standard parts of a compiler or database management system & how they work together 13

Reference Architecture A reference model mapped onto software elements and the data flows between them. The elements must cooperatively implement the functionality defined in the reference model The mapping may be 1-1, but an element may implement a part of a function or several functions 14

Relationship among Architectural Patterns, Reference Models & Reference Architecture 15 Reference Model Architectural Pattern Reference Architecture Software Architecture

4. Why is Software Architecture Important? Three fundamental reasons from a technical perspective:  Communication among stakeholders a basis for mutual understanding, negotiation, & consensus  Early design decisions earliest point at which decisions can be analyzed  Transferable abstraction of a system can promote large-scale reuse 16

5. Structures and Views A view is a representation of a coherent set of architectural elements, consisting of:  a set of elements  the relationships among them A structure is the set of elements itself, as they exist in software or hardware Often used interchangeably, text will distinguish 17

Group of Architectural Structures Module structures  units of implementation with assigned areas of functionality - usually static Component-and-connector structures  runtime components (principal units of computation) and connectors (communication vehicles) Allocation structures  show relationships between software elements & external environments (creation or execution) 18

Three Types of Structures Correspond to the three broad types of decisions that architectural design involves:  How is the system to be structured as a set of code units (modules)?  How is the system to be structured as a set of elements that have runtime behavior (components) and interactions (connectors)?  How is the system to relate to non-software structures in its environment (i.e., CPUs, file systems, networks, development teams, etc. - allocation)? 19

Three Types of Structures 20

Non-functional Properties Each structure provides a method for reasoning about some of the relevant quality attributes, for example:  the uses structure, must be engineered to build a system that can be easily extended or contracted  the process structure is engineered to eliminate deadlock and reduce bottlenecks  the module decomposition structure is engineered to produce modifiable systems, etc. 21

Relating Structures to Each Other Although the structures give different system perspectives, they are not independent Elements of one structure are related to elements in another, and we need to reason about these relationships  For example, a module in a decomposition structure may map to one, part of one, or several, components in a component-and-connector structure at runtime In general, mappings are many-many 22

Choosing Structures Kruchten’s Four + One Views:  Logical - elements are “key abstractions” that are objects or classes in OO. This is a module view  Process - addresses concurrency & distribution of functionality. This is a C&C view  Development - shows organization of software modules, libraries, subsystems, and units of development. This is an allocation view  Physical - maps other elements onto processing & communication nodes, also an allocation view, but usually referred to specifically as the deployment view 23

Assignment# 1 Due Date: 26 th September,

25 Summary Any Questions?