WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Design and realisation of a knowledge base

( Télécharger le fichier original )
par Sawssan SELMI
 - Ingénieur en informatique 2011
  

Disponible en mode multipage

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

Table of Contents

GENERAL INTRODUCTION 4

CHAP1: STATE OF THE ART 10

1.1 INTRODUCTION 10

1.2. STUDY OF THE CURRENT SITUATION 10

1.3. DESCRIPTION OF THE EXISTING 10

1.4. PROJECT PRESENTATION 12

1.4.1. PROVIDED SERVICES 12

1.4.2. PROVIDED FEATURES 13

1.5 METHODOLOGY OF DEVELOPMENT 14

1.5.2 V-CYCLE MODEL 15

1.5.3 SPIRAL MODEL 16

1.5.4 CHOSEN METHODOLOGY 17

1.6. CONCLUSION 17

CHAP2: SPECIFICATION AND ANALYSES OF NEEDS 19

2.1 INTRODUCTION 19

2.2 SPECIFICATION OF THE NEEDS (FUNCTIONAL AND NON FUNCTIONAL) 19

2.2.1 FUNCTIONAL NEEDS 19

2.2.2. NON FUNCTIONAL NEEDS 20

2.3. ACTORS 21

2.4. USE CASES 23

2.4.1. USE CASES BY PRIORITY 23

2.4.2 INTERACTIONS ACTORS /SYSTEM 24

2.4.3. USE CASE DIAGRAMS 29

2.4.4. USE CASE DIAGRAM: DETAILED TEXTUAL DESCRIPTION 31

2.4.4.1 CONDUCT OF USE CASE: ACTIVITY DIAGRAM 31

TEXTUAL CASE SCENARIO "AUTHENTICATION" 31

TEXTUAL CASE SCENARIO "CONSULT PRIVILEGED SPACE" 32

TEXTUAL CASE SCENARIO "SEARCH DOCUMENT" 33

TEXTUAL CASE SCENARIO "REGISTER FOR TRAINING" 35

2.4.4.2. DIAGRAM OF SEQUENCES SYSTEM 37

TEXTUAL CASE SCENARIO "REQUEST FOR REGISTRATION" 39

TEXTUAL CASE SCENARIO "PROPOSE ONLINE TEST" 40

2.7.2 REGISTER FOR TRAINING 41

2.8. CONCLUSION 42

CHAP3: DESIGN 44

3.1. INTRODUCTION 44

3.2. ARCHITECTURAL CONCEPTION 44

3.2.1. TECHNICAL ARCHITECTURE 44

3.2.2 LOGIC APPLICATION ARCHITECTURE (THREE-LAYER) 45

3.2.2.1 PRESENTATION LAYER 46

3.2.2.2 BUSINESS LOGIC LAYER 46

· SERVICES LAYER 46

· BUSINESS OBJECTS 46

3.3. DETAILED DESIGN 47

3.3.1. DESIGN PATTERN 47

3.3.1.1. MVC 47

3.3.1.2. DAO 48

3.3.1.2. SESSION FACADE 50

3.3.2 PACKAGES DECOMPOSITION 52

3.3.3.2 MODELS PACKAGE 53

3.3.3.2 SESSION BEANS PACKAGE 55

3.3.3.3 CONTROLLER PACKAGE 55

FUNCTIONAL STRUCTURE OF THE APPLICATION 56

3.3.4 INTERACTION DIAGRAM 56

3.4 CONCLUSION 57

CHAP4: IMPLEMENTATION 59

4.1 INTRODUCTION 59

4.2 WORKING ENVIRONMENT 59

4.2.1 HARDWARE ENVIRONMENT 59

4.2.2 SELECTION OF PROGRAMMING LANGUAGE 59

4.2.1 J2EE TECHNOLOGIES IMPLEMENTS 3-TIER ARCHITECTURE 59

4.2.2.1 JSF: JAVA SERVER FACES TECHNOLOGY 60

4.2.2.2 JPA: JAVA PERSISTENCE API TECHNOLOGY 60

4.2.2.3 EJB: ENTERPRISE JAVA BEANS 60

4.2.3 SOFTWARE ENVIRONMENT 61

4.2.3.1 NET BEANS TECHNICAL REASONS 61

4.2.3.2 CHOICE OF MYSQL 62

4.3 DEPLOYMENT DIAGRAM 62

4.3.1 APPLICATION INTERFACES 62

4.5 IMPLEMENTATION 63

4.6 TIMING DIAGRAM 63

4.7 CONCLUSION 65

GENERAL CONCLUSION 66

NETOGRAPHY 68

LIST OF FIGURES

FIG2. WATERFALL MODEL 4

FIG2. V-CYCLE MODEL 16

FIG3. SPIRAL MODEL 17

FIG4. ADMINISTRATOR USE CASE DIAGRAM 30

FIG5. VISITOR USE CASE DIAGRAM 4

FIG6. TEACHER USE CASE DIAGRAM 31

FIG7. STUDENT USE CASE DIAGRAM: STUDENT 4

FIG8. ACTIVITY DIAGRAM: AUTHENTICATE 32

FIG9. ACTIVITY DIAGRAM: CONSULT PRIVILEGED SPACE 34

FIG10. ACTIVITY DIAGRAM: SEARCH DOCUMENT 4

FIG11. ACTIVITY DIAGRAM: REGISTER FOR TRAINING 37

FIG12. SEQUENCE DIAGRAM: UPLOAD DOCUMENT 38

FIG13. SEQUENCE DIAGRAM: REQUEST FOR REGISTRATION 40

FIG14. SEQUENCE DIAGRAM: PROPOSE ONLINE TEST 41

FIG15. SEQUENCE DIAGRAM: REGISTER FOR TRAINING 42

FIG16. N-TIER TYPE ARCHITECTURE 44

FIG17. LAYERS OF THREE-TIER LOGIC ARCHITECTURE 45

FIG17. MODEL-VIEW-CONTROLLER 47

FIG18.DATA ACCESS OBJECT CLASS DIAGRAM 49

FIG19. SESSION FACADE CLASS DIAGRAM 51

FIG20.  PACKAGE DIAGRAM 53

FIG21.  MODELS PACKAGE: CLASS DIAGRAM 54

FIG22. SESSION BEANS PACKAGE: CLASS DIAGRAM 55

FIG23. MANAGEMENT PROCESS PACKAGE: CLASS DIAGRAM 56

FIG25. FUNCTIONAL STRUCTURE OF THE APPLICATION: USER-SIDE 56

FIG 26. SEQUENCE OBJECTS DIAGRAM 57

FIG27. TYPICAL EXAMPLE OF A J2EE ARCHITECTURE 61

FIG28. DEPLOYMENT DIAGRAM 62

FIGURE 29.  USER AUTHENTICATION INTERFACE 63

FIGURE 30. FORUM INTERFACE 63

FIGURE 31. MANAGEMENT INTERFACE 63

FIG32. GANTT DIAGRAM (SEQUENCING TASKS / TIME) 65

LIST OF TABLES

TAB1. COMPARISON BETWEEN LIFECYCLE-MODELS 4

TAB2. USE CASES BY PRIORITY 4

TAB3. USE CASES: GENERAL TEXTUAL DESCRIPTION 4

TAB4. AUTHENTICATION SCENARIO 4

TAB5. CONSULT PRIVILEGED SPACE SCENARIO 4

TAB6. SEARCH DOCUMENT SCENARIO 4

TAB7. REGISTER FOR TRAINING SCENARIO 4

TAB8. UPLOAD DOCUMENT SCENARIO 4

TAB9. REQUEST FOR REGISTRATION SCENARIO 4

TAB10. PROPOSE ONLINE TEST SCENARIO 4

Appreciation

I thank God firstly for allowing me to complete this project that is for me the starting point of an interesting adventure, for research, development and improvement.

Allow me to pay tribute to my project supervisor, Mr Gharbi Sofiène for supervising this work and given his time and intelligence to the success of this modest project, and Mr Cherni Thameur for his help and availability to correct this report.

I take this opportunity to thank those who have given me their contribution, whether at the level of ideas or design. There is here to express my sincere recognition.

Finally I thank the jury members who have kindly accepted to perform evaluation of this modest work.

Dedication

I dedicate this work to who without his help I couldn't achieve this work: my husband Ali.

For his care he has always give to me.

General Introduction

Computers are increasingly present in our everyday life; when we say computer we say information, electronic documents, knowledge, etc.

There are now about these services offered which have become indispensable the functioning of the computer tools and information systems.

There are a set of constituent elements interacting with each other, and transforms inputs into outputs, a set of methods that allow treatment information within an organization and its environment. These key features are; information gathering, storing, processing and dissemination. So, for any of these systems, it is essential to study, understand and control its operation.

After this study and to ensure that these services will be beneficial and optimal, it is necessary to manage all the information, documents, and system users to simplify their use.

That's why most companies and institute have automated their work with the software integration. Similarly, there is a pressing need to automate many Esprit activities. This requires the design and implementation of a knowledge base that should be a central site to store information and provide space to answer frequent queries. It also should provide search engine to help users find the appropriate article matched with their query.

This type of system is a very handy tool working in a narrow domain to provide answers for frequently asked questions and should be easily addressed by any user.

Knowledge is acquired and represented using various representation; techniques of knowledge rules, frames and scripts. The basic advantages offered by such system are documentation of knowledge, intelligent decision support, self learning, reasoning, explanation and many other features that can be added. We can't forgot also that the collaborative work, sharing and data document transfer is very interesting for each institution or company; so a knowledge base is essential such for students or clients.

In this stage our intervention is to design and implements the Esprit Knowledge Base; following methodologies and best practices to provide these modules:

Interact in the forum, consult library, upload / download documents, register for training, pass assessment tests online, receive all school news, consult the address book, view files and shared documents, write articles or comments, consulting his traces...
Other main modules to the system administrator like overseeing general site operations: as user, documents or library management, forum management and dashboard of teacher's skills.

Thus, for a better organization of the work, and to achieve our goals we rely on a well structured approach containing four parts each one contains a chapter divided as follows:

The first chapter is devoted to the state of the art: it is the state of existing knowledge related with our subject. It contains a study of art, existing issues, some problems solutions and chosen process methodology.
The second one deals with the case study that helped to discover end-user and organizational requirements that formed the basis of the development of our system; it analysis actor's identification, functional and non-functional requirements, activity and sequence diagram to represent general collaborations between objects and system according to the chronological order.

A third will contain the classes' diagram, to formalize the preliminary stages of development that will be explained in the last chapter. It will lead tools for implementation, code optimization, validation test and explains the underlying reasons for choosing these techniques and tools.

The conclusion at the end of this report will list the achievements and limitations of the system and the future possibilities.

State of the art

Chapter 1 State of the art

1.1 Introduction
The state of the art aims to seek what are general information and publications related with methods of design and development of a knowledge base and the main features it has to offer. It's the preliminary step to our project. So it is necessary:

§ To search beneficial information related to this topic.

§ To be aware of the environment: find more information, methods and standards used in this field; this helps to broaden the subject.

§ To define areas of research, from knowledge of the environment: it will explain how to apply current knowledge to its needs.

1.2. Study of the current situation

As already said, this study will allow us to know more from knowledge base operations and reach some common features between all these systems that are no longer mandatory and must be presented in first step of conception and development. There are two principal functions: document search and information sharing.

And the other basic advantages are documentation of knowledge, intelligent decision support, self learning, reasoning and explanation.

1.3. Description of the existing

A study of existing is to look at what already exists; it is from this study that we can make real progress versus the existent, not to 'create' something already created in previous works, to overcome their flaws and add more benefits to our system.

As already said; Knowledge base is a special kind of  database for  knowledge management, providing the means for the computerized collection, organization, and retrieval of  knowledge.

Our own study has provided that there is no knowledge base to ESPRIT; there is only moodle site that is missing several features; 

The initial design of this site presents in my opinion many misconceptions

§  Navigation is via a full-page general index and thus causes an impractical navigation

§ It doesn't offer a search engine

§ You should register to all courses you want to download file related with.

§ All other members can see what topics you are registered to.

§ It displays your real name instead of your pseudo

§ All other members can know if you are connected at the moment.

§ If a user forgot his password he can't retrieve it again; he should register with another login, password and e-mail.

§ News of the institute is not displayed in the site.

§ the site is not updated and this is possibly returned to the difficult management of Some units

§ It doesn't have an attractive design.

And many other missing features...

A study was conducted to develop a web knowledge base Information System that would alleviate all of the problems detected. The choice of a web-based application was obvious. Esprit has two universities and aims to create an entire campus, so it needs to share data across a large distance (using internet).

One of the other fundamental strengths of the Internet is the set of standards that define how users connect to servers and how data will be displayed. We take advantage of the network capabilities of the Internet and the presentation standards of the World Wide Web. By developing an application to run on a web site, with ensure of a widest possible compatibility and accessibility to the system. Users can benefit from their features even if they are not physically present at the institute (as long as they have access to a web browser).

We should mention also that since the development of personal computers, software products produced by development companies have dominated the market. These products account for the vast majority of software sales and are usually cheap as the development cost is spread across hundreds or thousands of different customers. Among these software's; we can mention:

§ Knowledge Base Software

§ Interspire

§ Knowledge base publisher

§ Omnistar knowledge management software

§ PHPkb

The common point that may be mentioned among all this software, is that they are developed by well known languages that we are already studied like php, c, java and they reflect what they think customer will use. They are generally not flexible and designed more for businesses than for institutions use.

So a software engineering approach is ideal for manually developing our Esprit knowledge base; particularly as we are engineering students, so with the support of our supervisors we can design and develop this site from the beginning to the end without intervention of any knowledge base software.

The specifications for these systems are often the basis for the contract between customer and contractor. In this project, there is a need to define all specifications and changes in detail. This poses no problem because I am an Esprit student, I present some students segment and my supervisor will present professor segment.

1.4. Project presentation

The knowledge based systems are artificial intelligent tools working in a narrow domain to provide intelligent decisions with justification. Knowledge is acquired and represented using various knowledge representation techniques rules and frames.

After this study, we can pick the following services and features should be presented by our web site:

1.4.1. Provided services

§ Find the Right Message at the Right Time

For quick and easy information found; Smart Synopsis provides access to the most relevant articles; we should in the first step provide a search engine that is configurable for article authoring. Attachments can be added to articles to supplement content and provide context. Instant publishing and article import flexibility.

§ Seamless Self-Service

Users can help themselves by using an available public portal. Find Solution to their toughest questions. 

§ Services for all users

An optional visitor registration portal gives you permission access to other Knowledgebase features.

§ Update and Share Information

Encourage users to contribute content to Knowledgebase by adding points for each interaction in the forum, distribute the information using centralized knowledge-sharing services, continually improving the quality of the application.

§ Facilitate user intervention

Most file formats and documents are accepted so document upload is quick and simple without format conversion.

1.4.2. Provided features

§ Store text-based data and knowledge as searchable Knowledge Base articles

§ Store any type of file, application, document as a file located inside the Knowledge Base or attached to a relevant article

§ Advanced user-rights management with users, user-groups and passwords

§ Different users can see different parts of the Knowledge Base according to their privileges

§ Control access to Knowledge Base categories, articles and files using a security model

§ Centrally and securely located on the WWW hosted on Web Central servers

§ Accessible from anywhere, anytime, by whoever privileged

§ Host an online help knowledge for your visitors; answer for their questions 

§ Advanced searching and organization features means no more wasted time searching for files on local computers or network drives; procedures and other information is as simple as entering a few key words. 

§ Allow for a large number of people to contribute to and share stored data

§ Aid in easy storage and retrieval of data

§ Reduce repetitive duplicate input

§ Improve communication between users

§ Using ergonomic and attractive web interface

For the site administrator;

§ control exactly what is inside the Knowledge Base using advanced security profiles and policies

§ Control access to data, based on user roles (defining which information users or user groups can view, edit, publish, etc.)

§ Define user groups for controlling who has access to what information

§ Manage all documents, users.

1.5 Methodology of development

When developing any system, it is recommended to divide it into tasks or groups of related tasks; it makes it easier to be understood, organized and managed. In the context of software projects, these tasks are referred to as phases. Grouping these phases and their outcomes in a way that produces a software product is called a software process.

There are many different software processes, and none is ideal for all instances. Each is good for a particular situation and, in most complex software projects; a combination of these processes is used. The most used life cycles (processes) for software development are:

§ Waterfall model

§ V model

§ Spiral model

To implement the most appropriate methodology of work, it is essential to understand how each of these models (waterfall, V and spiral cycle) operates and what are the differences between them.

1.5.1 Waterfall model

The waterfall model is the oldest and most widely used model in the software development field. It is based on the following assumption: we cannot build the roof before the foundation;

There are certain advantages of the waterfall model, which causes it to be the most widely used model as yet. Some of them can be listed as under:

§ produce the deliverables defined in advance;

§ to complete in a specific date;

§ Not be completed until the deliverables are satisfactory in a step-validation check.

§ Needless to mention, it is a linear model and of course, linear models are the most simple to be implemented.

§ The amount of resources required to implement this model is very minimal.

§ One great advantage of the waterfall model is that documentation is produced at every stage of the waterfall model development. This makes the understanding of the product designing procedure simpler.

§ After every major stage of software coding, testing is done to check the correct running of the code.

§ Easy to explain to the user

§ Stages and activities are well defined

§ Helps to plan and schedule the project

§ Verification at each stage ensures early detection of errors / misunderstanding

Fig1. Waterfall model

1.5.2 V-cycle model
This model is an improved cascade model that limit return to previous steps in case of anomalies. To enhance the software functionalities the phases of the rising part, must submit information on the phases in other side when errors are detected.
Further more, the V cycle highlights the need to anticipate and prepare in stages down the "expected" of future steps rising: as expected the validation tests are defined in the specifications, the expected unit tests are defined in the design.

It helps us to manage and coordinate acceptance testing activities, test defect management, test plan preparation and following clients' project requirements.

The benefits of performing verification and validation activities:

§ Improved software quality

§ Improved customer satisfaction

§ Reduced cost of development

§ Reduced cost of maintenance

Verification and validation activities are performed at every stage of the software development lifecycle as depicted by the V-model below;

Fig2. V-cycle model

1.5.3 Spiral model

This development describes the various stages of the V cycle. By implementation of successive versions, the cycle starts by proposing more full and hard product. 

The spiral cycle emphasis risk management than V-cycle indeed, the beginning of each interaction includes a risk analysis phase.

Fig3. Spiral model

1.5.4 Chosen methodology

Tab1. Comparison between Lifecycle-models

V-model

Spiral model

Waterfall model

+ Well-structured tests
+ Prioritization system to be developed
- Validation against requirements: very expensive if errors are found.

+ Assessment and risk control
- The number of turns can be large therefore costly project
+ - Relatively new model

+ Well suited for smaller systems as opposed to complex systems.
+ The tests apply to the overall application.
- Period long enough to see result.

The study and comparison of these models lead us to choose waterfall model because it is well suited for small systems, it offer an approach to risk reduction, minimizing the impact of uncertainties. This impact in the development phase is lower than the impact of uncertainty in the phases of design or specifications, the more the project progresses, the risk decreases. Unlike the spiral model that is designed for large systems whose needs are changing and V-model which is very risky if errors are found.

So, throughout the rest we must follow these steps: Analyze, design, program development, testing and implementation.

1.6. Conclusion

Our project is a helpful tool that facilitates communication, learning and sharing knowledge between ESPRIT students, teachers and other site visitors.

Thus we must specify what our tool will provide, try to explain it in a sight of a computer expert and to satisfy user's needs that will be the subject of the next chapter.

Specification and Analyses of Needs

Chapter 2 Specification and Analyses of the needs

2.1 Introduction

Whether we design an application we should know what it must present, so we can't progress without studied and marked the output specifications of our final product.

The process of discovering, understanding, negotiating, documenting, validating, managing the set of requirements and project requirement specification for the web-based system should be accomplished through this chapter. If the software that is going to be designed should contain certain specific features then it is also mentioned in this stage.

2.2 Specification of the needs (functional and non functional)

A requirements specification should provide precise, measurable and unambiguous details about what the product must give out in general, without providing unnecessary constraints or suggesting possible solutions.

2.2.1 Functional needs

Functional requirements express an action that performs the system response to a request (which outputs are produced for a given set Input).
Our esprit knowledge base should provide all these features:

§ Functionalities of Adding, updating and deleting user, block accounts of some users for a defined duration

§ Uploading / downloading updating and delete documents receives by privileged user

§ list of all documents in a sorted way: show library

§ Adding, updating, deleting and shows the list of questions and its appropriate answers or comments and users that makes it..

§ Display / update knowledge Scoreboard of teachers

§ Space to post announcements in the home page (seminars -training...)

§ organize training

§ post testes in the provided space in the platform

§ download students copies

§ Send the corrected review for registered students.

§ register for training

§ Register to pass online test

§ Shows the personnel file of a user: all the registered elements of the file must be displayed.

§ Search engine for documents by title / author / subject /code.

§ Add / remove and count points: for each answer /comment...

And other functionalities will be presented and explained in the textual description part.

2.2.2. Non functional needs

All information systems with a certain point in their life cycle must be considered non-functional requirements and testing. For some projects these needs will require a very important work and other project areas a quick check will suffice.

§ security

§ usability

§ reliability

§ interoperability

§ scalability

§ Performance requirement

§ Hardware

§ Deployment

Security needs: Our application should

§ Contains interface for connection and verify if generated information are correct.

§ Each user is classified with his appropriate privileges: each registered user who will be connected has its own interface.

§ Can define the possible levels of access to system for system users and external systems.
Ex: Any confidential information provided by clients will be encrypted with an encryption algorithm

§ Logout after idle time of inactivity or after three false passwords.

Usability needs:

§ refer to general aspects of the interface Users Eg standard used

§ Definition of the minimum browser (Web application)

Simplicity: A clear and simple user interface to handle.

Performance needs: Describe the execution performance of the system, generally in terms of response time.

§ (web) Download page time: Loading a webpage in the browser should not take more than 15 seconds in normal condition.

§ Response time: the application loads, opening times and screen refresh, etc.

§ Processing time- functions, data exports.

§ Initial load time and load data: Interrogation of the database

Capacity requirements

Memory (Storage) - how much information should the system be able to store?

Needs of availability / reliability:
Related to the level of availability that must be explicitly defined for critical applications
Ex availability requirement 24/24, 7 / 7 except during maintenance (specify ...)
Compatibility

§ Material needs
-define the minimum hardware necessary to operate the system

§ Compatibility on different operating systems - on which he should be able to function?

§ Compatibility on different platforms - What are the hardware platforms to work?

Ergonomics

The ergonomics standards-User Interface, the density of elements on the screens, the layout and flow, colors, keyboard shortcuts

Documentation

Elements of documentation required to explain how to use the application.

Deployment needs
describe how the application will be delivered to End User
ex: All the software on the client side will be downloaded and installed from the browser, without the position of the client is restarted or configure.

2.3. Actors

Actors are entities that interact with the system under design. Answer to the following questions lets us to identify our system actors and capabilities of each one.

Q- Who is intended to use the system?

R- Any authenticated user (having the privilege to connect)

Q- Are they belonging to the same user type?

R- They are different, picked according their requirements and classified by privileges and roles given for each one.

Q- How many users are there?

R- We can't limit the total number or the maximum number of concurrent users at any one time but there are three sets of users: ESPRIT students / teachers and some visitors of the site.

The system will be represented by web interfaces and presents several features. So it is essential to provide maintainability future expansion and perhaps some plans for future developments.

Q- Who will maintain the system?

R- Our system must have an administrator. So the forth and principal actor is the system administrator.

After we knew the actors we need to know all their functions that can be attended from our system to clearly identify the use cases.

Q- What for?

R- It will be answered for each actor separately; since they do not require same services.

System administrator

He controls all the system operations: He is the responsible of the platform; He/She have the heavy task and deal with the system. His functions include all these stages:

§ manage users

§ manage documents

§ Control the forum

§ manage table of board of teachers skills

§ post announcements

§ consult the library

§ upload / download documents

§ interact in the forum

§ access to all user interfaces

§ access to his personal directory

Member users: Members of this user group can accesses their allowed interfaces with determined tasks. All their updates must firstly be validated by administrator before publishing, they are teachers and students.

Teacher

§ Organize training

§ propose and correct online quizzes

§ consult the library

§ upload / download documents

§ interact in the forum

§ access to his personal directory

Student

§ pass online assessment tests

§ register for training

§ consult the library

§ upload / download documents

§ interact in the forum

Visitor

This is the group that accesses only to public area. They don't need authentication, and goes directly to forum space to:

§ interact in the forum

§ request for registration

2.4. Use cases

2.4.1. Use cases by priority

At this stage we will present all system use cases classified by their priority:

Tab2. Use cases by priority

Use case

Use case id

priority

Manage user

uc1

High

Manage document

uc2

High

Control the forum

uc3

High

Manage dashboard of teachers skills

uc4

medium

Post announcement

uc5

medium

Consult library

uc6

High

Upload / download documents

uc7

High

Interact in the forum

uc8

medium

Access to his personal directory

uc9

High

Organize training

uc10

medium

propose and correct online quizzes

uc11

medium

Pass assessment tests

uc12

medium

Register for training

uc13

medium

Request for registration

uc14

Low

2.4.2 Interactions actors /system

Tab3. Use cases: general textual description

Use case

Actor

Pre-condition

Nominal Scenario

Manage users

administrator

* Needs connection establishment.
* The user must authenticate to the system
(with login and password).

Throws: MAJ (Adding, updating and deleting) user
Receives: list of all users, informations about each one, list of connected users.

Manage documents

administrator

* Needs connection establishment:
* the user must authenticate to the system

He must have privileges to perform document management.

Receives: acquisition document: uploaded by student or teacher / provided by school

throws:

Index document using its metadata (type, author, title, id, date, etc.).
Storage: enter the base
Released: get into the site

Send corrected review to each student in his personal directory.

Receives: list of all documents (sorted according their code)

Control the forum

administrator

* Needs connection establishment: the user must authenticate to the system

* He must have privileges to manage the forum.

Throws:

Add / remove items: for each answer /comment or good topic.
Getting rid of parasites, block accounts of some users for a defined duration
improving access and sharing information: suggest topics for discussion.

MAJ of questions/answers or comments each 15 days.

Receives: list of all users that makes comments /questions/answers last 15 days and their comments.

manage table of board of teachers skills

administrator

* Needs connection establishment: the user must authenticate to the system.

* He must have privileges to manage table of board of teacher skills.

Receives: e-mails from teachers to update skills.

Throws:

consult the personnel file of a teacher to see CV and new certification

Receives: knowledge Scoreboard update.

Post announcement

administrator

* Needs connection establishment: the user must authenticate to the system.

* He must has privileges to consult announcement space.

Throws: Post displays in the home page (seminars -training...)

Access to his privileged space

Administrator

teacher

student

* Needs connection establishment: the user must authenticate to the system.

Receives: all his allowed functionalities.

access to his personal file

Administrator

teacher

student

* Needs connection establishment: the user must authenticate to the system.

* He must have privileges to manage table of board of teacher skills.

Receives: all the elements of the file will be displayed:

It contains all its registered elements.

Search for document

Administrator

teacher

student

* Needs connection establishment: the user must authenticate to the system.

* Administrator, teacher and student all can search for document.

Throws: search for documents by title / author / subject /code.

Receives: view all informations about the document searched and the link to download it.

consult the library

Administrator

teacher

student

* Needs connection establishment: the user must authenticate to the system.

* Administrator, teacher and student each one can consult library.

Throws: consult library.

Receives: View the list of all documents sorted by topic /type.

upload / download documents

Administrator

teacher

student

* Needs connection establishment: the user must authenticate to the system.

* Administrator, teacher and student each one can consult library.

Throws:

Search for documents.

upload documents

Receives: downloade document.

interact in the forum

Administrator

teacher

student

visitor

* Without connection establishment.

* Any one of these actors can interact in the forum.

Throws: Ask question / answer / post comment

Receives: answer for their questions / earns points for his participation in the forum.

Organize training

teacher

* Needs connection establishment: the teacher must authenticate to the system.

* He must have the privilege to consult the training space.

* Organizing training must obey to the following constraints:

Throws: sends a request to the administrator to organize training, contains: training field, responsible, relevant class, deadline, nbr of places, nbr of hours.

Receives: acceptante or refusal.

propose and correct online quizzes

teacher

* Needs connection establishment: the teacher must authenticate to the system.

* He must have the privilege to consult the training space.

Throws: upload the test in the provided space in the platform

Receives: download copies of students.

Throws: send the corrected review for all students to the administrator.

pass assessment tests online

student

* Needs connection establishment: the student must authenticate to the system.

* he must be registered to pass assessment (according to this constraint: Student class=test class and date of registration<= deadline date )

* Organizing training must obey to the following constraints:

Throws: pass the test according to time

Receives: test corrected

With his grade.

register for training

student

* Needs connection establishment: the student must authenticate to the system.

* He must be registered to assist training (according to this constraint: Student class=training class.

The deadline for registration does not exceed.

The number of places + 1 <= nbr of limited places).

Throws: sends a request to the administrator to register for training.

request for library registration

Visitor

Starting from number of earned points=20.

Throws: sends a registration request to the administrator to view the library, so can upload/download from these documents.

2.4.3. Use case diagrams

To make more vocational work, we should also use data modeling language UML to map use cases and sequence diagrams.
The capabilities of each actor are described using use case diagrams. Some use cases will also be presented with text script.

Fig4. Administrator Use case diagram

Fig5. Visitor use case diagram

Fig6. Teacher use case diagram

Fig7. Student use case diagram: Student

2.4.4. Use case diagram: Detailed textual description

2.4.4.1 Conduct of use case: Activity diagram

To describe the operational step-by-step workflows; we shall represent activity diagrams to show workflows of stepwise activities and actions, they support choice, iteration and concurrency.

Here we will describe the conduct of some use cases.

Textual case scenario "Authentication"

Tab4. Authentication scenario

case

Authentication

Actor

All users expect simple visitors

Scenario

Succeeded

Pre-conditions

User already created

Actions

The system presents the home portal
The user selects connect button
The system presents the login formulation
The user enters his login and password
The system verifies and accepts or refuse the user's identity

Post condition

The user is authenticated and is registered in the current session

variants

The user enters an invalid login / password
The system asking him again to authenticate.

Fig8. Activity diagram: Authenticate

Textual case scenario "Consult privileged space"

Tab5. Consult privileged space scenario

case

Consult privileged space

Actor

All users expect simple visitors

Scenario

Succeeded

Pre-conditions

User already created

User belongs to concerned structure

Actions

The system presents the home portal
The user selects the menu setting
The system presents the login formulation
The user enters his login and password
The system verifies and accepts the user's identity
Then the system creates a session and saves the user settings in it
The system displays the page corresponding to the user profile
The user accesses to all the features it has right

Post condition

The user is authenticated and is registered in the current session

variants

The user has forgotten his login / password
The system asking him again his authentication settings.

Fig9. Activity diagram: Consult privileged space

Textual case scenario "Search document"

Tab6. Search document scenario

Case name

Search document

Actor

Administrator / teacher / student

Scenario

Succeeded

Preconditions

User authenticated

Actions

The user selects : <search document> button
The system presents an interface of search types.
The user choose how to search the document (by title - type - author...)
The system retrieves the information
The user fill search keyword

The system displays all documents founded that appropriate with user search

The user choose one of them and click on download link
The system uploads the files from the server to the user local machine
The system displays a message indicating the success of the file exportation.

Post condition

The system increments the number of downloaded .........

Variants

The user enters a wrong keyword

The system did not have any file appropriate to the research
The system sends an error message

Fig10. Activity diagram: Search document

Textual case scenario "register for training"

Tab7. Register for training scenario

Case

Register for training

Actor

Student

Scenario

Succeeded

Preconditions

Student authenticated

Actions

The student selects : <Register for training> button
The system presents all available training and all informations about each one
The system asks the user to choose one
The user clicks on <ok> to select the chosen one
The system verify compatibility between student and chosen training.

Student class=training class.

The deadline for registration does not exceed.

The number of places + 1 <= nb of limited places
The system executes the command to creates the file contents in the database

The system adds the student to the list of registered for the training.

The system update the list of registered for the training in the administrator space.
The system displays a message indicating the success of the registration.

Post condition

The system creates a new file in the database space

Variants

The student register for not allowed training / registration time has expired / there are no more places.
The system sends an error message

Fig11. Activity diagram: Register for training

2.4.4.2. Diagram of sequences system

We'll now interest by the chronology of interactions between objects and the system in general. So we should present sequence diagrams.

Textual case scenario "Request for registration"

Case name

Request for library registration

Actor

Visitor

Scenario

Succeeded

Preconditions

User have at least twenty earned points

Actions

The user selects : <request registration> button

The administrator system analyze visitor request

(he can accept or refuse according to many criteria)
if the administrator accepts; system presents an interface for visitor to put these informations
The user fill the registration form

The system add this
The system displays a message indicating the success of the registration

The system create a new personal directory for this user

The administrator gives him privilege to consult library and upload/download documents from.

Post condition

The system creates a new file in the database space

Variants

The user enters a wrong file / not permitted type
The system sends an error message

Tab9. Request for registration scenario

Fig12. Sequence diagram: request for registration

Textual case scenario "Propose online test"

Tab10. Propose online test scenario

Case name

Propose online test

Actor

teacher

Scenario

Succeeded

Preconditions

User authenticated

Actions

The user clicks : <propose test> button
The system presents a form to be fill by teacher

The teacher fills the form (indicating test information)

The system asks the user to give the file location
The user clicks on <browse> and select the file path
The system retrieves the path
The user clicks on import
The system downloads the files from the local machine to the server

The system executes the command to creates the exam in the database
The system displays a message indicating the success of the file importation. The system create a new link for downloading the file in the library space

The administrator announce concerned students by e-mail

Post condition

The system add the exam in the database space

Variants

The teacher enters a wrong file / not permitted type

There is no compatibility between concerned class and exam date
The system sends an error message

Fig13. Sequence diagram: propose online test

2.7.2 Register for training

Student must be registered for training following these steps and according to some constraints.

Fig14. Sequence diagram: Register for training

2.8. Conclusion

In this chapter, we identified the objectives of our system. These aims must consider the problems of existing solutions. This phase will help us for a fully design of the application model that will be presented in the next chapter, in order to discuss the design part and discuss modeling of the needs expressed in this section.

Design of the solution

Chapter 3 Design of the solution

3.1. Introduction
Needs specification carried out in the preceding chapter focuses only on the major processes of the project. It is necessary to further study of the needs for a well project management: Design. It is essential during the pre-study to ensure that the needs are expressed only in a functional and not in terms of solutions.

So, after completing the phase of analysis and specification, we are now beginning the design phase. This step is crucial to the progress of the project and aims to detail the tasks to be undertaken and to prepare these grounds or the implementation phase.
So, we present a general concept of the application followed by detailed diagram showing the database used. Then we detail the various application modules as well as relations between the modules through a package diagram and class diagram. Finally, we describe the kinetics of the application.

3.2. Architectural Conception

3.2.1. Technical architecture

Fig15. N-tier type architecture

The review of our application has demonstrated the need of a

§ System relational database to store data.

§ Server application for logic application.

§ Browser to access web pages.

So it requires the establishment of three groups of functions: data storage, application logic and presentation. These three parts are independent from each other: we can change the presentation without changing the application logic.
Thus, the design of application logic based on the data model and the design of the presentation depends on the application logic; we choose to implement layer-architecture.

Their main benefits are:

§ Application structure adapted to the targeted deployment architecture

§ Modular application - Evolution facilitated the application

§ Factorization of code with the option to use a framework or generic components (gain time and performance).

3.2.2 Logic application architecture (three-layer)

Three-layer architecture principle is to separate the achievement of the three parts previously seen (data storage, application logic and presentation) to allow the realization of classic three-tier system architecture.One of the most important benefits of this layer separation is that the generation process becomes more optimized,  interfaces are non redundant which reduces the response time.

Fig16. Layers of three-tier logic architecture

3.2.2.1 Presentation layer

The presentation is the most immediately visible to the user; it provides interactive access to the application.  (You could argue that user interaction layer might be more appropriate.)

3.2.2.2 Business logic layer

§ Services Layer
This layer combines the technical treatments; non-functional requirements are supported by the Framework Development.

§ Business objects
these objects are the essential work related to the field of application. They require treatment techniques, non-functional service layer to manage security, transaction, competition.

3.2.2.3. Persistence layer

It consists of the database. Most often we add a layer that makes the correspondence between objects and the database (DAO). This layer is often used to cache objects retrieved from the database and thus improves performance and security.
3.2.2.4 Advantages of three tier architecture
Three-tier implementation have several advantages including:

§ The logic is moved at the application server but is programmed using the same technologies related to relational databases.

§ The ease of deployment; the application itself is deployed on the server side (application server and database server). The client requires only a minimal installation and configuration. Indeed, client must only install a web browser to access application. This ease of deployment will not only reduce the cost of deployment but also enable a steady evolution of the system. 

§ This development will facilitate the updating of the application on the application server.

§ Improved security; using three-tier architecture of database access is made only by the application server. This server is the only one to know how to connect to the database. He does not share any information that allows access to data, particularly the login and password of the database. It is then possible to manage security at the application server, for example by maintaining the list of users with their passwords and their access rights to system functions. 

§ We can even further improve security by establishing a network architecture completely prohibiting access to the server database for end users.

3.3. Detailed design

At this part we will start by presenting some used design patterns; they are MVC, DAO and Session Façade.

3.3.1. Design pattern

A pattern describes a proven solution for a recurring design problem, placing particular emphasis on the context and helps surrounding the problem.

A design pattern is a general reusable solution to a commonly occurring problem in  software design. It is not a finished design that can be transformed directly into  code but a description or template for how to solve a problem that can be used in many different situations.

Object-oriented design patterns typically show relationships and  interactions between classes or  objects, without specifying the final application classes or objects that are involved. Many patterns imply  object-orientation or more generally mutable state, and so may not be as applicable in  functional programming languages, in which data is immutable or treated as such.

3.3.1.1. MVC

Fig17. Model-view-controller

Participants & Responsibilities

It was originally applied to map the traditional input, processing, and output tasks to the graphical user interaction model. Thus, it is straightforward to map these concepts into the domain of multi-tier enterprise applications.

§ Model - The model represents data and business rules that govern access to and updates of this data. Often the model serves as a software approximation to a real-world process, so simple real-world modeling techniques apply when defining the model.

§ View -The view renders the contents of a model. It accesses enterprise data through the model and specifies how that data should be presented. It is the view's responsibility to maintain consistency in its presentation when the model changes. This can be achieved by using a push model, where the view registers itself with the model for change notifications, or a pull model, where the view is responsible for calling the model when it needs to retrieve the most current data.

§ Controller - The controller translates interactions with the view into actions to be performed by the model. In a stand-alone GUI client, user interactions could be button clicks or menu selections, whereas in a Web application, they appear as GET and POST HTTP requests. The actions performed by the model include activating business processes or changing the state of the model. Based on the user interactions and the outcome of the model actions, the controller responds by selecting an appropriate view.

Strategies

Web-based clients such as browsers. Java Server Pages (JSP) pages to render the view, Servlet as the controller, and Enterprise JavaBeans (EJB) components as the model.

Centralized controller. Instead of having multiple servlets as controllers, a main Servlet is used to make control more manageable.

3.3.1.2. DAO

We use a Data Access Object (DAO) to abstract and encapsulate all access to the data source. The DAO manages the connection with the data source to obtain and store data.

The DAO implements the access mechanism required to work with the data source. The data source could be a persistent store like an DBMS. The business component that relies on the DAO uses the simpler interface exposed by the DAO for its clients. The DAO completely hides the data source implementation details from its clients. Because the interface exposed by the DAO to clients does not change when the underlying data source implementation changes, this pattern allows the DAO to adapt to different storage schemas without affecting its clients or business components. Essentially, the DAO acts as an adapter between the component and the data source.

Structure: Figure18 shows the class diagram representing the relationships for the DAO pattern.

Fig18.Data Access Object class diagram

Participants and Responsibilities

The following sequence diagram shows clearly the interaction between the various participants in this pattern.

The Business Object represents the data client. It is the object that requires access to the data source to obtain and store data. A Business Object may be implemented as a session bean, entity bean, or some other Java object, in addition to a servlet or helper bean that accesses the data source.

The Data Access Object is the primary object of this pattern. The Data Access Object abstracts the underlying data access implementation for the Business Object to enable transparent access to the data source. The Business Object also delegates data load and store operations to the Data Access Object.

Data Source represents a data source implementation. A data source could be a database such as an RDBMS, OODBMS, XML repository, and so forth.

Transfer Object represents a Transfer Object used as a data carrier. The Data Access Object may use a Transfer Object to return data to the client. The Data Access Object may also receive the data from the client in a Transfer Object to update the data in the data source.

3.3.1.3. Session Facade

We use a session bean as a facade to encapsulate the complexity of interactions between the business objects participating in a workflow. The Session Facade manages the business objects, and provides a uniform coarse-grained service access layer to clients.

The Session Facade abstracts the underlying business object interactions and provides a service layer that exposes only the required interfaces. Thus, it hides from the client's view the complex interactions between the participants. It manages the interactions between the business data and business service objects that participate in the workflow, and it encapsulates the business logic associated with the requirements. Thus, the session bean (representing the Session Facade) manages the relationships between business objects. The session bean also manages the life cycle of these participants by creating, locating (looking up), modifying, and deleting them as required by the workflow.

Use Cases and Session Facades

So, how can we identify the Session Facades through studying use cases? Mapping every use case to a Session Facade will result in too many Session Facades. This defeats the intention of having fewer coarse-grained session beans. Instead, as we derive the Session Facades during our modeling, it is essential to consolidate them into fewer numbers of session beans based on some logical partitioning.

For example, for our application, we grouped the interactions related to managing some units into a single facade. The use cases Create, Change Information, View information, and so on all deal with the coarse-grained entity object Account. Creating a session bean facade for each use case is not recommended. Thus, the functions required to support these related use cases could be grouped into a single Session Facade called Management Session Facade.

Structure: Figure 19 shows the class diagram representing the Session Facade pattern.

Fig19. Session facade class diagram

Participants and Collaborations

The client of the Session Facade is who needs access to the business service.

The SessionFacade is implemented as a session bean. It manages the relationships between numerous BusinessObjects and provides a higher level abstraction to the client.

The BusinessObject is a role object that facilitates applying different strategies, such as session beans entity beans and a DAO (see the next section, "Strategies"). A BusinessObject provides data and/or some service in the class diagram. The SessionFacade interacts with multiple BusinessObject instances to provide the service.

3.3.2 Data base conception

At this stage will present the various modules of the system before exposing the class diagrams, then we will finish by introducing the kinetics of the application.

Database details:

The user entity described by an id, name, user surname and login/password for authentication. It also contains other additional information as his privilege id and e-mail.

The Internet user can view his privileged space via his login and password, but he must following the appropriate role. Its timing (via calendar table) and the address book (via Address Book table).
It can also add or download documents from the platform, ask questions, propose answers or comments, organize or register for training/ online tests.
To control and manage the application the administrator thus may consult the database tables through web interfaces.

Table's presentation:

§ Person Table: Contains information of various users of the system.

§ Document table: lists all files exchanged between the different users.

§ Knowledge table: knowledge of professor backup.

§ Person knowledge table: contains the list of knowledge of each teacher.

§ Privilege table: register the articles of each user: administrator, user or teacher.

§ Question table: Saves the questions posed and the user who asked each question.

§ Answer table:  The response and the user responded to each question.

§ Training table: records all the information necessary for training.

§ Calendar table: contains the events created by users.

§ Address Book table: contains lists of contacts for each Internet.

3.3.3 Packages decomposition
To move to the design step, we rely on the principles of the object-oriented approach; we are moving from a functional structure through the use case, to a structure object through classes and packages.
Given our application architecture and it's large number of candidate classes; it was important to part them into packages to better understand the overall role of each part and facilitate code maintenance.
To identify the packages, we rely on application layers and independence criteria.

So we try to group classes that have a strong correlation between them, which belong to the same functional area: They must render similar services to user. The package diagram of our application as follow:

controller

models

Session beans

Fig20.  Package diagram

3.3.4 Class Diagram:

Static modeling is used to identify, refine and complete classes of different packages seen in previous section. It is to investigate the relationships between them and invoke their attributes and methods. The class diagram is the central point in object-oriented development. 

We will present the class diagram by package.

3.3.4.1 Models package

Is the module that contains all necessary class Entity that will be traduced on tables in the database;

Each class entity represents only attributes (table columns), class constructor, getter and setter for each attribute.

It contains seven classes that are: Person, Document, Privilege, Question, Response, Knowledge and Training.

§ Person class has: id (person identifier), login, password, name, first_name and e_mail attributes.

This class represents system users (our actors).

§ Privilege class has: id, user_role and privilege attributes; this class will represent privilege table that contain person_name and his associated privilege that can be: administrator, teacher, student or visitor. Any user can have only one privilege and a privilege can be associated to a group of person.

§ Question class: his attributes are id_question, question, date_creation; it store all questions posed in the forum. It is related with Person class to associate each question with his creator; a question is posed by one person and any person can pose multi questions.

Question class is also related to another class: Response class.

§ Response class: it has id, response and date_creation attributes; it is related with two classes Person and Question. Thus a Response can't be created without question; a response is for only one question, a question may have many responses. A response is associated for one person but a person can provide many responses.

§ Training Class: his attributes are id, training, delais_inscription, nbr_places and duree.

Represents all available trainings according to a specific date. Any user who want to register for training should firstly be a student and have some other criteria. So, a training can be followed by at least one student and a student can follow many trainings.

§ Knowledge class: it has id and knowledge_name attributes. It will represent knowledge table in the data base; so it will stock each teacher's know ledges. Thus it is related to Person class (we should mention here that we will catch only teacher knowledge) so when we say knowledge person we mean that he has teacher privilege.

§ Document class: It has id, titre, auteur, date_creation attributes. This class represents document Entity. A document can be uploaded by only one person and a person can upload many documents, that's why it is related to Person class.

Fig21.  Models Package: class diagram

3.3.4.2 Session Beans package

This package presents the data persistence layer, it models the way of treatment resource and interaction with the database. The purpose of this package is to ensure the flexible and easy data integrity guarantees and to adapt the application with any data source. It offers methods to update the data (create, retrieve, update and delete). Here is a description of some classes in this diagram:

Fig22. Session beans package: class diagram

This package contains seven classes: TrainingFacade, PrivilegeFacade, Personfacade, ResponseFacade, Knowledgefacade, DocumentFacade and QuestionFacade. Each one appropriate with an entity class (classes of models package) and a generic abstract class: AbstractFacade. Each one of these classes has only one EntityManager attribute; it is associated with a persistence context that is a set of entity instances in which for any persistent entity identity there is a unique entity instance. Within the persistence context, the entity instances and their lifecycle are managed. The EntityManager API is used to create and remove persistent entity instances, to find entities by their primary key, and to query over entities.

Each class of sessionbean package has getEntityManager method that returns an EntityManager, a constructor and extends methods of AbstractFacade class. They are create, edit, remove, find, findAll, findAll, findRange and count that presents CRUD functionalities necessary to communicate with data base.

3.3.4.3 Controller package

This layer supports the management of interaction events between client interfaces and persistence layer. It receives all user requests and performs the appropriate actions.
This module contains the following classes:

Fig23. Management process package: Class Diagram

TrainingController, QuestionController, ResponseController, DocumentController, PersonController, KnowledgeController and knowledgeController.

Each one of them has two private attributes; DataModelItems declared NULL and SelectedItemIndex. It has also his constructor and nineteen other operation; getSelected() wich returns an element with the same type of the Entity class related with, getFacade() returns an element with the type of session beans package class related to, getPagination(): returns a paginationHelper type, prepareList(), prepareView(), prepareCreate(), prepareEdit(), create(), update (), destroy (), destroyAndReview (), performDestroy (), updateCurrentItem (), getItems (), recreateModel (), next(), previous () wich all return String Type. And two other methods that returns SelectItem type; they are getItemsAvailableSelectMany() and getItemsAvailableSelectone().

Each class of this package needs these methods to support interactions between user interfaces and persistence layer.

the presentation layer (View) of our application, which aims to simplify the creation and editing interfaces; is represented by some .xhtml pages that will be shown later.

Functional structure of the application

Fig25. Functional structure of the application: user-side

3.3.5 Interaction Diagram

Interaction diagrams are models that describe how a group of objects collaborate in some behavior typically a single use-case. The diagram shows a number of example objects and messages that are passed between these objects within the use-case.

I'll illustrate the approach with some examples of use-cases, but firstly I will present interaction diagrams related with the application logic architecture: they are Data Access Object and Session Façade diagrams. They let us understand the conduct of each layer object very well.

Their textual description is mentioned in 3.3.1.2 and 3.3.1.1 parts.

Fig24. Data Access Object sequence diagram

Fig25. Session Facade sequence diagram

Textual case scenario "upload document"

Tab8. Upload document scenario

Case name

Upload documents

Actor

Administrator / teacher / student

Scenario

Succeeded

Preconditions

User authenticated

Actions

The user click : <authenticate> button
The controller redirect him to authentication page

The user fill his login and password

The PersonController catch them and send them to Personfacade (DAO)

PersonFacade retrieve informations from Database which verify user login/password:

If they are wrong: the user will be redirect to authentication page again

If they are true: PersonFacade send them to PersonController.

If he is not a student; It will redirect him to main page

If he is a student; he will be redirect to student space.

The student click <exam registration>

Registration form will be displayed to him

The student fill his coordinates

The controller catch them and send them to PersonFacade

If the student is eligible to register; he will be added to datasource

And a message indicates success of registration will be displayed by controller in student interface.

If not; a message indicates the failure of registration will be displayed

Post condition

The system creates a new registered student in the database space

Variants

The user enters a wrong login / password
The system sends an error message

There is no compatibility between student and exam classe

The system sends a failure registration message

Fig26. Sequence diagram: Upload document

Textual case scenario "Manage teacher skills dashboard"

Tab8. Manage teacher skills dashboard

Case name

Manage teacher skills dashboard (set knowledge)

Actor

Administrator / teacher

Scenario

Succeeded

Preconditions

User authenticated

Actions

The teacher consult site (main interface)

Click <authenticate>

The controller redirects him to teacher space.

The teacher click update skills

The controller display message: upload your certification

The teacher clicks <upload document>

The controller asks the user to give the directories or files location
The user clicks on <browse> and select the directory path
The controller retrieves the path and send it to DAO
The user clicks on import
The controller uploads the files from the local machine to the server

The DAO set the document on the database (table document)

The DAO catch the document_id and send it to the Controller

The controller send a message: a teacher wants to update his skills to admin space; it id is:( document_id)

The controller put download_link into admin space

The administrator click <download>

The administrator analyze the certification and click <update skills>

The controlled executes the command to creates the file contents in the database via DAO
The controller displays a message indicating the success of update skills on teacher space..

Post condition

The system upload teacher skills

Variants

The user enters a wrong file / not permitted type
The system sends an error message

Fig27. Sequence diagram: Manage teacher skills dashboard

3.4 Conclusion

Throughout this chapter, we developed the design of our application to be flexible and to provide easy passage to the next step; we first presented the three-tier architecture. Secondly, we described the architecture of our application. Then we have highlighted the database. Then we presented the diagrams of classes. Finally we presented the kinetics of diagram transitions diagram. 

Implementation and validation

Chapter 4 Implementation and validation

4.1 Introduction
The technical study is the adaptation phase of design and the choice of technical architecture, describing and documenting the function of each software unit.

In this chapter we will represent the soul of the software development process and aims to implement each of the modules described in the previous chapter. We present in the first part our application environment. Subsequently, we discuss interfaces that present some functionalities of the system. Finally, we will describe the tasks chronogram.

4.2 Working Environment

4.2.1 Hardware Environment

We need at minimum two machines for development and initial testing. Subsequently, an Internet connection for each one will suffice.. In all cases, we need a server running, good enough (multiprocessor, high-capacity memory alive) to support all users connected and also a good internet connection.

For development we used a machine at medium power: a laptop Pentium dual-core with 2MB of cache and 2GB of RAM.

4.2.2 Selection of programming language

We chose to develop our project with Java for several reasons among which:

§ Its portability: It is independent of the platform on which it runs (it only needs to have a Java virtual machine).

§ Its disposal of a library for handling different applications.

§ Our understanding of this language.

We have already said in the previous chapter that we have to work with the 3-tier software architecture; we have chosen J2EE as development language for these reasons:

4.2.3 J2EE Technologies implements 3-tier architecture
J2EE (Java 2 Enterprise Edition) is a platform for application development based on Java. J2EE architectures are used mainly for developing applications with a complex architecture.
The development of such application must take account of existing software components and allows also possible future developments (changing database, other types of clients, changes in business logic, etc.).
J2EE applications are typically used in remote architectures (client / server). We will study in what follows the architecture of distributed applications and J2EEcomponents.
4.2.3.1 J2EE let us benefit from other technologies like JSF, JPA and EJB
In our application, we need these following technologies:

4.2.3.2 JSF: Java Server Faces Technology

Java Server Faces technology establishes the standard for building server-side user interfaces. With the contributions of the expert group, the Java Server Faces APIs are being designed so that they can be leveraged by tools that will make web application development even easier.

4.2.2.2 JPA: Java Persistence API Technology
The Java Persistence API (JPA abbreviated) is a Java API that allows developers to organize relational data in applications using the Java platform .

4.2.2.3 EJB: Enterprise Java Beans

The EJB specification intends to provide a standard way to implement the back-end 'business' code typically found in enterprise applications. Enterprise JavaBeans were intended to handle such common concerns as persistence, transactional integrity, and security in a standard way, leaving programmers free to concentrate on the particular problem at hand.

Accordingly, the EJB specification details how an  application server provides: Transaction processing, Integration with the  Persistence services offered by the  Java Persistence API (JPA), Events using  Java Message Service, Deployment of  software components in an application server, Exposing business methods as  Web Services...

Fig27. Typical example of a J2EE architecture

The architecture presented in the figure above is a typical example consists of several layers given by J2EE.

4.2.4 Software Environment

Throughout the development phase, we used the following software environment:

§ Operating System: Ubuntu 10.04: the best user friendly Linux desktop distribution

§ Tools Development: Net Beans 6.9

For dynamic web pages we need an application server to compile and execute Java classes representing the business of our application.

· Application Server : Glass fish: new application server, consistent specification J2EE 6,  integrated with Net Beans 6.9

· Data Base Server: MySQL server to manage database.

· Design and Modeling with UML: Umbrello: is a design tool

· Writing the report and presentation: Open Office is free and open source and free Text editor with correcting spelling and grammar extensions.

4.2.4.1 Net Beans Technical Reasons

Choosing an IDE (Integrated Development Environment) is a critical step in the project, This choice will gain us in time and effort, therefore development cost. We chose Net Beans development environment for the application because it is Free, developed by Sun: language founder of Java, its popularity and flexibility is increasing. It integrates Glass Fish Server.
It is a complete development platform; because its environmental baseline includes all these following functions:

§ It is free and includes all the features of a modern IDE (syntax highlighting, multi-language projects, refactoring, editor graphic interfaces and web pages, etc.).

§ configuration and management GUI,

§ support for different programming languages,

§ Treatment of the source code (editing, navigation, formatting, inspection ..)

§ access and management of databases, Web servers, shared resources: it includes a query editor, a manager of integrated databases ...

§ We can also add libraries as its main library mail.jar. For sending mail.

4.2.4.2 Choice of MySQL 

The database requirement is motivated not only by the need to serve documents created dynamically but also access to daily information constantly changing, with a simple and unified interface, so we have chosen because it is very easy to change and manage. It supports API (Application Programming Interface) clients with many programming languages ??(Java, C, etc.) which can easily write client programs that need access to data in a MySQL database.

4.3 Deployment Diagram

This diagram shows the physical organization of the application design, it specifies the components to our application. In our case we need an application server to deploy our application above; a database server to store the database tables, as well as the customer requires a browser to access web pages.
ESPRIT must have sufficiently powerful application servers to be able to handle the traffic of a large number of Internet users.

Fig28. Deployment diagram

4.4 Implementation
The GUI (graphical user interface) is the most crucial part in a web application. It contributes to the construction of the first user impression on the system. Indeed, it is a criterion that can adds the difference between two web applications although they have the same functionality.

Thus, we tried to provide attractive interfaces that should give the main application features.

The first interface that will be displayed to the user of our system is the main interface; it contain forum, request for registration and connexion space. If he already has an account, he has to provide its parameters, user name / password so can access his privileged space. A  page will display to him that contains all his permitted features so can choose any other fonctionnality he needs; so he will be automatically redirect to another web page. If not he can only interact in the forum.

-I will present the application and all its interfaces in test validity-.

4.5 Timing diagram

To be managed in a quality, a project must follow different phases during which, each point should define a step: task, to detect non-conformances at the earliest and adapt to new stresses due to unforeseen contingencies initially. Therefore, it is essential to control the time allocated to each task.
This project was conducted from November 21, 2010 to April 9, 2011. We first started by a phase of literature on information related to our application field and a thorough review of the existing order to understand the needs and begin the work. Then, after clearing and understood what is asked, we were able to meet the functional and non functional requirements. Then we started the design phase and implemented the requested module after passing through technology documentation we will use. 

How do we devise the work?

What was the followed process to obtain a system that must be functional?

Tasks that compose our project from documentation to realization are:

Task 1: Preparatory phase (documentation):
the preparation of documents having a relationship with the topic of project and indicating its organizational conditions.
Task 2 : establishment of requirements specification:

Redaction of tender specification
Task 3: Feasibility study:
we talk about the technical feasibility of the project.
This phase is triggered by reception of the specification: functional and non fictional requirements.
Task 4: The study of scenarios: Analysis
the feasibility study leads to consider several scenarios (the « cases study » to be implemented by our system).

This step aims to identify and document each feature that must provide our software and create specification documents, which will form the basis of the specifications trend. It is in this stage that the conception of the software graphical interface will be created.
Task 5 : Detailed design: Conception

Design work is to determine the theoretical technical solutions that will satisfy the specifications, that is to apply the expectations of the user. The result of the work is application diagrams such as class diagrams and interaction diagram.
Task 6:Development of application: Realization: Construction

The construction is the main activity, which occupies more than half of the total development time. During this step we write the software source code.
The various modules of the software are programmed one by one, then collected. And quotation of goals achieved compared to those original.

Task 7: Test of application validity

Tests are performed to verify the functioning of the whole (integration test); conducts many tests to detect a maximum of bugs - errors in programming is advised.
Task 8: application delivery, reporting and presentation

When the application is running and once we have tested its operation, we can deliver it with the explanatory report which was written chapter by chapter simultaneously with all other tasks (every step achieved it must be explained in the report).

To organize and to carry out the project, we established a detailed diagram of the various tasks that constitute our project.
The Gantt diagram is a tool used in project management for viewing various tasks that comprise the project according to time. It is a graphical representation of the progress of the project, modeling and planning tasks.

Fig32. Gantt diagram (sequencing tasks / time)

4.6 Conclusion

In this chapter, we presented the development; hardware and software environment of which ends this project. We have also presented an overview of the final application through some printed displays and the timing of the tasks performed during this work. Also, the study of the existing system has allowed us to be familiar with the field study and understand the working procedures of the current system.
Thus, we discovered deficiencies, and existing anomalies from the validity tests and make appropriate suggestions, which allows us to design improvements to our system to meet identified needs.

General conclusion

This project was a good opportunity to get out of the theoretical framework and apply knowledge acquired during university studies for a real working environment that allowed me to initiate in professional field.
In technical terms, this work made ??me discover new concepts and technologies related to Java and multilayer architectures, and it was a very good opportunity to understand the various UML diagrams and the necessity of each one.
The profit is essential to learn how to use existing technology and to integrate into our application respecting the temporal constraints that are not always easy to follow.
The time constraint thus evoked prevented us from adding more features to our application we have estimated technically feasible, among which we mention the possibility of integrating our application chat module, add a space for sharing media such as audio, videos, and optimize code to reduce the response time.
In this report we have developed four chapters. In the first, we presented the general framework of our application and the various solutions adopted vis-à-vis the issue. In the second chapter we studied the functional and nonfunctional and the specification requirements. The design part was analyzed in the third chapter. We ended the report by the realization containing the main part of the application interfaces.

Netography

www.developpez.com

www.wikipedia.org

www.uml.free.fr

www.commentcamarche.net

www.oracle.com






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Un démenti, si pauvre qu'il soit, rassure les sots et déroute les incrédules"   Talleyrand