Ch 12: Object-Oriented Analysis

Slides:



Advertisements
Similar presentations
Introduction to Object Orientation System Analysis and Design
Advertisements

Ch 3: Unified Process CSCI 4320: Software Engineering.
Chapter 4 - Object-Oriented Analysis and Design in a Nutshell1 Chapter 4 Object-Oriented Analysis and Design in a Nutshell.
Use Case Modeling SJTU. Unified Modeling Language (UML) l Standardized notation for object-oriented development l Needs to be used with an analysis and.
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
Object-Oriented Analysis
CS3773 Software Engineering Lecture 03 UML Use Cases.
Object-Oriented Analysis and Design
2-1 © Prentice Hall, 2007 Chapter 2: Introduction to Object Orientation Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph.
Introduction To System Analysis and Design
Systems Analysis and Design in a Changing World, Fourth Edition
Irwin/McGraw-Hill Copyright © 2004 The McGraw-Hill Companies. All Rights reserved Whitten Bentley DittmanSYSTEMS ANALYSIS AND DESIGN METHODS6th Edition.
Chapter 7: The Object-Oriented Approach to Requirements
Introduction To System Analysis and design
The Software Development Life Cycle: An Overview
Requirements Elicitation. Requirement: a feature or constraint that the system must satisfy Requirements Elicitation: specification of the system that.
Object-oriented Design CSCI 5801: Software Engineering.
Object Oriented Analysis By: Don Villanueva CS 524 Software Engineering I Fall I 2007 – Sheldon X. Liang, Ph. D.
Chapter 7 Structuring System Process Requirements
CIT UPES | Sept 2013 | Unified Modeling Language - UML.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 The requirements engineering process.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Unified Modeling Language, Version 2.0
5 Systems Analysis and Design in a Changing World, Fourth Edition.
Introduction To System Analysis and Design
UML Diagrams: Class Diagrams The Static Analysis Model Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Copyright 2002 Prentice-Hall, Inc. Chapter 2 Object-Oriented Analysis and Design Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey.
CSC 395 – Software Engineering Lecture 13: Object-Oriented Analysis –or– Let the Pain Begin (At Least I’m Honest!)
Object-Oriented Modeling Chapter 10 CSCI CSCI 1302 – Object-Oriented Modeling2 Outline The Software Development Process Discovering Relationships.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 8 Slide 1 Object-oriented and Structured System Models.
Chapter 7 System models.
Sommerville 2004,Mejia-Alvarez 2009Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
Programming Logic and Design Fourth Edition, Comprehensive Chapter 15 System Modeling with the UML.
UML diagrams What is UML UML diagrams –Static modeoing –Dynamic modeling 1.
The Static Analysis Model Class Diagrams Prof. Hany H. Ammar, CSEE, WVU, and Dept. of Computer Science, Faculty of Computers and Information, Cairo University.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 Chapter 7 System Models.
Fall 2010 CS4310 Requirements Engineering A Brief Review of UML & OO Dr. Guoqiang Hu Department of Computer Science UTEP 1.
Information Systems Engineering
Object-Oriented Modeling: Static Models. Object-Oriented Modeling Model the system as interacting objects Model the system as interacting objects Match.
CSC480 Software Engineering Lecture 8-9 September 20, 2002.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
CS212: Object Oriented Analysis and Design Lecture 32: Use case and Class diagrams.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Systems Analysis and Design in a Changing World, Fourth Edition
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Object-Oriented Design.
UML (Unified Modeling Language)
Chapter 2: Introduction to Object Orientation Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey A.
Objectives In this lesson, you will learn about : *Object-oriented modeling * Origin and evolution of UML *Architecture of UML *User View 3 Actor 3 Use.
OO DomainModeling With UML Class Diagrams and CRC Cards Chapter 6 Princess Nourah bint Abdulrahman University College of Computer and Information Sciences.
7 Systems Analysis – ITEC 3155 The Object Oriented Approach – Use Cases.
1 Object-Oriented Static Modeling of the Banking System - III Lecture # 33.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
Slide 1 Unified Modeling Language, Version 2.0 Object-Oriented SAD.
5 Systems Analysis and Design in a Changing World, Fourth Edition.
Systems Analysis and Design in a Changing World, Fourth Edition
UML Diagrams: Class Diagrams The Static Analysis Model
ATM OO Design and Implementation Case Study
Object-Oriented Analysis and Design
Chapter 11 Object-Oriented Design
Object-Oriented Static Modeling of the Banking System - I
OO Domain Modeling With UML Class Diagrams and CRC Cards
Chapter 9 Use Cases.
University of Houston-Clear Lake
Chapter 20 Object-Oriented Analysis and Design
CIS 375 Bruce R. Maxim UM-Dearborn
Copyright 2007 Oxford Consulting, Ltd
Software Engineering System Modeling Chapter 5 (Part 1) Dr.Doaa Sami
CIS 375 Bruce R. Maxim UM-Dearborn
Presentation transcript:

Ch 12: Object-Oriented Analysis CSCI 4320: Software Engineering

Workflows in the Unified Process Requirements Analysis Design Implementation Test

Analysis Workflow Analyze and refine requirements for detailed understanding Written in language of developer – more precise. Specifications produced are essential for testing and maintenance OO Architectural Design: UML diagrams and descriptions are given to client for confirmation (Use Cases and Class Diagrams) Detailed planning and estimating: Software Project Management Plan with deliverables, milestones and budget GOAL: Spell out what the project is to do

Functional Modeling Present scenarios of all the use cases

Use Cases Model interaction between the software product and the users of the software (actors) Figure 10.1

Use Case Diagrams A use case is description of a scenario in which the system to be developed interacts with the users of the system Create several use case diagrams with annotated descriptions to represent all of the acceptance criteria listed in the specification report. Each Use Case diagram should be label with the corresponding Acceptance Criteria Number(s).

Use Case: Withdraw Money UC1 Reference: AC101 Banking Software Product Withdraw Money Customer ATM

Use Case Description: Withdraw Money UC1 Reference: AC101 Brief Description: The Withdraw Money use case enables a customer to withdraw money. Step by Step Description: The Customer inputs ATM card that contains the account number. The customer inputs pin number. The software product responds with the current balance in the account. The customer enters the withdrawal amount. The software product produces the desired cash. The software product updates the account balance.

Scenarios Normal Scenario Exception Scenario Users interact with systems as planned Normal flow of events Exception Scenario Designing for user errors Exceptional flow of events

Object-Oriented Programming Instead of writing a program in one long file, separate code into classes each with their own data and logic. Abstraction Polymorphism Inheritance Encapsulation

Object-Oriented Programming Abstraction: Focus on the essential qualities rather than the details. This is what we are doing when we are making a class. We don’t create a separate bank account class for Joe and Mary -- just one bank account class that contains common attributes (name, address, account number)

Object-Oriented Programming Encapsulation: Taking attributes and behaviors and bundling them together. Data hiding: We are able to make things private and users to use our public methods. Attributes can’t be directly changed from outside object. Reduce dependencies on different parts of the application. An object is responsible for changing itself.

Object-Oriented Programming Inheritance: BankAccount + name + balance + accountNumber +widthraw() CheckingAccount + lastCheckNum Savings Account + interest +widthraw()

Object-Oriented Programming Polymorphism: “Many forms” A SavingsAccount subclass may override as super class, BankAccount withdraw method. When you create an array of BankAccount objects, you determine at runtime which method is called. BankAccount + name + balance + accountNumber +widthraw() CheckingAccount + lastCheckNum Savings Account + interest +widthraw()

Object-Oriented Programming Polymorphism: BankAccount myAccounts = new BankAccount[2]; myAccounts[0] = new SavingsAccount(); myAccounts[1] = new CheckingAccount(); for (myAccounts: BankAccount) acct.withdraw(50);

Entity class modeling Determine entity classes and attributes Determine interrelationship and interaction between the classes Create class diagram

Class Diagrams Model the composition of classes Static perspective of the system Objective: portray the elements that are a part of the class and the essential relationships that exist between classes

Class Diagrams A class may be portrayed in various class diagrams with varying levels of detail Analysis Phase: specify the class name Design Phase: specify the class name, attributes and methods

UML Class Diagram Models the classes needed and relationship associations, inheritance, compositions and dependencies

Classes Chapter 12 describes 3 types of classes Entity Class Models Information that is long lived. Boundary Class Models the interaction between the software product and actors (input and output) Control Class Models complex computations and algorithms

Identifying Classes Create a list of all nouns from the requirement specification

Is This a Class? Retained information Potential classes require information to be stored about them Are there certain attributes that must be stored in the system? Class System User – Does the system allow for multiple concurrent users or does it maintain a history of individual user?

Is This a Class? Needed Services Does the potential class have a set of operations that provide services to other classes? Is there a set of information to be manipulated or retrieved by methods in order to protect the integrity of this data? Game class: In a game you allow each user to inquire the current score of opposing player, amount of time elapsed.

Is This a Class? Multiple Attributes Does the potential class have more than a single attribute? If not, this noun should be an attribute of another class Balance is more likely an attribute Account is more likely a class

Is This a Class? Common Attributes Do all instances of this noun share the same attributes? If not, this noun should probably not be a class

Is This a Class? Common operations Do the operations defined for this noun apply to all other instances of the noun? Customer class has a common set of a methods like getName, getAddress

Is This a Class? Essential Requirements Are there external entities known to the system that produce or consume information A Database class, has a set of easy to learn methods so developer would not need to be familiar with the technical details utilizing the database. The type of underlying database could be switched and the methods of the Database class need not change

Relationships Between Classes Association Labeled relationship between classes

Relationships Between Classes Dependency One class depends on another Changing one class might require the second class also change. Dashed arrow

Relationships Between Classes Generalization Inheritance: a class is the parent of another

Relationships Between Classes Aggregation Composition: a class is made up of another

UML Class Diagram Models the classes needed and relationship associations, inheritance, compositions and dependencies