Architecture. Reda Bendraou reda.bendraou{{@}}lip6.fr http://pagesperso-systeme.lip6.fr/reda.bendraou/

Similar documents
Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces

Software Engineering

Information Systems Analysis and Design CSC John Mylopoulos. Software Architectures Information Systems Analysis and Design CSC340

Engineering Process Software Qualities Software Architectural Design

Service Oriented Architecture 1 COMPILED BY BJ

Developing SOA solutions using IBM SOA Foundation

Service-Oriented Architecture and Software Engineering

Service Oriented Architecture

Software Life-Cycle Management

Automated Virtual Cloud Management: The need of future

How To Develop Software

Patterns in Software Engineering

Business-Driven Software Engineering Lecture 3 Foundations of Processes

Requirements engineering

Vragen. Architecture presentations in practice. Some terms (from IEEE standard)

KWIC Exercise. 6/18/ , Spencer Rugaber 1

Web Application Architectures

High-level Design. What is software architecture?

Designing Real-Time and Embedded Systems with the COMET/UML method

Architecture Design & Sequence Diagram. Week 7

CHAPTER 8 CLOUD COMPUTING

Foundations for Systems Development

What can DDS do for You? Learn how dynamic publish-subscribe messaging can improve the flexibility and scalability of your applications.

Georgiana Macariu, Dana Petcu, CiprianCraciun, Silviu Panica, Marian Neagul eaustria Research Institute Timisoara, Romania

Outline. Definitions. Course schedule

Guiding Principles for Modeling and Designing Reusable Services

Patterns in. Lecture 2 GoF Design Patterns Creational. Sharif University of Technology. Department of Computer Engineering

Platform Autonomous Custom Scalable Service using Service Oriented Cloud Computing Architecture

Software Design Document (SDD) Template

Business Intelligence (BI) Cloud. Prepared By: Pavan Inabathini

SOA CERTIFIED JAVA DEVELOPER (7 Days)

Software Architecture Document

In this Lecture you will Learn: Development Process. Unified Software Development Process. Best Practice

The Service, The Cloud & The Method: The Connection Points

Tutorial on Client-Server Architecture

Distributed systems. Distributed Systems Architectures

Architectural Patterns. Layers: Pattern. Architectural Pattern Examples. Layer 3. Component 3.1. Layer 2. Component 2.1 Component 2.2.

VALLIAMMAI ENGNIEERING COLLEGE SRM Nagar, Kattankulathur

SavvyDox Publishing Augmenting SharePoint and Office 365 Document Content Management Systems

Reengineering Open Source CMS using Service-Orientation: The Case of Joomla

Cloud Computing. Course: Designing and Implementing Service Oriented Business Processes

Customer Bank Account Management System Technical Specification Document

Fundamental Concepts and Models

SOA and Cloud in practice - An Example Case Study

22C:22 (CS:2820) Object-Oriented Software Development

Advanced Analysis and Design

Engr. M. Fahad Khan Lecturer Software Engineering Department University Of Engineering & Technology Taxila

A Comparison of Service-oriented, Resource-oriented, and Object-oriented Architecture Styles

Karunya University Dept. of Information Technology

A Comparison of Service-oriented, Resource-oriented, and Object-oriented Architecture Styles

What is a life cycle model?

Challenges for cloud software engineering

Guiding SOA Evolution through Governance From SOA 101 to Virtualization to Cloud Computing

Perspectives on Cloud Computing and Standards. Peter Mell, Tim Grance NIST, Information Technology Laboratory

Using OSGi as a Cloud Platform

Use Cases. Massimo Felici. Massimo Felici Use Cases c

Fourth generation techniques (4GT)

Software Architecture. Schahram Dustdar Distributed Systems Group TU Wien

SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems

Applying SOA to OSS. for Telecommunications. IBM Software Group

SEEM4570 System Design and Implementation Lecture 10 Software Development Process

ITU-T Kaleidoscope Conference Innovations in NGN. Managing NGN using the SOA Philosophy. Y. Fun Hu University of Bradford

PIE. Internal Structure

Service-Oriented Architectures

DESIGN OF A PLATFORM OF VIRTUAL SERVICE CONTAINERS FOR SERVICE ORIENTED CLOUD COMPUTING. Carlos de Alfonso Andrés García Vicente Hernández

Structural Patterns. Structural Patterns. Fritz Solms. October 16, 2015

On Cloud Computing Technology in the Construction of Digital Campus

SOFTWARE ENGINEERING INTERVIEW QUESTIONS

Web Application Development for the SOA Age Thinking in XML

Software Development: The Waterfall Model

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements

Cloud Service Model. Selecting a cloud service model. Different cloud service models within the enterprise

SaaS-Based Employee Benefits Enrollment System

Safe Automotive software architecture (SAFE) WP3 Deliverable D3.6.b: Safety Code Generator Specification

Software Architecture Document

Object Oriented Analysis and Design and Software Development Process Phases

Data-Aware Service Choreographies through Transparent Data Exchange

A standards-based approach to application integration

The Hybrid Cloud: Bringing Cloud-Based IT Services to State Government

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

INTRODUCTION TO CLOUD COMPUTING CEN483 PARALLEL AND DISTRIBUTED SYSTEMS

Introduction to Service Oriented Architectures (SOA)

Case Studies of Running the Platform. NetBeans UML Servlet JSP GlassFish EJB

CHAPTER 2 MODELLING FOR DISTRIBUTED NETWORK SYSTEMS: THE CLIENT- SERVER MODEL

SERVICE-ORIENTED MODELING FRAMEWORK (SOMF ) SERVICE-ORIENTED DISCOVERY AND ANALYSIS MODEL LANGUAGE SPECIFICATIONS

HTTP Virus Protection in the Enterprise Environment

A Business Process Driven Approach for Generating Software Modules

Perspectives on Moving to the Cloud Paradigm and the Need for Standards. Peter Mell, Tim Grance NIST, Information Technology Laboratory

The Concern-Oriented Software Architecture Analysis Method

Object Oriented Design

Web Services Software Architecture

Transcription:

Architecture Reda Bendraou reda.bendraou{{@}}lip6.fr http://pagesperso-systeme.lip6.fr/reda.bendraou/ Some slides were adapted from L. Osterweil, B. Meyer, and P. Müller material Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 5: Les Tests 1/57

Focus on How do you Requirements Spec. Design know Test Results must match required behavior Characteristics of System to be built must match required characteristics Hi level design must show HOW requirements can be met Hi level architecture consistent views Low level Code must implement design Test plan exercises this code Test Plan Code

Software Architecture & Design: Goals From B. Meyer and P. Muller Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 5: Les Tests 3/57

Why decompose a system? Management - Partition effort - Clear assignment of requirements to modules Modification - Decouple parts so that changes to one don t affect others Understanding - Allow understanding system one chunk at a time Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 5: Les Tests 4/57

What is the Nature of Design? Addresses the question: HOW?" Goal: Indicate how to develop a solution system that will satisfy requirements" Complements: Requirements: "WHAT" System Test Plan: HOW WOULD I KNOW IT IF I SAW IT " Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 5: Les Tests 5/57

How are Designs Represented?" Familiar approaches Use of hierarchy to conquer size/complexity Use of multiple views to capture different aspects Use of pictures and diagrams to appeal to nontechnical stakeholders Connected to requirements elements they respond to Connected to code elements that implement them Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 5: Les Tests 6/57

Architecture Vs. Specification Architecture High level system design Concerned with components and the interactions among components Not with the algorithms or data structures Specification (Low Level Design) Emphasis on data structures and algorithms Focus on implementation issues» Stepwise refinement» Evolvability» Use of abstraction Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 5: Les Tests 7/57

Typical Architecture Issues Component interaction models What are the components interfaces? Who can use them? And how? How much flexibility is achievable? How modifiable? Is plug and play possible? Where is network access used? How? Message passing, broadcasting, etc? Late-binding issues Non-determinism Use of proxies Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 5: Les Tests 8/57

New issues in characterizing system objects Interaction protocols Tightly coupled objects» Direct or Remote procedure calls Loosely coupled» Event based notification, observers Degree of separation Locally Internet scale in the cloud Modes of communicating with each other message passing broadcast multi-cast Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 5: Les Tests 9/57

Architecture description (specification or design) A high level design that defines the components, connectors, constraints and the interrelationships among these entities - Usually compositional Suggests the value of elaborate semantics and annotations of the nodes and edges Many notations can be used. - UML has a bunch of diagrams to represent Architecture s aspects - Component, Class, Package, Deployment diagrams Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 5: Les Tests 10/57

Components, Connectors, Constraints: Central Software Architecture Entities Components--computational units Subsystems Classes Objects Connectors--interaction model Which components are connected to which? How are they connected? Are connectors just components with restricted semantics? Constraints Guides and limits to the ways components and connectors can be configured Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 5: Les Tests 11/57

Architectural Styles Sets of constraints that are widely used because they offer understood capabilities and features Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 5: Les Tests 12/57

Pipeline Architecture:Each component has one input connector, one output connector Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 5: Les Tests 13/57

Pipe and Filter: Pipeline architecture where some connectors have a filter Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 5: Les Tests 14/57

Client/Server Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 5: Les Tests 15/57

Client/Server : multiple clients Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 5: Les Tests 16/57

Need to specify details What will a request look like? What will a reply look like? How will multiple simultaneous requests be served? Any constraints on requests, replies? E.g. speed Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 5: Les Tests 17/57

Different Substyles How to specify different ways for client/server to perform REST Architecture Server is stateless No memory of details of client A key property that www infrastructure is built upon Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 5: Les Tests 18/57

Service Oriented Architecture We will address this in a specific lecture Applications composed from components Components are accessed via the Web Specified generically (as a service )" Located by web searches (using proxies) Accessed via the web How to compose such services? What composition constructs How to be sure they provide correct services? How to maintain privacy and security? Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 5: Les Tests 19/57

Service Oriented Architecture Variants SaaS PaaS IaaS. Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 5: Les Tests 20/57

Cloud Architecture SOA approach, but Don t know/don t care where or how services are provided via the Web Service may be different each time the system runs Similar problems, but now more worrisome Correctness Security Privacy Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 5: Les Tests 21/57

Web Based Applications Presented in more details on class (on the white board) Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 5: Les Tests 22/57

MVC Presented in more details on class (on the white board) Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 5: Les Tests 23/57

Some important Concerns about Architecture Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 5: Les Tests 24/57

Modularity Cohesion Vs Coupling Cohesion: interdependence of elements of one module Each subsystem has a clear responsibility Coupling: interdependence between different modules Small interfaces between subsystems Goal: high cohesion and low coupling Modularity: increase cohesion, decrease coupling Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 5: Les Tests 25/57 From B. Meyer and P. Muller

Cohesion Vs Coupling in OO design Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 5: Les Tests 26/57

Composability Build software elements so that they may be freely combined with others to produce new software. Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 5: Les Tests 27/57

Every module communicates with as few others as possible. Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 5: Les Tests 28/57

If two modules communicate, they exchange as little information as possible. If two modules communicate, they exchange as little information as possible. Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 5: Les Tests 29/57

Information Hiding Principle The designer of every module must select a subset of the module s properties as the official information about the module, to be made available to authors of client modules. Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 5: Les Tests 30/57

Design Patterns Use them when possible GoF book is a good reference but many other patterns exist in literature Patterns can be in all phases of developmment - Requirement patterns - Architectural patterns - Design patterns - etc. Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 5: Les Tests 31/57

The five secrets of good architecture Simplicity of design Consistency of design Ease of learning of the APIs Support for change Support for reuse Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 5: Les Tests 32/57

Simplicity: always remember!!! Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 5: Les Tests 33/57

Conclusion Design goals definition - Describes and prioritizes the qualities that are important for the system Subsystem decomposition - Decomposes the overall system into manageable parts by using the principles of cohesion and coherence Architectural style - A pattern of a typical subsystem decomposition Software architecture - An instance of an architectural style Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 5: Les Tests 34/57