Loading presentation...

Present Remotely

Send the link below via email or IM


Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.



No description

Mana Y

on 29 November 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of E-LIBRARY

State Diagram: Document
State Machines

Mana Yaghmai 6511937
Avinash M 6986889
Yong Yi Xian 6163378
Hong Ran Xu 9174001

Fall 2014
E-Library Management System
Use Case Diagram
Class Diagram
The constrains of system are defined using formal language (OCL)

The purpose is to make the class modeling more precise

More than 20 constrains are applied in the system

The constrains are added on the entities such as:

The constrains are input in the class diagram and state diagram in the form of guard
State Diagram
Action specification
UML Action Language (UAL), which conforms OMG ALF standard

Subset of Java syntax

Models remain as platform independent

UAL can be used as
Opaque Expression
e.g. default values, initialization
Opaque Behavior
e.g. Method implementation
Opaque Action
Tool Used: Comparison
Modeling Process
Questions ?
Team work & Collaboration
Problem Statement
Use Case Diagram
Class Diagram
State Diagram
Action Language
Team work & Collaboration
Agile Methodology

Scrum Meetings

Brain Storming

Parallel Working

Dealing with tools
Problem Statement & Features of the System
Product Scope
Key features

Additional features

Optional features
Key Features
Basic Navigation and Browsing content
Document Classification
Searching content
Borrowing service
Administration and Management
Additional Features
Downloading documents

Publication program

Request a document
Optional Features
Online Support

Globalization and Localization
Typical Constraints
The borrower can’t borrow a document twice simultaneously
context BorrowerRole
inv: self.R5->forAll(L1,L2: Loan | L1 <> L2 implies L1.DcomentID <> L2.DocumentID)

Only premium user can download documents
context Document::Download()
pre: self.R7->forAll(self.R5.AccountType = AccountType::Premium)

A category must be unique name inside of the catalog
context Catalog
inv: self.R10 –> forAll ( C1,C2: Category| C1<>C2 implies C1.Name<>C2.Name )

Borrower can only borrow document only if number of books that is borrowed is within the loan limit.
context BorrowerRole
inv: self.NumOfBorrow <= self.R17.LoanLimit

In the system, there are four classes, selected because of their stateful stages in life cycle:
Account, Document, Catalog, and Payment

These classes play major role in the system, which are the core of the class diagram

The state diagrams are connected directly to their relevant classes in the system

Applying UAL: Example

High learning curve of the modeling process

Difficult to reach high percentage of code generation
~70% code generated from the model, mostly from class and state diagrams
Cannot translate OCL to target language; only partial source code gets generated by UAL.

Specific .NET technologies can not map to UML notations
E.g. Custom attribute, Reflection, LINQ etc.
Require additional implementation

Great experience of model driven development

Encountered different problems and proactively look for solutions

Future improvements to work on

Collaboration leads to success

Any published document must contain a unique document id.
context Editor_Account
inv: self.R14->forAll(d1, d2: Document, d1 <> d2 implies d1.DocumentID <> d2.DocumentID)

The document can only be reviewed if it’s in pending state.
context Editor_Account::Review()
pre: self.R14.Status = Status::Pending

Premium borrower can use his privileges only if he has a valid membership.
context BorrowerRole
inv: if self.AccountType = AccountType::Premium
then self.R17.MembershipEndDate.after(today) endif

Administrator may deregister an registered editor.
context Admin_Account::Deregister_Editor(editor: Editor_Account) : Boolean
pre: self.R15->include(editor)
post: self.R15->exclude(editor)

Typical Constraints (Cont)
Full transcript