Designing Scalable Architectures

Slides:



Advertisements
Similar presentations
Jeremy S. Bradbury, James R. Cordy, Juergen Dingel, Michel Wermelinger
Advertisements

MicroKernel Pattern Presented by Sahibzada Sami ud din Kashif Khurshid.
Object-Oriented Application Frameworks Much of the cost and effort stems from the continuous re- discovery and re-invention of core concepts and components.
Lecture 5: Requirements Engineering
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
UML an overview.
Chapter 2 – Software Processes
Chapter 2 – Software Processes Lecture 1 1Chapter 2 Software Processes.
CS 415 N-Tier Application Development By Umair Ashraf July 2nd,2013 National University of Computer and Emerging Sciences Lecture # 7 N-Tier Architecture.
Systems Engineering in a System of Systems Context
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
Recall The Team Skills 1. Analyzing the Problem 2. Understanding User and Stakeholder Needs 3. Defining the System 4. Managing Scope 5. Refining the System.
© M.E. Fayad SJSU -- CmpE Software System Engineering Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering.
Software Requirements
IACT 901 Module 9 Establishing Technology Strategy - Scope & Purpose.
Iterative development and The Unified process
1 Software Requirements Specification Lecture 14.
L04-S1 Stable Design Patterns 2003 SJSU -- CmpE Software Patterns Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering.
Enterprise Architecture
N-Tier Architecture.
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
CSE 303 – Software Design and Architecture
Integrating Security Design Into The Software Development Process For E-Commerce Systems By: M.T. Chan, L.F. Kwok (City University of Hong Kong)
3231 Software Engineering By Germaine Cheung Hong Kong Computer Institute Lecture 12.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
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.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
Copyright 2002 Prentice-Hall, Inc. Chapter 2 Object-Oriented Analysis and Design Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey.
Lecture2: Database Environment Prepared by L. Nouf Almujally & Aisha AlArfaj 1 Ref. Chapter2 College of Computer and Information Sciences - Information.
Drexel University CS 451 Software Engineering Winter Yuanfang Cai Room 104, University Crossings
Lecture 7: Requirements Engineering
Assessing the influence on processes when evolving the software architecture By Larsson S, Wall A, Wallin P Parul Patel.
 Dr. Syed Noman Hasany.  Review of known methodologies  Analysis of software requirements  Real-time software  Software cost, quality, testing and.
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
CONCLUSION The conclusion of this work is that it is possible to develop a problem-solving method providing evolutionary computational support to general.
Metadata By N.Gopinath AP/CSE Metadata and it’s role in the lifecycle. The collection, maintenance, and deployment of metadata Metadata and tool integration.
Lecture 13.  Failure mode: when team understands requirements but is unable to meet them.  To ensure that you are building the right system Continually.
COMMON COMMUNICATION FORMAT (CCF). Dr.S. Surdarshan Rao Professor Dept. of Library & Information Science Osmania University Hyderbad
Requirement engineering & Requirement tasks/Management. 1Prepared By:Jay A.Dave.
Software Engineering Lecture 10: System Engineering.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
CS223: Software Engineering Lecture 32: Software Maintenance.
Introduction: Databases and Database Systems Lecture # 1 June 19,2012 National University of Computer and Emerging Sciences.
Evolution, Architecture, and Metamorphosis By: Brian Foote and Joseph Yoder University of Illinois Presented by: Gleyner Garden.
Software Development Module Code: CST 240 Chapter 6: Software Maintenance Al Khawarizmi International College, AL AIN, U.A.E Lecturer: Karamath Ateeq.
Process 4 Hours.
Classifications of Software Requirements
N-Tier Architecture.
CS 389 – Software Engineering
Object-Oriented Analysis and Design
System Design and Modeling
Software Quality Engineering
Software Requirements
UML dynamic Modeling (Behavior Diagram)
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2 Database System Concepts and Architecture.
Chapter 2 Database Environment Pearson Education © 2009.
Chapter 2 – Software Processes
Interactions.
Software life cycle models
Advanced Object-Oriented Analysis & Design
Chapter 20 Object-Oriented Analysis and Design
Software Design Lecture : 15.
Professor Peter Campbell
Database Systems Instructor Name: Lecture-3.
Nada Al Dosary Edited By: Maysoon AlDuwais
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
Software System Engineering
Advanced Object-Oriented Analysis & Design
Versioning in Adaptive Hypermedia
Presentation transcript:

Designing Scalable Architectures Software Stability Models Introduction by: Mohamed E. Fayad, and Huáscar A. Sánchez 11/5/2019 Software Architecture Lecture

Software Architecture Lecture So, What is Scalability? Scalability to indicate the ability of architectures to easily adapt to evolving requirements without unnecessary effort. Scalability can be further divided into two kinds: Vertical and Horizontal scalability. 11/5/2019 Software Architecture Lecture

Software Architecture Lecture Scalability Types Vertical Scalability is concerned with the ability of the architectures to scale Up and Down in order to adapt to evolving requirements. Horizontal Scalability, on the other hand, emphasizes the ability of the architecture to extend their boundaries by establishing connections with other software architectures in an efficient manner. 11/5/2019 Software Architecture Lecture

Scalability Types – Vertical Scaling Up and Down can also be referred to as “Upward and Downward Scalability. Upward scalability is defined as the capacity of handling increasing demands by adding new layers, or functionalities. Downward scalability is defined as the ability of the architecture to adapt itself to a more constrained environment, by disabling certain functionalities. 11/5/2019 Software Architecture Lecture

Scalability Types – Horizontal Horizontal Scalability can be achieved in two directions, which we refer to as: Scaling Out (Extensibility) and Scaling In (Reduction). Extensibility is the capacity of software architectures to glue external architectures (leaves) to their core structure, creating a synergy between these dissimilar architectures. Reduction, on the other hand, is the action of ungluing those “leaves” from a particular architecture without provoking a reciprocal harmful impact on their internal structure. 11/5/2019 Software Architecture Lecture

Scalability is a major Concern In most cases changes that cause software architectures to fail are: (1) Natural Evolution of Architecture Business processes. (2) Modification of underlying requirements to meet evolving needs. When Business experience major increments in services demands, the main concern is their architecture’s ability to scale to accommodate these loads. Therefore: (1) The architecture needs to efficiently scale and adapt to handle system requirements changes. 11/5/2019 Software Architecture Lecture

Scalability Solutions Shortage The problem of developing scalable architectures has been investigated in different contexts in software development. However… Scalability in software architectures are emphasized merely on the achievement of Upward Scalability. They rely on three elements: increasing speed and capacity, improving efficiency, and shifting or reducing the loads. 11/5/2019 Software Architecture Lecture

Scalability Solutions Shortage Based upon these elements, designers/ developers need to pinpoint relevant information, along with the right techniques, to come up with a proper scalable architecture design. Scalability, is therefore, limited to: They are solely oriented to reach one side of Vertical Scalability (Upward). Their validity usually relies on special hardware. 11/5/2019 Software Architecture Lecture

Software Architecture Lecture Lesson Learned? Implementing full scalability is not straightforward in software development, and especially with conventional approaches. 11/5/2019 Software Architecture Lecture

Scalability with Traditional Approaches The Problem 11/5/2019 Software Architecture Lecture

Scalability with Conventional Approaches A Bird’s eye view 11/5/2019 Software Architecture Lecture

Scalability with Conventional Approaches A Bird’s eye view 11/5/2019 Software Architecture Lecture

Scalability with Conventional Approaches Case Study: E-Commerce Application The architecture contains the following objects: Customer, Catalog, Database, ShoppingCart, Product, Order, CreditCard.” 11/5/2019 Software Architecture Lecture

Scalability and Conventional Approaches E-commerce Class Diagram 11/5/2019 Software Architecture Lecture

Scalability and Conventional Approaches Adding Search, CyberCash, Echecks Classes 11/5/2019 Software Architecture Lecture

Scalability and Conventional Approaches Classes affected by Changes Added Affected Affected Affected Added Affected 11/5/2019 Software Architecture Lecture

The Solution to Scalability: SSM Software Stability Model (SSM) as a mean for Developing Scalable software architectures. Software architectures that are flexible enough to scale the scope of their elements, methods, etc. when handling evolving requirements. It provides the means for gluing together two or more heterogeneous architectures to perform one or more common tasks (Horizontal Scalability), or adding new functionality to the architecture’s structure to address more users needs (Vertical Scalability). 11/5/2019 Software Architecture Lecture

Software Architecture Lecture SSM Result Software architectures capable of evolving through time without the concern of a potential collapse. These evolving architectures are referred to as Scalable architectures. Scalable architectures are well-designed architectures, which structures remain constant, and are able to evolve proportionally with the introduction of new requirements. 11/5/2019 Software Architecture Lecture

Software Architecture Lecture SSM Benefits SSM will enhance the scalability of the architecture by identifying the changeable components in the system and organize them in such a way that their future changes do not require major changes in the other parts of the architecture. 11/5/2019 Software Architecture Lecture

Software Architecture Lecture SSM Foundation Software stability Models classify the developed system architecture into three layers: EBTs, BOs, and IOs. EBTs are conceptual classes, which structure remain internally and externally stable. BOs are classes that are internally stable but externally adaptable. IOs are context specific classes, which structure is very volatile (internally and externally unstable). 11/5/2019 Software Architecture Lecture

Software Architecture Lecture SSM Foundation The synergy between EBTs and BOs form the basis for Scalable Architecture. IOs are attached to the scalable architecture by means of certain extension points of the BOs, referred to as “Hooks.” 11/5/2019 Software Architecture Lecture

Software Architecture Lecture SSM Foundation These extension points can be added to or removed from a BO according to the problem needs and requirements. BOs serve as the linking points for architectures to establish a connection with external architectures (Horizontal Scalability). 11/5/2019 Software Architecture Lecture

SSM Concept Visualization Properties granted to Software Architecture: Stability Scalability Adaptability Customizability Traceability Separation of Concerns and more…… 11/5/2019 Software Architecture Lecture

Software Architecture Lecture Scalability with SSM Case study: E-commerce Application Identification Process: First, we need to identify the purpose, and goals of this system (EBTs). Then, we identify the core abstractions of the system’ processes (BOs). Finally, we need to identify the physical entities of our model (IOs). 11/5/2019 Software Architecture Lecture

Software Architecture Lecture Scalability with SSM E-commerce Application: Stable Model EBTs BOs IOs 11/5/2019 Software Architecture Lecture

Software Architecture Lecture Scalability with SSM Any single representation of EBTs along with their associated BOs and IOs, represent an independent functionality of the group of functionalities in the entire system’s architecture. Each functionality, by its definition, is self-controlled. Nevertheless, it collaborates with other functionalities in order to accomplish one or more tasks in the architecture. 11/5/2019 Software Architecture Lecture

Software Architecture Lecture Scalability with SSM Independent Functionality example EBTs BOs IOs EBTs BOs IOs 11/5/2019 Software Architecture Lecture

Vertical and Horizontal Scalability Adding Customer Service, Content Management, Bidding Capacity EBTs BOs IOs Extensibility Upward 11/5/2019 Software Architecture Lecture

Vertical and Horizontal Scalability Disabling Order Handling, and Content Management Application EBTs BOs IOs Downward <EBT> OrderHandling Reduction X <IO> ContentManagement X 11/5/2019 Software Architecture Lecture

Software Architecture Lecture Conclusion We have shown, through a simple case study, that developing architectures using the traditional approach does not allow the desired scalability to accommodate future requirements. On the other hand, software stability approach partitions the entire functionality into several independent layers, and hence, we are able to incorporate scalability feature into the architectures. Consequently, architectures can scale up or down, and scale out or in to accommodate evolving requirements, without the danger of being collapsed. Such flexibility will improve the quality of the developed architectures while concurrently diminishing the cost and condensing the time of the development process. 11/5/2019 Software Architecture Lecture