COMS W3156: Software Engineering, Fall 2001 Lecture #6: Objects I Janak J Parekh

Slides:



Advertisements
Similar presentations
Georgia Institute of Technology Object-Oriented Analysis Barb Ericson June 2006.
Advertisements

Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
Ch 12: Object-Oriented Analysis
OOAD Using the UML - Use-Case Analysis, v 4.2 Copyright  Rational Software, all rights reserved 1/18 Use Case Analysis – continued Control Classes.
2-1 © Prentice Hall, 2007 Chapter 2: Introduction to Object Orientation Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph.
COMS W3156: Software Engineering, Fall 2001 Lecture #12: Design, Distributed Objects Janak J Parekh
Software Engineering 3156 Fall 2001 Section 1 24-Sep-01 #5: Project, OOA, UML Phil Gross.
Chapter 1 Software Engineering. Homework ► Read Section 2.2 (pages 79-98) ► Answer questions: ► 7, 8, 11, 12, & 13 on page 134. ► Answer on paper, hand.
Slide 7A.1 Copyright © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. An Introduction to Object-Oriented Systems Analysis and Design with.
1 CS1001 Lecture Overview Object Oriented Design Object Oriented Design.
CPSC 371/872 UML / SysML Modeling J. YATES MONTEITH, CLEMSON UNIVERSITY, FALL 2014.
© 2005 course technology1 1 1 University Of Palestine UML for The IT Business Analyst A practical guide to Object Oriented Requirement Gathering Hoard.
Use Case Analysis – continued
CSCI 639 Topics in Software Engineering Assignment #4 Fall 2006.
Domain Modeling (with Objects). Motivation Programming classes teach – What an object is – How to create objects What is missing – Finding/determining.
Unified Modeling Language
Unified Modeling Language
Object-Oriented Analysis and Design
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
OO Analysis and Design CMPS OOA/OOD Cursory explanation of OOP emphasizes ▫ Syntax  classes, inheritance, message passing, virtual, static Most.
Liang, Introduction to Java Programming, Seventh Edition, (c) 2009 Pearson Education, Inc. All rights reserved Chapter 12 Object-Oriented Design.
Slide 12.1 © The McGraw-Hill Companies, CS 4310: Software Engineering Lecture 7 Systems Analysis Object-Oriented Design.
Object Oriented Analysis By: Don Villanueva CS 524 Software Engineering I Fall I 2007 – Sheldon X. Liang, Ph. D.
1 Object-Oriented Testing CIS 375 Bruce R. Maxim UM-Dearborn.
Computer Science II 810:062 Section 01 Session 2 - Objects and Responsibilities.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Detailed Design Overview and Mid-Level Class Modeling.
Big Java Chapter 12. Software Process - Waterfall Analysis Design Implementation Testing Deployment Does not work well when rigidly applied! established.
PowerPoint Presentation for Dennis, Wixom, & Tegarden Systems Analysis and Design with UML, 4th Edition Copyright © 2012 John Wiley & Sons, Inc. All rights.
UML The Unified Modeling Language A Practical Introduction Al-Ayham Saleh Aleppo University
CSC 395 – Software Engineering Lecture 13: Object-Oriented Analysis –or– Let the Pain Begin (At Least I’m Honest!)
Lecture 14 & 15: Object- Oriented Analysis Anita S. Malik Adapted from Schach (2004) Chapter 12.
1 UML Basic Training. UML Basic training2 Agenda  Definitions: requirements, design  Basics of Unified Modeling Language 1.4  SysML.
Review: Cohesion and Coupling, Mutable, Inheritance Screen Layouts Software methodologies – Extreme Programming Object-Oriented Design – CRC Cards - UML.
1 © 2005 course technology1 1 1 University Of Palestine Chapter 5 (Cont.) Scoping the IT Project with System Use Cases.
Lecture 3 Uses Cases Topics UML Use Cases pop quiz Readings: Chapter 3 January 24, 2008 CSCE 492 Software Engineering.
Systems Analysis and Design in a Changing World, 3rd Edition
CS3773 Software Engineering Lecture 04 UML Class Diagram.
Object-Oriented Analysis and Design Fall 2009.
Fall 2010 CS4310 Requirements Engineering A Brief Review of UML & OO Dr. Guoqiang Hu Department of Computer Science UTEP 1.
CS 4850: Senior Project Fall 2014 Object-Oriented Design.
CSC 395 – Software Engineering Lecture 14: Object-Oriented Analysis –or– Ripping the Band-Aid Off Quickly.
Lecture 6: Structural Modeling
Slide 12A.1 © The McGraw-Hill Companies, 2005 Object-Oriented and Classical Software Engineering Sixth Edition, WCB/McGraw-Hill, 2005 Stephen R. Schach.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Designing Classes Prelude © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved. Data Structures and Abstractions with Java, 4e Frank.
1 Software Requirements l Specifying system functionality and constraints l Chapters 5 and 6 ++
Object Oriented Software Development
ITEC324 Principle of CS III Chapter 2 (Horstmann’s Book) – Part 1 The Object-Oriented Design Process Hwajung Lee.
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
Copyright © 2011 Pearson Education, Inc. Publishing as Prentice Hall Object-Oriented Systems Analysis and Design Using UML Systems Analysis and Design,
Unit-3 Identifying use cases Object Analysis Classification
Object-Oriented Software Engineering Practical Software Development using UML and Java Modelling with Classes.
OO DomainModeling With UML Class Diagrams and CRC Cards Chapter 6 Princess Nourah bint Abdulrahman University College of Computer and Information Sciences.
CSCI 383 Object-Oriented Programming & Design Lecture 7 Martin van Bommel.
Slide 1 Systems Analysis and Design with UML Version 2.0, Second Edition Alan Dennis, Barbara Haley Wixom, and David Tegarden Chapter 7: Structural Modeling.
Chapter 7 Part II Structuring System Process Requirements MIS 215 System Analysis and Design.
Object Oriented Programming and Data Abstraction Earl Huff Rowan University.
OBJECT-ORIENTED TESTING. TESTING OOA AND OOD MODELS Analysis and design models cannot be tested in the conventional sense. However, formal technical reviews.
Chapter 2 (Horstmann’s Book) – Part 1 The Object-Oriented Design Process Hwajung Lee.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 14 Slide 1 Object-Oriented Design.
1 M206 Chapter 31: An Overview of Software Development 1.Defining the problem 2.Analyzing the requirement – constructing initial structural model 3.Analyzing.
Geoff Holmes and Bernhard Pfahringer COMP206-08S General Programming 2.
Object-Oriented Analysis (OOA)
Object-Oriented Analysis and Design
Unified Modeling Language
OO Domain Modeling With UML Class Diagrams and CRC Cards
Object-Oriented Analysis
Chapter 22 Object-Oriented Systems Analysis and Design and UML
ITEC324 Principle of CS III
ITEC324 Principle of CS III
Presentation transcript:

COMS W3156: Software Engineering, Fall 2001 Lecture #6: Objects I Janak J Parekh

Administrativia Requirements and specification assignment out –Start reading and parsing it –We’ve given you 3 weeks for the specification for a reason –We’ll continue to add to requirements –Anyone planning to use C++? Homework 1 going out tonight –5 written, one small programming Groups (almost fully) formed –Some minor changes might happen

Next class We go object-oriented in a big way Read UML chapters 3-5, Schach chapter 12 –Object-oriented specification using UML technologies: what you will be doing for the next milestone –We’re skipping around to prepare for milestones Might want to consider reading chapters 1-2 of UML: pretty short, useful intro

Today’s class Quick object review Begin OOA Begin UML Talk about project Yet more interactivity…

Objects (I) NB: Discussion will be Java-esque Classes –Methods –Fields Final modifier –Static vs. dynamic –Default, private, protected, public Objects Packages

Objects (II) Inheritance –Extend –Superclass, base class, subclass –Overriding/overloading Containers –Is-a versus has-a Polymorphism –Abstract base class –Interfaces … and more. There are books on this stuff…

OOA Object-oriented version of specification document Three steps –Use-case modeling –Class modeling –Dynamic modeling Elevator problem: interesting, but large

Use-case modeling Use cases explain functionality of the product to be implemented Generic description leads to scenarios –Steps in scenarios are like a walkthrough Sigh, use-case diagrams –In reality, more interested in textual use cases –You’re welcome to use either diagrams, text, or both

Use-case diagram

Use-case descriptions Scenario: user uses client –User logs into client, authenticates against server –User interacts with world by navigating (moving around) and by fighting bots (combat) Scenario: AI interfaces with client –AI moves around and fights Need to refine this

Use-case descriptions (II) Scenario: user logs in –User starts client application –User enters username and password –The client checks authenticity against LDAP server –If username and password is correct, client downloads list of worlds and presents it to user –User selects a world and enters it –Client connects to server, downloads map Focus on actual experience: address requirement Not a precise science Need to identify the use cases: “observe” users

Class modeling (I) Fowler: what exactly are you using this for? –Specification-level class diagrams, not design- level –Focus on general methodologies and entities, not actual low-level classes and methods We don’t need to see “Client calls the connect() method of object java.net.Socket” –On the other hand, should provide good idea of how to determine classes in system

Class modeling (II) Schach: noun extraction, CRC cards –Noun extraction useful for “candidate classes” Define problem Informal strategy Formalize the strategy and draw the class diagram – noun extraction happens here, based on text of informal strategy

Class modeling (III) Example: a rather simplified one “The server, when started up, starts listening for client connections. Once a client is connected, it is placed on a map stored on the server. This map consists of many tiles, some of which are impassable mountains and others which are passable land. Objects may exist on the latter tiles: either actors or items.” Should actually take requirements document and start developing informal strategy from there Nouns, anyone?

Class diagram Gives immediate idea of software’s structure Can provide basis for actual design Arrow with open head: “subclass of” * implies many Line implies association

Class modeling (IV) CRC cards are also a useful way of laying out objects and rearranging them –Primarily intended for large teams: don’t have to erase diagrams as frequently –Class-responsibility-collaboration –Responsibility is the high-level description of the purpose of a class –Collaboration represents other classes needed to work with (high-level links) –We won’t be using these, but Fowler has a decent discussion on them

Sequence diagrams Demonstrates how the objects from a class diagram actually collaborate Again, base on use cases Alternative is to use collaboration diagram: class-based as opposed to timeline-based Subset of the joining example from previous slides…

Sequence diagrams (II)

State diagrams Similar to “finite state machines” Basic idea: program is enumerated as a set of states, and transitions between them Will go into more detail next class (UML ch 8) Particularly useful for AI’s and such

So, what will you do? Understand what the heck the project is Detail the use cases Draw each of these diagrams in greater detail –Probably will utilize multiple diagrams

How will you draw these? Choice of several tools –Visio –Rose We have the former, hope to have the latter –Rose actually lets you take the diagrams and use it to build interfaces for code More detail on this next week

And what will we do? Expand requirements specification –More documentation on XML –More detailed requirements on world properties, especially for client editor –Some of this encroaches on specifications Hand you LDAP code What we will not do –Actually design each component –We’re focusing on base rules, functionality, and interactions

Speaking of which… The requirements document, v0.5, is outout We’ll take a look in a moment It is big, but that’s the point Again, implementation isn’t do-or-die: proper specification design will help Next version going out tomorrow

Sidebar: Event Models Will cover in greater detail later in the course, but some basic points Publishers vs. subscribers Usually asynchronous Think AWT event model Popular for network programming

On with the show…