lecture notes for week 2 – project (class diagram)

35
Lecture Notes for Week 2 – Project (Class Diagram) CSCI 3350 Software Engineering II Dr. Suzanne Smith

Upload: krisalyn-rojas

Post on 30-Dec-2015

29 views

Category:

Documents


1 download

DESCRIPTION

Lecture Notes for Week 2 – Project (Class Diagram). CSCI 3350 Software Engineering II Dr. Suzanne Smith. Unified Modeling Language, Version 2.0. 2 types of diagrams Structure Diagrams Provide a way for representing the data and static relationships that are in an information system - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Lecture Notes  for Week 2 – Project (Class Diagram)

Lecture Notes for Week 2 – Project

(Class Diagram)

CSCI 3350

Software Engineering II

Dr. Suzanne Smith

Page 2: Lecture Notes  for Week 2 – Project (Class Diagram)

Unified Modeling Language, Version 2.0

• 2 types of diagrams– Structure Diagrams

• Provide a way for representing the data and static relationships that are in an information system

• Class diagram

– Behavior Diagrams

Page 3: Lecture Notes  for Week 2 – Project (Class Diagram)

Structure Diagrams

• Class Diagram– Describe the structure of the system in

terms of classes and objects

– Primary purpose during analysis workflow: to create a vocabulary that is used by both the analyst and users

Page 4: Lecture Notes  for Week 2 – Project (Class Diagram)

What is a Class?

• A general template that we use to create specific instances or objects in the application domain

• Represents a kind of person, place, or thing about which the system will need to capture and store information

• Abstractions that specify the attributes and behaviors of a set of objects

Page 5: Lecture Notes  for Week 2 – Project (Class Diagram)

What is an Object?

• Entities that encapsulate state and behavior

• Each object has an identity– It can be referred individually

– It is distinguishable from other objects

Page 6: Lecture Notes  for Week 2 – Project (Class Diagram)

Types of Classes

• Ones found during analysis:– people, places, events, and things about

which the system will capture information

– ones found in application domain

• Ones found during design– specific objects like windows and forms

that are used to build the system

Page 7: Lecture Notes  for Week 2 – Project (Class Diagram)

2 Kinds of Classes during Analysis

• Concrete– Class from application domain

– Example: Customer class and Employee class

• Abstract– Useful abstractions

– Example: Person class

Page 8: Lecture Notes  for Week 2 – Project (Class Diagram)

Attributes in a Class

• Properties of the class about which we want to capture information

• Represents a piece of information that is relevant to the description of the class within the application domain

Page 9: Lecture Notes  for Week 2 – Project (Class Diagram)

Attributes in a Class

• Only add attributes that are primitive or atomic types

• Derived attribute– attributes that are calculated or derived

from other attributes

– denoted by placing slash (/) before name

Page 10: Lecture Notes  for Week 2 – Project (Class Diagram)

Operations in a Class

• Represents the actions or functions that a class can perform

• Describes the actions to which the instances of the class will be capable of responding

• Can be classified as a constructor, query, or update operation

Page 11: Lecture Notes  for Week 2 – Project (Class Diagram)

UML Representation of Class

Class Name

Attributes of Class

Operations/methods of Class

Page 12: Lecture Notes  for Week 2 – Project (Class Diagram)

Example of a Class Diagram

Video Rental System

methods

class name

Video

+rentMovie()

Customer-CID: int

-name: String

+authenticateCustomer ()

relationship

rents

1..*1..*

multiplicityvisibility

attributes

-cassetteID : int

-cassetteVolumeNo: int

Page 13: Lecture Notes  for Week 2 – Project (Class Diagram)

Visibility of Attributes and Operations

• Relates to the level of information hiding to be enforced

Page 14: Lecture Notes  for Week 2 – Project (Class Diagram)

Visibility of Attributes and Operations

Instances of the implementing class.-Private

Instances of the implementing class and its subclasses.

#Protected

All objects within your system.+Public

Accessible To Symbol Visibility

 

Page 15: Lecture Notes  for Week 2 – Project (Class Diagram)

Relationships among Classes

• Represents a connection between multiple classes or a class and itself

• 3 basic categories:– association relationships

– generalization relationships

– aggregation relationships

Page 16: Lecture Notes  for Week 2 – Project (Class Diagram)

Association Relationship

• A bidirectional semantic connection between classes

• Type:– name of relationship

– role that classes play in the relationship

Page 17: Lecture Notes  for Week 2 – Project (Class Diagram)

Association Relationship

• Name of relationship type shown by:– drawing line between classes

– labeling with the name of the relationship

– indicating with a small solid triangle beside the name of the relationship the direction of the association

Provides Patient Medical History

Page 18: Lecture Notes  for Week 2 – Project (Class Diagram)

Association Relationship

• Role type shown by:– drawing line between classes

– indicating with a plus sign before the role name

Patient

+ primary insurance carrier

Page 19: Lecture Notes  for Week 2 – Project (Class Diagram)

Generalization Relationship

• Enables the analyst to create classes that inherit attributes and operations of other classes

• Represented by a-kind-of relationship

Page 20: Lecture Notes  for Week 2 – Project (Class Diagram)

Generalization Relationship

Person

Employee Customer

Manager Engineer

Page 21: Lecture Notes  for Week 2 – Project (Class Diagram)

Generalization Relationship

Employee

hireDate

receivePay

performWork

Managerdepartment

bonus

hireEmployee

promoteEmployee

Engineer

certifications

analyze

design

Page 22: Lecture Notes  for Week 2 – Project (Class Diagram)

Generalization Relationship

Person

Employee Contractor

Manager Engineer Preferred Contractor

Secondary Contractor

Page 23: Lecture Notes  for Week 2 – Project (Class Diagram)

Aggregation Relationship

• Specialized form of association in which a whole is related to its part(s)

• Represented by a-part-of relationship

Page 24: Lecture Notes  for Week 2 – Project (Class Diagram)

Aggregation Relationship

• Denoted by placing a diamond nearest the class representing the aggregation

providesPatient Medical History1 0..1

Page 25: Lecture Notes  for Week 2 – Project (Class Diagram)

Multiplicity

• Documents how many instances of a class can be associated with one instance of another class

providesPatient Medical History1 0..1

Page 26: Lecture Notes  for Week 2 – Project (Class Diagram)

Multiplicity

• Denotes the minimum number.. maximum number of instancesExactly one 1Zero or more 0..* or 0..mOne or more 1..* or 1..mZero or one 0..1Specified range 2..4Multiple, disjoint ranges 1..3, 5

Page 27: Lecture Notes  for Week 2 – Project (Class Diagram)

Class Diagram

• 2 approaches to deriving class diagrams:– from use cases and their scenarios

– from CRC cards

Page 28: Lecture Notes  for Week 2 – Project (Class Diagram)

Deriving Class Diagram fromUse Cases and Scenarios

• Analyze the text in the use-case descriptions and scenarios

Page 29: Lecture Notes  for Week 2 – Project (Class Diagram)

Guidelines for Analyzing Use Cases

• A common or improper noun implies a class of objects

• A proper noun implies an instance of a class

• A collective noun implies a class of objects made up of groups of instances of another class

Page 30: Lecture Notes  for Week 2 – Project (Class Diagram)

Guidelines for Analyzing Use Cases (2)

• An adjective implies an attribute of an object

• A doing verb implies an operation

• A being verb implies a relationship between an object and its class

• A having verb implies an aggregation or association relationship

Page 31: Lecture Notes  for Week 2 – Project (Class Diagram)

Guidelines for Analyzing Use Cases (3)

• A transitive verb implies an operation

• An intransitive verb implies an exception

• A predicate or descriptive verb phrase implies an operation

• An adverb implies an attribute of a relationship or an operation

Page 32: Lecture Notes  for Week 2 – Project (Class Diagram)

Class Diagram

• Ensure that the classes are both necessary and sufficient to solve the underlying problem– no missing attributes or methods in each

class

– no extra or unused attributes or methods in each class

– no missing or extra classes

Page 33: Lecture Notes  for Week 2 – Project (Class Diagram)

Discarding Unnecessary and Incorrect Classes

• Redundant Classes

• Irrelevant Classes

• Vague Classes

• Attributes

• Operations

• Roles

• Implementation Constructs

Page 34: Lecture Notes  for Week 2 – Project (Class Diagram)

Types of Classes

• Ones found during analysis:– people, places, events, and things about

which the system will capture information

– ones found in application domain

• Ones found during design– specific objects like windows and forms

that are used to build the system

Page 35: Lecture Notes  for Week 2 – Project (Class Diagram)