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.

Slides:



Advertisements
Similar presentations
MicroKernel Pattern Presented by Sahibzada Sami ud din Kashif Khurshid.
Advertisements

Layered Architecture Group 1 - Wesley Flowers, Brian Kennedy, Corey Masters, Everett Thayer, Andre Vicente.
Software Engineering Key design concepts Design heuristics Design practices.
ARCHITECTURES FOR ARTIFICIAL INTELLIGENCE SYSTEMS
Ch 3 System Development Environment
9.5 Software Architecture
Technical Architectures
The Architecture Design Process
Data and Process Modeling
Architectural Design Principles. Outline  Architectural level of design The design of the system in terms of components and connectors and their arrangements.
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.,
Vakgroep Informatietechnologie – IBCN Software Architecture Prof.Dr.ir. F. Gielen Quality Attributes & Tactics (4) Modifiability.
Modified by: Masud-Ul-Hasan and Ahmad Al-Yamani 1 Chapter 11 Network Management (Selected Topics)
Developed by Reneta Barneva, SUNY Fredonia Component Level Design.
Feb. 20, 2001CSci Clark University1 CSci 250 Software Design & Development Lecture #11 Tuesday, Feb. 20, 2001.
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
System Architecture: Desing alternatives and methodologies.
Course Instructor: Aisha Azeem
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
System Design & Software Architecture
The Design Discipline.
CPSC 872 John D. McGregor Session 16 Design operators.
1 CMPT 275 High Level Design Phase Architecture. Janice Regan, Objectives of Design  The design phase takes the results of the requirements analysis.
An Introduction to Software 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
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Architectural Styles.
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.
Architectural Design Yonsei University 2 nd Semester, 2014 Sanghyun Park.
CPSC 372 John D. McGregor Module 3 Session 1 Architecture.
TAL7011 – Lecture 4 UML for Architecture Modeling.
Chapter 2 Database System Concepts and Architecture Dr. Bernard Chen Ph.D. University of Central Arkansas.
Part VII: Design Continuous
John D. McGregor Class 4 – Initial decomposition
X-WindowsP.K.K.Thambi The X Window System Module 5.
CPSC 871 John D. McGregor Module 3 Session 1 Architecture.
Relationships Relationships between objects and between classes.
Chapter 6 – Architectural Design Lecture 1 1Chapter 6 Architectural design.
Lecture 18: Object-Oriented Design
 Design goals are derived form the non- functional requirements  Every subsystem is assigned to a team and realized independently  During system design,
1 / 26 CS 425/625 Software Engineering Architectural Design Based on Chapter 10 of the textbook [Somm00] Ian Sommerville, Software Engineering, 6 th Ed.,
Slide 1 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > Using OSGi to Build Better Software Lessons from a Telemedicine.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 11a: Component-Level Design Software Engineering: A Practitioner’s Approach, 6/e Chapter.
1 Software Design Lecture What’s Design It’s a representation of something that is to be built. i.e. design  implementation.
CPSC 875 John D. McGregor Design Concept. Functional decomposition.
Evaluating an Object-Oriented Design ©SoftMoore ConsultingSlide 1.
CHAPTER 3 MODELING COMPONENT-LEVEL DESIGN.
Component Design Elaborating the Design Model. Component Design Translation of the architectural design into a detailed (class-based or module- based)
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
Fusion Design Overview Object Interaction Graph Visibility Graph Class Descriptions Inheritance Graphs Fusion: Design The overall goal of Design is to.
Modifiability Modifiability is about change, and our interest in it centers on the cost and risk of making changes. How easy to change a component without.
CPSC 872 John D. McGregor Session 31 This is it..
CLASSIFICATION OF DESIGN PATTERNS Hladchuk Maksym.
Topic 4: Distributed Objects Dr. Ayman Srour Faculty of Applied Engineering and Urban Planning University of Palestine.
CPSC 875 John D. McGregor C8 - Tactics. Everything is a plugin.
Pertemuan 09 Architectural Patterns Mata kuliah: T0144 – Advanced Topics in Software Engineering Tahun: 2010.
Deployment Diagram.
Chapter 7: Modifiability
Deployment Diagram.
Review for Final, Fall 2010 Close book, Close notes
Chapter 2 Database System Concepts and Architecture
Deployment Diagram.
Chapter 7: Designing the Architecture
John D. McGregor Quality attributes
John D. McGregor C8 - Tactics
An Introduction to Software Architecture
John D. McGregor C15 – Variation in architecture
Presentation transcript:

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 that should be made to the as-is architecture to get the will- be architecture The tactic description explains the corresponding changes to quality attributes

Modifiability tactics This and other diagrams from

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

Encapsulation

Intermediary

Blackboard

Proxy

Reflection

Modifiability tactics

Layers via tactics

Layers - 2 Maintain Semantic Coherence. The goal of ensuring that a layer’s responsibilities all work together without excessive reliance on other layers is achieved by choosing responsibilities that have some sort of semantic coherence. Raise the Abstraction Level. Layers represent an abstract ladder of services.

Layers - 3 Abstract Common Services. Typically the responsibilities of a layer are grouped together into services. Use Encapsulation. There are two design considerations of the Layers pattern with respect to interfaces: (1) each layer may have its own interface and (2) particular layers may act as an interface (e.g., API, façade) for another layer.

Layers - 4 Restrict Communication Paths. Layers define an ordering and only allow a layer to use the services of its adjacent lower layer. Use an Intermediary. Particular layers may act as an interface (e.g., API, façade) for another layer.

Layers - 5 Relaxed layered system. A relaxed layered system is one in which layer N can invoke any layer below it rather than exclusively layer N- 1, which is achieved by removing the Restrict Communication Paths tactic (i.e., removing an intermediary). Layering through inheritance. This variant refers to how the layers are packaged and, consequently, the binding time between them.

State Machines

Hierarchical

Concurrent

Design Structure Matrix

MVC modelviewcontroller model x view 1x controller 11x Controller Model View

Reading Read this SEI tech report: _statediagram.html _statediagram.html

Here’s what you are going to do… Begin with the monolithic single box architecture and begin to develop the architecture for your subsystem. Apply at least two tactics Draw a block diagram for each step and give the rationale for each tactic you use. Create the AADL model that represents the architecture after the second tactic has been applied. Send a zip file by 6am Tuesday Feb 18 th.