Design document


Authors: Steven Orbie, Hafid Ghannouti

Analysis and design:

The goal of our project:
The purpose of this project is to build a product selection tool allowing the creation and storage of a serie of products of the same type, which will also allow to make a selection based on certain criteria.
The functional requirements:
The functional requirements for this project is to build an open source Alfresco module that will be a product selection tool allowing the end user to create and store a serie of products from the same type allong with the criteria’s of this product.
And as the name says the tool should allow the user to make a selection of products by running a search.
For each search the tool wil give as a result a top 3 of products that best
match the search criteria based on their weight.
Data Model:
The tool wil consist of four parts:

  • 1. A module which will allow an administrator to create and store different
    criteria for a given type of product.
  • 2. A module where a ‘productmanager’ can input/modify the actual data
    in order to generate and manage products.
  • 3. A module which allows the user to assign a weight to each of the criteria
  • 4. A module that allows the user to create and return a selection list (top 3) of products based on the criteria and their weights.
Conceptual Relationships:
Data Model: View image in full size
Example:
Let’s clarify this concept a bit with a fictious example :
Suppose we’re about to develop a tool to select “software developers” based on their qualities.
The product-type we’re talking about here is the “developer”, with each evaluated person as an individual product, with his/her qualities as product-attributes.
How does it work ?
Suppose, once a year, a commitee defines these so-called qualities.
Once defined, each quality is converted to an individual question with a fixed set of possible answers to it (multiple choice). We call each question a “criterium”.
These criteria and their possible answers are then centralized by an administrator. (This is part one of the functional description)
Then, when a peoplemanager evaluates one of his developers, he fills in an evaluation-form about the developer. De evaluation-form is made up by the criteria (questions and multiple choice answers) mentioned above. Once completed, the data on this form will be added into a database. Based on this data of the developer, a product “developer” (by example “StevenOrbie” or “HafidGhannouti”) will be created (with his qualities as attributes). (This is part two of the functional description)
Suppose, on a given moment, a new project is assigned to a projectmanager of the company. In order to succeed, he will need some developers with specific skills (Java, Hibernate, French-speaking). Then he uses our Selection Tool :
Each criterium can be given a specific weigth in order to assign a relative importance to that criterium (This is part three of the functional description):
  • Java : 5
  • Hibernate : 2
  • French-speaking : 3
After assigning the weigths to the criteria, he runs the Selection Tool.
The Selection Tool then searches all the generated products (individual developers), checks per product if there is a match with the criteria looked for (attributes), and then returns a list with all matching products, ordered on the sum of the weigths of all matching attributes per product. (This is part four of the functional description).
Interface:

A Productspace exists in the Alfresco-Environment.
This Producstspace allows the user to browse through the existing Products, as wel as to manage any individual product (add, edit, delete, view details).

By clicking on one of the hyperlinks on the right of an individual product, the user is able to edit, delete or view its details.
To add a new Product, the user can click on the “Create Product”-action (see “Actions” in the rigth upper corner) to start a wizard.
This wizard will then guide the user through all necessary steps (Criteria) to create the new Product.
The wizard will show a form to the user.
This form will consist out of one criterium plus the possible answers bound to that criterium, as defined in the Data Dictionary.
Each possible answer will have a input possibility (textfield, checkbox, …) in order to allow the user to store his answers.

By each step (by clicking on the “next”-button), the next criterium will be shown (in the same format), untill all criteria for this type of product are treated.

Product Creation Wizard:

AttachmentSize
Conceptual_Relationships.jpg32.43 KB
Data_Model.jpg31.37 KB
StartInterface.jpg37.4 KB
Wizard.jpg23.67 KB