Software Engineering 1 Object-oriented Analysis and Design Applying UML and Patterns An Introduction to Object-oriented Analysis and Design and Iterative.

Slides:



Advertisements
Similar presentations
Object-Oriented Analysis and Design Introduction 1.
Advertisements

Interaction Diagram Notation From Chapter 15 of Craig Larman, Applying UML and Patterns John Dalesandro.
Object-Oriented Analysis and Design
Chapter 1 Object Oriented Analysis and Design. UML, Patterns, and Object-Oriented Analysis and Design  The essential skills for the creation of well-designed,
Using UML, Patterns, and Java Object-Oriented Software Engineering Royce’s Methodology Chapter 16, Royce’ Methodology.
Object-Oriented Analysis and Design CHAPTERS 12-14: INTRODUCTION TO DESIGN 1.
Unified Modeling Language
CS3773 Software Engineering Lecture 03 UML Use Cases.
Object Oriented Analysis and Design
George Blank University Lecturer. CS 602 Java and the Web Object Oriented Software Development Using Java Chapter 2.
NJIT Requirements To Design--Iteratively Chapter 12 Applying UML and Patterns Craig Larman Presented By :Satish Khanna.
NJIT 1 On to Object Design Chapter 14 Applying UML and Patterns.
Object Oriented Analysis and Design Chapter 1 Applying UML and Patterns -Craig Larman.
1/31 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2005] January 22, 2009.
SwE 313 Introduction to Rational Unified Process (RUP)
COMP 350: Object Oriented Analysis and Design Lecture 2
1 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2002] January 26, 2006.
Applying UML and Patterns An Introduction to Object-oriented Analysis and Design and Iterative Development Part III Elaboration Iteration I – Basic1.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
Object-Oriented Analysis and Design Feb 9, 2009.
Introduction to Interactive Media 02. The Interactive Media Development Process.
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
The Rational Unified Process
Software Engineering 1 Object-oriented Analysis and Design Applying UML and Patterns An Introduction to Object-oriented Analysis and Design and Iterative.
IntellAgile Copyright © 2002 Craig Larman. All rights reserved. Craig Larman’s Applying UML and Patterns: Hands-on Mastery of OOA/D.
EECE 310 Software Engineering Lecture 0: Course Orientation.
SWE © Solomon Seifu CS425 Software Engineering Solomon Seifu Department of Computer Science Maharishi University of Management, Fairfield, IA.
CS361 Winter 2013 Final Exam Review Software Engineering I Oregon State University.
Chapter 1 Object-Oriented Analysis and Design. Disclaimer Slides come from a variety of sources: –Craig Larman-developed slides; author of this classic.
Requirements To Design--Iteratively Chapter 12 Applying UML and Patterns Craig Larman.
On to Object Design 徐迎晓 复旦大学软件学院
1 On to Object Design Chapter 14 Applying UML and Patterns.
Object-Oriented Analysis and Design An Introduction.
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
Software development process ธนวัฒน์ แซ่ เอียบ. The development process Process –set of rules which define how a development project. Methodology and.
11 Partnership for Performance How to hear this lecture Click on the icon: to hear the narration for each slide.
Copyright 2002 Prentice-Hall, Inc. Chapter 2 Object-Oriented Analysis and Design Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey.
Systems Analysis and Design in a Changing World, 3rd Edition
Object-Oriented Analysis and Design Fall 2009.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
CSC 395 – Software Engineering Lecture 14: Object-Oriented Analysis –or– Ripping the Band-Aid Off Quickly.
 What is Modeling What is Modeling  Why do we Model Why do we Model  Models in OMT Models in OMT  Principles of Modeling Principles of Modeling 
Software Engineering 1 Object-oriented Analysis and Design Chap 22 UML Tools and UML as Blueprint.
University of Utah SoCCS Lecture 121 Dynamic Models in Design CS6961 – Lecture 12 Nathan Dykman.
Unified Modeling Language. Object Oriented Methods ► What are object-oriented (OO) methods?  OO methods provide a set of techniques for analyzing, decomposing,
Chapter 7 The Practices: dX. 2 Outline Iterative Development Iterative Development Planning Planning Organizing the Iterations into Management Phases.
Object-Oriented Analysis and Design ธนวัฒน์ แซ่ เอียบ.
Object Oriented Analysis and Design Chapter 1 Applying UML and Patterns -Craig Larman.
Chapter 1 OBJECT-ORIENTED ANALYSIS AND DESIGN Objectives Describe the book goals and scope Define OOA/D (Object-Oriented Analysis and Design) Illustrate.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Lecture 3 – Agile Approach
TK2023 Object-Oriented Software Engineering CHAPTER 9 INTRODUCTION TO OBJECT DESIGN.
UML Course Instructor: Rizwana Noor. Overview  Modeling  What is UML?  Why UML?  UML Diagrams  Use Case  Components  Relationships  Notations.
CSCI 6461 Final Review Spring Chapters/Topics Covered Ch 7 From Modules to Objects Ch 10 Requirements Workflow Ch 11 Analysis Workflow Ch 12 Design.
1 Architectural Blueprints—The “4+1” View Model of Software Architecture (
Dr. Kivanc DincerCS319 Week 6 - Oct.17,20051 Chapter 14 Onto Object Design Objectives Understand dynamic and static object design modeling. Try agile modeling,
Object Oriented Analysis & Design By Rashid Mahmood.
Introduction to Unified Modeling Language (UML) By Rick Mercer with help from The Unified Modeling Language User Guide, Grady Booch, James Rumbaugh, Ivar.
SWE 214 (071) Introduction to UML Slide 1 Introduction to UML.
1 An Overview of UML. 2 The Unified Modeling Language UML is a graphical language used by software engineers to model software systems during development.
Logical Architecture and UML Package Diagrams. The logical architecture is the large-scale organization of the software classes into packages, subsystems,
Chapter 1 OBJECT-ORIENTED ANALYSIS AND DESIGN
Unified Modeling Language
Introduction to Unified Modeling Language (UML)
MCS morning (3rd semester) Department of CS&IT
Object Oriented Analysis and Design
Week 5.
Week 5.
On to Object Design c. 14.
Chapter 4 Sequence Diagrams
Presentation transcript:

Software Engineering 1 Object-oriented Analysis and Design Applying UML and Patterns An Introduction to Object-oriented Analysis and Design and Iterative Development Part III Elaboration Iteration I – Basic 2

Software Engineering 2 Object-oriented Analysis and Design Chap 14 On to Object Design

Software Engineering 3 Object-oriented Analysis and Design Three Ways to Develop Programs 1  How do developers design objects? Here are three ways m Code. Design-while-coding (Java, C#, …), ideally with power tools such as refactoring. m Draw, then code. Drawing some UML on a whiteboard or UML CASE tool, then switching to #1 with a text- strong IDE (e.g., Eclipse or Visual Studio). m Only draw. Somehow, the tool generates everything from diagrams. m "Only draw" is a misnomer, as this still involves a text programming language attached to UML graphic elements.  This chapter introduces object design and lightweight drawing before coding, suggesting ways to make it pay off.

Software Engineering 4 Object-oriented Analysis and Design Three Ways to Develop Programs 2  Some aims of agile modeling are to reduce drawing overhead and model to understand and communicate, rather than to document though documenting is easy with digital photos  Three ways to apply UML [Fowler03]. m using lots of whiteboards (ten in a room, not two) or special white plastic static cling sheets (that work like whiteboards) covering large wall areas, using markers, digital cameras, and printers to capture "UML as sketch" m Modeling with others m Creating several models in parallel. For example, five minutes on a wall of interaction diagrams, then five minutes on a wall of related class diagrams

Software Engineering 5 Object-oriented Analysis and Design Tips  More tips of using Agile modeling  It's easy to upload digital photos of wall drawings to an internal wiki (see that captures your project information.  Popular brands of white plastic static cling sheets: m Write On Cling Sheets m Magic-Chart Magic-Chart Write On Cling Sheets

Software Engineering 6 Object-oriented Analysis and Design UML Tools  Guidelines m Choose a UML CASE tool that integrates with popular text-strong IDEs, such as Eclipse or Visual Studio. m Choose a UML tool that can reverse-engineer (generate diagrams from code) not only class diagrams (common), but also interaction diagrams (more rare, but very useful to learn call-flow structure of a program).  Agile modeling on the walls and using a UML CASE tool integrated into a text-strong IDE can be complementary. Try both during different phases of activity.

Software Engineering 7 Object-oriented Analysis and Design How Much Time Spent Drawing UML Before Coding  For a three-week timeboxed iteration, m spend a few hours or at most one day (with partners) near the start of the iteration "at the walls" (or with a UML CASE tool) m Then stop - and if sketching - perhaps take digital photos, print the pictures, and transition to coding for the remainder of the iteration m Using the UML drawings for inspiration as a starting point, but recognizing that the final design in code will diverge and improve. m Shorter drawing/sketching sessions may occur throughout the iteration.

Software Engineering 8 Object-oriented Analysis and Design Designing Objects  There are two kinds of object models: dynamic and static.  Spend a short period of time on interaction diagrams (dynamics), then switch to a wall of related class diagrams (statics).

Software Engineering 9 Object-oriented Analysis and Design Dynamic Object Modeling  Most of the challenging, interesting, useful design work happens while drawing the UML dynamic-view interaction diagrams  Spend significant time doing interaction diagrams (sequence or communication diagrams), not just class diagrams.  Ignoring this guideline is a very common worst-practice with UML.

Software Engineering 10 Object-oriented Analysis and Design Static Object Modeling  After first covering dynamic modeling with interaction diagrams, we then do the static object modeling  If the developers are applying the agile modeling practice of Create several models in parallel, they will be drawing both interaction and class diagrams concurrently. ★

Software Engineering 11 Object-oriented Analysis and Design Object Design Skill  The importance of object design skill is over UML notation skill m What's important is knowing how to think and design in objects, and apply object design best-practice patterns, which is much more valuable skill than knowing UML notation m Drawing UML is a reflection of making decisions about the design  While drawing a UML object diagram, we need to answer key questions: m What are the responsibilities of the object? m Who does it collaborate with? m What design patterns should be applied? m Far more important than knowing the difference between UML 1.4 and 2.0 notation! Therefore, the emphasis of the following chapters is on these principles and patterns in object design.

Software Engineering 12 Object-oriented Analysis and Design Fundamental object design  The object design skills are what matter, not knowing how to draw UML. Fundamental object design requires knowledge of: m principles of responsibility assignment m design patterns

Software Engineering 13 Object-oriented Analysis and Design Class Responsibility Card  A CRC modeling session involves a group sitting around a table, discussing and writing on the cards as they play "what if" scenarios with the objects, considering what they must do and what other objects they must collaborate with. Each card represents one class

Software Engineering 14 Object-oriented Analysis and Design CRC Examples More detailed: