34
CMPSCI520/620 - JSP/JSD/UML/RUP ©Rick Adrion 2005 (except where noted) 1 UNIVERSITY NIVERSITY OF OF M MASSACHUSETTS ASSACHUSETTS AM HERST M HERST D DEPARTMENT EPARTMENT OF OF COMPUTER OMPUTER SCIENCE CIENCE CMP MP SCI CI 520/620 520/620 FA LL A LL 2005 2005 15 JSP/JSD/ & UML JSP/JSD Readings http://www.dsisoft.com/jackson_system_development.html http://cisx2.uma.maine.edu/NickTemp/JSP&JSDLec/jsd.html http://www.ferg.org/jsp_and_jsd/ UML Overview OMG Tutorial Series [cK00] Kobryn Cris, “Lecture 1: Introduction to UML: Structural and Use Case Modeling Object Modeling with OMG,” UML Tutorial Series http://www-edlab.cs.umass.edu/cs520/OMG-Tutorials/Tut1IntroToUML.ppt [OSBB00] Övergaard, Gunnar, Bran Selic, Conrad Bock and Morgan Björkander, “Lecture 2: Behavioral Modeling with UML,” Object Modeling with OMG UML Tutorial Series http://www-edlab.cs.umass.edu/cs520/OMG-Tutorials/Tut2Behav iorModeling.ppt [PSWD00] Palmkvist, Karin, Bran Selic, Jos Warmer and Nathan Dykman, “Lecture 3: Advanced Modeling with UML,” Object Modeling with OMG UML Tutorial Series http://www-edlab.cs.umass.edu/cs520/OMG-Tutorials/Tut3Adv Modeling.ppt Note: This version of the tutorial series is based on OMG UML Specification v. 1.4, UML Revision Task Force recommended final draft, OMG doc# ad/01-02-13. Other [BJR98] The Unified Modeling Language User Guide by Grady Booch, Ivar Jacobson, James Rumbaugh Addison-Wesley Pub Co; 1st edition (1998) [dB03] Bell, Donald, “UML basics: An introduction to the Unified Modeling Language,” The Rational Edge, June 2003 http://www-106.ibm.com/dev eloperworks/rational/library /769.html UNIVERSITY NIVERSITY OF OF M MASSACHUSETTS ASSACHUSETTS AM HERST M HERST D DEPARTMENT EPARTMENT OF OF COMPUTER OMPUTER SCIENCE CIENCE CMP MP SCI CI 520/620 520/620 FA LL A LL 2005 2005 UNIVERSITY NIVERSITY OF OF M MASSACHUSETTS ASSACHUSETTS AM HERST M HERST D DEPARTMENT EPARTMENT OF OF COMPUTER OMPUTER SCIENCE CIENCE CMP MP SCI CI 520/620 520/620 FA LL A LL 2005 2005 Announcements

15 JSP/JSD/ & UML - UMass Amherst - JSP/JSD/UML/RUP ©Rick Adrion 2005 (except where noted) 1 UN IV ER STYOOF M ACHU AMHERST• D EPAR TMN OOFCOMPUT ERS CIN •CMPSCI520/620FAL2200055

Embed Size (px)

Citation preview

Page 1: 15 JSP/JSD/ & UML - UMass Amherst - JSP/JSD/UML/RUP ©Rick Adrion 2005 (except where noted) 1 UN IV ER STYOOF M ACHU AMHERST• D EPAR TMN OOFCOMPUT ERS CIN •CMPSCI520/620FAL2200055

CMPSCI520/620 - JSP/JSD/UML/RUP

©Rick Adrion 2005 (except where noted) 1

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

15 JSP/JSD/ & UML JSP/JSD Readings

http://www.dsisoft.com/jackson_system_development.html http://cisx2.uma.maine.edu/NickTemp/JSP&JSDLec/jsd.html http://www.ferg.org/jsp_and_jsd/

UML Overview OMG Tutorial Series

[cK00] Kobryn Cris, “Lecture 1: Introduction to UML: Structural and Use Case Modeling ObjectModeling with OMG,” UML Tutorial Series

http://www-edlab.cs.umass.edu/cs520/OMG-Tutorials/Tut1IntroToUML.ppt

[OSBB00] Övergaard, Gunnar, Bran Selic, Conrad Bock and Morgan Björkander, “Lecture 2:Behavioral Modeling with UML,” Object Modeling with OMG UML Tutorial Series

http://www-edlab.cs.umass.edu/cs520/OMG-Tutorials/Tut2Behav iorModeling.ppt

[PSWD00] Palmkvist, Karin, Bran Selic, Jos Warmer and Nathan Dykman, “Lecture 3: AdvancedModeling with UML,” Object Modeling with OMG UML Tutorial Series

http://www-edlab.cs.umass.edu/cs520/OMG-Tutorials/Tut3Adv Modeling.ppt

Note: This version of the tutorial series is based on OMG UML Specification v. 1.4, UML RevisionTask Force recommended final draft, OMG doc# ad/01-02-13.

Other [BJR98] The Unified Modeling Language User Guide by Grady Booch, Ivar Jacobson, James

Rumbaugh Addison-Wesley Pub Co; 1st edition (1998) [dB03] Bell, Donald, “UML basics: An introduction to the Unified Modeling Language,” The

Rational Edge, June 2003 http://www-106.ibm.com/dev eloperworks/rational/library /769.html

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

Announcements

Page 2: 15 JSP/JSD/ & UML - UMass Amherst - JSP/JSD/UML/RUP ©Rick Adrion 2005 (except where noted) 1 UN IV ER STYOOF M ACHU AMHERST• D EPAR TMN OOFCOMPUT ERS CIN •CMPSCI520/620FAL2200055

CMPSCI520/620 - JSP/JSD/UML/RUP

©Rick Adrion 2005 (except where noted) 2

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

Design MethodsStepwise Refinement

ModularizationInformation hiding

Structured Methods (= Process Methods)

JSP/JSD (= Data Methods)BOOD, Objectory, etc. -> UML/RUP (= O-O Methods)

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

JSP & JSD

Jackson System DevelopmentEmphasis on high-level conceptual designDevelops collection of coordinated graphicaldepictions of systemStrong hints about how to carry them toimplementation decisionsStrong suggestions about how to go aboutdoing this

Jackson Structured ProgrammingJSD Based on/uses JSP, so let’s look at thatfirst

Page 3: 15 JSP/JSD/ & UML - UMass Amherst - JSP/JSD/UML/RUP ©Rick Adrion 2005 (except where noted) 1 UN IV ER STYOOF M ACHU AMHERST• D EPAR TMN OOFCOMPUT ERS CIN •CMPSCI520/620FAL2200055

CMPSCI520/620 - JSP/JSD/UML/RUP

©Rick Adrion 2005 (except where noted) 3

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

composite componentssequence -- a sequenceis a composite componentthat has two or more partsoccurring once each, inorder.

selection -- a compositecomponent that consists oftwo or more parts, onlyone of which is selected,once.

iteration a compositecomponent that consists ofone part that repeats zeroor more times

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

JSP multiplication table example The required output is: 1 2 4 3 6 9 4 8 12 16 ... ... ... ... 10 20 30 40 50 60 70 80 90 1001. Draw system diagram

Page 4: 15 JSP/JSD/ & UML - UMass Amherst - JSP/JSD/UML/RUP ©Rick Adrion 2005 (except where noted) 1 UN IV ER STYOOF M ACHU AMHERST• D EPAR TMN OOFCOMPUT ERS CIN •CMPSCI520/620FAL2200055

CMPSCI520/620 - JSP/JSD/UML/RUP

©Rick Adrion 2005 (except where noted) 4

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

JSP multiplication table example2. Draw data structures 3. Form program structure

based on the datastructures from theprevious step.

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

multiplication table example4. List and allocate operations

elementary operations needed toperform the task, and for eachoperation

"How often is it executed?" "In what program component(s)

does it belong?” The operations must be

elementary statements of someprogramming language; e.g.,Pascal.

5. Code program from structurediagram

Page 5: 15 JSP/JSD/ & UML - UMass Amherst - JSP/JSD/UML/RUP ©Rick Adrion 2005 (except where noted) 1 UN IV ER STYOOF M ACHU AMHERST• D EPAR TMN OOFCOMPUT ERS CIN •CMPSCI520/620FAL2200055

CMPSCI520/620 - JSP/JSD/UML/RUP

©Rick Adrion 2005 (except where noted) 5

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

Difficulties in applying JSP If the file structures do not correspond appropriately it is impossible to

design a correct program structure: this difficulty is called a structure clash interleaving clash

data groups that occur sequentially in one structure correspond functionally togroups that are interleaved in another structure

e.g., the input file of a program may consist of chronologically ordered records ofcalls made at a telephone exchange; the program must produce a printed outputreport of the same calls arranged chronologically within subscriber. The ‘subscribergroups’ that occur successively in the printed report are interleaved in the input file

ordering clash corresponding data item instances are differently ordered in two structures e.g., an input file contains the elements of a matrix in row order, and the required

output file contains the same elements in column order. boundary clash,

two structures have corresponding elements occurring in the same order, but theelements are differently grouped in the two structures; the boundaries of the twogroupings are not synchronized.

If an input file can not be parsed by single look ahead it is impossible towrite all the necessary conditions on the program’s iterations andselections: this is a recognition difficulty

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

Boundary clashes

Page 6: 15 JSP/JSD/ & UML - UMass Amherst - JSP/JSD/UML/RUP ©Rick Adrion 2005 (except where noted) 1 UN IV ER STYOOF M ACHU AMHERST• D EPAR TMN OOFCOMPUT ERS CIN •CMPSCI520/620FAL2200055

CMPSCI520/620 - JSP/JSD/UML/RUP

©Rick Adrion 2005 (except where noted) 6

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

Report generation example2. Draw data structures

Structuresdon’t match“boundary”

clash

Part_no Name Number In/Out Time02-131 widget 5 out 0815

07-288 gizmo 5 out 0935 02-131 widget 15 in 1005

….07-288 gizmo 5 out 1055

Part_no 02-131 Name widget

Number In/Out Time5 out 0815

15 in 1005 ….

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

decomposing the program P into two programs,PA and PB as shown below:

Resolution of the structure clash

Program PA consumes the input file of blocks ofrecords and produces an unblocked file oftransactions. Program PB consumes the groupsof unblocked transaction records and producesthe required report.

Page 7: 15 JSP/JSD/ & UML - UMass Amherst - JSP/JSD/UML/RUP ©Rick Adrion 2005 (except where noted) 1 UN IV ER STYOOF M ACHU AMHERST• D EPAR TMN OOFCOMPUT ERS CIN •CMPSCI520/620FAL2200055

CMPSCI520/620 - JSP/JSD/UML/RUP

©Rick Adrion 2005 (except where noted) 7

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

Resolution of the structure clashdecomposing the program P into two programs,PA and PB as shown below:

program inversion

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

Significance of Inversionmany situations appearing in their dynamic, piecemeal

executable form can be recast in their underlying serial form asa simple programany resumable program--one that is alternately activated andsuspended--is an example of inversion

what is the underlying seriality of its input and output?can recast the problem in serial form, and design a simpleprogram using JSPcan optimize the design using inversioninversion preserves program correctness--it is an algorithmictransformation--we can be confident about the design of theinverted (resumable) program

inversion allows us to extend the range of JSP to manysituations that at first glance do not appear to be amenable to it

Page 8: 15 JSP/JSD/ & UML - UMass Amherst - JSP/JSD/UML/RUP ©Rick Adrion 2005 (except where noted) 1 UN IV ER STYOOF M ACHU AMHERST• D EPAR TMN OOFCOMPUT ERS CIN •CMPSCI520/620FAL2200055

CMPSCI520/620 - JSP/JSD/UML/RUP

©Rick Adrion 2005 (except where noted) 8

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

Uses of program inversionInteractive conversational programs

Interrupt handlerImplementation of pipes & filters and hierarchicalnetworks

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

Recognition DifficultiesA recognition difficulty is present when an input file cannot be unambiguously parsed by single look-aheadsometimes the difficulty can be overcome by lookingahead two or more recordssometimes a more powerful technique is necessary

Page 9: 15 JSP/JSD/ & UML - UMass Amherst - JSP/JSD/UML/RUP ©Rick Adrion 2005 (except where noted) 1 UN IV ER STYOOF M ACHU AMHERST• D EPAR TMN OOFCOMPUT ERS CIN •CMPSCI520/620FAL2200055

CMPSCI520/620 - JSP/JSD/UML/RUP

©Rick Adrion 2005 (except where noted) 9

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

Sketch

Group

AGroup BGroup0 0

Group

AGroup BGroup?P

AGroup BGroup0!else Q

?A

0!else Q

Assume (posit) Agroup Admit Bgroup

read AGroup unlessdiscover BGroup record-> Quit (throw exception)

read BGroup unlessdiscover AGroup record-> Quit (throw exception)

The component attempt to readAgroup records positsassume you can read Agroup recordsand admits that you (cannot & should)instead read Bgroup records

The attempt to read Agroup records isa call of the subprogram read Agrouprecords which may cause an implicitquit when, in reading, it is discoveredthe record is a BGroup record an implicit quit is an exception thrown

within a subprogram and not handledand so is propagated from thesubprogram to its calling environment

a posit/ admit design must contain asingle posit and at least one admitconnected at the same level

it can contain any number of, implicitor explicit, quits within the admitcomponent at any level

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

Jackson System Design - Phasesthe modeling phase

Entity/action stepEntity structure stepModel process step

the network phaseconnect model processes and functions in a singlesystem specification diagram (SSD)

implementation phaseexamine the timing constraints of the systemconsider possible hardware and software forimplementing our systemdesign a system implementation diagram (SID)

Page 10: 15 JSP/JSD/ & UML - UMass Amherst - JSP/JSD/UML/RUP ©Rick Adrion 2005 (except where noted) 1 UN IV ER STYOOF M ACHU AMHERST• D EPAR TMN OOFCOMPUT ERS CIN •CMPSCI520/620FAL2200055

CMPSCI520/620 - JSP/JSD/UML/RUP

©Rick Adrion 2005 (except where noted) 10

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

Student Loan ExampleFunctional requirements:

before getting a loan, there is an evaluation process after whichagreement is always reached a TE transaction records each step of the evaluation process a TA transaction records the overall loan agreement

a student can take any number of loans, but only one can be activeat any time each loan is initiated by a TI transaction

the student repays the loan with a series of repayment each repayment transaction is recorded by a TR transaction

a loan is terminated by a TT transaction two output functions are desired:

an inquiry function that prints out the loan balance for any student, a repayment acknowledgment sent to each student after payment is

received by the universityNon Functional requirements

to be implemented on a single processor inquiries should be processed as soon as they are receivedrepayment acknowledgments need only be processed at the end ofeach day.

Note: generates a stream of data over a long-period of time

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

Step 1: Entity/action stepActions have the following characteristics:an action takes place at a point in timean action must take place in the real world outside ofthe system.an action is atomic, cannot be divided into subactions.

Entities have the following characteristics:an entity performs or suffers actions in time.an entity must exist in the real world, and not be aconstruct of a system that models the real worldan entity must be capable of being regarded as anindividual; and, if there are many entities of the sametype, of being uniquely named.

Page 11: 15 JSP/JSD/ & UML - UMass Amherst - JSP/JSD/UML/RUP ©Rick Adrion 2005 (except where noted) 1 UN IV ER STYOOF M ACHU AMHERST• D EPAR TMN OOFCOMPUT ERS CIN •CMPSCI520/620FAL2200055

CMPSCI520/620 - JSP/JSD/UML/RUP

©Rick Adrion 2005 (except where noted) 11

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

Candidates Entities/Description:

student system university loan student-loan

Actions/Attributes: evaluate - action of university? (university performs the evaluation); action of student? (student

is evaluated) attributes: student-id, loan-no, date of evaluation, remarks

agree - action of university? (university agrees to loan); action of student ? (agrees to loan) attributes: student-id, loan-no, date of agreement, amount of loan, interest rate, repayment period)

make loan - action of university attributes: student-id, loan-no, date of loan, loan amount, interest rate, repayment period

initiate - action of university? (university initiates loan); action of student? (student initiatesloan); action of loan? (is initiated) attributes: student-id, date initiated

repay - action of loan? (loan is repaid); action of student? (student repays the loan); attributes: student-id, date of repayment, amount of repayment

terminate - action of loan (loan is terminated); attributes: student-id, date of termination, remarks

Entities have the following characteristics:an entity performs or suffers actions in time.an entity must exist in the real world,an entity must be capable of being regarded as an individual; and, if there aremany entities of the same type, of being uniquely named.

Actions have the following characteristics:an action takes place at a point in timean action must take place in the real world outside of the system.an action is atomic, cannot be divided into subactions.

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

Step 2: Entity structure step

(1) evaluation part- zero or more evaluate actions

(2) student agrees to loan(3) loan(s) is (are) made

- zero or more loans.- loan is a sequence of initiateaction, iteration of repay actions, aterminate action

Page 12: 15 JSP/JSD/ & UML - UMass Amherst - JSP/JSD/UML/RUP ©Rick Adrion 2005 (except where noted) 1 UN IV ER STYOOF M ACHU AMHERST• D EPAR TMN OOFCOMPUT ERS CIN •CMPSCI520/620FAL2200055

CMPSCI520/620 - JSP/JSD/UML/RUP

©Rick Adrion 2005 (except where noted) 12

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

Step 3: Model process step

abstract student entity in the real world

realization in theInformation system

Use JSP to create aprogram for the process

entity structure diagram describes the structure of

the serial data stream

•a TE transaction recordseach step of the evaluationprocess•a TA transaction records theoverall loan agreement•each loan is initiated by a TItransaction•each repayment transactionis recorded by a TRtransaction•a loan is terminated by a TTtransaction

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

Error handling a real-time system (but slow-running)

system information is collected as it arrives

from the real-world entity model process is synchronized

with the actions of the real world entity the state vector of a model process's

“program” has a “counter” … and if it“points” to repay component of astudent's process, then an 'E'(evaluate), 'A' (agree) or 'I' (initiate)transaction must be recognized as anerror

counter

state vector (SV) connection -- one process can examine the SV of a 2nd process -- the double lines indicate that an inquiry process, over its life, will examine many student processes

Page 13: 15 JSP/JSD/ & UML - UMass Amherst - JSP/JSD/UML/RUP ©Rick Adrion 2005 (except where noted) 1 UN IV ER STYOOF M ACHU AMHERST• D EPAR TMN OOFCOMPUT ERS CIN •CMPSCI520/620FAL2200055

CMPSCI520/620 - JSP/JSD/UML/RUP

©Rick Adrion 2005 (except where noted) 13

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

Network Phase -- the SSD loan balance inquiry function (LBE) is connected to the Student-1

process by state vector (SV) connectionThe function to produce the student acknowledgments data stream

(ACK) is embedded in the student-1 process in the repays component

DT is an input signal at the end of the day--a daily time marker--thattells the payment acknowledgment lister (PAL) function to begin

The ACK and DT data streams are rough-merged, that is, we don'tknow precisely whether a repayment acknowledgment will appear ontoday's or tomorrow's daily list.

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

Designing the LBE function w/ JSP

Page 14: 15 JSP/JSD/ & UML - UMass Amherst - JSP/JSD/UML/RUP ©Rick Adrion 2005 (except where noted) 1 UN IV ER STYOOF M ACHU AMHERST• D EPAR TMN OOFCOMPUT ERS CIN •CMPSCI520/620FAL2200055

CMPSCI520/620 - JSP/JSD/UML/RUP

©Rick Adrion 2005 (except where noted) 14

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

Implementation PhaseUse of inferences encouraged by understandingsgleaned from the network phase

Network Phase suggests ideal traversal paths throughmodel processes and their local datasuggests internal implementation of model processesstudying use of model processes suggests internalstructure of their data

Communication by data streams and state vectorinspection often suggest real implementationsBut often not

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

The SIDall of the serial data streams are input to the scheduler process

all student processes have an identical structure; only their SV are different--separate the state vectors ofstudent processes from their process text (state vector separation). --set of SV is the data base of our student loan system

student-1 process is invertedwith respect to its data stream, S. and is called by the scheduler to process a transaction, and then suspended

PAL is inverted with respect to both of its inputs, the repayment acknowledgment data stream and the daily marker. PAL is invoked by Student-1 whenever Student-1 processes a repayment transaction. The scheduler invokes PAL directly when it receives a DT and this triggers the daily listing

Page 15: 15 JSP/JSD/ & UML - UMass Amherst - JSP/JSD/UML/RUP ©Rick Adrion 2005 (except where noted) 1 UN IV ER STYOOF M ACHU AMHERST• D EPAR TMN OOFCOMPUT ERS CIN •CMPSCI520/620FAL2200055

CMPSCI520/620 - JSP/JSD/UML/RUP

©Rick Adrion 2005 (except where noted) 15

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

Design of the scheduler in JSP records from the serial data stream

(loan balance inquiries and studentloan transactions) are read andprocessed in real-time

at the end of the day, a daily timemarker--perhaps a signal to thesystem from the operator--is input

PAL is invoked & processespayment acknowledgments thathave been previously generated inreal-time whenever a studentrepayment is made and stored in abuffer

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

JSD and JSP In JSD, the principles of JSP are extended into the areas of

systems analysis, specification, design and implementation In JSP, a simple program describes a sequential process that

communicates by means of sequential data streams; its structure isdetermined by the structure of its input and output data stream

In JSD, the real world is modeled as a set of sequential modelprocesses that communicate with the real world and with eachother by sequential data streams (as well as by a second read-onlycommunication called state vector connection). The structure of amodel process is determined by the structure of its inputs andoutputs.

The JSD implementation step embodies the JSP implementationtechnique, program inversion, in which a program is transformedinto a procedure

Other JSP techniques, such as the single read-ahead rule andbacktracking, and principles, such as implementation throughtransformation, are used in JSD

Page 16: 15 JSP/JSD/ & UML - UMass Amherst - JSP/JSD/UML/RUP ©Rick Adrion 2005 (except where noted) 1 UN IV ER STYOOF M ACHU AMHERST• D EPAR TMN OOFCOMPUT ERS CIN •CMPSCI520/620FAL2200055

CMPSCI520/620 - JSP/JSD/UML/RUP

©Rick Adrion 2005 (except where noted) 16

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

Comments/EvaluationFocus on conceptual design

But difficult to build a system this wayBased upon model of real worldCareful (and experienced) analysis of the modelgenerally points suggested implementation tactics,thoughParnas notions of module not perceptible hereNot an iterative refinement approach either

Treatment of data is very much subordinated/secondaryDoes a good job of suggesting possible parallelismContrasts strongly with Objected Oriented notions (eg.Booch, UML)

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

O-O System Developmentproblem

statement

Requirementselicitation

Requirementsanalysis

System design

system designobject modeldesign goals subsystem

decomposition

functionalmodel

nonfunctionalrequirements

use casediagram

analysisobject model

classdiagram

dynamicmodel

statechartdiagram

sequencediagram

adapted from Bruegge/Dutoit O-O SW Engr

Page 17: 15 JSP/JSD/ & UML - UMass Amherst - JSP/JSD/UML/RUP ©Rick Adrion 2005 (except where noted) 1 UN IV ER STYOOF M ACHU AMHERST• D EPAR TMN OOFCOMPUT ERS CIN •CMPSCI520/620FAL2200055

CMPSCI520/620 - JSP/JSD/UML/RUP

©Rick Adrion 2005 (except where noted) 17

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

Use Case Diagram

buy tickets

survey sales

make charges

buysubscription

Box Office

Clerk

Kiosk Credit card service

Supervisor

<<include>><<include>>

structural use case use case

©The Unified Modeling Language User Guide by Grady Booch, Ivar Jacobson, James Rumbaugh Addison-Wesley Pub Co; 1st edition(1998)

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

O-O System Developmentproblem

statement

Requirementselicitation

Requirementsanalysis

System design

system designobject modeldesign goals subsystem

decomposition

functionalmodel

nonfunctionalrequirements

use casediagram

analysisobject model

classdiagram

dynamicmodel

statechartdiagram

sequencediagram

adapted from Bruegge/Dutoit O-O SW Engr

Page 18: 15 JSP/JSD/ & UML - UMass Amherst - JSP/JSD/UML/RUP ©Rick Adrion 2005 (except where noted) 1 UN IV ER STYOOF M ACHU AMHERST• D EPAR TMN OOFCOMPUT ERS CIN •CMPSCI520/620FAL2200055

CMPSCI520/620 - JSP/JSD/UML/RUP

©Rick Adrion 2005 (except where noted) 18

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

Copyright © 1997 by Rational Software Corporation

ClassesA class is a collection of objects with common structure,

common behavior, common relationships and commonsemantics

Classes may be found by examining:written requirementsobjects in sequence and collaboration diagrams

A class is drawn as a rectangle with three compartmentsnameattributesoperations

Classes should be named using the vocabulary of the domainNaming standards should be createde.g., all classes are singular nouns starting with a capital letter

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

Class Modeling Captures system state – the function of the system's

information content at a point in time Class modeling and use case modeling are typically

conducted in parallel A class diagram shows the existence of classes and

their relationships in the logical view of a system; inUML class diagrams elements include Classes and their structure and behavior Association, aggregation, generalization,

dependency, and inheritance relationships Multiplicity and navigation indicators Role names

Page 19: 15 JSP/JSD/ & UML - UMass Amherst - JSP/JSD/UML/RUP ©Rick Adrion 2005 (except where noted) 1 UN IV ER STYOOF M ACHU AMHERST• D EPAR TMN OOFCOMPUT ERS CIN •CMPSCI520/620FAL2200055

CMPSCI520/620 - JSP/JSD/UML/RUP

©Rick Adrion 2005 (except where noted) 19

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

Design a program for a booking office of an arts center.There are several theatres, people may reserve seatsat any theatre for any future event, and people maysubscribe to a series of events. People need to be ableto discuss seat availability, where seats are located,and how much they cost. When people make a choice,the program should print the price, record the selection,and print out a ticket

Find Classes from requirements

Fuzzy

Customer

Reservation

SubscriptionSeries

Ticket

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

AttributesThe structure of a class is represented by its attributesAttributes may be found by examining class definitions,the problem requirements, and by applying domainknowledge

More requirementsEach customer offering has a name and phone numberEach show has a nameEach performance has a date and timeTicket has availability

Customer name: Stringphone: String

Show

name: String

Performance date: Datetime: TimeOfDay

Ticket available: Boolean

Page 20: 15 JSP/JSD/ & UML - UMass Amherst - JSP/JSD/UML/RUP ©Rick Adrion 2005 (except where noted) 1 UN IV ER STYOOF M ACHU AMHERST• D EPAR TMN OOFCOMPUT ERS CIN •CMPSCI520/620FAL2200055

CMPSCI520/620 - JSP/JSD/UML/RUP

©Rick Adrion 2005 (except where noted) 20

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

OperationsThe behavior of a class is represented by its operationsOperations may be found by examining interactiondiagrams

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

Copyright © 1997 by Rational Software Corporation

RelationshipsRelationships provide a pathway for communicationbetween objects

Sequence and/or collaboration diagrams are examinedto determine what links between objects need to existto accomplish the behavior -- if two objects need to“talk” there must be a link between them

Three types of relationships are:AssociationAggregationDependency

Page 21: 15 JSP/JSD/ & UML - UMass Amherst - JSP/JSD/UML/RUP ©Rick Adrion 2005 (except where noted) 1 UN IV ER STYOOF M ACHU AMHERST• D EPAR TMN OOFCOMPUT ERS CIN •CMPSCI520/620FAL2200055

CMPSCI520/620 - JSP/JSD/UML/RUP

©Rick Adrion 2005 (except where noted) 21

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

Relationships

An association is a bi-directional connection betweenclassesAn association is shown as a line connecting the relatedclasses

An aggregation is a stronger form of relationship wherethe relationship is between a whole and its parts

An aggregation is shown as a line connecting the relatedclasses with a diamond next to the class representing thewhole

Customer name: Stringphone: Stringadd (name, phone)

Reservation date: Date

1 *

CourseOfferinglocationopen()addStudent(StudentInfo

CoursenamenumberCreditsopen()addStudent(StudentInfo

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

Finding RelationshipsRelationships are discovered by examining interactiondiagramsIf two objects must “talk” there must be a pathway forcommunication

Customer

Reservation

Performance

Page 22: 15 JSP/JSD/ & UML - UMass Amherst - JSP/JSD/UML/RUP ©Rick Adrion 2005 (except where noted) 1 UN IV ER STYOOF M ACHU AMHERST• D EPAR TMN OOFCOMPUT ERS CIN •CMPSCI520/620FAL2200055

CMPSCI520/620 - JSP/JSD/UML/RUP

©Rick Adrion 2005 (except where noted) 22

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

Copyright © 1997 by Rational Software Corporation

Multiplicity and NavigationMultiplicity defines how many objects participate in arelationshipsMultiplicity is the number of instances of one classrelated to ONE instance of the other classFor each association and aggregation, there are twomultiplicity decisions to make: one for each end of therelationship

Although associations and aggregations are bi-directional by default, it is often desirable to restrictnavigation to one direction

If navigation is restricted, an arrowhead is added toindicate the direction of the navigation

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

Copyright © 1997 by Rational Software Corporation

InheritanceInheritance is a relationships between a superclass andits subclasses

There are two ways to find inheritance:GeneralizationSpecialization

Common attributes, operations, and/or relationshipsare shown at the highest applicable level in thehierarchy

Page 23: 15 JSP/JSD/ & UML - UMass Amherst - JSP/JSD/UML/RUP ©Rick Adrion 2005 (except where noted) 1 UN IV ER STYOOF M ACHU AMHERST• D EPAR TMN OOFCOMPUT ERS CIN •CMPSCI520/620FAL2200055

CMPSCI520/620 - JSP/JSD/UML/RUP

©Rick Adrion 2005 (except where noted) 23

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

Class Diagram

Ticket

sell (c: Customer)exchange ( )

available: Boolean

Customer name: Stringphone: Stringadd (name, phone)

Show Reservation

date: Date

SubscriptionSeries series: Integer

IndividualReservation

name: String

Performance date: Datetime: TimeOfDay

seat: String

1

*

0..10..1

3..6 1

0..1 1

1

1..*

ownerpurchased

show

performancesXor

attributes

static operations

rolenames

generalization

multiplicities

constraint

qualifiers

associationsclassdependencygeneralizationinterfacerealization

structural static class

©The Unified Modeling Language User Guide by Grady Booch, Ivar Jacobson, James Rumbaugh Addison-Wesley Pub Co; 1st edition(1998)

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

Class & associations -- notation

©The Unified Modeling Language User Guide by Grady Booch, Ivar Jacobson, James Rumbaugh Addison-Wesley Pub Co; 1st edition(1998)

Page 24: 15 JSP/JSD/ & UML - UMass Amherst - JSP/JSD/UML/RUP ©Rick Adrion 2005 (except where noted) 1 UN IV ER STYOOF M ACHU AMHERST• D EPAR TMN OOFCOMPUT ERS CIN •CMPSCI520/620FAL2200055

CMPSCI520/620 - JSP/JSD/UML/RUP

©Rick Adrion 2005 (except where noted) 24

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

O-O System Developmentproblem

statement

Requirementselicitation

Requirementsanalysis

System design

system designobject modeldesign goals subsystem

decomposition

functionalmodel

nonfunctionalrequirements

use casediagram

analysisobject model

classdiagram

dynamicmodel

statechartdiagram

sequencediagram

adapted from Bruegge/Dutoit O-O SW Engr

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

State Machine View

Page 25: 15 JSP/JSD/ & UML - UMass Amherst - JSP/JSD/UML/RUP ©Rick Adrion 2005 (except where noted) 1 UN IV ER STYOOF M ACHU AMHERST• D EPAR TMN OOFCOMPUT ERS CIN •CMPSCI520/620FAL2200055

CMPSCI520/620 - JSP/JSD/UML/RUP

©Rick Adrion 2005 (except where noted) 25

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

State Machine Notation

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

Scott W. Ambler , Copyright 2003 www.agilemodeling.com/

UML 2 Activity Diagramsobject-oriented equivalent of flow charts and data flowdiagrams (DFDs) from structured development

typically used forbusiness process modelingmodeling the logic captured by a single use case orusage scenariomodeling the detailed logic of a business rule

could potentially modelthe internal logic of a complex operationfar better to simply rewrite the operation so that it issimple enough that you don’t require an activity diagram

Page 26: 15 JSP/JSD/ & UML - UMass Amherst - JSP/JSD/UML/RUP ©Rick Adrion 2005 (except where noted) 1 UN IV ER STYOOF M ACHU AMHERST• D EPAR TMN OOFCOMPUT ERS CIN •CMPSCI520/620FAL2200055

CMPSCI520/620 - JSP/JSD/UML/RUP

©Rick Adrion 2005 (except where noted) 26

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

Activity Diagram

©The Unified Modeling Language User Guide by Grady Booch, Ivar Jacobson,James Rumbaugh Addison-Wesley Pub Co; 1st edition (1998)

dynamic

state machine

activity

interaction

state machine

activity

sequence

collaboration

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

O-O System DevelopmentRequirements

analysis

System design

system designobject modeldesign goals subsystem

decomposition

analysisobject model

classdiagram

dynamicmodel

statechartdiagram

sequencediagram

adapted from Bruegge/Dutoit O-O SW Engr

Implementation

Object design

object designmodel

classdiagram

Design Views

Page 27: 15 JSP/JSD/ & UML - UMass Amherst - JSP/JSD/UML/RUP ©Rick Adrion 2005 (except where noted) 1 UN IV ER STYOOF M ACHU AMHERST• D EPAR TMN OOFCOMPUT ERS CIN •CMPSCI520/620FAL2200055

CMPSCI520/620 - JSP/JSD/UML/RUP

©Rick Adrion 2005 (except where noted) 27

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

Internal Structure Diagram

Interface = port

BoxOffice

sellTicketsseller: TicketSeller

guide:PerformanceGuide

Db:PerformanceDB[*]

1

*

structural design internal structure

©The Unified Modeling Language User Guide by Grady Booch, Ivar Jacobson, James Rumbaugh Addison-Wesley Pub Co; 1st edition(1998)

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

Collaboration Diagram

kiosk: Kiosk[*] 1* : BoxOffice terminal: SalesTerminal[*]1 *

TheatreSales

dynamic interaction collaboration ©The Unified Modeling Language User Guide by Grady Booch, Ivar Jacobson, James Rumbaugh Addison-Wesley Pub Co; 1st edition(1998)

Page 28: 15 JSP/JSD/ & UML - UMass Amherst - JSP/JSD/UML/RUP ©Rick Adrion 2005 (except where noted) 1 UN IV ER STYOOF M ACHU AMHERST• D EPAR TMN OOFCOMPUT ERS CIN •CMPSCI520/620FAL2200055

CMPSCI520/620 - JSP/JSD/UML/RUP

©Rick Adrion 2005 (except where noted) 28

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

Component Definition & Diagram

©The Unified Modeling Language User Guide by Grady Booch, Ivar Jacobson, James Rumbaugh Addison-Wesley Pub Co; 1st edition(1998)

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

Deployment views

descriptor instance

Page 29: 15 JSP/JSD/ & UML - UMass Amherst - JSP/JSD/UML/RUP ©Rick Adrion 2005 (except where noted) 1 UN IV ER STYOOF M ACHU AMHERST• D EPAR TMN OOFCOMPUT ERS CIN •CMPSCI520/620FAL2200055

CMPSCI520/620 - JSP/JSD/UML/RUP

©Rick Adrion 2005 (except where noted) 29

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

The RUP presentation is adapted from OOAD Using the UMLCopyright 1994-1998 Rational Software, all rights reserved

Rational Unified ProcessThe Unified Modeling Language (UML) is a languagefor specifying, visualizing, constructing, anddocumenting the artifacts of a software-intensive system

A software development process defines Who is doingWhat, When and How in building a software product

The Rational Unified Process has four phases:Inception, Elaboration, Construction and Transition

Each phase ends at a major milestone and containsone or more iterations

An iteration is a distinct sequence of activities with anestablished plan and evaluation criteria, resulting in anexecutable release

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

In RUP: Major Workflows Produce Models

verified by

TestModel

Test

ImplementationModel

Implementation

implemented by

realized by

Analysis &Design

DesignModel

BusinessModeling

Business Model

Requirements

Use-CaseModel

supported by

Page 30: 15 JSP/JSD/ & UML - UMass Amherst - JSP/JSD/UML/RUP ©Rick Adrion 2005 (except where noted) 1 UN IV ER STYOOF M ACHU AMHERST• D EPAR TMN OOFCOMPUT ERS CIN •CMPSCI520/620FAL2200055

CMPSCI520/620 - JSP/JSD/UML/RUP

©Rick Adrion 2005 (except where noted) 30

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

The RUP Iterative Model

ManagementEnvironment

Business Modeling

ImplementationTest

Analysis & Design

Preliminary Iteration(s)

Iter.#1

PhasesProcess Workflows

Iterations

Supporting Workflows

Iter.#2

Iter.#n

Iter.#n+1

Iter.#n+2

Iter.#m

Iter.#m+1

Deployment

Configuration Mgmt

Requirements

Elaboration TransitionInception Construction

Workflowsgroupactivitieslogically

In aniteration, youwalk throughall workflows

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

Requirements Workflow

Use-Case Specifier

RequirementsReviewer

User-InterfaceDesigner

Capture a Common

Vocabulary

Find Actors and Use Cases

ReviewRequirements

Structure the Use-Case Model

User-InterfacePrototyping

Detail a Use Case

Elicit Stakeholder Needs

Manage Dependencies

Architect

Prioritize Use Cases

DevelopVision

User-InterfaceModeling

Page 31: 15 JSP/JSD/ & UML - UMass Amherst - JSP/JSD/UML/RUP ©Rick Adrion 2005 (except where noted) 1 UN IV ER STYOOF M ACHU AMHERST• D EPAR TMN OOFCOMPUT ERS CIN •CMPSCI520/620FAL2200055

CMPSCI520/620 - JSP/JSD/UML/RUP

©Rick Adrion 2005 (except where noted) 31

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

Analysis & Design Workflow

Architect

Designer

ArchitecturalAnalysis

ArchitectureReviewer

Review theDesign

Review theArchitecture

Use-CaseAnalysis

ArchitecturalDesign

DescribeConcurrency

DescribeDistribution

DatabaseDesigner

ClassDesign

SubsystemDesign

Use-Case Design

DatabaseDesign

DesignReviewer

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

Implementation Workflow

IntegrateSystem

Architect

System Integrator

Implementer

Code Reviewer

Implement Classes

Perform Unit Test

Structure theImplementation Model

IntegrateSubsystem

Review Code

Fix a Defect

Plan System Integration

Plan Subsystem Integration

Page 32: 15 JSP/JSD/ & UML - UMass Amherst - JSP/JSD/UML/RUP ©Rick Adrion 2005 (except where noted) 1 UN IV ER STYOOF M ACHU AMHERST• D EPAR TMN OOFCOMPUT ERS CIN •CMPSCI520/620FAL2200055

CMPSCI520/620 - JSP/JSD/UML/RUP

©Rick Adrion 2005 (except where noted) 32

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

Test Workflow

Design Test

ImplementTest

Test Designer

Integration Tester

System Tester

Evaluate Test

Execute IntegrationTest

Execute System Test

Designer

Design Test Classes and Packages

Implementer

Implement Test Components and Subsystems

PlanTest

PerformanceTester

Execute Performance Test

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

Project2

O-O System Development

adapted from Bruegge/Dutoit O-O SW Engr

problemstatement

Requirementselicitation

Requirementsanaly sis

Sy stem design

sy stem designobject modeldesign goals subsy stem

decomposition

f unctionalmodel

nonf unctionalrequirements

use casediagram

analy sisobject model

classdiagram

dy namicmodel

statechartdiagram

sequencediagram

Implementation

sourcecode Test

deliv erablesy stem

Object design

object designmodel

classdiagram

Project0

interviews Project1

Project3

Page 33: 15 JSP/JSD/ & UML - UMass Amherst - JSP/JSD/UML/RUP ©Rick Adrion 2005 (except where noted) 1 UN IV ER STYOOF M ACHU AMHERST• D EPAR TMN OOFCOMPUT ERS CIN •CMPSCI520/620FAL2200055

CMPSCI520/620 - JSP/JSD/UML/RUP

©Rick Adrion 2005 (except where noted) 33

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005Copyright 2002. Gary K. Evans. All Rights Reserved. www.evanetics.com

A Minimal Iterative ProcessGetting Started: (do this once)1. Capture the major functional and non-functional requirements for

the system. Express the functional requirements as use cases, scenarios, or

stories. Capture non-functional requirements in a standard paragraph-

style document.2. Identify the classes which are part of the domain being modeled.3. Define the responsibilities and relationships for each class in the

domain.4. Construct the domain class diagram.

This diagram and the responsibility definitions lay a foundation fora common vocabulary in the project.

5. Capture use case and class definitions in an OO CASE tool (e.g.,Rose) only when they have stablilized.

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

Copyright 2002. Gary K. Evans. All Rights Reserved. www.evanetics.com

A Minimal Iterative ProcessGetting Started: (do this once)6. Identify the major risk factors and prioritize the most

architecturally significant use cases and scenarios. It is absolutely imperative that the highest risk items and the most

architecturally significant functionality be addressed in the earlyiterations. You must not pick the “low hanging fruit” and leave therisks for later.

7. Partition the use cases/scenarios across the planned iterations.8. Develop an Iteration plan describing each “mini-project” to be

completed in each iteration. Describe the goals of each iteration, plus the staffing, the

schedule, the risks, inputs and deliverables. Keep the iterations focused and limited (2-3 weeks per iteration).

In each iteration, conduct all of the software activities in theprocess: requirements, analysis, design, implementation and test.

Page 34: 15 JSP/JSD/ & UML - UMass Amherst - JSP/JSD/UML/RUP ©Rick Adrion 2005 (except where noted) 1 UN IV ER STYOOF M ACHU AMHERST• D EPAR TMN OOFCOMPUT ERS CIN •CMPSCI520/620FAL2200055

CMPSCI520/620 - JSP/JSD/UML/RUP

©Rick Adrion 2005 (except where noted) 34

UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI CI 520/620520/620 FFALL ALL 20052005

A Minimal Iterative ProcessFor each iteration: (repeat until done)1. Merge the functional flow in the use cases/scenarios with the

classes in the domain class diagram Produce sequence (and collaboration) diagrams at the analysis level.

2. Test and challenge the sequence diagrams on paper, or whiteboard Discover additional operations and data to be assigned to classes Validate the business process captured in the flow of the sequence

diagram3. Develop statechart diagrams for classes with “significant” state

Statechart events, actions, and most activities will become operationson the corresponding class

4. Enhance sequence diagrams and statechart diagrams with designlevel content

Identify and add to the class diagram and sequence diagrams anyrequired support or design classes (e.g. collection classes, GUI andother technology classes, etc.)

5. Challenge the sequence diagrams on paper/whiteboard, discoveringadditional operations and data assigned to classes.

Copyright 2002. Gary K. Evans. All Rights Reserved. www.evanetics.com