ELECTRON
ELECTRON is ELECtronic TRading ONline, a rendezvous for buying
agents and selling agents to meet and transact business and commerce.
Each batch (of two students) will be building ELECTRON in three
releases. Release 1 emphasizes use of OOAD to create a sound design
model for ELECTRON. Release 2 will focus on implementing ELECTRON with
focus on business model and market algorithms. Each batch will
implement a distinctive business model and associated algorithms.
Release 3 will "secure" ELECTRON and build an "epayment"
infrastructure. This programming assignment is intended to go hand in
hand with the lecture sessions.
First, do the following:
(1) Read Chapter 12 from the book by
Ericsson and Penker (The UMLToolkit). The chapter describes a case
study of a library support system (analysis and design using UML). This
is part of the reading material already provided to you.
(2) Read Chapter 8 from Rumbaugh's book, which discusses a systematic
process for object oriented modeling for an ATM case study.
(3) Read the following paper: Object oriented analysis and design of a
web-enabled auction house (by Y. Narahari, K.N. Rajanikanth, and Sourav
Sen). This is also part of the reading material.
(4) Read the paper on Kasbah (1996): An Agent Based Marketplace, by
Pattie Maes. Download from MIT Medialab website.
ELECTRON is a generalization of Kasbah. Traders (buyers/sellers) can
register with ELECTRON and participate in trading. Traders can choose
one of several business models that are offered by ELECTRON.
(1) A potential seller registers with ELECTRON and provides information
on the product(s) he would like to sell and chooses a business model.
This could be an auction (direct or reverse), combinatorial auction
(direct or reverse), continuous double auction, call market, etc. As
soon as the seller registers, ELECTRON will do a variety of things such
as matching him to potential buyers or matching (aggregating) him with
other potential sellers, etc, as entailed by the business model.
(2) A potential buyer registers with ELECTRON and provides information
on the product(s) she would like to buy. When a buyer registers, ETH
will enable the buyer to know the potential sellers, aggregate the
buyer with other potential related buyers, etc, as entailed by the
business model.
(3) A "trade" happens where buyer(s) and seller(s) participate and
negotiate according to a chosen business model. The trade determines
the winner(s). The winning buyer(s) make the payment electronically and
securely to the seller(s).
Your design should support a wide variety of business models and trade
determination algorithms.
Your implementation should cover 2 business models: (1) Kasbah model
and (2) your own "distinctive" model.
ELECTRON will have three releases:
(1) A complete design model (UML analysis diagrams, UML design
diagrams, software architecture, and use of design patterns) to be
submitted by February 15, 2003. Note that effective use of design
patterns and best practices in OOAD will be critical to the robustness
of your design model.
(2) An implementation with 2 diverse business models implemented
by March 10, 2003.
(3) A more complete implementation with use of crypto APIs, security
APIs, and payment APIs (using public domain toolkits that will be
recommended later) by April 10, 2003.
Your design model should ensure that your ELECTRON evolves gracefully
through Releases 2 and 3. Issues that will need special attention
are: (a) uniform format for messages (XML-based) (b) notification
(c) interoperability (d) extensibility.
GUIDELINES FOR RELEASE 1
The Design Document should contain the following.
(1) A use case model. Choose the actors and use cases. Write down a
detailed use case diagram(s). Prioritize the use cases. Choose
architecturally significant use cases and write down detailed
descriptions for those in the standard format. Write down interaction
(sequence or collaboaration) diagrams for the chosen use cases.
(2) An analysis model. Discover all important abstractions (classes,
interfaces, active classes, collaborations, etc.) for the application.
Write down use case realizations for chosen use cases. Present a class
diagram. Write down state chart diagrams for interesting objects and
activity diagrams for interesting business processes. Use an iterative
approach to arrive at an optimal analysis model.
(3) An architecture specification. Describe which architectural
style(s) your system will be using. Clearly identify the major
components and connectors. Package diagrams and component diagrams will
come in handy here. Emphasize traceability from use cases to
architecture.
You should do an architectural analysis to confirm good features of the
architecture and also reveal where the architecture is weak.
(4) A Design Model. Use appropriate UML diagrams here. The emphasis
should be on a compelling use of design patterns. Do not try too many
patterns. Use several (four to five is a good number, but could be less
or more depending on your problem) patterns that fit your problem in a
natural and non-trivial way. The diagrams you prepare should
clearly bring out the use of the patterns. Though patterns are to
be emphasized, do not let patterns completely dominate pragmatic issues
of your design model.
(5) Make a HTML page of your design document email me a URL for that
page before February 15, 2003.
|