Wednesday, 14 March 2007

Deliverables 1

Msc Software Workshop 2006/7


Semester 2, Exercise 4


Group Members:


Rob Rowley

Mark Jovic

Feng-Ming Liu

James McDonald



Deliverable 1


Project Definition


Creation of an online E-commerce site. The site will be an online book store from which individuals can purchase hardcopy (and if functionality is extended, electronic) books.



Requirements


1.

Graphical display of book cover (size restriction to aid formatting).
2.

Access to (and ability to write) reviews of individual titles.
3.

'Basket' or 'checkout' option.
4.

Storage and retrieval of individual title details, including:

1. Title, genre, ISBN number, price.
5.

Storage and retrieval of personal details, including:

1. Name, address, payment details, etc.
6.

User enters all necessary personal details (see above) when making first purchase. These details are then stored and a user ID and password facility is evoked for further transactions.
7.

Search method for displaying titles.
8.

Distinct 'user' and 'administrator' (the latter for employees) access.
9.

Dynamic price function so that item prices can be upgraded or altered to 'sale items'.


Project Plan


1.

Major tasks:

Four main aspects: HTML, JSP, JDBC, and database design and maintenance.

1.

HTML:

Each process from user selection to maintenance of book information is presented in HTML format. However, HTML is only a display of static information or information from database queries and from some business logics. Therefore, the role of interaction belongs to some “active” web pages.

2.

JSP:

Like PHP and ASP, JSP is a kind of active web page, which allows interactions with users according to some requirements. There are two primary tasks that a JSP program should handle. Firstly, checking input information by requirements when it receives the information. Secondly, processing data together with that stored in the database. For example, a user might try to find a book by inputting an author’s name. When receiving input data, the JSP program will use a pre-set SQL command to query data in the database and show processed information on web page to the user.

3.

JDBC:

JDBC is an interface between the JSP program and database. Its responsibility is to provide a channel through which the program can communicate with the database and that the database can return information to the program.

4.

Database design and maintenance:

A database is the “cornerstone” of a system. Good database design could reduce queries from a program and make queries easier and more efficient. However, a good database design relies on thorough realization of the objectives and requirements of a system. In order to clearly specify requirements, interactions with user should be defined. For instance, an online bookstore allows only registered members to purchase books. Then what kind of data should a user should input when he/she wants to become a member of the store? Or what is the sequence of buying a book and how does the member pay the bill? Once these behaviors are decided, the requirements of the system become clear.

In order to keep the data consistency of the database, the maintenance of the database is also very important. For end-users, they probably could not directly operate the console of the database system; so a good implementation of the application is necessary. Actually, this is the implementation of requirements for the staff of the bookstore.

2.

Gantt chart

(see attached chart)

3.

Assessment of the major risks:

1.

Primary risks might be in two fields: database design and JSP program implementation. Primary risks for database design are about bad designs that cannot trutfully reflect relationships between entities and attributes of entities. How to keep data consistency is also an important issue related to database design.

The primary risks about JSP implementation are related to how to implement the “commercial logic” of the bookstore and how to maintain the database in a reasonable way.

2.

How to handle the risks

With regard to the database, the design should follow the requirements. At the design phase, we could use ER Model to represent the relationships between the entities and use normalization to reduce redundancy of data in the database.

With regard to the JSP program, we should concentrate on how to control the process with static HTML. For instance, we could use an exception to catch an input String for a supposed int variable and display a message to inform the user to input the correct data. The JSP program is responsible for maintaining the database, so we have to pay a lot of attention when implementing the program.

3.

Roles of each team member:

We anticipate that the roles will be dynamic, as each member has a desire to fully-understand each aspect of the project design and give input where necessary. That said,general provisional responsibilities have been allocated as follows:


1.

JDBC and database - Mark and Rob
2.

HTML and JSP - Feng-Ming and James


* See Gannt chart for breakdown of implementation.

1 comment:

James McDonald said...

Thought I'd quickly post that while I had a spare (?!) few minutes. I'll sort the formatting later...