63
1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis and Design in a Changing World, 6th Edition, Satzinger, Jackson, Burd, CENGAGE Learning, 2012

1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Embed Size (px)

Citation preview

Page 1: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

1

SA Capstone Requirements and Design

Week 5

SYST36367 - Winter 2013Instructors: Jerry Kotuba & Joe Varrasso

Some slides adapted from: Systems Analysis and Design in a Changing World, 6th Edition, Satzinger, Jackson, Burd, CENGAGE Learning, 2012

Page 2: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

2

Lesson Objectives Build a domain model class diagram

– Brainstorm Technique– Noun Technique

Develop System Sequence Diagrams Build State Diagrams(object behavior)

Deliverable 2 (Project Requirements) due NEXT WEEK!

Page 3: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 3

Things in the Problem Domain Problem domain—the specific area (or domain)

of the users’ business need that is within the scope of the new system.

“Things” are those items users work with when accomplishing tasks that need to be remembered

Examples of “Things” are products, sales, shippers, customers, invoices, payments, etc.

These “Things” are modeled as domain classes or data entities

In this course, we will call them domain classes. In database class you call them data entities

Page 4: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 4

Things in the Problem DomainTwo Techniques for Identifying them

Brainstorming Technique Use a checklist of all of the usual types of things

typically found and brainstorm to identify domain classes of each type

Noun Technique Identify all of the nouns that come up when the

system is described and determine if each is a domain class, an attribute, or not something we need to remember

Page 5: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 5

Brainstorming Technique Are there any tangible things? Are there any

organizational units? Sites/locations? Are there incidents or events that need to be recorded?

Page 6: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 6

Brainstorming Technique:Steps1. Identify a user and a set of use cases2. Brainstorm with the user to identify things involved

when carrying out the use case—that is, things about which information should be captured by the system.

3. Use the types of things (categories) to systematically ask questions about potential things, such as the following: Are there any tangible things you store information about? Are there any locations involved? Are there roles played by people that you need to remember?

4. Continue to work with all types of users and stakeholders to expand the brainstorming list

5. Merge the results, eliminate any duplicates, and compile an initial list

Page 7: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 7

The Noun Technique A technique to identify problem domain classes

(things) by finding, classifying, and refining a list of nouns that come up in in discussions or documents

Popular technique. Systematic. Does end up with long lists and many nouns

that are not things that need to be stored by the system

Difficulty identifying synonyms and things that are really attributes

Good place to start when there are no users available to help brainstorm

Page 8: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 8

Partial List of Nouns for RMO

With notes on whether to include as domain class

Page 9: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 9

The Noun Technique:Steps1. Using the use cases, actors, and other information

about the system— including inputs and outputs—identify all nouns. For the RMO CSMS, the nouns might include customer, product item,

sale, confirmation, transaction, shipping, bank, change request, summary report, management, transaction report, accounting, back order, back order notification, return, return confirmation…

2. Using other information from existing systems, current procedures, and current reports or forms, add items or categories of information needed. For the RMO CSMS, these might include price, size, color, style,

season, inventory quantity, payment method, and shipping address.

Page 10: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 10

The Noun Technique:Steps (continued)

3. As this list of nouns builds, refine it. Ask these questions about each noun to help you decide whether you should include it: Is it a unique thing the system needs to know about? Is it inside the scope of the system I am working on? Does the system need to remember more than one of these items?

Ask these questions to decide to exclude it: Is it really a synonym for some other thing I have identified? Is it really just an output of the system produced from other

information I have identified? Is it really just an input that results in recording some other information

I have identified?

Ask these questions to research it: Is it likely to be a specific piece of information (attribute) about some

other thing I have identified? Is it something I might need if assumptions change?

Page 11: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 11

The Noun Technique:Steps (continued)

4. Create a master list of all nouns identified and then note whether each one should be included, excluded, or researched further.

5. Review the list with users, stakeholders, and team members and then define the list of things in the problem domain.

Page 12: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 12

Details about Domain Classes Attribute— describes one piece of information

about each instance of the class Customer has first name, last name, phone number

Identifier or key One attribute uniquely identifies an instance of the

class. Required for data entities, optional for domain classes. Customer ID identifies a customer

Compound attribute Two or more attributes combined into one structure

to simplify the model. (E.g., address rather than including number, street, city, state, zip separately). Sometimes an identifier or key is a compound attribute.

Page 13: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 13

Attributes and Values Class is a type of thing. Object is a specific instance of the class.

Each instance has its own values for an attribute

Page 14: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 14

Associations Among Things Association— a naturally occurring relationship

between classes (UML term)

Page 15: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 15

Just to Clarify…

Called association on class diagram in UML Multiplicity is term for the number of associations between

classes: 1 to 1 or 1 to many We are emphasizing UML in this text

Called relationship on ERD in database class Cardinality is term for number of relationships in entity

relationship diagrams: 1 to 1 or 1 to many Associations and Relationships apply in two directions

Read them separately each way A customer places an order An order is placed by a customer

Page 16: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 16

Minimum and Maximum Multiplicity

Associations have minimum and maximum constraints minimum is zero, the association is optional If minimum is at least one, the association is mandatory

Page 17: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 17

Types of Associations

Binary Association Associations between exactly two different classes

Course Section includes Students Members join Club

Unary Association (recursive) Associations between two instances of the same class

Person married to person Part is made using parts

Ternary Association (three) N-ary Association (between n)

Page 18: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 18

The Domain Model Class Diagram Class

A category of classification used to describe a collection of objects

Domain Class Classes that describe objects in the problem domain

Class Diagram A UML diagram that shows classes with attributes and

associations (plus methods if it models software classes) Domain Model Class Diagram

A class diagram that only includes classes from the problem domain, not software classes so no methods

Page 19: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 19

Domain Class Notation Domain class has no methods Class name is always capitalized Attribute names are not capitalized and use camelback

notation (words run together and second word is capitalized)

Page 20: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 20

A Simple Domain Model Class Diagram

Note: This diagram matches the semantic net shown previously A customer places zero or more orders An order is placed by exactly one customer An order consists of one or more order items An order item is part of exactly one order

Page 21: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 21

UML Notation for Multiplicity

Page 22: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 22

Domain Model Class Diagramfor a bank with many branches

Page 23: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 23

Domain Model Class Diagramfor course enrollment at a university

Where is each student’s grade remembered in this model? Each section has many grades and each grade is association with a student Each student has many grades and each grade is association with a section

Page 24: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 24

Refined Course Enrollment Modelwith an Association Class CourseEnrollment

Association class— an association that is treated as a class in a many to many association because it has attributes that need to be remembered, such as grade

Page 25: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 25

More Complex Issues about Classes:Generalization/Specialization Relationships

Generalization/Specialization A hierarchical relationship where subordinate classes are

special types of the superior classes. Often called an Inheritance Hierarchy

Superclass the superior or more general class in a

generalization/specialization hierarchy Subclass

the subordinate or more specialized class in a generalization/specialization hierarchy

Inheritance the concept that subclasses classes inherit characteristics of

the more general superclass

Page 26: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 26

Generalization/SpecializationInheritance

Page 27: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 27

Generalization/SpecializationInheritance for RMO Three Types of Sales

Abstract class— a class that allow subclasses to inherit characteristics but never gets instantiated. In Italics (Sale above)

Concrete class— a class that can have instances

Page 28: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 28

Generalization/SpecializationInheritance for the Bank with Special Types of Accounts

A SavingsAccount has 4 attributes

A CheckingAccount Has 5 attributes

Note: the subclasses inherit the associations, too

Page 29: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 29

More Complex Issues about Classes:Whole Part Relationships Whole-part relationship— a relationship between

classes where one class is part of or a component portion of another class

Aggregation— a whole part relationship where the component part exists separately and can be removed and replaced (UML diamond symbol, next slide) Computer has disk storage devices Car has wheels

Composition— a whole part relationship where the parts can no longer be removed (filled in diamond symbol) Hand has fingers Chip has circuits

Page 30: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 30

Whole Part RelationshipsComputer and its Parts

Note: this is composition, with diamond symbol.

Whole part can have multiplicity symbols, too (not shown)

Page 31: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 31

More on UML Relationships

There are actually four types of relationships in class diagrams Association Relationships (“uses a”)

These are associations discussed previously, just like ERD relationships

Whole Part Relationships (“has a”) One class is a component or part of another class

Generalizations/Specialization Relationships (“is a”) Inheritance

Interface/Contarct Relationships (“can do”) Interface

So, try not to confuse relationship with association

Page 32: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 32

Entity-Relationship DiagramsERD An ERD shows basically the same information as

a domain model class diagram It is not a UML diagram, but it is widely used by

data analysts in database management There really is no standard notation, but most

developers use the entity and crows feet notation shown in this text

An ERD is not good for showing generalization/specialization relationships and whole part relationships

Page 33: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 33

Example of ERD Notation A simple ERD without showing attributes

Page 34: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 34

ERD Cardinality Symbolsoften called the crows feet notation

Page 35: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 35

Expanded ERD with Attributes

Note: This diagram matches the semantic net shown previously Also matches a domain model class diagram shown previously

Page 36: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 36

An ERD for a Bank

Page 37: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 37

Summary This chapter is the second of three that focuses on

modeling functional requirements as a part of systems analysis

“Things” in the problem domain are identified and modeled, called domain classes or data entities

Two techniques for identifying domain classes/data entities are the brainstorming technique and the noun technique

Domain classes have attributes and associations Associations are naturally occurring relationships

among classes, and associations have minimum and maximum multiplicity

Page 38: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 38

Summary The UML class diagram notation is used to create a

domain model class diagram for a system. The domain model classes do not have methods because they are not yet software classes.

There are actually four UML class diagram relationships: association relationships, generalization/specialization (inheritance) relationships, interface and whole part relationships

Other class diagram concepts are abstract versus concrete classes, compound attributes, composition and aggregation, association classes, super classes and subclasses

Page 39: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 39

Summary Entity-relationship diagrams (ERDs) show the same

information as a domain model class diagram ERDs are preferred by database analysts and are

widely used ERDs are not UML diagrams, and an association is

called a relationship, multiplicity is called cardinality, and generalization/specialization (inheritance) and whole part relationships are usually not shown

Page 40: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 40

Overview Chapters 3 and 4 identified and modeled the two primary

aspects of functional requirements: use cases and domain classes

This chapter focuses on additional techniques and models to extend the requirements models to show more detail

Fully developed use case descriptions provide information about each use case, including actors, stakeholders, preconditions, post conditions, the flow of activities and exceptions conditions

Activity diagrams (first shown in Chapter 2) can also be used to show the flow of activities for a use case

Page 41: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 41

Overview (continued)

System sequence diagrams (SSDs) show the inputs and outputs for each use case as messages

State machine diagrams show the states an object can be in over time between use cases

Use cases are modeled in more detail using fully developed use case descriptions, activity diagrams, and system sequence diagrams

Domain classes are modeled in more detail using state machine diagrams

Not all use cases and domain classes are modeled at this level of detail. Only model when there is complexity and a need to communicate details

Page 42: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 42

System Sequence Diagram (SSD)

A UML sequence diagram Special case for a sequence diagram

Only shows actor and one object The one object represents the complete system Shows input & output messaging requirements

for a use case Actor, :System, object lifeline Messages

Page 43: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 43

Automation Boundary

Page 44: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 44

System Sequence Diagram (SSD)Notation

Page 45: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 45

Message Notation

Page 46: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 46

SSD Message Examples with Loop Frame

Page 47: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 47

SSD Message Examples

Opt Frame (optional)

Alt Frame(if-else)

Page 48: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 48

Steps for Developing SSD1. Identify input message

See use case flow of activities or activity diagram

2. Describe the message from the external actor to the system using the message notation

Name it verb-noun: what the system is asked to do Consider parameters the system will need

3. Identify any special conditions on input messages Iteration/loop frame Opt or Alt frame

4. Identify and add output return values On message itself: aValue:= getValue(valueID) As explicit return on separate dashed line

Page 49: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 49

SSD for Create customer account Use case

Page 50: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 50

SSD for Ship items Use Case

Page 51: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 51

State Machine Diagram State machine diagram

A UML diagram showing the life of an object in states and transitions

State A condition during an object’s life when it satisfies some

criterion, performs some action, or waits for an event Transition

The movement of an object from one state to another state

Action Expression A description of activities performed as part of a transition

Page 52: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 52

State Machine Diagram (continued)

Pseudo state The starting point of a state machine diagram (black dot)

Origin state The original state of an object before transition

Destination state The state to which the object moves after the transition

Guard condition A true false test to see whether a transition can fire

Page 53: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 53

State Machine Diagramfor a Printer

Page 54: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 54

Composite States State containing other states and transitions Printer can be On and either Idle or Working

Page 55: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 55

Concurrent Paths Multiple paths in composite state Printer On paths are independent

Page 56: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 56

Steps for Developing State Machine Diagram

1. Review the class diagram and select classes that might require state machine diagrams

2. For each class, make a list of status conditions (states) you can identify

3. Begin building diagram fragments by identifying transitions that cause an object to leave the identified state

4. Sequence these states in the correct order and aggregate combinations into larger fragments

5. Review paths and look for independent, concurrent paths

Page 57: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 57

Steps for Developing State Machine Diagram (continued)

6. Look for additional transitions and test both directions

7. Expand each transition with appropriate message event, guard condition, and action expression

8. Review and test the state machine diagram for the class

Make sure state are really state for the object in the class

Follow the life cycle of an object coming into existence and being deleted

Be sure the diagram covers all exception condition Look again for concurrent paths and composite states

Page 58: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 58

Extending and Integrating Requirements Models

Use cases Use case diagram

Use case description Activity diagram System sequence diagram (SSD)

Domain Classes Domain model class diagram

State machine diagram

Page 59: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 59

Integrating Requirements Models

Page 60: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 60

Summary Chapters 3 and 4 identified and modeled the two primary

aspects of functional requirements: use cases and domain classes

This chapter focuses on additional techniques and models to extend the requirements models to show more detail

Fully developed use case descriptions provide information about each use case, including actors, stakeholders, preconditions, post conditions, the flow of activities and exceptions conditions

Activity diagrams (first shown in Chapter 2) can also be used to show the flow of activities for a use case

Page 61: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

Systems Analysis and Design in a Changing World, 6th Edition 61

Summary (continued)

System sequence diagrams (SSDs) show the inputs and outputs for each use case as messages

State machine diagrams show the states an object can be in over time between use cases

Use cases are modeled in more detail using fully developed use case descriptions, activity diagrams, and system sequence diagrams

Domain classes are modeled in more detail using state machine diagrams

Not all use cases and domain classes are modeled at this level of detail. Only model when there is complexity and a need to communicate details

Page 62: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

62

Deliverable 2 (Project Requirements) Let’s review Deliverable 2 together which is due: NEXT WEEK! For detailed instructions and a link to the rubric please visit:

http://sacapstone.wikidot.com/deliverable2instructions

Page 63: 1 SA Capstone Requirements and Design Week 5 SYST36367 - Winter 2013 Instructors: Jerry Kotuba & Joe Varrasso Some slides adapted from: Systems Analysis

63

Group Meetings Please break into your Capstone Groups to plan and

work on Deliverable 2! We will be meeting with each group today to assess

your progress and provide some advice