Design 15 February. Software Engineering: Elaborated Steps Concept (contract, intro on web site) Requirements (use cases, requirements) Architecture Design.

Slides:



Advertisements
Similar presentations
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture # 16 Finalizing the Application Design SWE 316: Software Design and.
Advertisements

Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
1 Software Requirement Analysis Deployment Package for the Basic Profile Version 0.1, January 11th 2008.
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
18 October Team Meetings  All team meetings for this week are cancelled (If you WANT to meet, I will)  Beginning next week, demo required at EVERY.
Applying Architectural Styles and Patterns. Outline  Defining Architectural Patterns and Style The activation model Styles and Quality Attributes  Common.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 8 Slide 1 System models.
The Architecture Design Process
Patterns Design 13 February.
Establishing the overall structure of a software system
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
Course Instructor: Aisha Azeem
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Architectural Design.
What is Software Architecture?
The Design Discipline.
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 1: Best Practices of Software Engineering.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
Lecture 9 Architectures and Frameworks
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 1 Architectural Design u Establishing the overall structure of a software system.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 10 Architectural Design.
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.
Chapter 1: Introduction to Systems Analysis and Design
1 Chapter 5 Practice: A Generic View Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
Software Engineering Chapter 8 Fall Analysis Extension of use cases, use cases are converted into a more formal description of the system.Extension.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Architectural Design portions ©Ian Sommerville 1995 Establishing the overall structure of a software system.
RUP Design RUP Artifacts and Deliverables
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
26 February Humpty Dumpty Presentations Software Architecture (cont)
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
System Models, Patterns and Software Architectures 14 February.
Slide 1 Introduction to Software Architecture TV Prabhakar.
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
Chapter 7 System models.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Modified by Juan M. Gomez Software Engineering, 6th edition. Chapter 7 Slide 1 Chapter 7 System Models.
Chapter 6 Architectural Design.
Sommerville 2004,Mejia-Alvarez 2009Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
1 Introduction to Software Engineering Lecture 1.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
ANU comp2110 Software Design lecture 5 COMP2110 Software Design in 2003 lecture 5 Requirements Specifications lecture 3 of 3 The Encounter game case study.
Final Exam Review Session 14 LBSC 790 / INFM 718B Building the Human-Computer Interface.
Requirements Management with Use Cases Module 10: Requirements Across the Product Lifecycle Requirements Management with Use Cases Module 10: Requirements.
Software Engineering 1 Object-oriented Analysis and Design Applying UML and Patterns An Introduction to Object-oriented Analysis and Design and Iterative.
1 OO Analysis & Design - Introduction to main ideas in OO Analysis & design - Practical experience in applying ideas -A large element is use of UML as.
© 2010 John Wiley & Sons Ltd. Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1.
ANU comp2110 Software Design lecture 8 COMP2110 Software Design in 2004 lecture 8 Software Architecture 1 of 2 (design, lecture 3 of 6) Goal of this small.
Winter 2011SEG Chapter 11 Chapter 1 (Part 1) Review from previous courses Subject 1: The Software Development Process.
Feb. 9, 2004CS WPI1 CS 509 Design of Software Systems Lecture #4 Monday, Feb. 9, 2004.
Software Engineering Principles Practical Advice and Steps for Managing Your Project.
COMP2110 Software Design in 2003 ● a(nother) framework for Software Engineering ● the Software Engineering ideas and concepts in comp2110 ● Organisation.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
ANU comp2110 Software Design lecture 10 COMP2110 Software Design in 2004 lecture 10 Software Architecture 2 of 2 design lecture 5 of 6 Goal of this small.
CS223: Software Engineering
DE?!GN software. COMP2110 Software Design in 2004 Chris Johnson 1.Software Requirements and Software Design in a framework for Software Engineering 2.The.
People and Teams Design.  For me ◦ Team meetings ◦ Next week’s demos  For client ◦ Your responsibility to schedule ◦ Can invite to next week’s presentation.
Slide 1 Chapter 8 Architectural Design. Slide 2 Topics covered l System structuring l Control models l Modular decomposition l Domain-specific architectures.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 5:Architectural Design l Establishing the overall structure of a software.
CSC 480 Software Engineering
Professorial kvetches
Unified Modeling Language
COMP2110 Software Design in 2004 lecture 09 High level design
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Object oriented analysis and design
Software maintenance.
Presentation transcript:

Design 15 February

Software Engineering: Elaborated Steps Concept (contract, intro on web site) Requirements (use cases, requirements) Architecture Design Implementation Unit test Integration System test Maintenance

System Design Patterns Model-View-Controller Data flow systems Pipes and filters Batch sequential Independent components Client-server Parallel communicating processes Event systems Virtual machines Interpreters Rule-based systems Repositories Databases Hypertext systems Layered architectures

Layered Architecture Role-playing game layer Characters LayoutRolePlayingGame Encounter Characters Encounter Environment Encounter Game Application layer 3D engine layer «uses» Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission. Coherent collection of software artifacts, typically a package of classes

Documenting Your Design Two types of documentation The details of the implementation Less important Captured in the code Components: Inline comments Doxygen How the system fits together Critical to understanding Not easily captured in the code External documentation required

Think About How would you describe the work? What is the first picture that you will draw? That is probably the architecture How to proceed Pick a general model Specialize it to your project Draw the picture One of the few places that I REALLY want a picture

Next Step What other models are needed? Data flow? Data model? Almost always needed State transition? Key considerations What are the hard parts of the work? What are the critical areas?

Examples If you are in a repository model, the data model is probably key If you are building a complex game, the state transitions may be critical

Team Exercise (10 minutes) Draw your system design Report Out

Detailed Design Build on well understood patterns from the system design Goal is to prepare the project for implementation

What does it include? System design decomposition Modules Processes Data Detailed module definitions Detailed data definitions Design decisions

From System to Detailed Design

Relating Use Cases, System & Detailed Design 1.Use case3. System Design2. Domain classes 4. Detailed Design Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Domain Classes Object-oriented paradigm, not implementation Domain = application specific Classes defined in natural language Used to explain the architecture and design Classes derived from the requirements Need not match the implementation Hard to not fall into that trap

Domain Classes Matching Implementation Classes Benefits Simplicity of mapping Drawbacks Later changes No worse off then if not matched May be too early for implementation decisions

Defining Domain Classes Begin with Use Cases Identify nouns External agents are not domain classes Are these key classes for the application? Are there others? Identify attributes and functionality for each class Validate Walkthrough use cases Try changes and extensions Look for Missing attributes or functions Changes that reach every where

Bridge Example 1.Use case3. Architecture2. Domain classes 4. Detailed Design Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission. “Cars should be able to travel from the top of Smith Hill at 65 mph, travel in a straight line, and arrive at Jones Hollow within 3 minutes.” Auto Road

Class exercise: teacher portal Want to identify Classes Attributes Functions

Use Cases for a Teacher Portal teacher presented with view with his content read messages from other teachers and administrators schedule an assessment selects class selects test based on difficulty and subject create new test create new question type of question introductory text possible answers correct answer edit existing question edit full test post message content recipient view class content Classes Attributes Functions

Use Cases for a Teacher Portal teacher presented with view with his content read messages from other teachers and administrators schedule an assessment selects class selects test based on difficulty and subject create new test create new question type of question introductory text possible answers correct answer edit existing question edit full test post message content recipient view class content Classes Attributes Functions

Use Cases for a Teacher Portal teacher presented with view with his content read messages from other teachers and administrators schedule an assessment selects class selects test based on difficulty and subject create new test create new question type of question introductory text possible answers correct answer edit existing question edit full test post message content recipient view class content Classes Attributes Functions

Use Cases for a Teacher Portal teacher presented with view with his content read messages from other teachers and administrators schedule an assessment selects class selects test based on difficulty and subject create new test create new question type of question introductory text possible answers correct answer edit existing question edit full test post message content recipient view class content Classes Attributes Functions

Back to Detailed Design What are we starting with? Domain classes System design models Use cases What do we need to do? Define implementation classes that realize the domain classes within the architecture framework and implement the functions defined in the use cases

Bridge Example Completed 1. Use case “Cars should be able to travel from the top of Smith Hill at 65 mph, travel in a straight line, and arrive at Jones Hollow within 3 minutes.” 3. System Design 2. Domain classes Auto Road Auto Road 4. Detailed Design Smith Hill Cable Jones Hollow Cable Pylon Guardrail Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.