SE310 Analysis and Design of Software Systems

Size: px
Start display at page:

Download "SE310 Analysis and Design of Software Systems"

Transcription

1 SE310 Analysis and Design of Software Systems Lecture 6 Transitioning from Use Cases and Class Diagrams at Architecture Level to Design February 10, 2015 Sam Siewert

2 Assignment #1 Comments OOA -> OOP (C++, Ada95 or Java) OOP (E.g. C++) Should Compile Focus on Classes to Implement Domain Model In OOA Phase, Limited to Class Specification (Virtual and Pure Virtual Methods for Refinement, Limited to Those in OIM) Bodies of Methods Stubbed Out Prints message OIM Becomes Test Driver in Detailed Design (later) OOD -> OOP (C++, Ada95 or Java) OOP (E.g. C++) Should Compile and Run! Focus on Object Models and Interaction Encapsulation into Modules or Packages and Object Instantiation Class Hierarchy, Polymorphism Associations and Aggregation Method and Attribute Inheritance and Refinement Pure Virtual and Virtual Functions Over-ride State Machines and Activity Diagrams (Detailed Behavior) Implement Key Methods, Stub Out Remaining Sam Siewert 2

3 Domain Models Use Case Details Complete a Design Provide Code Re-Use Candidates and PoC Start Here! USE Modelio as your DESIGN TOOL WARNING: ArgoUML has bugs, so use only to review Argo design examples Helpful Validation and Verification Features for Design Integrated Models Checklists Completeness CPP and Java Code Generation Sam Siewert 3

4 Outline for Practice Second Half Assignment #3 Last Practice Focus First Half Outcome Essentials of SWE Specification, Analysis and Architecture (High Level Design) Second Half Learning Objectives OO Detailed Analysis and Design OOA/OOD -> OOP (C++ or Java) OPTION-1 - Form Group for Assignment #4, #5, #6 OPTION-2 Work Alone, Play 3 Different Roles over Time Architect, PoC/Re-Use, SQA Agile Process Using Scrums and Sprints 1. Scrum Master Focus on Planning and Backlog of Tasks 2. Architect Focus on Requirements Specification, Use Cases and Domain Model 3. SQA Focus on Validation and Verification (Plans, Walk-throughs, and Final Testing) 4. PoC/Prototype Construction Focus on Early Coding, Mock-up, or Evaluation of Code for Re-use Sam Siewert 4

5 Group Scrum Process 3 Sprints Assignment #4, #5, #6 Must Take on a Different Roles Each Sprint Scrum Leader for Sprint #3 Must Have Been Scrum Leader in Prior Sprint Turn in Your Artifacts for Your Role Turn in Team Analysis, Design, PoC/Prototype Work Present Status to Class in 15 Minutes with Walkthrough, Brainstorming to Get Help, Demonstration and Test Results, Options and Decision Role Sprint #1 (A4) Sprint #2 (A5) Sprint #3 (A6) Scrum Leader Engineer-A Engineer-B A or B Architect/Designer Engineer-B Engineer-A A or B SQA Engineer-C Engineer-D C or D PoC/Re-Use Engineer-D Engineer-C C or D Sam Siewert 5

6 Final Exam Second Mid-Term, No Final Exam Instead, Final Presentation 30+ minutes per Group or Individual Design Walkthrough, Demonstration of Prototype(s), Assessment of Successes and Failures, Next Steps 5 Minutes Scrum Status 5 Minutes Major Requirements 10 Minutes Architecture Level Walkthrough (By SQA) 10 Minutes Design and/or PoC Code Walktrhrough (by PoC/Re- Use) 3 Status Checks 15 Minute Stand-Up Scrum Status for Sprint #1, #2, #3 (Scrum Leader + Team) or Individual Sam Siewert 6

7 Assignment #3 Propose Application or Software System of Your Interest Requirements Draft Specification Analysis Architecture OOA -> OOP (Domain Model & OIM -> C++), Must Compile! Stub Out All Methods (Only needs to Print a message) Potential Definition of Project for Second Half - #4 - #6 Requirements & Analysis - Validation and Verification Detailed Design to Target OOP Construction, OOD -> OOP Consider Hierarchy Relationships and Refinement (Class, Sub-Class, Inheritance, Polymorphism) Consider Associations (Method Interfaces, Careful C++ friend use) Consider Aggregation (Class Nesting) PoC Construction, Testing and CVMC Sam Siewert 7

8 Copyright {c} 2014 by the McGraw-Hill Companies, Inc. All rights Reserved. Four Common Types of Systems a b c a b a/x c/z b/y x y c z (a) Interactive subsystem (b) Event-driven subsystem (c) Transformational subsystem (d) Database subsystem 6-8

9 Interactive Example(s) OpenCV PoC Interactive Edge Finder, OCR C/C++ Allegro Games - Also Transformational (Ok to be Hybrid) Display + Slider = Interactive Interactive Control(s) Visual Feedback (Interactive) Sam Siewert 9

10 Event Driven Example(s) C/C++ Prototype Bright Target Tracker, Robotic Steering, PID Controller(s) Also Transformational (Ok to be Hybrid) Periodic + Event Driven Control Track, Find, Acquire Targets E.g. Industrial Automation, Process Control Sam Siewert 10

11 Transformational Example(s) Very Common Engineering Architecture OpenCV PoC Hough Linear or Circular Transform C/C++ code PoC Image Enhancement, Sharpen, Brighten/Contrast, Encrypt/Decrypt, Compress/Decompress Batch or Continuous Real-Time Digital Media Security & Transport Computer Vision Sam Siewert 11

12 Transaction Example(s) DBMS, Client/Server PRClab MySQL Installation MySQL Workbench C/C++ Code - TCP/IP Command/Response, RAID Archive Sam Siewert 12

13 Activity Select 1 of 4 Architectures On a Paper Select 1 of 4 Architectures Interactive Cmd Line, GUI, Visualization/Graphics, Games Event Driven Detection, Tracking, Digital Control Transformational Image Proc, Comp Vision, Numerical Transaction DBMS, Client/Server Propose Application or Software System of Your Interest Requirements Draft Specification Analysis Architecture Assignment #3 - Potential Definition of Project for Second Half Sam Siewert 13

14 Assignment #4 - #6 Analyze, Design, Construct PoC or Mock-Up 3 Scrum Sprints 3 Status Presentations (15+ Minutes) 1 Final Presentation (30+ Minutes) Team or Individual Effort (Contributions Must be Clear for Team) SE310 OOA/OOD -> OOP Required (Compared to SE300, SA/SD and/or OOA/OOD -> any PL) Sam Siewert 14

15 Kung Chapter 10 & 11 Transition from Analysis and Architecture to Design OIM is a Great Bridge Requires Definition of Class Methods Constructors, Destructors Implicit and Explicit Setters and Getters (Accessors and Mutators) Object Interaction via Methods and Messages Care with Hierarchy and Issues of Association & Aggregation Introduction to Design Patterns (More Detailed than Architecture Patterns) OOA -> OOD Common Object Instantiation and Uses Common Implementation of Class Methods and Refinement Sam Siewert 15

16 Key Takeaway Points Design patterns are abstractions of proven design solutions to commonly encountered design problems. The controller, expert, and creator patterns are applicable to almost all objectoriented systems. Copyright {c} 2014 by the McGraw-Hill Companies, Inc. All rights Reserved

17 Applying Patterns in the Methodology Context Business goals & needs Current situation Preliminary requirements Abstract & high level use cases, use case diagrams Acquiring Requirements (Domain Modeling) Deriving Use Cases from Requirements Allocating Use Cases & Subsystems to Iterations Use case-iteration allocation matrix Producing an Architecture Design Software architecture Accommodating Requirements Change Domain model Domain Modeling Use case-iteration allocation matrix Iteration use cases Actor-System Interaction Modeling Deriving Design Class Diagram Expanded use cases & UI design Behavior Modeling & Responsibility Assignment Behavior models Test Driven Development, Integration, & Deployment Customer feedback Domain model Design class diagram (a) Planning Phase (b) Iterative Phase activities during each iteration control flow data flow control flow & data flow Copyright {c} 2014 by the McGraw-Hill Companies, Inc. All rights Reserved.

18 Copyright {c} 2014 by the McGraw-Hill Companies, Inc. All rights Reserved. What Are Design Patterns? Design patterns are proven design solutions to commonly encountered design problems. Each pattern solves a class of design problems. Design patterns codify software design principles and idiomatic solutions. Design patterns improve communication among software developers. Design patterns empower less experienced developers to produce high-quality designs. Patterns can be combined to solve a large complex design problem

19 Example: The Singleton Pattern Pattern name: Singleton Design Problem: How do we ensure that a class has only one globally accessible instance? Example uses: System configuration class System log file Copyright {c} 2014 by the McGraw-Hill Companies, Inc. All rights Reserved

20 Copyright {c} 2014 by the McGraw-Hill Companies, Inc. All rights Reserved. The Singleton Pattern public class Catalog { private static Catalog instance; private Catalog() {... } // private constructor public static Catalog getinstance() { if (instance==null) instance=new Catalog(); return instance; } // other code } 10-20

21 Copyright {c} 2014 by the McGraw-Hill Companies, Inc. All rights Reserved. Example: The Singleton Pattern <<Singleton>> Config -$ instance: Config // other attributes - Config() +$ getinstance(): Config // other operations Stereotype shows the pattern name if (instance==null) instance=new Config(); return instance; +: public -: private $: static 10-21

22 Copyright {c} 2014 by the McGraw-Hill Companies, Inc. All rights Reserved. Describing Patterns The pattern name conveys the design problem as well as the design solution. Example: Singleton How to design a class that has only one globally accessible instance? The singleton pattern provides a solution. Pattern description also specifies benefits of applying the pattern liabilities associate with the pattern, and possible trade-offs 10-22

23 More About Design Patterns Patterns are recurring designs. Patterns are not new designs. Most patterns aim at improving the maintainability of the software system. easy to understand easy to change (significantly reduce change impact) Some patterns also improve efficiency or performance. Copyright {c} 2014 by the McGraw-Hill Companies, Inc. All rights Reserved

24 Commonly Used Design Patterns The General Responsibility Assignment Software Patterns (GRASP) The Gang of Four Patterns due to the four authors of the book Copyright {c} 2014 by the McGraw-Hill Companies, Inc. All rights Reserved.

25 GRASP Patterns Expert Creator Controller Low coupling High cohesion Polymorphism Pure fabrication Indirection Do not talk to strangers Copyright {c} 2014 by the McGraw-Hill Companies, Inc. All rights Reserved.

26 Gang of Four Patterns Creational patterns deal with creation of complex, or special purpose objects. Structural patterns provide solutions for composing or constructing large, complex structures that exhibit desired properties. Behavioral patterns are concerned with algorithmatic aspect of a design assignment of responsibilities to objects communication between objects Copyright {c} 2014 by the McGraw-Hill Companies, Inc. All rights Reserved

27 Applying GRASP through a Case Study Examine a commonly seen design. Discuss its pros and cons. Apply a GRASP pattern to improve. Discuss how the pattern improves the design. During this process, software design principles are explained. Copyright {c} 2014 by the McGraw-Hill Companies, Inc. All rights Reserved

28 presentation A Checkout Sequence Diagram : CheckoutGui : DBMgr l: Loan d:document <<call number >> Patron msg := checkout (callno:string): String d := getdocument (callno: String): Document business objects alt [d!=null] a:=isavailable():boolean GUI is assigned too many responsibilities. alt [a] [else] create(p:patron, d:document) save(l:loan) save(d:document) msg := Checkout successful. msg := Document not available. setavailable(false:boolean) [else] <<msg>> Tight coupling between presentation and business objects msg := Document not found. Copyright {c} 2014 by the McGraw-Hill Companies, Inc. All rights Reserved

29 Copyright {c} 2014 by the McGraw-Hill Companies, Inc. All rights Reserved. Problems with This Design Tight coupling between the presentation and the business objects. The presentation has been assigned too many responsibilities. The presentation has to handle actor requests (also called system events). Implications Not designing stupid objects. Changes to one may require changes to the other. Supporting multiple presentations is difficult and costly

30 Copyright {c} 2014 by the McGraw-Hill Companies, Inc. All rights Reserved. A Better Solution Reduce or eliminate the coupling between presentation and business objects. the Low Coupling design principle Remove irrelevant responsibilities from the presentation. the separation of concerns principle it achieves high cohesion and designing stupid objects Have another object (class) to handle actor requests (system events)

31 Copyright {c} 2014 by the McGraw-Hill Companies, Inc. All rights Reserved. The Controller Pattern Actor requests should be handled in the business object layer. Assign the responsibility for handling an actor request to a controller. The controller may delegate the request to business objects. The controller may collaborate with business objects to jointly handle the actor request

32 Use case controller Types of Controller It handles all actor requests relating to a use case. A checkout controller handles all actor requests to checkout a document. Role controller It represents a role played by an actor (Librarian, Bank Teller). Facade controller It represents the overall system (Library System, Banking System). It represents the organization (Library, Bank). Copyright {c} 2014 by the McGraw-Hill Companies, Inc. All rights Reserved

33 Copyright {c} 2014 by the McGraw-Hill Companies, Inc. All rights Reserved. Applying The Expert Pattern :Checkout GUI :Checkout Controller :DBMgr <<uid, callno>> msg:=checkout(uid,callno): String Does the DB manager have the attribute to fulfill these? b1:=haspatron (uid):bool [b1]: process (callno) b2:=isavailable (callno): boolean [b2] setavailable (callno,false) [b2] setcheckout (uid, callno) <<msg>> Who has the information to fulfill this? 10-33

34 Copyright {c} 2014 by the McGraw-Hill Companies, Inc. All rights Reserved. Applying The Expert Pattern :Checkout GUI :Checkout Controller :DBMgr l:loan d:document <<uid, cnlist>> msg:=checkout(uid, cnlist) u:=getuser(uid): user [u!=null & cn in cnlist]*: msg:= process(cn): String UML 1.0 notation for loop Controller has the parameters needed to call the constructor of Loan. <<msg>> d:=getdocument(cn): Document a:=isavailable() [a]create(u,d) [a]save(l) [a]setavailable(false) [a]save(d) expert pattern Document has the attribute 10-34

SE310 Analysis and Design of Software Systems

SE310 Analysis and Design of Software Systems SE310 Analysis and Design of Software Systems Lecture 5 Transitioning from Use Cases and Class Diagrams to Architecture Level of Design February 12, 2018 Sam Siewert Reminders Assignment #2 Grading in

More information

SE310 Analysis and Design of Software Systems

SE310 Analysis and Design of Software Systems SE310 Analysis and Design of Software Systems Lecture 2 OO Examples and Process Introduction January 8, 2015 Sam Siewert Overall Learning Objectives What to Build? Requirements as Capabilities Methods

More information

SE310 Analysis and Design of Software

SE310 Analysis and Design of Software SE310 Analysis and Design of Software Lecture 14 REVIEW March 26, 2018 Sam Siewert Domain Models Use Case Details Complete a Design Provide Code Re-Use Candidate and PoC/Prototype Start Here! https://www.modelio.org/

More information

SE310 Analysis and Design of Software Systems

SE310 Analysis and Design of Software Systems SE310 Analysis and Design of Software Systems Lecture 4, Part-2 Architectural Design January 28, 2019 Sam Siewert OOA/OOD vs. SA/SD Last Year s Consensus - 50% OO Helps, 50% Undecided Discussion of OOA

More information

SE310 Analysis and Design of Software Systems

SE310 Analysis and Design of Software Systems SE310 Analysis and Design of Software Systems Lecture 3 Systems Requirements January 21, 2015 Sam Siewert Learning Objective Software Engineering Process? Lifecycle Phases feedback SPIRAL WATERFALL XP

More information

SE310 Analysis and Design of Software Systems

SE310 Analysis and Design of Software Systems SE310 Analysis and Design of Software Systems Lecture 2-2 Systems Engineering for OO January 17, 2018 Sam Siewert Learning Objective Software Engineering Process? Lifecycle Phases feedback SPIRAL in Agile

More information

SE310 Analysis and Design of Software Systems

SE310 Analysis and Design of Software Systems SE310 Analysis and Design of Software Systems Lecture 4, Part-1 Architectural Design January 29, 2018 Sam Siewert Architecture and Design Patterns Focus on What is Being Designed and Built OO Has Goal

More information

SE310 Analysis and Design of Software Systems

SE310 Analysis and Design of Software Systems SE310 Analysis and Design of Software Systems Lecture 1 - Introduction January 11, 2018 Sam Siewert Introductions What You Want from Course? When You Plan to Take Capstone? Which is your preferred OOP

More information

17. GRASP: Designing Objects with Responsibilities

17. GRASP: Designing Objects with Responsibilities 17. GRASP: Designing Objects with Responsibilities Objectives Learn to apply five of the GRASP principles or patterns for OOD. Dr. Ziad Kobti School of Computer Science University of Windsor Understanding

More information

be used for more than one use case (for instance, for use cases Create User and Delete User, one can have one UserController, instead of two separate

be used for more than one use case (for instance, for use cases Create User and Delete User, one can have one UserController, instead of two separate UNIT 4 GRASP GRASP: Designing objects with responsibilities Creator Information expert Low Coupling Controller High Cohesion Designing for visibility - Applying GoF design patterns adapter, singleton,

More information

Patterns and Testing

Patterns and Testing and Lecture # 7 Department of Computer Science and Technology University of Bedfordshire Written by David Goodwin, based on the lectures of Marc Conrad and Dayou Li and on the book Applying UML and (3

More information

Requirements and Design Overview

Requirements and Design Overview Requirements and Design Overview Robert B. France Colorado State University Robert B. France O-1 Why do we model? Enhance understanding and communication Provide structure for problem solving Furnish abstractions

More information

OBJECT ORIENTED SYSTEM DEVELOPMENT Software Development Dynamic System Development Information system solution Steps in System Development Analysis

OBJECT ORIENTED SYSTEM DEVELOPMENT Software Development Dynamic System Development Information system solution Steps in System Development Analysis UNIT I INTRODUCTION OBJECT ORIENTED SYSTEM DEVELOPMENT Software Development Dynamic System Development Information system solution Steps in System Development Analysis Design Implementation Testing Maintenance

More information

CSCU9T4: Managing Information

CSCU9T4: Managing Information CSCU9T4: Managing Information CSCU9T4 Spring 2016 1 The Module Module co-ordinator: Dr Gabriela Ochoa Lectures by: Prof Leslie Smith (l.s.smith@cs.stir.ac.uk) and Dr Nadarajen Veerapen (nve@cs.stir.ac.uk)

More information

SE420 - Software Quality Assurance

SE420 - Software Quality Assurance SE420 - Software Quality Assurance http://dilbert.com/strips/comic/2006-01-29/ Lecture 3 Unit Testing, Part-2 January 21, 2019 Sam Siewert Reminders Assignment #2 Posted Thursday [Unit Re-Use] Explore

More information

CASE TOOLS LAB VIVA QUESTION

CASE TOOLS LAB VIVA QUESTION 1. Define Object Oriented Analysis? VIVA QUESTION Object Oriented Analysis (OOA) is a method of analysis that examines requirements from the perspective of the classes and objects found in the vocabulary

More information

The Design Patterns Matrix From Analysis to Implementation

The Design Patterns Matrix From Analysis to Implementation The Design Patterns Matrix From Analysis to Implementation This is an excerpt from Shalloway, Alan and James R. Trott. Design Patterns Explained: A New Perspective for Object-Oriented Design. Addison-Wesley

More information

CHAPTER 9 DESIGN ENGINEERING. Overview

CHAPTER 9 DESIGN ENGINEERING. Overview CHAPTER 9 DESIGN ENGINEERING Overview A software design is a meaningful engineering representation of some software product that is to be built. Designers must strive to acquire a repertoire of alternative

More information

Objectives. Explain the purpose and objectives of objectoriented. Develop design class diagrams

Objectives. Explain the purpose and objectives of objectoriented. Develop design class diagrams Objectives Explain the purpose and objectives of objectoriented design Develop design class diagrams Develop interaction diagrams based on the principles of object responsibility and use case controllers

More information

Review Software Engineering October, 7, Adrian Iftene

Review Software Engineering October, 7, Adrian Iftene Review Software Engineering October, 7, 2013 Adrian Iftene adiftene@info.uaic.ro Software engineering Basics Definition Development models Development activities Requirement analysis Modeling (UML Diagrams)

More information

Object-Oriented Analysis and Design Using UML (OO-226)

Object-Oriented Analysis and Design Using UML (OO-226) Object-Oriented Analysis and Design Using UML (OO-226) The Object-Oriented Analysis and Design Using UML course effectively combines instruction on the software development processes, objectoriented technologies,

More information

Software Design And Modeling BE 2015 (w. e. f Academic Year )

Software Design And Modeling BE 2015 (w. e. f Academic Year ) Software Design And Modeling BE 2015 (w. e. f Academic Year 2018-2019) 1 The Team Prof. Ravi Patki, I 2 IT Hinjawadi Pune Prof. Sangita Jaibhaiye SCOE Prof. D.D.Londhe PICT Prof. P. A. Joshi, ZCOER 2 The

More information

Chapter 1: Principles of Programming and Software Engineering

Chapter 1: Principles of Programming and Software Engineering Chapter 1: Principles of Programming and Software Engineering Data Abstraction & Problem Solving with C++ Fifth Edition by Frank M. Carrano Software Engineering and Object-Oriented Design Coding without

More information

Design Concepts. Slide Set to accompany. Software Engineering: A Practitioner s Approach, 7/e by Roger S. Pressman

Design Concepts. Slide Set to accompany. Software Engineering: A Practitioner s Approach, 7/e by Roger S. Pressman Chapter 8 Design Concepts Slide Set to accompany Software Engineering: A Practitioner s Approach, 7/e by Roger S. Pressman Slides copyright 1996, 2001, 2005, 2009 by Roger S. Pressman For non-profit educational

More information

A4 Explain how the Visitor design pattern works (4 marks)

A4 Explain how the Visitor design pattern works (4 marks) COMP61532 exam Performance feedback Original marking scheme in bold, additional comments in bold italic. Section A In general the level of English was poor, spelling and grammar was a problem in most cases.

More information

Object-Oriented Design

Object-Oriented Design Object-Oriented Design Lecture 14: Design Workflow Department of Computer Engineering Sharif University of Technology 1 UP iterations and workflow Workflows Requirements Analysis Phases Inception Elaboration

More information

Object-Oriented Design II - GRASP

Object-Oriented Design II - GRASP Object-Oriented Design II - GRASP SWEN-610 Foundations of Software Engineering Department of Software Engineering Rochester Institute of Technology Controller Creator Indirection Information expert High

More information

Object-Oriented Design I

Object-Oriented Design I Object-Oriented Design I SWEN-261 Introduction to Software Engineering Department of Software Engineering Rochester Institute of Technology Single responsibility High cohesion Information expert Low coupling

More information

Object oriented programming. Encapsulation. Polymorphism. Inheritance OOP

Object oriented programming. Encapsulation. Polymorphism. Inheritance OOP OOP Object oriented programming Polymorphism Encapsulation Inheritance OOP Class concepts Classes can contain: Constants Delegates Events Fields Constructors Destructors Properties Methods Nested classes

More information

Topic : Object Oriented Design Principles

Topic : Object Oriented Design Principles Topic : Object Oriented Design Principles Software Engineering Faculty of Computing Universiti Teknologi Malaysia Objectives Describe the differences between requirements activities and design activities

More information

Chapter 1: Programming Principles

Chapter 1: Programming Principles Chapter 1: Programming Principles Object Oriented Analysis and Design Abstraction and information hiding Object oriented programming principles Unified Modeling Language Software life-cycle models Key

More information

Object-Oriented Design

Object-Oriented Design Object-Oriented Design Department of Computer Engineering Lecture 12: Object-Oriented Principles Sharif University of Technology 1 Open Closed Principle (OCP) Classes should be open for extension but closed

More information

SE310 Analysis and Design of Software Systems

SE310 Analysis and Design of Software Systems SE310 Analysis and Design of Software Systems Lecture 9 Review of Event-Driven Architectures March 6, 2018 Sam Siewert Reminders No class on Thursday - use time for Scrum meeting and to work on designs

More information

Design Patterns. Dr. Rania Khairy. Software Engineering and Development Tool

Design Patterns. Dr. Rania Khairy. Software Engineering and Development Tool Design Patterns What are Design Patterns? What are Design Patterns? Why Patterns? Canonical Cataloging Other Design Patterns Books: Freeman, Eric and Elisabeth Freeman with Kathy Sierra and Bert Bates.

More information

CS317 File and Database Systems

CS317 File and Database Systems CS317 File and Database Systems http://dilbert.com/strips/comic/2010-01-18/ Lecture 14 Network Client Access to DBMS November 15, 2017 Sam Siewert Reminders PLEASE FILL OUT COURSE EVALUATIONS ON CANVAS

More information

Keywords: Abstract Factory, Singleton, Factory Method, Prototype, Builder, Composite, Flyweight, Decorator.

Keywords: Abstract Factory, Singleton, Factory Method, Prototype, Builder, Composite, Flyweight, Decorator. Comparative Study In Utilization Of Creational And Structural Design Patterns In Solving Design Problems K.Wseem Abrar M.Tech., Student, Dept. of CSE, Amina Institute of Technology, Shamirpet, Hyderabad

More information

Responsibilities. Using several specific design principles to guide OO design decisions.

Responsibilities. Using several specific design principles to guide OO design decisions. Designing Objects with Responsibilities Using several specific design principles to guide OO design decisions. Challenge Old-school advice on OOD After identifying i your requirements and creating a domain

More information

Object-Oriented Design

Object-Oriented Design Object-Oriented Design Lecturer: Raman Ramsin Lecture 15: Object-Oriented Principles 1 Open Closed Principle (OCP) Classes should be open for extension but closed for modification. OCP states that we should

More information

VEL TECH HIGH TECH Dr. RANGARAJAN Dr. SAKUNTHALA ENGINEERING COLLEGE UNIT 1 UML DIAGRAMS

VEL TECH HIGH TECH Dr. RANGARAJAN Dr. SAKUNTHALA ENGINEERING COLLEGE UNIT 1 UML DIAGRAMS UNIT 1 UML DIAGRAMS Introduction to OOAD Unified Process - UML diagrams Use Case Class Diagrams Interaction Diagrams State Diagrams Activity Diagrams Package, component and Deployment Diagrams. INTRODUCTION

More information

Final Exam CISC 475/675 Fall 2004

Final Exam CISC 475/675 Fall 2004 True or False [2 pts each]: Final Exam CISC 475/675 Fall 2004 1. (True/False) All software development processes contain at least separate planning, testing, and documentation phases. 2. (True/False) The

More information

COMP 6471 Software Design Methodologies

COMP 6471 Software Design Methodologies COMP 647 Software Design Methodologies Fall 20 Dr Greg Butler http://www.cs.concordia.ca/~gregb/home/comp647-fall20.html Course Introduction Course People Course Components What the course is What the

More information

CS415 Human Computer Interaction

CS415 Human Computer Interaction CS415 Human Computer Interaction Lecture 3 WIMP HCI (GUI Builders Part-2) September 7, 2018 Sam Siewert Recall - GUI Layout & Code-Gen or VHLLs for GUI Build Method #1 Compiled Programming Language (e.g.

More information

OBJECT ORIENTED DESIGN with the Unified Process. Use Case Realization

OBJECT ORIENTED DESIGN with the Unified Process. Use Case Realization OBJECT ORIENTED DESIGN with the Unified Process Use Case Realization Objectives Explain the purpose and objectives of objectoriented design Develop design class diagrams Develop detailed sequence diagrams

More information

Object-Oriented and Classical Software Engineering DESIGN 11/12/2017. CET/CSC490 Software Engineering Design CHAPTER 14. Stephen R. Schach.

Object-Oriented and Classical Software Engineering DESIGN 11/12/2017. CET/CSC490 Software Engineering Design CHAPTER 14. Stephen R. Schach. Slide 14.1 CHAPTER 14 Slide 14.2 Object-Oriented and Classical Software Engineering DESIGN Eighth Edition, WCB/McGraw-Hill, 2011 Stephen R. Schach Overview Slide 14.3 Overview (contd) Slide 14.4 and abstraction

More information

An Introduction to Patterns

An Introduction to Patterns An Introduction to Patterns Robert B. France Colorado State University Robert B. France 1 What is a Pattern? Patterns are intended to capture the best available software development experiences in the

More information

OODP Session 5a. Web Page: Visiting Hours: Tuesday 17:00 to 19:00

OODP Session 5a.   Web Page:  Visiting Hours: Tuesday 17:00 to 19:00 OODP Session 5a Next week: Reading week Session times PT group 1 Monday 18:00 21:00 room: Malet 403 PT group 2 Thursday 18:00 21:00 room: Malet 407 FT Tuesday 13:30 17:00 room: Malet 404 Email: oded@dcs.bbk.ac.uk

More information

CS6502- OBJECT ORIENTED ANALYSIS AND DESIGN UNIT I

CS6502- OBJECT ORIENTED ANALYSIS AND DESIGN UNIT I CS6502- OBJECT ORIENTED ANALYSIS AND DESIGN UNIT I Introduction to OOAD Unified Process - UML diagrams Use Case Class Diagrams Interaction Diagrams State Diagrams Activity Diagrams Package, component and

More information

ADVANCED SOFTWARE DESIGN LECTURE 7 GRASP

ADVANCED SOFTWARE DESIGN LECTURE 7 GRASP ADVANCED SOFTWARE DESIGN LECTURE 7 GRASP Dave Clarke 1 TODAY S LECTURE We will discuss 7 of the GRASP design patterns cohesion and coupling were covered earlier. These provide principles for evaluating

More information

Design Pattern What is a Design Pattern? Design Pattern Elements. Almas Ansari Page 1

Design Pattern What is a Design Pattern? Design Pattern Elements. Almas Ansari Page 1 What is a Design Pattern? Each pattern Describes a problem which occurs over and over again in our environment,and then describes the core of the problem Novelists, playwrights and other writers rarely

More information

Idioms and Design Patterns. Martin Skogevall IDE, Mälardalen University

Idioms and Design Patterns. Martin Skogevall IDE, Mälardalen University Idioms and Design Patterns Martin Skogevall IDE, Mälardalen University 2005-04-07 Acronyms Object Oriented Analysis and Design (OOAD) Object Oriented Programming (OOD Software Design Patterns (SDP) Gang

More information

Design Patterns. An introduction

Design Patterns. An introduction Design Patterns An introduction Introduction Designing object-oriented software is hard, and designing reusable object-oriented software is even harder. Your design should be specific to the problem at

More information

CSE 70 Final Exam Fall 2009

CSE 70 Final Exam Fall 2009 Signature cs70f Name Student ID CSE 70 Final Exam Fall 2009 Page 1 (10 points) Page 2 (16 points) Page 3 (22 points) Page 4 (13 points) Page 5 (15 points) Page 6 (20 points) Page 7 (9 points) Page 8 (15

More information

Ans 1-j)True, these diagrams show a set of classes, interfaces and collaborations and their relationships.

Ans 1-j)True, these diagrams show a set of classes, interfaces and collaborations and their relationships. Q 1) Attempt all the following questions: (a) Define the term cohesion in the context of object oriented design of systems? (b) Do you need to develop all the views of the system? Justify your answer?

More information

Object-Oriented Design

Object-Oriented Design Object-Oriented Design Lecturer: Raman Ramsin Lecture 10: Analysis Packages 1 Analysis Workflow: Packages The analysis workflow consists of the following activities: Architectural analysis Analyze a use

More information

SHRI ANGALAMMAN COLLEGE OF ENGINEERING & TECHNOLOGY (An ISO 9001:2008 Certified Institution) SIRUGANOOR,TRICHY

SHRI ANGALAMMAN COLLEGE OF ENGINEERING & TECHNOLOGY (An ISO 9001:2008 Certified Institution) SIRUGANOOR,TRICHY SHRI ANGALAMMAN COLLEGE OF ENGINEERING & TECHNOLOGY (An ISO 9001:2008 Certified Institution) SIRUGANOOR,TRICHY-621105. DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING CS 1301-OBJECT ORIENTED ANALYSIS AND

More information

Object Oriented Programming

Object Oriented Programming Unit 19: Object Oriented Unit code: K/601/1295 QCF Level 4: BTEC Higher National Credit value: 15 Aim To provide learners with an understanding of the principles of object oriented programming as an underpinning

More information

Lecture Notes UML UNIT-II. Subject: OOAD Semester: 8TH Course No: CSE-802

Lecture Notes UML UNIT-II. Subject: OOAD Semester: 8TH Course No: CSE-802 UNIT-II Lecture Notes On UML IMPORTANCE OF MODELING, BRIEF OVERVIEW OF OBJECT MODELING TECHNOLOGY (OMT) BY RAMBAUGH, BOOCH METHODOLOGY, USE CASE DRIVE APPROACH (OOSE) BY JACKOBSON. KHALID AMIN AKHOON 1

More information

Design Patterns. Observations. Electrical Engineering Patterns. Mechanical Engineering Patterns

Design Patterns. Observations. Electrical Engineering Patterns. Mechanical Engineering Patterns Introduction o to Patterns and Design Patterns Dept. of Computer Science Baylor University Some slides adapted from slides by R. France and B. Tekinerdogan Observations Engineering=Problem Solving Many

More information

ACRONYMS AND GLOSSARY

ACRONYMS AND GLOSSARY Appendix A ACRONYMS AND GLOSSARY SYS-ED/ COMPUTER EDUCATION TECHNIQUES, INC. 1 Acronyms Acronym 1NF 1ONF 2NF 2ONF 2ONF 3NF 3ONF API CASE CORBA CRUD DFD FLOOT IDL Java VM ODMG OMG OODBMS OOUI OQL ODBC OOCRUD

More information

An Introduction to Patterns

An Introduction to Patterns An Introduction to Patterns Robert B. France Colorado State University Robert B. France 1 What is a Pattern? - 1 Work on software development patterns stemmed from work on patterns from building architecture

More information

Homework Identify a suitable project topic that conforms to project requirements

Homework Identify a suitable project topic that conforms to project requirements Week Content 1 Revis June 2 June sion of Higher SDD and Introduction to course Introduction to the course with exemplification of Course Assessment requirements and Project Revision of SDD concepts at

More information

Final Exam. Final Exam Review. Ch 1: Introduction: Object-oriented analysis, design, implementation. Exam Format

Final Exam. Final Exam Review. Ch 1: Introduction: Object-oriented analysis, design, implementation. Exam Format Final Exam Final Exam Review CS 4354 Fall 2012 Jill Seaman Friday, December 14, 11AM Closed book, closed notes, clean desk Content: Textbook: Chapters 1, 2, 4-10 Java Lectures, GRASP + JUnit 35% of your

More information

Design patterns. Jef De Smedt Beta VZW

Design patterns. Jef De Smedt Beta VZW Design patterns Jef De Smedt Beta VZW Who Beta VZW www.betavzw.org Association founded in 1993 Computer training for the unemployed Computer training for employees (Cevora/Cefora) 9:00-12:30 13:00-16:00

More information

Software Design and Analysis CSCI 2040

Software Design and Analysis CSCI 2040 Software Design and Analysis CSCI 2040 http://data.science.uoit.ca -> Home -> Teaching -> Software Design and Analysis Software Design and Analysis CSCI 4030 2 Describe the goals. Define object-oriented

More information

18.1 Definitions and General OO Principles

18.1 Definitions and General OO Principles Chapter 18: Design Patterns Design patterns are elegant, adaptable, and reusable solutions to everyday software development problems. Each pattern includes a description of a commonly occuring type of

More information

ADD 3.0: Rethinking Drivers and Decisions in the Design Process

ADD 3.0: Rethinking Drivers and Decisions in the Design Process ADD 3.0: Rethinking Drivers and Decisions in the Design Process Rick Kazman Humberto Cervantes SATURN 2015 Outline Presentation Architectural design and types of drivers The Attribute Driven Design Method

More information

Software Development Methodologies

Software Development Methodologies Software Development Methodologies Lecturer: Raman Ramsin Lecture 3 Seminal Object-Oriented Methodologies: A Feature-Focused Review (Part 1) 1 Coad-Yourdon Two-phase introduction: Object-Oriented Analysis

More information

VALLIAMMAI ENGINEERING COLLEGE

VALLIAMMAI ENGINEERING COLLEGE VALLIAMMAI ENGINEERING COLLEGE SRM Nagar, Kattankulathur 603 203 DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING QUESTION BANK V SEMESTER CS6502-OBJECT ORIENTED ANALYSIS AND DESIGN Regulation 2013 Academic

More information

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico Modellistica Medica Maria Grazia Pia INFN Genova Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico 2002-2003 Lezione 8 OO modeling Design Patterns Introduction Creational Patterns Software

More information

Agile Model-Driven Development with UML 2.0 SCOTT W. AM BLER. Foreword by Randy Miller UNIFIED 1420 MODELING LANGUAGE. gile 1.

Agile Model-Driven Development with UML 2.0 SCOTT W. AM BLER. Foreword by Randy Miller UNIFIED 1420 MODELING LANGUAGE. gile 1. THE OBJECT PRIMER THIRD EDITION Agile Model-Driven Development with UML 2.0 SCOTT W. AM BLER Foreword by Randy Miller UNIFIED 1420 MODELING LANGUAGE gile 1 odeling Contents Acknowledgments Foreword Preface

More information

May Comp-B 11, Advanced Software Design. 3 hours duration

May Comp-B 11, Advanced Software Design. 3 hours duration May 2016 98-Comp-B 11, Advanced Software Design 3 hours duration NOTES: 1. If doubt exists as to the interpretation of any question, the candidate is urged to submit, with the answer paper, a clear statement

More information

UNIT 1-UMAL DIAGRAMS. Q.No. Question Competence Level. 1 What is Object Oriented analysis & Design? Remembering BTL1

UNIT 1-UMAL DIAGRAMS. Q.No. Question Competence Level. 1 What is Object Oriented analysis & Design? Remembering BTL1 Year & Semester : III & VI Section : CSE 1 & 2 Subject Code : CS6502 Subject Name : OBJECT ORIENTED ANALYSIS AND DESIGN Degree & Branch : B.E (CSE) Staff in charge : Dr.B.VANATHI & Mr.K.SHANMUGAM PART

More information

INTERNAL ASSESSMENT TEST III Answer Schema

INTERNAL ASSESSMENT TEST III Answer Schema INTERNAL ASSESSMENT TEST III Answer Schema Subject& Code: Object-Oriented Modeling and Design (15CS551) Sem: V ISE (A & B) Q. No. Questions Marks 1. a. Ans Explain the steps or iterations involved in object

More information

Object-Oriented Design and Modeling Using the UML

Object-Oriented Design and Modeling Using the UML Design Classes Object-Oriented Design and Modeling Using the UML Based on Chapter 18 of Whitten, Bentley, and Dittman: Systems Analysis and Design for the Global Enterprise (7th Ed). McGraw Hill. 2007

More information

Software Design Patterns. Background 1. Background 2. Jonathan I. Maletic, Ph.D.

Software Design Patterns. Background 1. Background 2. Jonathan I. Maletic, Ph.D. Software Design Patterns Jonathan I. Maletic, Ph.D. Department of Computer Science Kent State University J. Maletic 1 Background 1 Search for recurring successful designs emergent designs from practice

More information

Lecture Notes on Programming Languages

Lecture Notes on Programming Languages Lecture Notes on Programming Languages 85 Lecture 09: Support for Object-Oriented Programming This lecture discusses how programming languages support object-oriented programming. Topics to be covered

More information

Socket attaches to a Ratchet. 2) Bridge Decouple an abstraction from its implementation so that the two can vary independently.

Socket attaches to a Ratchet. 2) Bridge Decouple an abstraction from its implementation so that the two can vary independently. Gang of Four Software Design Patterns with examples STRUCTURAL 1) Adapter Convert the interface of a class into another interface clients expect. It lets the classes work together that couldn't otherwise

More information

CSC Advanced Object Oriented Programming, Spring Overview

CSC Advanced Object Oriented Programming, Spring Overview CSC 520 - Advanced Object Oriented Programming, Spring 2018 Overview Brief History 1960: Simula first object oriented language developed by researchers at the Norwegian Computing Center. 1970: Alan Kay

More information

Examples. Object Orientated Analysis and Design. Benjamin Kenwright

Examples. Object Orientated Analysis and Design. Benjamin Kenwright Examples Object Orientated Analysis and Design Benjamin Kenwright Outline Revision Questions Group Project Review Deliverables Example System Problem Case Studey Group Project Case-Study Example Vision

More information

Lecture 8: Chapter 8!

Lecture 8: Chapter 8! Lecture 8: Chapter 8! Design Concepts! Slide Set to accompany Software Engineering: A Practitioner s Approach, 7/e " by Roger S. Pressman Slides copyright 1996, 2001, 2005, 2009 by Roger S. Pressman For

More information

MCQS for Midterm cs504 Combined by Anees Ahmad

MCQS for Midterm cs504 Combined by Anees Ahmad MCQS for Midterm cs504 Combined by Anees Ahmad The best way to conduct a requirements validation review is to examine the system model for errors have the customer look over the requirements send them

More information

DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING CS2353-OBJECT ORIENTED ANALYSIS AND DESIGN. Unit-I. Introduction to OOAD

DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING CS2353-OBJECT ORIENTED ANALYSIS AND DESIGN. Unit-I. Introduction to OOAD DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING CS2353-OBJECT ORIENTED ANALYSIS AND DESIGN 1. What is Object-Oriented Analysis? Unit-I Introduction to OOAD PART-A (UML Notations has to be used wherever necessary)

More information

UNIT I. 3. Write a short notes on process view of 4+1 architecture. 4. Why is object-oriented approach superior to procedural approach?

UNIT I. 3. Write a short notes on process view of 4+1 architecture. 4. Why is object-oriented approach superior to procedural approach? Department: Information Technology Questions Bank Class: B.E. (I.T) Prof. Bhujbal Dnyaneshwar K. Subject: Object Oriented Modeling & Design dnyanesh.bhujbal11@gmail.com ------------------------------------------------------------------------------------------------------------

More information

Class diagrams. Modeling with UML Chapter 2, part 2. Class Diagrams: details. Class diagram for a simple watch

Class diagrams. Modeling with UML Chapter 2, part 2. Class Diagrams: details. Class diagram for a simple watch Class diagrams Modeling with UML Chapter 2, part 2 CS 4354 Summer II 2015 Jill Seaman Used to describe the internal structure of the system. Also used to describe the application domain. They describe

More information

Principles of Software Construction: Objects, Design, and Concurrency

Principles of Software Construction: Objects, Design, and Concurrency Principles of Software Construction: Objects, Design, and Concurrency Designing (sub-) systems Responsibility assignment Charlie Garrod Michael Hilton School of Computer Science 1 Administrivia Reading

More information

Paytm Programming Sample paper: 1) A copy constructor is called. a. when an object is returned by value

Paytm Programming Sample paper: 1) A copy constructor is called. a. when an object is returned by value Paytm Programming Sample paper: 1) A copy constructor is called a. when an object is returned by value b. when an object is passed by value as an argument c. when compiler generates a temporary object

More information

Chapter 5 Object-Oriented Programming

Chapter 5 Object-Oriented Programming Chapter 5 Object-Oriented Programming Develop code that implements tight encapsulation, loose coupling, and high cohesion Develop code that demonstrates the use of polymorphism Develop code that declares

More information

CMPE/SE 135 Object-Oriented Analysis and Design

CMPE/SE 135 Object-Oriented Analysis and Design Course and Contact Information San José State University Department of Computer Engineering CMPE/SE 135 Object-Oriented Analysis and Design Instructor: Ron Mak Office Location: ENG 250 Email: ron.mak@sjsu.edu

More information

1 Software Architecture

1 Software Architecture Some buzzwords and acronyms for today Software architecture Design pattern Separation of concerns Single responsibility principle Keep it simple, stupid (KISS) Don t repeat yourself (DRY) Don t talk to

More information

A few important patterns and their connections

A few important patterns and their connections A few important patterns and their connections Perdita Stevens School of Informatics University of Edinburgh Plan Singleton Factory method Facade and how they are connected. You should understand how to

More information

Plan. A few important patterns and their connections. Singleton. Singleton: class diagram. Singleton Factory method Facade

Plan. A few important patterns and their connections. Singleton. Singleton: class diagram. Singleton Factory method Facade Plan A few important patterns and their connections Perdita Stevens School of Informatics University of Edinburgh Singleton Factory method Facade and how they are connected. You should understand how to

More information

Software Engineering with Objects and Components Open Issues and Course Summary

Software Engineering with Objects and Components Open Issues and Course Summary Software Engineering with Objects and Components Open Issues and Course Summary Massimo Felici Software Engineering with Objects and Components Software development process Lifecycle models and main stages

More information

CS415 Human Computer Interaction

CS415 Human Computer Interaction CS415 Human Computer Interaction Lecture 7 Implementation and Testing Tools for HCIs October 4, 2015 Sam Siewert Coming Up Quiz on Wednesday for Part II Chapters 5,6,7,8,9 Review Next Week on Monday, 10/12

More information

Foundations of object orientation

Foundations of object orientation Foreword Preface List of projects discussed in detail in this book Acknowledgments Part 1 Chapter 1 Chapter 2 Foundations of object orientation Objects and classes 1.1 Objects and classes 1.2 Creating

More information

CS317 File and Database Systems

CS317 File and Database Systems CS317 File and Database Systems http://dilbert.com/strips/comic/1995-10-11/ Lecture 5 More SQL and Intro to Stored Procedures September 24, 2017 Sam Siewert SQL Theory and Standards Completion of SQL in

More information

Hippo Software BPMN and UML Training

Hippo Software BPMN and UML Training Hippo Software BPMN and UML Training Icon Key: www.hippo-software.co.uk Teaches theory concepts and notation Teaches practical use of Enterprise Architect Covers BPMN, UML, SysML, ArchiMate Includes paper

More information

3 Product Management Anti-Patterns by Thomas Schranz

3 Product Management Anti-Patterns by Thomas Schranz 3 Product Management Anti-Patterns by Thomas Schranz News Read above article, it s good and short! October 30, 2014 2 / 3 News Read above article, it s good and short! Grading: Added explanation about

More information

THE OBJECT-ORIENTED DESIGN PROCESS AND DESIGN AXIOMS (CH -9)

THE OBJECT-ORIENTED DESIGN PROCESS AND DESIGN AXIOMS (CH -9) THE OBJECT-ORIENTED DESIGN PROCESS AND DESIGN AXIOMS (CH -9) By: Mr.Prachet Bhuyan Assistant Professor, School of Computer Engineering, KIIT Topics to be Discussed 9.1 INTRODUCTION 9.2 THE O-O DESIGN PROCESS

More information

Lecture 13: Object orientation. Object oriented programming. Introduction. Object oriented programming. OO and ADT:s. Introduction

Lecture 13: Object orientation. Object oriented programming. Introduction. Object oriented programming. OO and ADT:s. Introduction Lecture 13: Object orientation Object oriented programming Introduction, types of OO languages Key concepts: Encapsulation, Inheritance, Dynamic binding & polymorphism Other design issues Smalltalk OO

More information

Learning Objectives. C++ For Artists 2003 Rick Miller All Rights Reserved xli

Learning Objectives. C++ For Artists 2003 Rick Miller All Rights Reserved xli Identify and overcome the difficulties encountered by students when learning how to program List and explain the software development roles played by students List and explain the phases of the tight spiral

More information