CPSC 872 John D. McGregor Session 16 Design operators.

Slides:



Advertisements
Similar presentations
Software Engineering Key design concepts Design heuristics Design practices.
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Architecture Representation
Ch 3 System Development Environment
Technical Architectures
The Architecture Design Process
Introduction to Software Engineering Lecture 6 André van der Hoek.
Lecture 23: Software Architectures
Architectural Design Principles. Outline  Architectural level of design The design of the system in terms of components and connectors and their arrangements.
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
System Architecture: Desing alternatives and methodologies.
Logical Architecture and UML Package Diagrams
Course Instructor: Aisha Azeem
Distributed Systems: Client/Server Computing
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?
CpSc 875 John D. McGregor Class 1 Overview. Why are you here?
Chapter 2 Database System Concepts and Architecture
Software Architecture in Practice (3rd Ed) Introduction
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
The Design Discipline.
1/19 Component Design On-demand Learning Series Software Engineering of Web Application - Principles of Good Component Design Hunan University, Software.
An Introduction to Software Architecture
CSE 303 – Software Design and Architecture
9.4 Software Architecture
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
CPSC 875 John D. McGregor C9 - Tactics. Everything is a plugin.
CPSC 875 John D. McGregor C16 - DSMs. Partitioning _jetta_horn_recall/index.htm?hpt=T2
Introduction  Client/Server technology is seen by many as the solution to the difficulty of linking together the various departments of corporation.
CPSC 875 John D. McGregor C9 - Tactics. Tactics A tactic is a transformation Given that the pre-condition of the tactic is true The tactic defines changes.
COMP 6471 Software Design Methodologies Winter 2006 Dr Greg Butler
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
GRASP: Designing Objects with Responsibilities
Ihr Logo Operating Systems Internals & Design Principles Fifth Edition William Stallings Chapter 2 (Part II) Operating System Overview.
CPSC 372 John D. McGregor Module 3 Session 1 Architecture.
TAL7011 – Lecture 4 UML for Architecture Modeling.
CPSC 372 John D. McGregor Module 3 Session 5 Assignment and References.
Chapter 2 Database System Concepts and Architecture Dr. Bernard Chen Ph.D. University of Central Arkansas.
John D. McGregor Class 4 – Initial decomposition
1 CMPT 275 High Level Design Phase Modularization.
CPSC 871 John D. McGregor Module 3 Session 1 Architecture.
CPSC 875 John D. McGregor C9 - Tactics. Tactics A tactic is a transformation Given that the pre-condition of the tactic is true The tactic defines changes.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Chapter 6 – Architectural Design Lecture 1 1Chapter 6 Architectural design.
Slide 1 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > Using OSGi to Build Better Software Lessons from a Telemedicine.
SYSE 802 John D. McGregor Module 1 Session 2 Requirements Modeling in SysML.
CPSC 875 John D. McGregor Design Concept. Functional decomposition.
CPSC 871 John D. McGregor Process – an introduction Module 0 Session 3.
CPSC 372 John D. McGregor More EPF Module 2 Session 4.
Basic Characteristics of Object-Oriented Systems
Introduction. System Design Hardware/Software Platform Selection Software Architectures Database Design Human-Computer Interaction (HCI) Interface Object.
CPSC 872 John D. McGregor Session 31 This is it..
CPSC 875 John D. McGregor Design Concept C5. ALISA
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
CPSC 875 John D. McGregor C8 - Tactics. Everything is a plugin.
CPSC 872 John D. McGregor Session 13 Process. Specification and design problem solution specification implementation specification.
CompSci 280 S Introduction to Software Development
CS 325: Software Engineering
Chapter 2 Database System Concepts and Architecture
John D. McGregor Eclipse Process Framework Module 2 Session 4
#01 Client/Server Computing
John D. McGregor Quality attributes
John D. McGregor C8 - Tactics
Software models - Software Architecture Design Patterns
Design Tips.
John D. McGregor Module 0 Session 2 Infrastructure and problem
An Introduction to Software Architecture
John D. McGregor Module 6 Session 1 More Design
MORE ON ARCHITECTURES The main reasons for using an architecture are maintainability and performance. We want to structure the software into reasonably.
#01 Client/Server Computing
Presentation transcript:

CPSC 872 John D. McGregor Session 16 Design operators

Specification and design problem solution specification implementation specification

Software design is about micro structures Software architecture is about macro structures Software architecture is about macro structures us/library/ee aspx us/library/ee aspx

Eclipse architecture cartoon

Pieces Modules, subsystems, … These are pieces of a system and entities with which the architect works. Determining what a particular module does is the job of the architect How a particular module does its assigned job is a detailed design issue not an architecture issue Architectural issues cross module boundaries

Orchestration/choreography The architect creates pieces for certain reasons And connects certain pieces to achieve specific objectives. The architect orchestrates the interactions of the pieces of the system but leaves the details to the engineers.

System/software A system is the complete package needed to solve a problem. It will usually include: – Hardware – stand-alone computer; an electronic controller embedded in an assembly such as a brake assembly; an integrated multi-function device such as a cell-phone – Software – an operating system or an end-user application Some people even include the users and other non-computing elements as part of the system

Stakeholders A stakeholder is any person with an interest in the system. We will listen harder to some stakeholders than others. In our techniques often we will give stakeholders differing numbers of votes based on their priority. The architect is a diplomat but also a dictator.

Views Different ways of looking at the same thing.

One entity, 3 views

Concepts Styles and patterns – layered Principles – Separation of concerns Operators – decompose

Example architecture – Android device The primary structure here is “layer.” Code in a layer may only “know about” code in “lower” layers. Why?

Design Principle Separation of concerns

Bluetooth top to bottom /docs/qnxcar2/index.jsp?topic= %2Fcom.qnx.doc.qnxcar2.system _architecture%2Ftopic%2FMDG _bluetooth.html

Ubiquitous architecture styles Client/Server client server DB request return

Model-View-Controller neral/Conceptual/DevPedia-CocoaCore/MVC.html neral/Conceptual/DevPedia-CocoaCore/MVC.html andreas.net/software_architecture/mvc.html andreas.net/software_architecture/mvc.html As anti-pattern –

System Model Decomposition Our value computation is an interactive system. So we can start with MVC from slide 16 and decompose from there. Controller Model View Controller Model Data Editor System menu Properties editor Controller Editor Model Data Editor System menu Properties editor Controller

Extension System Model Controller Editor Model Data Editor System menu Properties editor Controller System Model Controller Editor Model Data Editor System menu Properties editor Controller DataBase

Baldwin’s Modularity Operators Modularity reduces complexity and enhances maintainability Baldwin and Clark define 6 operators Any system – Splitting – Substitution Assumes a modular system – Augmenting – Excluding – Inversion – Porting

Splitting AKA decomposition A monolithic system or a module is divided into two or more modules Client/server is a split that enhances value by allowing multiple clients to access a single server – the assumption being that not all clients want to access the server at the same time

Splitting Reducing cost of modifying a single responsibility

Substitution AKA plug compatible One module is replaced by another with equivalent behavior but presumably a different implementation A desktop, laptop, and mobile device all have a bluetooth connection that obeys the bluetooth protocol but each has a different implementation; substituting will allow one system to be used on all three platforms but with a different driver

Augmenting An additional module is added to the system Perhaps a new type of communication connection such as USB is added to the system

Excluding A module is removed from the system. A generic software system may be tailored for a specific installation. The standard stereo module is excluded and the system is augmented with a surround sound module

Inversion Two or more modules are modified The result is a third module that captures the commonality among the initial modules A stereo sound system module and a surround sound module are analyzed and their common behavior made into a sound system module which is then related to the reduced stereo and surround sound modules Enhances the maintainability and extensibility

Inversion Increases cohesion

A module is divided into a module that is more tightly coupled to the system under design and a module that is free from the single system Making a system easily used by multiple OSs is a typical example. Some new module may be needed in between the tightly coupled module and the free one Porting