7. Object-Oriented Design
|
|
- Ashlee Sullivan
- 5 years ago
- Views:
Transcription
1 Computer Science and Software Engineering University of Wisconsin - Platteville 7. Object-Oriented Design Yan Shi SE 2730, Lecture Notes Summerville s textbook 8.4, 14.1
2 Analysis Phase and Design Phase Requirements and Use Case development are often referred to as the Analysis Phase. The Analysis phase addresses WHAT needs to go into a software system. The Design Phase addresses HOW the system will be implemented. It is important to verify that the design satisfies the needs specified by requirements and/or use cases.
3 Object models Object models describe the system in terms of object classes and their relationships. Natural ways of reflecting the real-world entities manipulated by the system More abstract entities are more difficult to model using this approach Objects represent tangible things in the domain (world) of the system NOUNs Object Models can be used to represent relationships among objects. We use class diagrams to represent the object model.
4 Domain, Design, Implementation Levels Domain level class diagram: Analysis level modeling is at a higher level. We only model real entities of the domain. We can identify Objects by looking for Nouns in requirements or other artifacts. Design level class diagram: Go into much more detail and add items that are not necessarily part of the domain, but will be used in the implementation, for instance different programming constructs. Implementation level class diagram: should be of sufficient detail so that someone with very little knowledge of the domain should be able to implement the framework for the modeled system.
5 Class Diagram: Class UML represents classes using boxes: Class names are at the top of box. Class names generally start with a capital letter. Operations define the functionality of a class. When an operation is implemented it is called a method. Some classes may not have operations. Attributes define the data of a class. In an implementation, the attributes become variables. Some classes may not have attributes. Attribute names generally start with lower case letters. Generally, insignificant class variables (like loop control variables, etc.) are not included in class designs.
6 Class Example Class name attributes... operations... Customer name:string address:string UpdateProfile():void
7 How to Draw a Class Diagram? If it is a domain level class diagram: Step 1: identify classes Step 2: add associations Step 3: refine relationships Step 4: add major attributes and operations
8 Step 1: Identify Classes How to find the classes in a problem? Note: classes abstract things - nouns classes do actions verbs Noun Identification method to find objects!
9 Noun Identification Method Given the requirement description (scenarios, use cases, requirement specifications): 1. Underline all nouns and noun phrases in requirements and/or use case scenarios 2. Combine redundant terms 3. Remove nouns that are out of scope of the system 4. Remove items that are programming constructs 5. Information that does not have state often are attributes of other objects 6. System rules translate to behaviors
10 Example: Ticketing System Purpose: Automate sale of rail tickets. Inputs: Credit card, Personal identification number Outputs: Rail ticket Purchasing a ticket 1. Upon startup, the system shall present the customer with a menu of potential destinations. 2. In the destination list, each destination shall include a location name, estimated arrival time, and cost. 3. After the user has selected a destination, the system shall request the user insert a credit or debit card for payment. 4. If a debit card has been inserted, the system shall prompt the user for a PIN. 5. After the card information has been collected, the system shall transmit the information to a payment processing agency for verification. 6. All information transmitted to and received from the payment processing agency shall be encrypted. 7. Upon receiving an approval from the payment processing agency, the system shall issue a ticket for the specified destination.
11 Example: Ticketing underline all nouns System Purpose: Automate sale of rail tickets. Inputs: Credit card, Personal identification number Outputs: Rail ticket Purchasing a ticket 1. Upon startup, the system shall present the customer with a menu of potential destinations. 2. In the destination list, each destination shall include a location name, estimated arrival time, and cost. 3. After the user has selected a destination, the system shall request the user insert a credit or debit card for payment. 4. If a debit card has been inserted, the system shall prompt the user for a PIN. 5. After the card information has been collected, the system shall transmit the information to a payment processing agency for verification. 6. All information transmitted to and received from the payment processing agency shall be encrypted. 7. Upon receiving an approval from the payment processing agency, the system shall issue a ticket for the specified destination.
12 Example: Ticketing combine redundant nouns system customer menu destination destination list location name estimated arrival time cost user credit card debit card PIN card information information payment processing agency approval ticket system customer menu destination destination list location name estimated arrival time cost credit card debit card PIN card information payment processing agency approval ticket In some cases, "nearly redundant" terms imply generalization: card" and credit card"
13 Example: Ticketing remove out of scope nouns system customer menu destination destination list location name estimated arrival time cost credit card debit card PIN card information payment processing agency approval ticket If we saw ticket kiosk, it would be out of scope for the ticket system. The system is the system being analyzed! payment processing agency is somebody you interface with, so should be included in the model.
14 Example: Ticketing remove program constructs customer menu destination destination list location name estimated arrival time cost credit card debit card PIN card information payment processing agency approval ticket o menu o button o screen o window o etc. Do we see any?
15 Example: Ticketing identify attributes customer destination destination list location name estimated arrival time cost credit card debit card PIN card information payment processing agency approval ticket Attributes contains simple information. Later, we can list these attributes in appropriate classes.
16 Example: Ticketing identify system rules customer destination destination list credit card debit card payment processing agency ticket Upon receiving an approval from the payment processing agency, the system shall issue a ticket for the specified destination. approval should not be identified as a class also because it describes a system rule.
17 Example: Ticketing Step 1 DestinationList Destination Customer CreditCard Ticket PaymentAuthAgency DebitCard
18 Step 2: Add Associations Classes can also have associations with other classes. There are many different relationship types. We will discuss: Association Inheritance (is-a) Aggregation (part-of) These relationships will be denoted by the line and arrow type connecting the classes that are associated.
19 Association Objects rely on each other for services and data. We identify associations with lines connecting the class boxes and labeling the line with the name of the relationship. These relationships identify public methods that are used to promote the relationship.
20 Navigation If a particular relationship only works in one direction, we use an open arrow to specialize this relationship. Otherwise we don t use an arrow. Easy test: in an association, if end1 knows end2 but end2 doesn t know end1, then put an arrow towards end2. By knowing, we mean calling a public method of that object.
21 Multiplicities Given an association between two objects, A and B, we state how many A s are associated with B s. Place the multiplicity right next to each class with the following notations: Most commonly used 0..1 No instances, or one instance (optional, may) 1 Exactly one instance * Zero or more instances 1..* One or more instances (at least one) 3 Three only 2 9 Two to nine
22 Relationship Example:
23 Example: Ticketing Step 2 DestinationList 1 searches 1 Customer 1 * contains chooses Destination uses PaymentA uthagency 1 buys use DebitCard * 1 processes 1 1 includes 1 CreditCard procees Ticket * * 1
24 Step 3: Refine Relationships Inheritance Aggregation Composition
25 Inheritance Classes support inheritance: child and parent classes. Child classes derived from a parent class will inherit all of the operations and attributes of the parent. Child classes may override or modify attributes and operations that they inherit from the parent. Child classes may also define new attributes and operations that are not part of the parent class. This is called specialization. In UML, inheritance is referred to as generalization.
26 Inheritance Example: FacePart We are doing a system for face recognition and we have a parent class FacePart. FacePart contains attributes location, name, center, length, and width. Nose, Ear and Chin children classes are derived from the parent FacePart class. This means that the Nose class also contains the attributes: location, name, center, length, and width. In addition, the Nose class adds specific attributes for shape and color, Also methods Blow(). The child class Ear also inherits all attributes and operations from FacePart. In addition it adds attributes like pierced or piercings, and clean. Chin adds an additional attribute bearded.
27 Inheritance Example: FacePart FacePart location:int[] name:string length:int w idth:int Clean():void hurt():void Nose color:int shape:int Blow ():void Ear pieced:bool piercings:int clean:bool Chin bearded:bool
28 Hierarchical Inheritance
29 Inheritance Inheritance has the advantages of (when done properly) reducing the amount of code that needs to be developed, tested, and documented as well as promoting commonality of function within a system, All of these reduce the total lifecycle cost of software. IMPORTANT NOTE: When considering Inheritance, make sure that the children objects are NOT just instances of the parent. A test for this is whether the child actually has additional attributes, and/or operations, and/or overrides parent attributes and/or operations. In most programming languages, private members will not be inherited.
30 Multiple Inheritance A child class can be derived from multiple parent classes. The resulting child class inherits all operations and attributes from each of its parents. Multiple inheritance is supported by many programming languages and often can help produce very rich objects.
31 Multiple Inheritance problems Major problems or complexities with multiple inheritance during design are name collisions and difficulty with modifying diagrams (due to the complexity). Name collision is when two base or parent classes have common attribute or operation names. Major problems later in the software lifecycle can include debugging and maintenance issues once the code is implemented. It may be hard to figure out where attributes and operators are actually coming from. Use Multiple Inheritance sparingly.
32 Aggregation Some objects are made up of other objects. These are type of collection class. For instance a peanut butter and jelly sandwich is made up of bread, peanut butter, jelly (and sometimes other things like bananas, etc.). PBJSanwich Bread 1...* Jelly 1...* 1...* PeanutButter
33 Composition A composition relationship represents a whole part relationship and is a type of aggregation. A composition relationship specifies that the lifetime of the part classifier is dependent on the lifetime of the whole classifier.
34 Example: Ticketing Step 3 DestinationList Customer Card PaymentAut hagency searches 1 1 pay_with 1 1 * 1 proce ss chooses buys * Destination * Ticket CreditCard DebitCard 1 1
35 Step 4: Add Attributes and Operations Attributes: previously identified using noun identification method additional properties/information related to each object Operations: circle all verbs, remove redundancies, and add as methods Key issue: make sure operation is of the correct class! Appropriate names! See programming ground rules.
36 Example: Ticketing Step 4 DestinationList Customer Card PaymentAuthAgency search():void sort():void searches cusname BuyTicket Pay CancelTicket pay_with 1 1 name:string number:string ProcessPayment():void * 1 process 1 1 * Destination name:string EAT:String cost:float buys chooses * Ticket departure:string time:string CreditCard expiredate:string securitycode:string DebitCard PIN:String
37 Rules for Class Diagrams class names: nouns (occasionally, noun phrases) Capital first letter attributes: nouns usually: lower case first letter operations: verbs/verb phrases or nouns if value-returning carefully distinguish, place attributes and operations use associations for complex objects, don't duplicate as attributes All: legal identifiers in target language no reserved words no illegal characters Just a starting point - more later
38 CRC Method CRC: Class Responsibility Collaboration CRC cards are an object oriented design tool (for brain storming) CRC cards are index cards including: the class name its super and sub classes (if applicable) responsibilities of the class names of other class with which the class will collaborate to fulfill its responsibilities the author Class: Superclass or Subclasses: Responsibilities Collaborators
39 CRC Design Process For each candidate class, the team fills in a card that contains the name of the class, the functionality of the class (responsibilities), and a list of the other classes it invokes to achieve that functionality (collaborations). This information comes from requirements and/or scenarios Next, the Cards are taped to a wall and lines or strings connect the public methods and data of all classes. Too many lines means high interconnectivity, which causes problems Can also mean class is doing too much Solution: split the class or move responsibilities to another class Finally, add details for attributes and methods
40 CRC Card Example Class: Elevator Button Superclass: Responsibilities Collaborators
41 CRC Card Example Class: Elevator Button Superclass: Button Responsibilities Request desired floor Request close door Request door open Request alarm Request elevator halt Collaborators User Elevator Control Elevator Control Elevator Bell, Elevator Phone Elevator Control Issue: 5 responsibilities is a lot! Use inheritance, introduce more button types Floor button, Door button, Close button, Alarm button, Halt button
42 Cohesion and Coupling Cohesion: A measure of the extent to which related aspects of a system are kept together in the same module, and unrelated aspects are kept out. A component should be single minded! Coupling: A measure of interconnection and dependency between modules/classes. Make components as independent as possible! Most popular phrase in OO design: high cohesion and low coupling!
43 Cohesion For simple systems, cohesion is not a significant problem. For large, complex systems, low cohesion generally means more maintenance and testing costs; it can also lead to security problems. The evolution of cohesion includes: Coincidental cohesion (worst) Logical cohesion Temporal cohesion Procedural cohesion Communicational cohesion Functional cohesion (best)
44 Coincidental Cohesion Parts of a module are grouped arbitrarily (randomly). Parts have no significant relationship. Example: put all code in the main function Causes: lack of creativity and/or experience rigid rules about module lengths maintenance without a design process can destroy structure, (for example we need to add this someplace, let s just put it in here. )
45 Coincidental Cohesion (2) Problems created by low cohesion: maintenance nightmares: cannot find defects or good places to extend functionality, hard to reuse such pieces, low efficiency, lots of data passing, harder to test, etc.
46 Logical Cohesion Parts of a module are grouped because they are logically categorized to do the same thing, even if they are different by nature. Example: group all I/O handling into one class (diskio(), screenio(), etc.) At least this is predictable and one can generally find a function when needed!
47 Logical Cohesion (2) Sometimes it is used to isolate code that is platform dependent and will need to be rewritten or seriously modified when ported to another platform. Example: put all device drivers in one module. Problems: interfaces hard to understand may lose efficiency due to data passing hard to scale up/distribute across multiple processors or computers. hard to reuse pieces may be nearly impossible to follow the flow.
48 Temporal Cohesion Parts of a module are grouped by when they are processed. The parts are processed at a particular time in program execution. Example: a function which is called after catching an exception which closes open files, creates an error log, and notifies the user. There use to be a need for this: When memory was very small (32K or smaller) and virtual memory was not common, programs had to be overlaid We wanted to minimize the number of times needed to save state, roll a chunk of program out of memory, and roll in a new chunk of program. Problems: not any better than logical cohesion.
49 Procedural Cohesion Parts of a module are grouped because they always follow a certain sequence of execution Example: a function to check file permissions and then open the file Problem: no better than temporal cohesion it is essentially temporal cohesion with added restriction that all the parts of the module correspond to a related action sequence in the program
50 Communicational Cohesion Parts of a module are grouped because they operate on the same data. Example: Combine multiple calculations in a loop like mean, min, max and standard deviation computed in the same loop. Functions that calculate and print based on the same data: addscorescomputemeanprintmean(). Benefit: Sometimes this is done to improve efficiency (avoid multiple data passing). Problem: low reusability.
51 Functional Cohesion Parts of a module are grouped because they all contribute to a single well-defined task of the module. Example: I/O One directory structure for each device, within which a class for Input and a class for Output, who are children of abstract I/O class. Functional cohesion is the ultimate goal! Methods are short and to the point. Ones related are grouped together locally in a file. Advantages: high reusability, extensibility, and maintainability
52 Exercise class Areas { double circlearea() {... } double rectanglearea() {... } double trianglearea() {... } } class Plane { double speed, altitude; takeoff() {... } void fly() {... } void land() {... } } class MyFunctions { void initprinter() {... } double calcinterest() {... } Date getdate() {... } } class Init { void initdisk() {... } void initprinter() {... } void initmonitor() {... } } // logical cohesion // communicational cohesion: // they all work on speed and altitude // coincidental cohesion // temporal cohesion
53 Coupling Coupling is a measure of interconnection and dependency between modules/classes. Given two classes A and B: If A knows B through its interface only Loosely coupled If A interacts with B also via non-interface stuff of B Tightly coupled Goal: low coupling This gives simple connections between modules.
54 Different Types of Coupling Content coupling (Worst/highest) Common coupling Control coupling Stamp coupling Data coupling (Best/lowest)
55 Content Coupling Module A modifies or relies on the internal workings of another module B (e.g. accessing local data of another module). Therefore changing the way B produces data (location, type, timing) will lead to changing the dependent module A. Example: no get/set methods, all data are public. goto statement Identify a content coupling issue if you are: using pointer to access private data of other classes (C++) branching into the middle of a subroutine (multiple entry points)
56 Common coupling Two modules have read/write access to the same global data. Changing the shared resource implies changing all the modules using it. Example: global variables. Always try your best to avoid using global variables! Single module with write access where all other modules have read access is not common coupling Problem: Hard to track down who made the change and who is changing.
57 Control Coupling One module A controls the logic of another module B, by passing B information on what to do. Example: passing a control flag or switches. Class B{ public void Do(int what){ if (what == 1) do_wow; else if ( what == 2 ) do_blabla; } } Class A{ void ControlDo( ) { B.Do(1); } Problem: often generalize a function beyond their original purpose, adding unnecessary complication. Module A and B are not independent: hard to reuse code. }
58 Stamp Coupling Also known as Data-structured coupling. Modules share a composite data structure and use only a part of it, possibly a different part. Example: passing a whole record to a function which only needs one field of it. Problem: Efficiency? Reusability? maintenance? employee = { age = 24, compensation = 2000 } def age_range(employee) range = 1 if employee.age < 10 range = 2 if employee.age > 10 && < 20;... return range end def compensation_range(employee)... only relies on employee.compensation end
59 Data Coupling Modules share data through parameters. Just the data needed are passed between the calling and called modules through parameters. A simple argument list and every item is used. Parameters are not passed several levels deep. Variables are not reused. Example: // In Class A: B.add(num1,num2); Parameter based communications: GOOD! a parameter has one and only one purpose in life.
60 Summary Analysis Phase and Design Phase Object Models Object Classes and Associations Class Diagrams Name Identification Method Associations Inheritance (is-a) Aggregation (part-of) Relationships CRC card Cohesion and Coupling
SE 2730 Final Review
SE 2730 Final Review 1. Introduction 1) What is software: programs, associated documentations and data 2) Three types of software products: generic, custom, semi-custom Why is semi-custom product more
More informationBasic Structural Modeling. Copyright Joey Paquet,
Basic Structural Modeling Copyright Joey Paquet, 2000 1 Part I Classes Copyright Joey Paquet, 2000 2 Classes Description of a set of objects sharing the same attributes, operations and semantics Abstraction
More informationObject- Oriented Design with UML and Java Part I: Fundamentals
Object- Oriented Design with UML and Java Part I: Fundamentals University of Colorado 1999-2002 CSCI-4448 - Object-Oriented Programming and Design These notes as free PDF files: http://www.softwarefederation.com/cs4448.html
More informationObject-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 informationObject-Oriented Systems Development: Using the Unified Modeling Language
Object-Oriented Systems Development: Using the Unified Modeling Language Chapter 8: Identifying Object Relationships, Attributes, and Methods Goals Analyzing relationships among classes. Identifying association.
More informationChapter 10. Object-Oriented Analysis and Modeling Using the UML. McGraw-Hill/Irwin
Chapter 10 Object-Oriented Analysis and Modeling Using the UML McGraw-Hill/Irwin Copyright 2007 by The McGraw-Hill Companies, Inc. All rights reserved. Objectives 10-2 Define object modeling and explain
More informationIntroduction to UML. Danang Wahyu utomo
Introduction to UML Danang Wahyu utomo danang.wu@dsn.dinus.ac.id 085 740 955 623 Evolution of OO Development Methods History of OOAD leading to UML Why Model? Analyse the problem domain - Simplify reality
More informationDesign Engineering. Dr. Marouane Kessentini Department of Computer Science
Design Engineering Dr. Marouane Kessentini Department of Computer Science 1 Design Starts mostly from/with requirements (evolving mostly from functionalities and other non functional characteristics) How
More informationObject-Oriented Software Engineering Practical Software Development using UML and Java
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 5: Modelling with Classes Lecture 5 5.1 What is UML? The Unified Modelling Language is a standard graphical
More informationIntro to: Design Principles
Intro to: Design Principles Pragmatic Programmer: Eliminate Effects Between Unrelated Things design components that are: self-contained, independent, and have a single, well-defined purpose Software Design
More informationAssigning Responsibilities (Patterns of Responsibility Assignment Principles: GRASP)
Subsystem design basics Assigning Responsibilities (Patterns of Responsibility Assignment Principles: GRASP) Dept. of Computer Science Baylor University Focus on modeling how subsystems accomplish goals
More informationS T R U C T U R A L M O D E L I N G ( M O D E L I N G A S Y S T E M ' S L O G I C A L S T R U C T U R E U S I N G C L A S S E S A N D C L A S S D I A
S T R U C T U R A L M O D E L I N G ( M O D E L I N G A S Y S T E M ' S L O G I C A L S T R U C T U R E U S I N G C L A S S E S A N D C L A S S D I A G R A M S ) WHAT IS CLASS DIAGRAM? A class diagram
More informationChapter 5: Structural Modeling
Chapter 5: Structural Modeling Objectives Understand the rules and style guidelines for creating CRC cards, class diagrams, and object diagrams. Understand the processes used to create CRC cards, class
More informationUNIT II Requirements Analysis and Specification & Software Design
UNIT II Requirements Analysis and Specification & Software Design Requirements Analysis and Specification Many projects fail: because they start implementing the system: without determining whether they
More informationLABORATORY 1 REVISION
UTCN Computer Science Department Software Design 2012/2013 LABORATORY 1 REVISION ================================================================== I. UML Revision This section focuses on reviewing the
More informationChapter 2: The Object-Oriented Design Process
Chapter 2: The Object-Oriented Design Process In this chapter, we will learn the development of software based on object-oriented design methodology. Chapter Topics From Problem to Code The Object and
More informationDesign Patterns IV. Alexei Khorev. 1 Structural Patterns. Structural Patterns. 2 Adapter Design Patterns IV. Alexei Khorev. Structural Patterns
Structural Design Patterns, 1 1 COMP2110/2510 Software Design Software Design for SE September 17, 2008 2 3 Department of Computer Science The Australian National University 4 18.1 18.2 GoF Structural
More informationDesign Patterns IV Structural Design Patterns, 1
Structural Design Patterns, 1 COMP2110/2510 Software Design Software Design for SE September 17, 2008 Class Object Department of Computer Science The Australian National University 18.1 1 2 Class Object
More informationChapter 10 Object-Oriented Design Principles
Chapter 10 Object-Oriented Design Principles Dr. Supakit Nootyaskool Faculty of Information Technology King Mongkut s Institute of Technology Ladkrabang Outline Object-oriented design: bridging from analysis
More informationObject Oriented Software Development CIS Today: Object Oriented Analysis
Object Oriented Software Development CIS 50-3 Marc Conrad D104 (Park Square Building) Marc.Conrad@luton.ac.uk Today: Object Oriented Analysis The most single important ability in object oriented analysis
More informationOO System Models Static Views
OO System Models Static Views UML Class & Object Diagrams Software Engineering OO Models Class Diagram Slide 1 Objective Introduces the evolutionary approach for building classes Explain how to identify
More informationCOSC 3351 Software Design. An Introduction to UML (I)
COSC 3351 Software Design An Introduction to UML (I) This lecture contains material from: http://wps.prenhall.com/esm_pfleeger_softengtp_2 http://sunset.usc.edu/classes/cs577a_2000/lectures/05/ec-05.ppt
More informationA - 1. CS 494 Object-Oriented Analysis & Design. UML Class Models. Overview. Class Model Perspectives (cont d) Developing Class Models
CS 494 Object-Oriented Analysis & Design UML Class Models Overview How class models are used? Perspectives Classes: attributes and operations Associations Multiplicity Generalization and Inheritance Aggregation
More informationUnified Modeling Language (UML) Class Diagram
1 / 10 Unified Modeling Language (UML) Class Diagram Miaoqing Huang University of Arkansas Spring 2010 2 / 10 Outline 1 2 3 / 10 Class Diagram Class diagrams show the static structure of the classes that
More informationSE 1: Software Requirements Specification and Analysis
SE 1: Software Requirements Specification and Analysis Lecture 9: UML Class (Concept), Object, Communication Diagrams Nancy Day, Davor Svetinović http://www.student.cs.uwaterloo.ca/ cs445/winter2006 uw.cs.cs445
More informationOverview of OOP. Dr. Zhang COSC 1436 Summer, /18/2017
Overview of OOP Dr. Zhang COSC 1436 Summer, 2017 7/18/2017 Review Data Structures (list, dictionary, tuples, sets, strings) Lists are enclosed in square brackets: l = [1, 2, "a"] (access by index, is mutable
More information22/09/2012 INFO2110. Copyright Warning. Revision of class diagram. Overview. Purpose of class diagram. Generalization Relationship
22/09/202 INFO20 Copyright Warning System Analysis and Modelling Semester 2, 202 Lecture 8, Structural Modelling (II) COMMONWEALTH OF AUSTRALIA Copyright Regulations 969 WARNING This material has been
More informationFrom Module To Objects
From Module To Objects It is very difficult to maintain a large monolithic block of code The solution is to divide the code into smaller pieces, called modules What is a Module? A small and manageable
More informationObject-Oriented Systems Analysis and Design Using UML
10 Object-Oriented Systems Analysis and Design Using UML Systems Analysis and Design, 8e Kendall & Kendall Copyright 2011 Pearson Education, Inc. Publishing as Prentice Hall Learning Objectives Understand
More informationRecap : UML artefacts. Black Box Requirements. Functional Specification. System. System. Test. Design. System. System. Development.
L5-1 Recap : UML artefacts Actors Use Cases Use Case Diagrams Storyboards Black Box Requirements System Validation Test Cases System Test Functional Specification System Development Notes Details Signatures
More informationObject-Oriented Software Engineering Practical Software Development using UML and Java. Chapter 5: Modelling with Classes
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 5: Modelling with Classes 5.1 What is UML? The Unified Modelling Language is a standard graphical language
More informationINTERNAL 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 informationAccessibility. EEC 521: Software Engineering. Classes and Objects. Inheritance. Classes and Objects (OO Analysis)
Accessibility EEC 521: Software Engineering Classes and Objects (OO Analysis) Attributes and Methods can be declared at three levels of accessibility Public (+) Visible everywhere Private (-) Visible only
More informationData Structures (list, dictionary, tuples, sets, strings)
Data Structures (list, dictionary, tuples, sets, strings) Lists are enclosed in brackets: l = [1, 2, "a"] (access by index, is mutable sequence) Tuples are enclosed in parentheses: t = (1, 2, "a") (access
More informationMULTIPLE CHOICE. Choose the one alternative that best completes the statement or answers the question.
Exam Name MULTIPLE CHOICE. Choose the one alternative that best completes the statement or answers the question. 1) A process has a: 1) A) pronoun label B) noun phrase label C) verb phrase label D) adjective
More informationTHE 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 informationGoal: build an object-oriented model of the realworld system (or imaginary world) Slicing the soup: OOA vs. OOD
Domain analysis Goal: build an object-oriented model of the realworld system (or imaginary world) Slicing the soup: OOA vs. OOD OOA concerned with what, not how OOA activities focus on the domain layer
More informationCSC207H: Software Design Lecture 6
CSC207H: Software Design Lecture 6 Wael Aboelsaadat wael@cs.toronto.edu http://ccnet.utoronto.ca/20075/csc207h1y/ Office: BA 4261 Office hours: R 5-7 Acknowledgement: These slides are based on material
More informationCSE 403 Lecture 8. UML Class Diagrams. Thanks to Marty Stepp, Michael Ernst, and other past instructors of CSE 403
CSE 403 Lecture 8 UML Class Diagrams Thanks to Marty Stepp, Michael Ernst, and other past instructors of CSE 403 http://www.cs.washington.edu/403/ See also: Object-Oriented Design Heuristics by Arthur
More information06. Analysis Modeling
06. Analysis Modeling Division of Computer Science, College of Computing Hanyang University ERICA Campus 1 st Semester 2017 Overview of Analysis Modeling 1 Requirement Analysis 2 Analysis Modeling Approaches
More informationObject Oriented Design. Program Design. Analysis Phase. Part 2. Analysis Design Implementation. Functional Specification
Object Oriented Design Part 2 Analysis Design Implementation Program Design Analysis Phase Functional Specification Completely defines tasks to be solved Free from internal contradictions Readable both
More informationObject interconnections
Object interconnections 2 Roadmap In this chapter we move up a level of abstraction, and consider collections of objects working together Our focus will be on how objects are connected to each other, and
More informationLecture Notes. Structured Systems Analysis
Lecture Notes Structured Systems Analysis Lecture 3 Structured Analysis & Data Flow Diagrams Written by Dr. Fred Grossman Copyright 1999 Fred Grossman All Rights Reserved Structured Systems Analysis Structured
More informationDesign and UML Class Diagrams
Design and UML Class Diagrams 1 Suggested reading: Practical UML: A hands on introduction for developers http://dn.codegear.com/article/31863 UML DistilledCh. 3, by M. Fowler How do people draw / write
More informationChapter 11: Data Management Layer Design
Systems Analysis and Design With UML 2.0 An Object-Oriented Oriented Approach, Second Edition Chapter 11: Data Management Layer Design Alan Dennis, Barbara Wixom, and David Tegarden 2005 John Wiley & Sons,
More informationEntity-Relationship Modelling. Entities Attributes Relationships Mapping Cardinality Keys Reduction of an E-R Diagram to Tables
Entity-Relationship Modelling Entities Attributes Relationships Mapping Cardinality Keys Reduction of an E-R Diagram to Tables 1 Entity Sets A enterprise can be modeled as a collection of: entities, and
More informationClass Diagrams in Analysis
3.2 Subject/Topic/Focus: Introduction to Classes Summary: Conceptual Modeling Notation: Classes Associations: Multiplicity, Roles, Aggregation, Composition Generalization Objects Analysis Process Literature:
More information1: Introduction to Object (1)
1: Introduction to Object (1) 김동원 2003.01.20 Overview (1) The progress of abstraction Smalltalk Class & Object Interface The hidden implementation Reusing the implementation Inheritance: Reusing the interface
More informationLecture 8: Use Case -Driven Design. Where UML fits in
Lecture 8: Use Case -Driven Design The Role of UML in the Software Process E.g. ICONIX Domain Models Use Cases 2008 Steve Easterbrook. This presentation is available free for non-commercial use with attribution
More informationObject interconnections גרא וייס המחלקה למדעי המחשב אוניברסיטת בן-גוריון
Object interconnections גרא וייס המחלקה למדעי המחשב אוניברסיטת בן-גוריון 2 Roadmap In this chapter we move up a level of abstraction, and consider collections of objects working together Our focus will
More informationOBJECT ORİENTATİON ENCAPSULATİON
OBJECT ORİENTATİON Software development can be seen as a modeling activity. The first step in the software development is the modeling of the problem we are trying to solve and building the conceptual
More informationObject-Oriented Software Engineering Practical Software Development using UML and Java. Chapter 2: Review of Object Orientation
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 2: Review of Object Orientation 2.1 What is Object Orientation? Procedural paradigm: Software is organized
More informationUML diagrams. Software artifacts include: SRS, SDS, test cases, source code, technical/user manual, software architecture, etc.
UML Modeling UML diagrams UML (Unified Modeling Language) is a general purpose visual modeling language that provides different types of diagrammatic techniques and notations to specify, visualize, analyze,
More informationSoftware Engineering Prof.N.L.Sarda IIT Bombay. Lecture-11 Data Modelling- ER diagrams, Mapping to relational model (Part -II)
Software Engineering Prof.N.L.Sarda IIT Bombay Lecture-11 Data Modelling- ER diagrams, Mapping to relational model (Part -II) We will continue our discussion on process modeling. In the previous lecture
More informationEntity Relationship Modelling
Entity Relationship Modelling Overview Database Analysis Life Cycle Components of an Entity Relationship Diagram What is a relationship? Entities, attributes, and relationships in a system The degree of
More informationObject-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 informationClass 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 informationCredit where Credit is Due. Lecture 4: Fundamentals of Object Technology. Goals for this Lecture. Real-World Objects
Lecture 4: Fundamentals of Object Technology Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 6448 - Spring Semester, 2003 Credit where Credit is Due Some material presented in this lecture
More informationIntroduction to Unified Modelling Language (UML)
IMPORTANT NOTICE TO STUDENTS These slides are NOT to be used as a replacement for student notes. These slides are sometimes vague and incomplete on purpose to spark a class discussion Introduction to Unified
More informationCSE 403: Software Engineering, Spring courses.cs.washington.edu/courses/cse403/15sp/ UML Class Diagrams. Emina Torlak
CSE 403: Software Engineering, Spring 2015 courses.cs.washington.edu/courses/cse403/15sp/ UML Class Diagrams Emina Torlak emina@cs.washington.edu Outline Designing classes Overview of UML UML class diagrams
More informationDesign Process Overview. At Each Level of Abstraction. Design Phases. Design Phases James M. Bieman
CS314, Colorado State University Software Engineering Notes 4: Principles of Design and Architecture for OO Software Focus: Determining the Overall Structure of a Software System Describes the process
More informationFor 100% Result Oriented IGNOU Coaching and Project Training Call CPD TM : ,
Course Code : MCS-032 Course Title : Object Oriented Analysis and Design Assignment Number : MCA (3)/032/Assign/2014-15 Assignment Marks : 100 Weightage : 25% Last Dates for Submission : 15th October,
More informationWhat are the characteristics of Object Oriented programming language?
What are the various elements of OOP? Following are the various elements of OOP:- Class:- A class is a collection of data and the various operations that can be performed on that data. Object- This is
More informationLecture 13: Analysis Modeling
Lecture 13: Analysis Modeling Software Engineering ITCS 3155 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at Charlotte Oct. 16, 2008 Announcements Midterms graded
More informationUML Fundamental. OutLine. NetFusion Tech. Co., Ltd. Jack Lee. Use-case diagram Class diagram Sequence diagram
UML Fundamental NetFusion Tech. Co., Ltd. Jack Lee 2008/4/7 1 Use-case diagram Class diagram Sequence diagram OutLine Communication diagram State machine Activity diagram 2 1 What is UML? Unified Modeling
More informationModeling with UML. (1) Use Case Diagram. (2) Class Diagram. (3) Interaction Diagram. (4) State Diagram
Modeling with UML A language or notation intended for analyzing, describing and documenting all aspects of the object-oriented software system. UML uses graphical notations to express the design of software
More informationLecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page:
Lecturer: Sebastian Coope Ashton Building, Room G.18 E-mail: coopes@liverpool.ac.uk COMP 201 web-page: http://www.csc.liv.ac.uk/~coopes/comp201 Lecture 17 Concepts of Object Oriented Design Object-Oriented
More informationMAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION (Autonomous) (ISO/IEC Certified)
Subject Code: 17630 Model Answer Page No: 1 /32 Important Instructions to examiners: 1) The answers should be examined by keywords and not as word-to-word as given in the model answer scheme. 2) The model
More informationReview: Cohesion and Coupling, Mutable, Inheritance Screen Layouts. Object-Oriented Design CRC Cards - UML class diagrams
Review: Cohesion and Coupling, Mutable, Inheritance Screen Layouts Software methodologies Extreme Programming Object-Oriented Design CRC Cards - UML class diagrams Analysis Design Implementation Software
More informationUML & OO FUNDAMENTALS CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 3 08/30/2011
UML & OO FUNDAMENTALS CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 3 08/30/2011 1 Goals of the Lecture Review the material in Chapter 2 of the Textbook Cover key parts of the UML notation
More informationPatterns 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 informationFrom Analysis to Design. LTOOD/OOAD Verified Software Systems
From Analysis to Design 1 Use Cases: Notation Overview Actor Use case System X System boundary UCBase «extend» UCExt Actor A UCVar1 UCVar2 Extending case Generalization «include» Actor B UCIncl Included
More informationObject Relationships
Object Relationships Objects can work together in three different types of relationships: Uses: An object can use another to do some work (association). Composition: A complex object may be composed of
More information17. 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 informationCSC/ECE 517: Object-Oriented Languages and Systems Summer 2008 Test 2 with Answers
CSC/ECE 517: Object-Oriented Languages and Systems Summer 2008 Test 2 with Answers This was a 100-minute open-book test. There were a total of 105 points on this test.. If you answered more than 100% worth
More informationModelling with Classes. CITS1220 Software Engineering
Modelling with Classes CITS1220 Software Engineering Lecture Overview Classes and UML Associations between classes Special types of association: is-a, has-a, is-part-of Modelling Example Implementing associations
More informationData Analysis 1. Chapter 2.1 V3.1. Napier University Dr Gordon Russell
Data Analysis 1 Chapter 2.1 V3.1 Copyright @ Napier University Dr Gordon Russell Entity Relationship Modelling Overview Database Analysis Life Cycle Components of an Entity Relationship Diagram What is
More informationEmergency Nurses Association Privacy Policy
Emergency Nurses Association Privacy Policy The Emergency Nurses Association ( ENA, we, or us ) has created and posted this privacy policy in an effort to maintain efficient service while respecting your
More informationCTIS 359 Principles of Software Engineering SOFTWARE DESIGN OO(A)D
CTIS 359 Principles of Software Engineering SOFTWARE DESIGN OO(A)D Today s Objectives To explain the basic concepts of OO(A)D To describe some best practices regarding to OO(A)D What is NOT UML? The UML
More informationITEC420: Software Engineering Lecture 3: Recap OO/UML Requirement Workflow
ITEC420: Software Engineering Lecture 3: Recap OO/UML Requirement Workflow Box Leangsuksun SWECO Endowed Professor, Computer Science Louisiana Tech University box@latech.edu CTO, PB Tech International
More informationDesign Patterns. Design Patterns
Design Patterns As software engineers, we commonly have to make decisions about how to create complex objects, how to encapsulate some actions, how to allow for the undoing of certain operations, etc.
More informationChapter 2: Entity-Relationship Model
Chapter 2: Entity-Relationship Model! Entity Sets! Relationship Sets! Design Issues! Mapping Constraints! Keys! E-R Diagram! Extended E-R Features! Design of an E-R Database Schema! Reduction of an E-R
More information5 Object Oriented Analysis
5 Object Oriented Analysis 5.1 What is OOA? 5.2 Analysis Techniques 5.3 Booch's Criteria for Quality Classes 5.4 Project Management and Iterative OOAD 1 5.1 What is OOA? How to get understanding of what
More informationProgrammazione. Prof. Marco Bertini
Programmazione Prof. Marco Bertini marco.bertini@unifi.it http://www.micc.unifi.it/bertini/ Software engineering techniques and tools A fool with a tool is still a fool. - Grady Booch Use case A use case
More informationObject-Oriented Software Engineering. Chapter 2: Review of Object Orientation
Object-Oriented Software Engineering Chapter 2: Review of Object Orientation 2.1 What is Object Orientation? Procedural paradigm: Software is organized around the notion of procedures Procedural abstraction
More informationuser.book Page 45 Friday, April 8, :05 AM Part 2 BASIC STRUCTURAL MODELING
user.book Page 45 Friday, April 8, 2005 10:05 AM Part 2 BASIC STRUCTURAL MODELING user.book Page 46 Friday, April 8, 2005 10:05 AM user.book Page 47 Friday, April 8, 2005 10:05 AM Chapter 4 CLASSES In
More informationÄriprotsesside modelleerimine ja automatiseerimine Loeng 7 Valdkonna mudel
Äriprotsesside modelleerimine ja automatiseerimine Loeng 7 Valdkonna mudel Enn Õunapuu enn.ounapuu@ttu.ee What is a domain model? A domain model captures the most important types of objects in the context
More informationReview The Big Picture
CS445 - Introduction to Database Management Systems Fall Semester 2015 LECTURE 6 The Entity-Relationship Model Introduction TEXTBOOK REFERENCE: CHAPTERS 2,3 R&G 1 Review The Big Picture Data Modeling Relational
More informationObject-Oriented Design. Module UFC016QM. and Programming. Objects and Classes. O-O Design Unit 2: Faculty of Computing, Engineering
Module UFC016QM Object-Oriented Design and Programming O-O Design Unit 2: Objects and Classes Faculty of Computing, Engineering and Mathematical Sciences Schedule Quick recap on Use Case diagrams UWE Flix
More informationDarshan Institute of Engineering & Technology for Diploma Studies
REQUIREMENTS GATHERING AND ANALYSIS The analyst starts requirement gathering activity by collecting all information that could be useful to develop system. In practice it is very difficult to gather all
More information9 Structured design. Overview of structured design. Transaction analysis. Transform analysis. System integration
9 Structured design Overview of structured design Transaction analysis Transform analysis System integration 9.3 Structured design After SSA has produced a set of DFDs, there are three steps to turn the
More informationThe Unified Modeling Language. Asst.Prof.Dr. Supakit Nootyaskool IT-KMITL
The Unified Modeling Language Asst.Prof.Dr. Supakit Nootyaskool IT-KMITL UML: requirement VS. Design models Identify 2 All the classes or things Elementary business process Necessary step to carry out
More informationComputer Science 2 Lecture 4 Inheritance: Trinidad Fruit Stand 02/15/2014 Revision : 1.7
Computer Science 2 Lecture 4 Inheritance: Trinidad Fruit Stand 02/15/2014 Revision : 1.7 1 Problem Ralph owns the Trinidad Fruit Stand that sells its fruit on the street, and he wants to use a computer
More informationECE 122. Engineering Problem Solving with Java
ECE 122 Engineering Problem Solving with Java Lecture 17 Inheritance Overview Problem: Can we create bigger classes from smaller ones without having to repeat information? Subclasses: a class inherits
More informationInheritance. Inheritance Reserved word protected Reserved word super Overriding methods Class Hierarchies Reading for this lecture: L&L
Inheritance Inheritance Reserved word protected Reserved word super Overriding methods Class Hierarchies Reading for this lecture: L&L 9.1 9.4 1 Inheritance Inheritance allows a software developer to derive
More informationSoftware Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm. Rao Casturi 09/29/2015
Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm Rao Casturi 09/29/2015 http://cs.gsu.edu/~ncasturi1 Class Announcements Grading is done for the Deliverable #2 (Requirement Elicitation)
More informationChapter 6: Entity-Relationship Model
Chapter 6: Entity-Relationship Model Database System Concepts, 5th Ed. See www.db-book.com for conditions on re-use Chapter 6: Entity-Relationship Model Design Process Modeling Constraints E-R Diagram
More informationAmerican Dental Hygienists Association Privacy Policy
American Dental Hygienists Association Privacy Policy The American Dental Hygienists Association ( ADHA, we, or us ) has created and posted this privacy policy in an effort to maintain efficient service
More informationUnderstading Refactorings
Understading Refactorings Ricardo Terra terra@dcc.ufmg.br Marco Túlio Valente mtov@dcc.ufmg.br UFMG, 2010 UFMG, 2010 Understanding Refactorings 1 / 36 Agenda 1 Overview 2 Refactoring 3 Final Considerations
More informationObject Design II: Design Patterns
Object-Oriented Software Engineering Using UML, Patterns, and Java Object Design II: Design Patterns Bernd Bruegge Applied Software Engineering Technische Universitaet Muenchen A Game: Get-15 The game
More information