You are on page 1of 15

General introduction

Since few years, the web offers to internet users many interfaces. This includes technical knowledge and interacts with contents. So, the concept of Social Web appears. [1] The social web encompasses how websites are designed in order to support social interactions. In this context, the social network helps in the activation of collaboration between people sending and receiving information. So, social web knows a great success thanks to cancelling demographic and geographic barriers, and this success facilitates the birth of collaborative encyclopedia such as Wikipedia. [2] To benefit from those technologies, companies, enterprises and firms implement a social web. This was a natural result of feeling the importance of relations between, on one hand members of enterprise, and environment on the other hand. In this context, ESPRIT decides to providein a first step-to teacher a social web. In fact, ESPRIT is a school of engineering. It has an active partnership with enterprises and a respectable number of teachers. Therefore, our end of year project will take place. This document will be divided in two chapters: The first will present the state of the art, jobs, critic of existent, proposed solutions and methodology. The next will interest in design, functional requirements and diagrams. We will finish this realization with a general conclusion that summarizes all our work.

Page 1

Chapter I: State of the art Introduction

The state of the art [3] is the first level of development. It is the state of knowledge and rules that exist in a subject of study. This includes any area; science, techniques, arts and crafts. This idea is searching information, formal and informal publications, innovations and inventions having a relation with the subject. This chapter will present some critic of existent, our action, proposed solutions and methodology.

I.1. Critic of existent

The critic of existing will help us evaluating the existent system. In fact, ESPRIT hasnt yet a social network. After a simple search, we come not to find an open source application offering the functionalities that ESPRIT needs. So, we started developing our own application.

Chapter II: Analysis

Unified Modeling Language (UML) [4] is a visual language for specifying, constructing, and documenting the artifacts of systems. UML was approved by the Object Management Group. UML can be described as a general purpose visual modeling language to visualize, specify, construct and document software system. Although UML is generally used to model software systems but it is not limited within this boundary. It is also used to model non software systems as well like process flow in a manufacturing unit etc.

Page 2

In fact, software systems are professionally designed and documented before they are coded, so we know exactly what we are getting, in advance.

II.1 Definition of functional requirements

Functional requirements, as defined by Bredmeyer, capture the indeed behavior of the system. This behavior may be exposed as services, tasks or functions the system is required to perform. [5] Functional requirements may be calculations, technical details, data manipulation and processing and other specific functionality that define what a system is supposed to accomplish. So, it is necessary to know essential requirements for the best functioning of system and to satisfy all expectations of users. The useful functions of system that will effectively answer to users needs are: 1) Manage teacher: In order that a teacher has an account in SocialESPRIT, an admin must create it. This admin can also delete any account. 2) Manage profile: This use case will allow a teacher to edit his profile; changing email and name. 3) Show other profiles: a registered teacher can access and see profiles of teachers existing in the application. 4) Send message: the message exchange is one of the most important functionalities in a social network. Teachers can contact each other.

II.2 Use case diagram

A use case [6] defines an overview of interactions between an external actor and the system under consideration, to achieve a goal. An actor may be a class of users, roles users can play, or other systems. A use case is initiated by a user with a particular goal in mind, and completes successfully when that goal is satisfied. It describes the sequence of interactions between actors and the system necessary to deliver the service that satisfies the goal. Actors interacting with our system are: Admin: it is the actor that will create or delete a profile of teacher.

Page 3

Teacher: it is a registered teacher who has a set of privileges allowing him a good use of existing resources.

Figure1: Use case Diagram

II.2.1 Textual description of use case: add teacher

Use case: add teacher Initiator: admin Pre condition: teacher doesnt already exist. Post condition: teacher added successfully. Description: this use case will allow a teacher to have an account and use various features of applications.

II.2.2 Textual description of use case: delete teacher

Use case: delete teacher Initiator: admin Pre condition: teacher already exists. Post condition: teacher deleted successfully.

Page 4

Description: this use case will erase all features of application for a teacher and he will be unable to access the application.

II.2.3 Textual description of use case: manage profile

Use case: manage profile Initiator: teacher Pre condition: profile already exists. Post condition: profile edited successfully. Description: this use case will allow the teacher to modify his profile; his personal information.

II.2.4 Textual description of use case: show other profiles

Use case: show other profiles Initiator: teacher Pre condition: the teacher in question has the same group of the initiator. Post condition: profile consulted. Description: a teacher can show the profiles of another teachers but he cant do so if he belongs not to the same group.

II.2.5 Textual description of use case: send message

Use case: send message Initiator: teacher Pre condition: the receiver teacher belongs to the same group of the transmitter. Post condition: message sent. Description: a teacher can contact another teacher by sending him a private message in condition that they belong to the same group.

II.3 System sequence diagram

Sequence diagram [7] is the most common kind of interaction diagram, which focuses on the message interchange between a numbers of lifelines. Sequence diagram describes an interaction by focusing on the sequence of messages that are exchanged, along with their corresponding occurrence specifications on the lifelines. A sequence diagram shows object interactions arranged in time sequence.

Page 5

System sequence diagram [8] is a simple sequence diagram that illustrates events from actors to system in overall. It determines system events and operations.

II.3.1 System sequence diagram of use case add teacher

The admin will send a request to the system to add a new teacher; if this teacher already exists, so the system will suspend the operation of add, else the system will finish the operation successfully.

Figure2: System sequence diagram of use case add teacher

II.3.2 System sequence diagram of use case delete teacher

The admin will send a request to the system to delete a teacher; if this teacher doesnt already exist, so the system will suspend the operation of delete, else the system will finish the operation successfully.

Page 6

Figure3: System sequence diagram of use case delete teacher

II.3.3 System sequence diagram of use case send message

A teacher will try to contact another teacher. If they belong to the same group, the system will finish the operation and the message will be sent, else the message will not be transmitted to the receiver.

Page 7

Figure4: System sequence diagram of use case send message

II.4 Class diagram

A class diagram [9] is a type of static structure diagram that describes the structure of a system by showing the system's classes [10], their attributes [11], operations (or methods [12]), and the relationships among the classes. Class diagrams are typically used to: explore domain concepts in the form of a domain model, analyze requirements in the form of a conceptual/analysis model and depict the detailed design of object-oriented or object-based software.

II.4.1 Class diagram

Page 8

Figure5: class diagram

II.4.2 Package diagram

Package diagram [13] is used to reflect the organization of packages and their elements. When used to represent class elements, package diagrams provide a visualization of the namespaces. The most common use for package diagrams is to organize use case diagrams and class diagrams, although the use of package diagrams is not limited to these UML elements.

Page 9

Figure6: package diagram

Page 10

Software environment work:

MySQL is a relational database management system. That runs as a server providing multi-user access to a number of databases. MySQL was owned and sponsored by a single for-profit firm, the Swedish company MySQL AB, now owned by Oracle Corporation. MySQL is a popular choice of database for use in web applications, because of his clarity and simplicity especially the interface, thats why we have chosen managing our database with MySQL.

MySQL vs. Oracle

Features MySQL Oracle


Great performance when Aircraft carrier database applications capable of running large leverage architecture. VLDBs. Large and configurations complex. advanced Requires lots of in-depth can get knowledge and skill to manage large environments. Extremely popular with Extremely popular in web companies, startups, Fortune, medium/large small/medium businesses, enterprise business small/medium projects. applications and medium/large data warehouses. 1) PHP 1) Java 2) Java 3) Ruby on Rails 4) .NET 5) Perl 2) .NET 3) APEX 4) Ruby on Rails 5) PHP More features.



Development Environments (most common)


Easy, very basic.

Page 11

Otherwise, MySQL is an open source database system whereas Oracle is a RDBMS developed by Oracle Corporation. Also, MySQL supports more platforms as compared to Oracle database, but Oracle doubles DBA productivity, eliminates data center redundancy and maximizes availability, consolidates and clusters enterprise applications onto scalable, fast and reliable private clouds, reduces the risk of change by doubling the DBS productivity. In addition to that, MySQL is high reliable, easy to use, high performance, provides wide variety of database tools, services, training and support. To end, both the databases come in different editions. As observed, MySQL is more suitable for our application thats why we preferred it.

Eclipse is a platform that has been designed from the ground up for building integrated web and application development tooling. By design, the platform does not provide a great deal of end user functionality by itself. The value of the platform is precisely the fact that it enables and in fact encourages rapid development of integrated features based on a plugin model. Eclipse provides a powerful set of services that are common to any client applications. Eclipse is more precisely an integrated development environment (IDE) that provides comprehensive facilities to computer programmers for software development.

Liferay portal
Liferay Portal is an enterprise web platform for building business solutions that deliver immediate results and long-term value. Liferay Portal is a fantastic product for building a web site. Its incredibly robust and feature-filled. It is a portal open source J2EE compatible with the standard JSR-168. One of its features is the ability to run on most server applications and databases available today. Liferay society was founded in 2000 to develop an affordable portal, offering an alternative to commercial solutions often very expensive. Liferay Portal is distributed under the MIT license, which allows it to be changed and redistributed freely.

Page 12

The 4th Version, released in April 2006, represented a major step forward with include: A comprehensive security model, a friendly interface for adding and the layout of portlets. Liferay is still developing. New features are
added regularly.

Liferay in a wink:
Liferay is an open source integration portal allowing users to access to pages grouping various content and tools. It respects the standard JSR-168 (Java Specification Requests), which gives it the ability to integrate a large number of extensions. Developed by following standard Java and J2EE, Liferay can be deployed on a wide variety of architectures (server applications and database) and can also integrate with a directory corporate LDAP (Lightweight Directory Access Protocol).

Strengths, weaknesses, opportunities and threats Strengths

- Numerous deployment environments - JSR 168 compliant. - Arrangement of portlets easy - Support of extended.

- Documentation of some features missing.

- Development of standard portlets. - Vitality of Open Source projects.

- Competition from other open source projects. - Restricted Community.

Liferay portal vs. Joomla

Company / Developers Latest Stable Release Application Server License

The Joomla Core Team Joomla! 1.7 Apache GPL

Liferay portal
Liferay, Inc Liferay Portal 6.1 J2EE LGPL

Page 13

Database Root Access Shell Access Database Replication FTP Support XHTML Compliant Database Reports Subscriptions


DB2, Microsoft SQL Server , MySQL, PosgreSQL,

No No No Yes No Yes

Yes Yes Yes Limited Yes

Costs Extra

Not limited

Page 14

General conclusion
During this project, we were led to develop a web application. In fact, ESPRIT decides to undertake this project to answer to the needs of the rapid development of information technologies and simplify data exchange. ESPRIT would like to offer, through this project, many services based on the exchange of information between members of network. Thus, we have implemented a kernel of a social network which will be the heart of a platform that can grow later. In the world, there is a big number of social networks, but each one has an owner features, a special thing that attracts users. So, we hope that our application will please to users. In this project, we identified many challenges to know; choose a methodology of work, study of functional requirements and establish the design. The study of needs is done in depth to a better comprehension and answer to the expectations. The result of this study allowed us developing UML design diagrams giving a vision of various elements composing the application. After this work, we become able to implement design to Java code, our knowledge in UML and MySQL are improved. It is important to note that this work is able to be improved, enhanced and modified.

Page 15