Database Systems Development Project:
Enterprise Identity Management

Richard Sinn, Sept 2002.



Database project should be managed just as any software engineering project. A database project must go through a full development cycle in order to ensure the quality of the project output. In this semester long project, students have to follow the following simple (and waterfall like) development cycle:

Part I

Part II

Part III

Part IV

There are four parts of the project and each part is considered as a deliverable with these weighting:

Part I: Requirement Analysis: 5%

Part II: DB Design: 5%

Part II: DB Application Design: 5%

Part IV: Implementation: 15% with additional 10% extra credit possibility.



The objective of this project is to develop a database system application. It covers various aspects of object-oriented analysis, database conceptual and physical design, and database application design. It also provides an opportunity for a hands-on experience with client-server database programming using Java, JDBC, C++/C, ODBC, and GUI programming. Mastering the materials in class as well as the ability to learn new things quickly will be essential for success in this project.

Students are required to form a group of 4 or 5. As a research oriented project, only a brief set of requirements are given. There is a lot of room for individual group to come up with new ideas and implementation methods. Each group is responsible for:



Skills Required (or Need to learn)





Security has been a major issue in an organization nowadays. You, as a group of system programmer team, have comes up with the concept of Identity Management using Centralized Enterprise Management Layer (CEML). The CEML would be used as a single digital layer to manage every single "employee" in your organization. Once an "employee" is created into CEML, you could control which domain he/she belongs to and according to the domain, assign Internal IT Resources and Internet Resources to the "employee".

In order to use any IT resource, an "employee" must be associated with the corresponding Internal IT Resources. And the same goes for Internet Resources.

Basic Architecture

In this project, you have to develop a database system called Centralized Enterprise Management Layer (CEML). CEML is an advanced system for Identity Management of users in today's network computing environment. The CEML systems contains the following components:

Employee Record Store: This is the central employee data schema that store information about an employee in an organization. It contains information such

IT Internal Resources: This is a list of IT resources (table?). Each IT resource could be mapped to an "employee". If a mapping exists, the employee would have all (and only) the access right specified in the IT resource.

Internet Resources: This is a list of Internet Resources (table?). Each Internet Resource could be mapped to an "employee". If a mapping exists, the employee would have all (and only) the access right specified in the Internet Resource.

Domain: A group of employee with common attributes could be grouped within a domain. For example, all sales team employee could be group in the sales domain. Or, all UNIX users could be grouped into a domain. The CEML has to provide an interface for administrator to administrate domain.

Sub-domain: Sub-domain is a "subclass" of domain.

Common-domain: Common-domain is a sub-domain that shared by multiple domains.








Other Implementation Requirement



Design and Analysis Consideration

The group has to decide on various design and analysis issues, for example:



This system is supposed to be developed according to the software lifecycle using OOAD and database principles taught in class. Good software engineering principles must be followed. In particular, documentation must be good.

  1. Requirement and specification. (In English or UML)
  2. Database Design (ER and DDL)
  3. Application Design (Class Diagram, etc)
  4. Implementation Coding and Test Plan




As the whole class will be working on similar projects, relative grading will be used. In other words, all the projects will be ranked within the class and points will be assigned accordingly. A lower point bound will also be used to ensure that some of the core features are implemented in the project. (For example, 200 points for base features, 100 points for extra features)



Final Word of Warning

This is not an "easy" class and the project is an essential part of the overall grade. People who did not deliver the project well enough could really hurt their grade as the project contains more than 40% of the overall grade.


On the bright side, most of the students in the A range did really well in the project. So, there is no upper bound for an A. (In other words, I do not limit the number of A in a class.)


This page is copyright and if you use any of the original ideas in the future in any commercial way. Please email for approval.

Copyright 1996-2002 OpenLoop Computing. All rights reserved.