Download presentation
Presentation is loading. Please wait.
Published byMaximillian Dorsey Modified over 9 years ago
1
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 1 An Introduction to Object-Oriented Analysis Objects and UML in plain English. Chapter 10: Object States and the Statechart Diagram Based on the book by David William Brown John Wiley & Sons, ISBN 0471371378
2
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 2 Copyright Copyright 8 2002 Flying Kiwi Productions All rights reserved. This slide presentation is based on “An Introduction to Object- Oriented Analysis; Objects and UML in Plain English,” by David William Brown, Wiley, ISBN 0471371378, “The Book.” where a copy of The Book is purchased Permission is hereby granted to copy, modify or excerpt all or any part of this slide presentation, provided it is solely for use with courses, seminars or other presentations or productions where a copy of The Book is purchased by or for each and every participant or recipient. An instructor guide is available from the publisher for such presentations.
3
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 3 Chapter 10: Object States and the Statechart Diagram 10.1 Lifetimes and Lifecycles. 10.2. Events and States. 10.3. Transitions and Actions. 10.4. The Statechart Diagram. 10.5. Object Lifecycles on the. 10.6. The State Transition Table (STT).
4
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 4 10.1. Lifetimes and Lifecycles. Chapter 10: Object States and the Statechart Diagram
5
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 5 You will remember from Chapter 5... Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.1 Lifetimes and Lifecycles.
6
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 6 Purchase Order A Purchase Order request document, begins life as a request document, authorized gets authorized at various levels, out to a vendor, goes out to a vendor, fulfilled receiving is fulfilled by receiving the goods, archived and finally is archived for future reference. In the real world: Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.1 Lifetimes and Lifecycles.
7
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 7 predictable cycle Many objects in the real world go through a predictable cycle creation, From their creation, useful life, Through their useful life, l From stage to stage disposed of Until they die or are somehow disposed of (Archived or deleted or whatever.) States in the real world: Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.1 Lifetimes and Lifecycles.
8
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 8 and something changes about it, we say that it now exists in a differentstate. l We can also say that each time an attribute changes its value, the object now exists in a newstate. Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.1 Lifetimes and Lifecycles. l l Each time something happens to the object,
9
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 9 Because any significant business event causes a change of state For at least one business object and... Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.1 Lifetimes and Lifecycles. Why would we find this so interesting?
10
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 10 to record these changes in the database In other words... Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.1 Lifetimes and Lifecycles. l l That means we need some program code
11
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 11 cause State Changes which cause Object Behaviors Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.1 Lifetimes and Lifecycles. Business Events Business Events to be executed.
12
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 12 actexperience As the act or experience changing from one state to another. of changing from one state to another. Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.1 Lifetimes and Lifecycles. We define a State Transition
13
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 13 l As we follow an object from state to state, it traces what we can call its Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.1 Lifetimes and Lifecycles. Lifecycle.
14
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 14 Operations is to discover Operations (i.e., Behaviors) for the classes we found in the earlier steps. Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.1 Lifetimes and Lifecycles. So our goal in studying Object Lifecycles
15
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 15 Here’s an example using a library book... Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.1 Lifetimes and Lifecycles.
16
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 16 Your typical library book Begins its day on the shelf... Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.1 Lifetimes and Lifecycles.
17
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 17 Your typical library book Begins its day on the shelf... Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.1 Lifetimes and Lifecycles. 1. Shelved
18
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 18 Business Event... This is a Business Event... Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.1 Lifetimes and Lifecycles. And when a Subscriber comes along and borrows the Book 1. Shelved
19
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 19 “Signed Out.” Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.1 Lifetimes and Lifecycles. The state of the Book changes to 2. Signed Out 1. Shelved
20
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 20 When the Subscriber brings it back... Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.1 Lifetimes and Lifecycles.
21
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 21 “Checked In.” Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.1 Lifetimes and Lifecycles. 1. Shelved The state of the Book changes to 3. Checked In 2. Signed Out 1. Shelved
22
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 22 The state of the Book changes back to “ Shelved.” Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.1 Lifetimes and Lifecycles. 1. Shelved And when the Librarian puts it back on the shelf, 2. Signed Out 3. Checked In 1. Shelved
23
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 23 “Statechart Diagram.” Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.1 Lifetimes and Lifecycles. This is an example of a 1. Shelved 2. Signed Out 3. Checked In
24
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 24 Operational Lifecycle, concerned with the regular operation of the users’ business. l Many objects have a life that does not repeat, stage to stage But goes stage to stage “birth” “death” from “birth” to “death” (i.e., delete, archive, or whatever.) Life time That kind is called a Life time Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.1 Lifetimes and Lifecycles. l l A loop like this is an
25
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 25 State: State: At any moment, an object exists conditionmanner in a certain condition or manner of being, and this we say is itsState. Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.1 Lifetimes and Lifecycles. Definition:
26
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 26 next we must look at two more pieces that make up the Statechart Diagram: Events Events and States States Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.1 Lifetimes and Lifecycles. So now that we’ve examined Life times and Life cycles,
27
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 27 Chapter 10: Object States and the Statechart Diagram 10.1 Lifetimes and Lifecycles. 10.3. Transitions and Actions. 10.4. The Statechart Diagram. 10.5. Object Lifecycles on the Statechart Diagram. 10.6. The State Transition Table (STT). 10.2. Events and States.
28
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 28 10.2. Events and States. Chapter 10: Object States and the Statechart Diagram
29
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 29 Event: A noteworthy happening. ( Webster ) Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.2. Events and States.
30
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 30 received by An Event is received by an object, l Which really means the event happens to happens to that object. Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.2. Events and States. We say that:
31
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 31 The object is in a new state. Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.2. Events and States. And once the event has happened to it,
32
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 32 l To record a business event, change the value one attribute. we must change the value of at least one attribute. represent Since the attribute values can be said to represent the object’s state, this causes a State Transition. Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.2. Events and States. l l Generally,
33
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 33 the domain of its permissible values possible states Gives the set of possible states for that class. Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.2. Events and States. In fact, many classes have a “Status” “Status” attribute, and
34
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 34 Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.1 Lifetimes and Lifecycles. Now, the last two pieces to complete the Statechart Diagram are...
35
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 35 Chapter 10: Object States and the Statechart Diagram 10.1 Lifetimes and Lifecycles. 10.2. Events and States. 10.4. The Statechart Diagram. 10.5. Object Lifecycles on the Statechart Diagram. 10.6. The State Transition Table (STT). 10.3. Transitions and Actions.
36
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 36 10.3. Transitions and Actions. Chapter 10: Object States and the Statechart Diagram
37
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 37 State Transition: actexperience The act or experience of changing from one state to another. Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.3. Transitions and Actions. Definition:
38
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 38 states As consisting of the various states that an object may transition through, transitions The set of permissible transitions, sequencing And the sequencing of those states and transitions, as it progresses from its initial creation to its eventual disposal. We define an Object Lifecycle Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.3. Transitions and Actions.
39
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 39 Actionbehavior An Action is a behavior l Associated with a state or transition, each time Executed each time enters or leaves The object enters or leaves that state. Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.3. Transitions and Actions. Action:
40
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 40 “Signed Out.” Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.1 Lifetimes and Lifecycles. When the state of the Book changes to 2. Signed Out 1. Shelved There are some things that must happen, to keep track of all the loans
41
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 41 “Signed Out.” Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.1 Lifetimes and Lifecycles. When the state of the Book changes to 2. Signed Out 1. Shelved 2. Signed Out entry / Loan.L1: Request Link to Subscriber exit / UpdateTimeIn() When it is loaned out, the Book must in some way be attached to the borrower entry / Loan.L1: Request Link to Subscriber
42
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 42 “Signed Out.” Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.1 Lifetimes and Lifecycles. When the state of the Book changes to 2. Signed Out 1. Shelved 2. Signed Out entry / Loan.L1: Request Link to Subscriber exit / UpdateTimeIn() And when it leaves the state of “Signed Out,” it must update the Date and Time In. exit / UpdateTimeIn()
43
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 43 Actionbehavior An Action is a behavior l Associated with a state or transition, each time Executed each time enters or leaves The object enters or leaves that state l or executes that transition. Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.3. Transitions and Actions. Action:
44
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 44 Action That is, each Action is attached to either the entry into the state, l or the exit from the state. Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.3. Transitions and Actions. Action:
45
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 45 Action transition Sometimes an Action is attached to a transition and executes during the transition. Action Sometimes an Action is attached to an event, and executes while the object stays within this state. We’ll look at these ones later... Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.3. Transitions and Actions. Action:
46
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 46 (Or documented separately if too many) Analysis Names At Analysis time, we just want to find Names for the actions, Design to be expanded and spelled out in the Design phase. Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.3. Transitions and Actions. On the Statechart Diagram, Actions may be spelled out within the box for the class
47
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 47 n Update attributes, n Create instances, n Send messages to other classes, i.e., generate an event to be received by another class and cause a transition in that other class (or even create an instance there.) Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.3. Transitions and Actions. Actions can do anything:
48
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 48 cause State Changes which cause Object Behaviors (i.e., Actions ) to be executed. Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.1 Lifetimes and Lifecycles. Remember: Business Events
49
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 49 find Actions Is to find the Actions identify So from them we may identify spec out And later spec out in detail, the Object Behaviors Methods. and Methods. Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.3. Transitions and Actions. goal Statechart Diagram The goal of the Statechart Diagram
50
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 50 Statechart Diagram... Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.3. Transitions and Actions. And the tool for studying and documenting object lifecycles is the
51
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 51 Chapter 10: Object States and the Statechart Diagram 10.1 Lifetimes and Lifecycles. 10.2. Events and States. 10.3. Transitions and Actions. 10.5. Object Lifecycles on the Statechart Diagram. 10.6. The State Transition Table (STT). 10.4. The Statechart Diagram.
52
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 52 10.4. The Statechart Diagram. Chapter 10: Object States and the Statechart Diagram
53
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 53 We need to look at the Statechart notation. Here’s the library book again... Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.4. The Statechart Diagram.
54
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 54 Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.4. The Statechart Diagram For a Library Book. Event B2: Subscriber Returns Book Event B3: Librarian Shelves Book Event B4: «create» Book is Purchased 2. Signed Out entry / Loan.L1: Request Link to Subscriber exit / UpdateDateAndTimeIn() 1. Shelved entry / Update Date & time Shelved 3. Checked In entry / Loan.L2: Archive Loan Event B1: Subscriber Requests Loan / Update Date & Time Out
55
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 55 created The event that causes the instance to be created coming from is shown as coming from a large black dot l and is “stereotyped” «create» (e.g., Event B4) Event B2: Subscriber Returns Book 1. Shelved 2. Signed Out 3. Checked In Update Date/time Shelved Event B1: Subscriber Requests Loan Update Date/time Out Generate Event SO1: Request Link to Subscriber Update Date/Time In Generate Event SO2: Archive Sign-Out Event B3: Librarian Shelves Book Event B4: Book is Purchased Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.4. The Statechart Diagram Notation arrows. Events are shown with arrows. Event B1: Subscriber Requests Loan / Update Date/Time Out Event B2: Subscriber Returns Book Event B3: Librarian Shelves Book Event B4: «create» Book is Purchased 2. Signed Out entry / Loan.L1: Request Link to Subscriber exit / UpdateDateAndTimeIn() 1. Shelved entry / Update Date & time Shelved 3. Checked In entry / Loan.L2: Archive Loan
56
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 56 Eventproject Event numbers are unique within the project Event Event numbers have a prefix telling what class they belong with, e.g.: B 3: Librarian Shelves Book Book “ B 3: Librarian Shelves Book” belongs in the Book class. L 1: Create Loan Instance Loan “ L 1: Create Loan Instance” is in the Loan class. Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.4. The Statechart Diagram Notation Statewithin that State numbers are unique within that Statechart Diagram e.g., “2: Signed Out” Event B1: Subscriber Requests Loan / Update Date/Time Out Event B2: Subscriber Returns Book Event B3: Librarian Shelves Book Event B4: «create» Book is Purchased 2. Signed Out entry / Loan.L1: Request Link to Subscriber exit / UpdateDateAndTimeIn() 1. Shelved entry / Update Date & time Shelved 3. Checked In entry / Loan.L2: Archive Loan
57
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 57 Now let’s follow the Book through its daily routine... Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.4. The Statechart Diagram Notation Event B1: Subscriber Requests Loan / Update Date/Time Out Event B2: Subscriber Returns Book Event B3: Librarian Shelves Book Event B4: «create» Book is Purchased 2. Signed Out entry / Loan.L1: Request Link to Subscriber exit / UpdateDateAndTimeIn() 1. Shelved entry / Update Date & time Shelved 3. Checked In entry / Loan.L2: Archive Loan
58
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 58 Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.4. The Statechart Diagram Event B4 The Book is purchased ( Event B4 ) and enters State1: Shelved its initial state ( State 1: Shelved ) Event B1: Subscriber Requests Loan / Update Date/Time Out Event B2: Subscriber Returns Book Event B3: Librarian Shelves Book Event B4: «create» Book is Purchased 2. Signed Out entry / Loan.L1: Request Link to Subscriber exit / UpdateDateAndTimeIn() 1. Shelved entry / Update Date & time Shelved 3. Checked In entry / Loan.L2: Archive Loan Entry Action As it enters State 1, it executes the Entry Action for that state, Update Date & Time Shelved
59
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 59 Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.4. The Statechart Diagram A subscriber (customer) borrows the Book Event B1 ( Event B1 ) Event B1: Subscriber Requests Loan / Update Date/Time Out Event B2: Subscriber Returns Book Event B3: Librarian Shelves Book Event B4: «create» Book is Purchased 2. Signed Out entry / Loan.L1: Request Link to Subscriber exit / UpdateDateAndTimeIn() 1. Shelved entry / Update Date & time Shelved 3. Checked In entry / Loan.L2: Archive Loan State2: Signed Out This causes it to transition to State 2: Signed Out in transition Action As the Book is in transition it executes the Action for that transition: Update Date & Time Out State 2, Then, as it enters State 2, it Entry Action executes the Entry Action for that state, Request Link to Subscriber
60
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 60 Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.4. The Statechart Diagram. Action: Event B1: Subscriber Requests Loan / Update Date/Time Out Event B2: Subscriber Returns Book Event B3: Librarian Shelves Book Event B4: «create» Book is Purchased 2. Signed Out entry / Loan.L1: Request Link to Subscriber exit / UpdateDateAndTimeIn() 1. Shelved entry / Update Date & time Shelved 3. Checked In entry / Loan.L2: Archive Loan Actionbehavior An Action is a behavior l Associated with a state or transition, each time Executed each time enters or leaves The object enters or leaves that state l or executes that transition.
61
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 61 Action An Action is a set of things that the object must do transitions into or out of when it transitions into or out of a state during or during a transition. Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.4. The Statechart Diagram In other words, Event B1: Subscriber Requests Loan / Update Date/Time Out Event B2: Subscriber Returns Book Event B3: Librarian Shelves Book Event B4: «create» Book is Purchased 2. Signed Out entry / Loan.L1: Request Link to Subscriber exit / UpdateDateAndTimeIn() 1. Shelved entry / Update Date & time Shelved 3. Checked In entry / Loan.L2: Archive Loan
62
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 62 as it transitions from State 1 to State 2, And And as it enters State 2, generates an Event L1: Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.4. The Statechart Diagram Event B1: Subscriber Requests Loan / Update Date/Time Out Event B2: Subscriber Returns Book Event B3: Librarian Shelves Book Event B4: «create» Book is Purchased 2. Signed Out entry / Loan.L1: Request Link to Subscriber exit / UpdateDateAndTimeIn() 1. Shelved entry / Update Date & time Shelved 3. Checked In entry / Loan.L2: Archive Loan Note that in this case, the Book object Date and Time Out updates the Date and Time Out Request Link to Subscriber
63
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 63 Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.4. The Statechart Diagram l l This causes a Loan instance to be created State 1: Current. in its initial state, State 1: Current. Event SO1 The Event SO1 is then received by the Statechart Loan class. Diagram for the Loan class. Update Date/time Out Generate Event SO1: Request Link to subscriber Event B1: Subscriber Requests Loan / Update Date/Time Out Event B2: Subscriber Returns Book Event B3: Librarian Shelves Book Event B4: «create» Book is Purchased 2. Signed Out entry / Loan.L1: Request Link to Subscriber exit / UpdateDateAndTimeIn() 1. Shelved entry / Update Date & time Shelved 3. Checked In entry / Loan.L2: Archive Loan 1. Current Event L1: Request Link to Subscriber «create»
64
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 64 Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.4. The Statechart Diagram Next, Event B2 happens, The Subscriber returns the Book Event B1: Subscriber Requests Loan / Update Date/Time Out Event B2: Subscriber Returns Book Event B3: Librarian Shelves Book Event B4: «create» Book is Purchased 2. Signed Out entry / Loan.L1: Request Link to Subscriber exit / UpdateDateAndTimeIn() 1. Shelved entry / Update Date & time Shelved 3. Checked In entry / Loan.L2: Archive Loan 3. Checked In entry / Loan.L2: Archive Loan And the Book transitions to State 3.
65
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 65 Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.4. The Statechart Diagram Exit Action, it executes the Exit Action, UpdateDateAndTimeIn() As the Book leaves State 2: Signed out Event B1: Subscriber Requests Loan / Update Date/Time Out Event B2: Subscriber Returns Book Event B3: Librarian Shelves Book Event B4: «create» Book is Purchased 2. Signed Out entry / Loan.L1: Request Link to Subscriber exit / UpdateDateAndTimeIn() 1. Shelved entry / Update Date & time Shelved 3. Checked In entry / Loan.L2: Archive Loan exit / UpdateDateAndTimeIn()
66
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 66 Generate Event L2: Archive Loan Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.4. The Statechart Diagram Entry Action, It executes the Entry Action, Generate Event L2: Archive Loan. State 3: Checked In As the Book enters State 3: Checked In Event B1: Subscriber Requests Loan / Update Date/Time Out Event B2: Subscriber Returns Book Event B3: Librarian Shelves Book Event B4: «create» Book is Purchased 2. Signed Out entry / Loan.L1: Request Link to Subscriber exit / UpdateDateAndTimeIn() 1. Shelved entry / Update Date & time Shelved 3. Checked In entry / Loan.L2: Archive Loan
67
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 67 Event L2: Loan is Archived / UpdateAverageDurationOfLoan sAllBooks() Event L2 When Event L2 is received by the Statechart Diagram for the Loan class, Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.4. The Statechart Diagram Event B1: Subscriber Requests Loan / Update Date/Time Out Event B2: Subscriber Returns Book Event B3: Librarian Shelves Book Event B4: «create» Book is Purchased 2. Signed Out entry / Loan.L1: Request Link to Subscriber exit / UpdateDateAndTimeIn() 1. Shelved entry / Update Date & time Shelved 3. Checked In entry / Loan.L2: Archive Loan 1. Current Event L1: Request Link to Subscriber «create» Action executes the Action for that transition: UpdateAverageDurationOfLoansAllBooks() State 2: Archived, The Loan instance Transitions to State 2: Archived, and 2. Archived entry / Update Archive Status
68
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 68 Event L2: Loan is Archived / UpdateAverageDurationOfLoansAllBooks() Loan Then, as the Loan object enters State 2: Archived, Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.4. The Statechart Diagram Event B1: Subscriber Requests Loan / Update Date/Time Out Event B2: Subscriber Returns Book Event B3: Librarian Shelves Book Event B4: «create» Book is Purchased 2. Signed Out entry / Loan.L1: Request Link to Subscriber exit / UpdateDateAndTimeIn() 1. Shelved entry / Update Date & time Shelved 3. Checked In entry / Loan.L2: Archive Loan 1. Current Event L1: Request Link to Subscriber «create» Entry Action It executes the Entry Action Update Archive Status Update Archive Status 2. Archived entry / Update Archive Status
69
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 69 Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.4. The Statechart Diagram l The last two events in the cycle are unrelated: Event B1: Subscriber Requests Loan / Update Date/Time Out Event B2: Subscriber Returns Book Event B3: Librarian Shelves Book Event B4: «create» Book is Purchased 2. Signed Out entry / Loan.L1: Request Link to Subscriber exit / UpdateDateAndTimeIn() 1. Shelved entry / Update Date & time Shelved 3. Checked In entry / Loan.L2: Archive Loan l l Event B3 puts the Book back in State 1: Shelved.
70
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 70 Event B1: Subscriber Requests Loan / Update Date/Time Out Event B2: Subscriber Returns Book Event B3: Librarian Shelves Book Event B4: «create» Book is Purchased 2. Signed Out entry / Loan.L1: Request Link to Subscriber exit / UpdateDateAndTimeIn() 1. Shelved entry / Update Date & time Shelved 3. Checked In entry / Loan.L2: Archive Loan Event L2: Loan is Archived / UpdateAverageDurationOfLoansAllBooks() L3 Finally, Timer Event L3 happens Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.4. The Statechart Diagram 1. Current Event L1: Request Link to Subscriber «create» 2. Archived entry / Update Archive Status Event L3: After(90 days) / Delete Archived Loan After(90 Days) and and deletes all the archived Sign-Outs, after a suitable period.
71
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 71 l Note that in this example, Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.4. The Statechart Diagram Event B1: Subscriber Requests Loan / Update Date/Time Out Event B2: Subscriber Returns Book Event B3: Librarian Shelves Book Event B4: «create» Book is Purchased 2. Signed Out entry / Loan.L1: Request Link to Subscriber exit / UpdateDateAndTimeIn() 1. Shelved entry / Update Date & time Shelved 3. Checked In entry / Loan.L2: Archive Loan Event L2: Loan is Archived / UpdateAverageDurationOfLoansAllBooks() 1. Current Event L1: Request Link to Subscriber «create» 2. Archived entry / Update Archive Status Event L3: After(90 days) / Delete Archived Loan Lifetime, The Loan has a Lifetime, Lifecycle... And the Book has a repeating Lifecycle...
72
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 72 Chapter 10: Object States and the Statechart Diagram 10.1 Lifetimes and Lifecycles. 10.2. Events and States. 10.3. Transitions and Actions. 10.4. The Statechart Diagram. 10.6. The State Transition Table (STT). 10.5. Object Lifecycles on the Statechart Diagram.
73
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 73 10.5. Object Lifecycles on the Statechart Diagram. Chapter 10: Object States and the Statechart Diagram
74
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 74 class This pattern depends on the class of the object: All instances in a class have the same pattern. Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.5. Object Lifecycles on the Statechart Diagram. set pattern Many objects have a set pattern of stages or states they go through.
75
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 75 l Which can come from the outside world, l Or from another object within the system. Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.5. Object Lifecycles on the Statechart Diagram. l l An object moves from state to state Event, in response to an Event,
76
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 76 physicallylegally impossible. Some are physically or legally impossible. l Constraints in the users’ world will preclude many of these transitions. permissible ones Only the permissible ones are modeled. Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.5. Object Lifecycles on the Statechart Diagram. l l Not all transitions from one state to another are permitted.
77
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 77 An Object Lifecycle consists of the various states that an object may transition through, The set of permissible transitions, and the sequencing of those states and transitions. Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.5. Object Lifecycles on the Statechart Diagram. Definition:
78
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 78 for each state, event and transition, Actions Actions that are executed each time the object enters or leaves that state or executes the transition Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.5. Object Lifecycles on the Statechart Diagram. The Lifecycle also includesActions
79
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 79 Pick the classes you figure will have an “Interesting Lifecycle,” Also include those with a lifetime linked with the “interesting” ones. Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.5. Object Lifecycles on the Statechart Diagram But which classes need a Statechart Diagram?
80
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 80 operational life cycle A repeating operational life cycle (e.g., Library Book), complex life time A complex life time with branches and backtracks (e.g., Purchase Order), long lifetime A long lifetime with many states, Actionsoperations. Anything you judge may be a fruitful source of Actions and operations. Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.5. Object Lifecycles on the Statechart Diagram “Interesting” By “Interesting” I mean those with:
81
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 81 l Since all instances in a class have the same lifecycle, Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.5. Object Lifecycles on the Statechart Diagram same Statechart Diagram. It follows that they all have the same Statechart Diagram. executing its Statechart Diagram, However, for executing its Statechart Diagram, separate instance own pace, Each separate instance proceeds at its own pace, l l As events arrive to step it through its lifecycle. We have a name for this...
82
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 82 A State Machine is the set of actual historical events actual historical events that took place during the execution of a Statechart Diagram by a particular specified by a particular specified object instance. Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.5. Object Lifecycles on the Statechart Diagram Definition:
83
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 83 It may also include the future events that will make up the rest of the path that this instance will take through the Statechart Diagram. Definition: State Machine Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.5. Object Lifecycles on the Statechart Diagram
84
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 84 This is different from the Statechart Diagram itself which may be viewed as abstraction an abstraction State Machines of the State Machines of all the instances. Definition: State Machine Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.5. Object Lifecycles on the Statechart Diagram
85
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 85 That you must use on every Statechart Diagram... Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.5. Object Lifecycles on the Statechart Diagram And now a Completeness Check
86
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 86 Chapter 10: Object States and the Statechart Diagram 10.1 Lifetimes and Lifecycles. 10.2. Events and States. 10.3. Transitions and Actions. 10.4. The Statechart Diagram. 10.5. Object Lifecycles on the Statechart Diagram. 10.6. The State Transition Table (STT).
87
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 87 10.6. The State Transition Table (STT). Chapter 10: Object States and the Statechart Diagram
88
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 88 l l Let’s take another quick look at the Library Book Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.6. The State Transition Table (STT) Event B1: Subscriber Requests Loan / Update Date/Time Out Event B2: Subscriber Returns Book Event B3: Librarian Shelves Book Event B4: «create» Book is Purchased 2. Signed Out entry / Loan.L1: Request Link to Subscriber exit / UpdateDateAndTimeIn() 1. Shelved entry / Update Date & time Shelved 3. Checked In entry / Loan.L2: Archive Loan
89
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 89 l l We need to check that every possible transition has been: destination state, Assigned a destination state, or impossible, Ruled as physically or legally impossible, or ignored. Designated as one that should be ignored. Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.6. The State Transition Table (STT) Event B1: Subscriber Requests Loan / Update Date/Time Out Event B2: Subscriber Returns Book Event B3: Librarian Shelves Book Event B4: «create» Book is Purchased 2. Signed Out entry / Loan.L1: Request Link to Subscriber exit / UpdateDateAndTimeIn() 1. Shelved entry / Update Date & time Shelved 3. Checked In entry / Loan.L2: Archive Loan
90
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 90 l l Here is a matrix tool that will help you do that, l It’s called a State Transition Table... Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.6. The State Transition Table (STT) Event B1: Subscriber Requests Loan / Update Date/Time Out Event B2: Subscriber Returns Book Event B3: Librarian Shelves Book Event B4: «create» Book is Purchased 2. Signed Out entry / Loan.L1: Request Link to Subscriber exit / UpdateDateAndTimeIn() 1. Shelved entry / Update Date & time Shelved 3. Checked In entry / Loan.L2: Archive Loan
91
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 91 State Transition Table Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.6. The State Transition Table (STT)States Events 1. Shelved 2. Signed Out 3. Checked In 0. Null B1: Subscriber Requests Loan Requests Loan B2: Subscriber Returns Book Returns Book B4: Book is Purchased is Purchased B3: Librarian Shelves Book Shelves Book 1 2 3 1 Impossible ImpossibleImpossible Impossible Impossible Impossible Ignore Impossible Impossible Impossible Impossible ?? l But what about the blank in the bottom leftmost box? Event B1: Subscriber Requests Loan / Update Date/Time Out Event B2: Subscriber Returns Book Event B3: Librarian Shelves Book Event B4: «create» Book is Purchased 2. Signed Out entry / Loan.L1: Request Link to Subscriber exit / UpdateDateAndTimeIn() 1. Shelved entry / Update Date & time Shelved 3. Checked In entry / Loan.L2: Archive Loan l l What happens if a loan is requested while the Book is in the Checked-In bin, waiting to go back on the shelf?
92
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 92 to refuse to lend a book when it is available from the Checked-In bin! highlighted a deficiency So our State Transition Table has highlighted a deficiency in the Statechart Diagram. Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.6. The State Transition Table (STT) l l It would not make sense, our users tell us, Event B1: Subscriber Requests Loan / Update Date/Time Out Event B2: Subscriber Returns Book Event B3: Librarian Shelves Book Event B4: «create» Book is Purchased 2. Signed Out entry / Loan.L1: Request Link to Subscriber exit / UpdateDateAndTimeIn() 1. Shelved entry / Update Date & time Shelved 3. Checked In entry / Loan.L2: Archive Loan
93
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 93 Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.6. The State Transition Table (STT) Event B1: Subscriber Requests Loan / Update Date/Time Out Event B2: Subscriber Returns Book Event B3: Librarian Shelves Book Event B4: «create» Book is Purchased 2. Signed Out entry / Loan.L1: Request Link to Subscriber exit / UpdateDateAndTimeIn() 1. Shelved entry / Update Date & time Shelved 3. Checked In entry / Loan.L2: Archive Loan l So we add an arrow from State 3 to State 2 Event B1: Loan Requested Triggered by an Event B1: Loan Requested Event B1: Subscriber Requests Loan / Update Date/Time Out Event B1: Subscriber Requests Loan / Update Date/Time Out Event B2: Subscriber Returns Book Event B3: Librarian Shelves Book Event B4: «create» Book is Purchased 2. Signed Out entry / Loan.L1: Request Link to Subscriber exit / UpdateDateAndTimeIn() 1. Shelved entry / Update Date & time Shelved 3. Checked In entry / Loan.L2: Archive Loan Event B1: Subscriber Requests Loan / Update Date/Time Out
94
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 94 State Transition Table Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.6. The State Transition Table (STT)States Events 1. Shelved 2. Signed Out 3. Checked In 0. Null B1: Subscriber Requests Loan Requests Loan B2: Subscriber Returns Book Returns Book B4: Book is Purchased is Purchased B3: Librarian Shelves Book Shelves Book 1 2 3 1 Impossible ImpossibleImpossible Impossible Impossible Impossible Ignore Impossible Impossible Impossible Impossible And we put a ‘2’ as And we put a ‘2’ as the destination state in the bottom left box. And we put a ‘2’ as And we put a ‘2’ as the destination state in the bottom left box. 2 Event B1: Subscriber Requests Loan Event B1: Subscriber Requests Loan / Update Date/Time Out Event B2: Subscriber Returns Book Event B3: Librarian Shelves Book Event B4: «create» Book is Purchased 2. Signed Out entry / Loan.L1: Request Link to Subscriber exit / UpdateDateAndTimeIn() 1. Shelved entry / Update Date & time Shelved 3. Checked In entry / Loan.L2: Archive Loan Event B1: Subscriber Requests Loan / Update Date/Time Out Event B2: Subscriber Returns Book Event B3: Librarian Shelves Book Event B4: «create» Book is Purchased 2. Signed Out entry / Loan.L1: Request Link to Subscriber exit / UpdateDateAndTimeIn() 1. Shelved entry / Update Date & time Shelved 3. Checked In entry / Loan.L2: Archive Loan Event B1: Subscriber Requests Loan / Update Date/Time Out
95
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 95 State Transition Table Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.6. The State Transition Table (STT)States Events 1. Shelved 2. Signed Out 3. Checked In 0. Null B1: Subscriber Requests Loan Requests Loan B2: Subscriber Returns Book Returns Book B4: Book is Purchased is Purchased B3: Librarian Shelves Book Shelves Book 1 2 3 1 Impossible ImpossibleImpossible Impossible Impossible Impossible Ignore Impossible Impossible Impossible Impossible And we put a ‘2’ as And we put a ‘2’ as the destination state in the bottom left box. And we put a ‘2’ as And we put a ‘2’ as the destination state in the bottom left box. 2 Event B1: Subscriber Requests Loan / Update Date/Time Out Event B2: Subscriber Returns Book Event B3: Librarian Shelves Book Event B4: «create» Book is Purchased 2. Signed Out entry / Loan.L1: Request Link to Subscriber exit / UpdateDateAndTimeIn() 1. Shelved entry / Update Date & time Shelved 3. Checked In entry / Loan.L2: Archive Loan Event B1: Subscriber Requests Loan / Update Date/Time Out
96
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 96 State Transition Table Chapter 10: Object States and the Statechart Diagram Chapter 10: Object States and the Statechart Diagram 10.6. The State Transition Table (STT)States Events 1. Shelved 2. Signed Out 3. Checked In 0. Null B1: Subscriber Requests Loan Requests Loan B2: Subscriber Returns Book Returns Book B4: Book is Purchased is Purchased B3: Librarian Shelves Book Shelves Book 1 2 3 1 Impossible ImpossibleImpossible Impossible Impossible Impossible Ignore Impossible Impossible Impossible Impossible 2 Event B1: Subscriber Requests Loan / Update Date/Time Out Event B2: Subscriber Returns Book Event B3: Librarian Shelves Book Event B4: «create» Book is Purchased 2. Signed Out entry / Loan.L1: Request Link to Subscriber exit / UpdateDateAndTimeIn() 1. Shelved entry / Update Date & time Shelved 3. Checked In entry / Loan.L2: Archive Loan Event B1: Subscriber Requests Loan / Update Date/Time Out
97
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 97 End of Chapter 10
98
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 98 End of Chapter 10
99
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 99 End of Chapter 10
100
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 100 End of Chapter 10
101
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 101
102
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 102
103
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 103
104
Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 104
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.