CPSC 872 John D. McGregor Session 31 This is it..

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

The design process IACT 403 IACT 931 CSCI 324 Human Computer Interface Lecturer:Gene Awyzio Room:3.117 Phone:
May 2, May 2, 2015May 2, 2015May 2, 2015 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University, Azusa, CA.
Object-Oriented Analysis and Design
CPSC 872 John D. McGregor Session 22 Architecture Design, cont’d.
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
Course Instructor: Aisha Azeem
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
By Bob Bunson  Simulation of software development project  Fictitious system from Concept to Code  Oriented around the.
Design Patterns Discussion of pages: xi-11 Sections: Preface, Forward, Chapter
CPSC 871 John D. McGregor Module 4 Session 3 Architecture Evaluation.
CPSC 872 John D. McGregor Session 16 Design operators.
Architecture Evaluation Evaluation Factors Evaluation by the designer Every time the designer makes a key design decision or completes a design milestone,
An Introduction to Software Architecture
1 Chapter 5 Practice: A Generic View Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Supplementary Specifications (Chapters 20,22 - Requirements Text) 1.
CPSC 875 John D. McGregor C9 - Tactics. Everything is a plugin.
HCI in Software Process Material from Authors of Human Computer Interaction Alan Dix, et al.
1 5.1 Software Engineering Practice  Provide value to the user  KIS—keep it simple!  Maintain the product and project “vision”  What you produce,
1 Chapter 5 Software Engineering Practice. 2 What is “Practice”? Practice is a broad array of concepts, principles, methods, and tools that you must consider.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Coming up: Software Engineering: A Practitioner’s Approach, 6/e Chapter 5 Practice: A Generic View copyright © 1996, 2001, 2005 R.S. Pressman & Associates,
Systems Design Approaches The Waterfall vs. Iterative Methodologies.
CPSC 872 John D. McGregor Session 21 Architecture Design, cont’d.
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.
Software Engineering Principles Principles form the basis of methods, techniques, methodologies and tools Principles form the basis of methods, techniques,
CPSC 372 John D. McGregor Module 4 Session 1 Design Patterns.
Software Engineering Saeed Akhtar The University of Lahore Lecture 6 Originally shared for: mashhoood.webs.com.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
Requirement Handling
1 What is OO Design? OO Design is a process of invention, where developers create the abstractions necessary to meet the system’s requirements OO Design.
3 September Sources of requirements  People Stakeholders ○ Who are the stakeholders? Issues: ○ Conflicting requirements ○ Wants vs. needs Helping.
CPSC 371 John D. McGregor Session 32 This is it..
CPSC 872 John D. McGregor Session 30 ULS and Complex Adaptive Systems, cont’d.
John D. McGregor Class 4 – Initial decomposition
CPSC 871 John D. McGregor Module 3 Session 1 Architecture.
Design Process … and some design inspiration. Course ReCap To make you notice interfaces, good and bad – You’ll never look at doors the same way again.
Software Design: Principles, Process, and Concepts Getting Started with Design.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 5 Practice: A Generic View Software Engineering: A Practitioner’s Approach, 6/e Chapter.
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.
Software Maintenance Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.
Business Analysis. Business Analysis Concepts Enterprise Analysis ► Identify business opportunities ► Understand the business strategy ► Identify Business.
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
CPSC 873 John D. McGregor Session 9 Testing Vocabulary.
1 Chapter 8 Building the Analysis Model (1) Analysis Concepts and Principles.
CSE 303 – Software Design and Architecture
CPSC 875 John D. McGregor Design Concept. Functional decomposition.
CPSC 871 John D. McGregor Module 8 Session 1 Testing.
Software Engineering Principles Practical Advice and Steps for Managing Your Project.
CPSC 871 John D. McGregor Module 6 Session 2 Validation and Verification.
John D. McGregor Architecture Evaluation
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
1 Good Object-Oriented Design Dr. Radu Marinescu Lecture 4 Introduction to Design Patterns.
Basic Concepts of Software Architecture. What is Software Architecture? Definition: – A software system’s architecture is the set of principal design.
SYSE 802 John D. McGregor Module 0 Session 3 Systems Engineering QuickView.
CPSC 372 John D. McGregor Module 8 Session 1 Testing.
Why is Design so Difficult? Analysis: Focuses on the application domain Design: Focuses on the solution domain –The solution domain is changing very rapidly.
Design Patterns CSCE 315 – Programming Studio Spring 2013.
CPSC 875 John D. McGregor C8 - Tactics. Everything is a plugin.
Design Engineering 1. Analysis  Design 2 Characteristics of good design 3 The design must implement all of the explicit requirements contained in the.
Software Development Module Code: CST 240 Chapter 6: Software Maintenance Al Khawarizmi International College, AL AIN, U.A.E Lecturer: Karamath Ateeq.
Software Architecture ATAM Process Presentation
John D. McGregor Session 9 Testing Vocabulary
The Development Process of Web Applications
Design Patterns Lecture part 2.
John D. McGregor Session 9 Testing Vocabulary
John D. McGregor C8 - Tactics
John D. McGregor Session 9 Testing Vocabulary
Presentation transcript:

CPSC 872 John D. McGregor Session 31 This is it.

Context problem solution specification implementation specification

Car OBD Phone Cloud

Perspectives Tool Architectural Usability Media Importance of context Seeking diverse opinions

Perspective description Users Artifacts Context Activities Central relations Communication Perspective-Implied Use Qualities Described by

Constraints Helps establish the context Legal Industry/ad hoc standards Government regulations & law Societal issues - privacy

Interfaces Interface vs specification An interface may be described by a state machine Ports Error models Pre/post-conditions on each function State model that relates the functions Error model that adds the error behavior

Traceability Follow a requirement into the actual system Improves maintenance by making it easier to know all program elements that have to change given a change in requirements

Process All the tasks that have to be carried out to produce a product can be examined, optimized and monitored Process models such as iterative, incremental achieve specific business and technical goals Tools such as EPF facilitate this

Design Static/dynamic When can change happen – Idea time – Compile time/interpret time – Link time – Deploy time – Configure time – Runtime

Design concepts Styles and patterns – layered Principles – Separation of concerns Operators – decompose

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

Pattern elements Pattern Name (Scope, Purpose) Intent Also Known As Motivation Applicability Structure Participants Collaborations Consequences Implementation An implementation Sample Code and Usage Program Listing Known Uses Examples of the pattern found in real systems. Related Patterns

Patterns Singleton Observer Visitor …

Quality attributes Quality attribute vs non-functional requirements Scenario – Source of stimulus: – Stimulus: – Environment: – Artifact: – Response: – Response measure:

ATAM Analysis Architectural Decisions Scenarios Quality Attributes Architectural Approaches Business Drivers Software Architecture Risks Sensitivity Points Tradeoffs Non-Risks impacts Risk Themes distilled into

Modules module Module specification Module implementation Module specification Module implementation

State

Pattern Language

Complex adaptive systems

Design for testability Controllability – Need routines that allow setting values in memory Observability – Assertions – Testability ports (this is what the hardware people do))