CISC/CMPE320 - Prof. McLeod

Slides:



Advertisements
Similar presentations
Design Validation CSCI 5801: Software Engineering.
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Moving from Analysis to Design. Overview ● What is the difference between analysis and design? ● Logical v. physical design ● System v. detailed design.
The Architecture Design Process
System Design: Decomposing the System
1 Decomposing the System Requirements  Specifications (Use cases)  Design --classes **entity **boundary **control --sequence diagrams --CRC cards **responsibilites.
Systems Analysis and Design in a Changing World, 6th Edition
1 CMPT 275 Software Engineering Requirements Analysis Process Janice Regan,
System Design Decomposing the System. Sequence diagram changes UML 2.x specifications tells that Sequence diagrams now support if-conditions, loops and.
Object Oriented Analysis and Design Using the UML
Requirements Engineering
1 Shawlands Academy Higher Computing Software Development Unit.
Software Engineering CS B Prof. George Heineman.
An Introduction to Software Architecture
CEN 5011 – Fall 2006 – Term Project Presentation Development Team Dulcardo Arteaga Erik Kessler Javier Mesa Larissa Guerrero Lenny Markus Naveen Gowda.
Testing Basics of Testing Presented by: Vijay.C.G – Glister Tech.
1 The Software Development Process  Systems analysis  Systems design  Implementation  Testing  Documentation  Evaluation  Maintenance.
Chapter Five–Part III Object Oriented Design More Design issues.
CEN Advanced Software Engineering
1 CMPT 275 High Level Design Phase Modularization.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Introduction to Software Architecture.
The Software Development Process
 Design goals are derived form the non- functional requirements  Every subsystem is assigned to a team and realized independently  During system design,
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Fall 2015CISC/CMPE320 - Prof. McLeod1 CISC/CMPE320 Assignment 1 due today, 7pm. RAD due next Friday in your Wiki. Presentations week 6. Today: –Continue.
Fall 2015CISC/CMPE320 - Prof. McLeod1 CISC/CMPE320 Assignment 1 due tomorrow, 7pm. RAD due next Friday in your Wiki. Presentations week 6. Tomorrow’s lecture.
Fall 2015CISC/CMPE320 - Prof. McLeod1 CISC/CMPE320 Lecture Videos will no longer be posted. Assignment 3 is due Sunday, the 8 th, 7pm. Today: –System Design,
Feb. 9, 2004CS WPI1 CS 509 Design of Software Systems Lecture #4 Monday, Feb. 9, 2004.
1 Object-Oriented Analysis and Design with the Unified Process Figure 13-1 Implementation discipline activities.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Fall 2015CISC/CMPE320 - Prof. McLeod1 CISC/CMPE320 Assignment 2 sample solution is posted. Assignment 3 is posted. Due Nov. 6. Today: –Continue Software.
Slide 1 Chapter 8 Architectural Design. Slide 2 Topics covered l System structuring l Control models l Modular decomposition l Domain-specific architectures.
Introduction. System Design Hardware/Software Platform Selection Software Architectures Database Design Human-Computer Interaction (HCI) Interface Object.
Software Design and Development Development Methodoligies Computing Science.
Chapter 9 Database Planning, Design, and Administration Transparencies © Pearson Education Limited 1995, 2005.
1 Week 1 Introduction, Writing a Program, Building a System Software Engineering Spring Term 2016 Marymount University School of Business Administration.
 System Requirement Specification and System Planning.
Why is Design so Difficult? Analysis: Focuses on the application domain Design: Focuses on the solution domain –The solution domain is changing very rapidly.
Software Development Module Code: CST 240 Chapter 6: Software Maintenance Al Khawarizmi International College, AL AIN, U.A.E Lecturer: Karamath Ateeq.
Chapter 1- Introduction
Software Engineering Management
Integration Testing.
Non Functional Requirements (NFRs)
Review for Final, Fall 2010 Close book, Close notes
The Development Process of Web Applications
Chapter 18 Maintaining Information Systems
System Design Ashima Wadhwa.
IEEE Std 1074: Standard for Software Lifecycle
Operating System Structure
Part 3 Design What does design mean in different fields?
Hierarchical Architecture
HCI in the software process
Software Engineering (CSI 321)
CISC/CMPE320 - Prof. McLeod
Starting Design: Logical Architecture and UML Package Diagrams
CS 1120: Computer Science II Software Life Cycle
CISC/CMPE320 - Prof. McLeod
HCI in the software process
An Introduction to Software Architecture
CISC/CMPE320 - Prof. McLeod
CISC/CMPE320 - Prof. McLeod
CISC/CMPE320 - Prof. McLeod
Chapter 8 Software Evolution.
Decomposing the System
Chapter 17 - Component-based software engineering
CS 1120: Computer Science II Software Life Cycle
Design Yaodong Bi.
Chapter 11: Integration- and System Testing
Design.
From Use Cases to Implementation
Presentation transcript:

CISC/CMPE320 - Prof. McLeod Winter 2013 CISC/CMPE320 9/11/2018 CISC/CMPE320 Notices SDD due Friday, 7pm this week. I have made a few small changes to the description on the group project page of the course web site to make it consistent with what I have presented in class. Assn 3 also due this Friday. Did you get the email I broadcasted yesterday about using VS 2017? Did it help? Fall 2017 CISC/CMPE320 - Prof. McLeod Prof. Alan McLeod

CISC/CMPE320 - Prof. McLeod Today What comes after Software Analysis: System Design. We still need to talk about system integration and testing, but we’ll do some C++ before that… Fall 2017 CISC/CMPE320 - Prof. McLeod

CISC/CMPE320 - Prof. McLeod Problem Statement Requirements Elicitation Non-functional requirements Functional Model RAD Use Case Diagram Class Diagram Analysis SDD Statechart Diagram Analysis Object Model Dynamic Model Sequence Diagram System Design System Design Object Model Subsystem Decomposition Design Goals Fall 2017 CISC/CMPE320 - Prof. McLeod

CISC/CMPE320 - Prof. McLeod Object Design Object Design Model Class Diagram Implementation This is not a flowchart. The stages are not necessarily carried out in this order. No iteration or feedback is shown. Source Code Testing Deliverable System Fall 2017 CISC/CMPE320 - Prof. McLeod

After Software Analysis Analysis has provided: A set of Nonfunctional Requirements and Constraints A System Model, expressed in: Use Cases (if following a traditional approach…) Object Models Sequence Diagrams Statechart Diagrams … Fall 2017 CISC/CMPE320 - Prof. McLeod

CISC/CMPE320 - Prof. McLeod After System Design End up with: Design Goals System qualities that need to be optimized Software Architecture Subsystem decomposed, mapped to hardware, decisions such as control flow, access control and data storage made. Boundary Use Cases System configuration, startup, shutdown and exception handling. Fall 2017 CISC/CMPE320 - Prof. McLeod

Subsystem Decomposition The aim is to identify and/or create classes (or packages of classes) that can be coded by a single coder. Techniques used are Layering and Partitioning. Concerned about Coupling between subsystems and Cohesion within a subsystem. The Subsystems must address the design goals. Keep refining the Decomposition until the goals are satisfied. Fall 2017 CISC/CMPE320 - Prof. McLeod

Identifying Subsystems A subsystem is like a package in Java – a group of classes related by their functionality. Like classes in a Java package, objects in a subsystem will have some coupling within the subsystem, but should have minimal coupling with other subsystems. What is coupling anyways? Fall 2017 CISC/CMPE320 - Prof. McLeod

Coupling and Cohesion Strong Cohesion, Weak Coupling Strong Coupling, Weak Cohesion Fall 2017 CISC/CMPE320 - Prof. McLeod

Coupling and Cohesion, Cont. Coupling occurs between packages and cohesion occurs between methods. Unlike the bad old days of languages that had (gasp!) goto statements (the horror!), modern OOP languages do their best to enforce strong cohesion and weak coupling. Weak coupling allows you to make changes in one object and minimize the effects on other objects. Strong cohesion means that methods are small and single-purpose. Fall 2017 CISC/CMPE320 - Prof. McLeod

CISC/CMPE320 - Prof. McLeod Layering Two general kinds: Open Architecture and Closed Architecture (don’t confuse “Open” with “Non-Proprietary”, here!). Fall 2017 CISC/CMPE320 - Prof. McLeod

Closed Architecture, in General Most Abstract Level 1 Subsystem A Level 2 Subsystem B Subsystem C Subsystem D Level 3 Subsystem E Subsystem F Subsystem G Least Abstract Fall 2017 CISC/CMPE320 - Prof. McLeod

Closed Architecture, Cont. You cannot go from level 3 back to level 1 without going through level 2. Subsystems A, B and E represent a complete Vertical Slice of the architecture, but subsystems D and G would not. Fall 2017 CISC/CMPE320 - Prof. McLeod

Closed Architecture, Cont. A layer can only access the layer immediately above or below it. (In Java you can construct a closed object hierarchy.) In an Open Architecture you can skip layers. Fall 2017 CISC/CMPE320 - Prof. McLeod

Closed Architecture Example – OSI Model Stands for “Open Systems Interconnection” Most Abstract Application Key Presentation CORBA or Java RMI Connection Session Message Transport Packet Network TCP/IP Frame DataLink Bit Physical Ethernet Fall 2017 CISC/CMPE320 - Prof. McLeod Least Abstract

Open Architecture Example Application Swing AWT You can get improved performance by bypassing the Swing layer. OS Fall 2017 CISC/CMPE320 - Prof. McLeod

CISC/CMPE320 - Prof. McLeod Layering and Coupling The emergency response database system: The Database subsystem is directly coupled to the other three subsystems, making these subsystems vulnerable to changes in Database design. ResourceManagement MapManagement IncidentManagement Database Fall 2017 CISC/CMPE320 - Prof. McLeod

Layering and Coupling, Cont. Add a layer: Storage will have a more stable interface. If Database changes then only Storage will have to be modified. Less coupling to Database! ResourceManagement IncidentManagement MapManagement Storage Database Fall 2017 CISC/CMPE320 - Prof. McLeod

Coupling and Cohesion, Cont. Usually have a tradeoff. Limit to the number of layers formed by partitioning: “Common Wisdom” says that developers can handle a maximum of 9 layers of abstraction. Often as little as 3 layers is just fine! 7 ± 2 Fall 2017 CISC/CMPE320 - Prof. McLeod

CISC/CMPE320 - Prof. McLeod Design Goals Are taken from the existing non-functional requirements and from your observations and documentation of the application domain. These goals usually lie in the following categories: Performance Dependability Cost Maintenance End User Criteria Fall 2017 CISC/CMPE320 - Prof. McLeod

Design Goals – Performance Response Time How quickly must the system respond to a user request? Throughput How many tasks does the system need to complete in a fixed period of time? Memory How much memory is required when running? Fall 2017 CISC/CMPE320 - Prof. McLeod

Design Goals – Dependability Robustness Survive invalid user input. Reliability Does observed behaviour match specified behaviour? Availability Percentage of time the system is available to perform normal tasks. Fault Tolerance Ability to continue to operate under erroneous conditions. Fall 2017 CISC/CMPE320 - Prof. McLeod

Design Goals – Dependability, Cont. Security Ability to withstand malicious attacks. Safety Avoid human injury even in the presence of errors and failures. Fall 2017 CISC/CMPE320 - Prof. McLeod

CISC/CMPE320 - Prof. McLeod Design Goals – Cost Development Cost Initial system development. Deployment Cost Cost of installation and user training. Upgrade Cost Translating data from previous system. Backwards compatibility? Maintenance Cost Cost of bug fixes and enhancements. Administration Cost Cost to administer system. Fall 2017 CISC/CMPE320 - Prof. McLeod

Design Goals – Maintenance Extensibility How easy is it to add functionality or new classes to the system? Modifiability How easy is it to change functionality? Adaptability How easy is to port the system to different application domains? Portability How easy is it to port the system to different platforms? Fall 2017 CISC/CMPE320 - Prof. McLeod

Design Goals – Maintenance, Cont. Readability How easy is it to understand the system from reading the code? Traceability of Requirements How easy is it to map the code to specific requirements? Fall 2017 CISC/CMPE320 - Prof. McLeod

Design Goals – End User Criteria Utility How well does the system support the work of the user? Usability How easy is it for the user to use the system? Fall 2017 CISC/CMPE320 - Prof. McLeod

CISC/CMPE320 - Prof. McLeod Trade-Offs! Of course these goals can beat on each other. For example it might not be possible to have a system that is completely safe and secure but still cheap. For example, you might have to compromise between: Space and Speed Delivery Time and Functionality Delivery Time and Quality Delivery Time and Staffing Fall 2017 CISC/CMPE320 - Prof. McLeod

CISC/CMPE320 - Prof. McLeod Team Efforts Establish and formalize these design goals early on, and make sure everyone is aware of them. They form the constraints on what you are able to build! Fall 2017 CISC/CMPE320 - Prof. McLeod

CISC/CMPE320 - Prof. McLeod Boundary Conditions Might already have boundary use cases – but not always. Configuration Use Cases: First, identify each persistent object. Second, locate the use case that creates the object and then the use case that archives the object. If these cannot be found, create the necessary use cases invoked by a system administrator. Fall 2017 CISC/CMPE320 - Prof. McLeod

Boundary Conditions, Cont. Start-up and Shut-down Use Cases: Each component (ex. WebServer) will need a start, shutdown and configure use case. A single use case might manage several tightly coupled components. Fall 2017 CISC/CMPE320 - Prof. McLeod

Boundary Conditions, Cont. Exception Handling Use Cases: Identify each possible component failure (ex. NetworkOutage), and decide how the system should react. Exceptions can be generated by hardware failures, changes in the operating environment, and software faults. How to handle these exceptions to prevent failure is a big topic! Fall 2017 CISC/CMPE320 - Prof. McLeod

Handling Boundary Conditions These new boundary use cases could have a profound impact on your design and you might have to go back and change your system decomposition to account for them. But it is still easier to look at boundary conditions after you have built your basic design. Fall 2017 CISC/CMPE320 - Prof. McLeod