Web代写:ADI Wiki System

Introduction

这次需要代写的是一个大工程网站,做一个类似Wiki的整站。没有提供任何Start code,工程量非常大。

Educational Resources Incorporated decides to develop a wiki system to contribute the collaborative platforms among Students and Tutors. The wiki system also a powerful knowledge management tools, but due to the special adaptations, the system will be special tailor make.
Since the wiki page can only be create or edit by Tutors or some students with permission, therefore, need to add a sub system to manage user permission and let system administrator to grant access permission. Moreover, wiki pages may need to be revert in case of mistake or accident, there will need another sub system to manage the history of change, so that administrator can revert a change of page.
Below will present the analysis and design of the wiki system by using Object-oriented analysis.

Task 1: Candidate Class List and Diagrams

Class diagram is one of the UML diagrams, which represent the structure of a system, so that can be call as Structural Modelling.
Structural Modelling is initially a conceptual model created, which showing the logical organization of system instead of showing how objects are stored.

Candidate Class List

One of the formal techniques for obtaining a list of candidate classes list is called Natural Language Analysis Which is the process of identifying nouns, adjectives and verbs in the user requirement.
In the case of Educational Resources Incorporated, the Candidate Class List was identifying as below list.
After creating the Initial lists, the next step is to modify it to a more manageable list of candidates, by removing the synonyms; removing abstraction in too high level; removing the part of design in future, then result is below final list of classes and functionalities.

Details of modification

  • Class Name “Wiki Page” simplified to name “Page”, which will have attributes describe the Wiki page such as title of page and author of page.
  • “Username”, “User Classification”, “Permissions” are the attributes of classes “Students”, “Tutors” and “Administrators”.
  • Class “Content of page” simplified to name “Contents” which will have the attributes that stored links of the actual TXT files or HTML files.
  • Class “Versions of pages” simplified to name “Versions” which will have the attributes of Version number.
  • “Markdown” is format of Wiki language, which will be use in the operation of class “Contents” call “outputHTML()”.
  • “Title of page”, “Author `of page” and classified as attributes of class “Pages” and will simplified to “pageIndex” and “authorID”.
  • “HTML page” is the output of “Contents”, which will change to the attribute “outputLink”.
  • “History” classified as attribute of class “Versions” and will simplified to “versionNo”.

Class Diagrams

Class diagram describe the structure and relationship of classes, showing the attributes in the class and operations possessed by class.

Class

Abstract classes below were created according to the above candidate classes list.
Since Classes “Students” and “Tutors” have similar attributes and Operations, it is suggest to combine those two classes into one class “Users”.
On the other hand, classes “Administrators” and “Users” also have similar attributes, but class “Administrators” has some special operations. Therefore, there is suggest to use a creational design pattern, class “User” act as factory to generate class “Administrators” which inherits the attributes and operations from class “User”, but still has its unique operations.

Task 2: Activity Diagram

Activity diagram is one of the diagram of functional modeling, which is use to model the process independent of objects.
In this wiki system, When Users or Administrators create or update the wiki page; system must convert the updated wiki page from “markdown” into HTML.
The process of converting a single wiki page from markdown to HTML is name “Output HTML”, below is the activity diagram of “Output HTML”.
The above Activity diagram shows the process of a wiki page in markdown format convert to HTML format. Markdown is an “easy to read” and “easy to write” syntax for formatting plain text.

Task 3: Use Case Diagrams

Use Case diagram is one of the diagrams for Functional modeling in the Object-oriented analysis, which is to use the user requirements gathered from system users to model system process.

Main Use Cases

The wiki system is for Students and Tutors to create wiki pages and output the markdown to HTML page. Therefore, the main functions for Students and Tutors are read pages, update pages and add pages, here will summarized as “Access Pages”. On the other hand, the main functions for Administrators are add users, grant permission, here will summarized as “Manage Users”, at the same time, Administrators also can read pages, add pages even revert page to previous version; those functions will summarized as “Manage Pages”.
According to above reasons, the three main Use Cases are “Access Pages”, “Manage Users” and “Manage Pages”. Below will extend these three Main Use Cases. and the use case specification for each use cases.

Access Pages

Students and Tutors can access the wiki pages after login the system, during login, system will check user type and the rights for read or write pages.

Manage Users

Administrators can add users, delete user and edit user information including grant access permission.

Manage Pages

Administrators can add pages, delete pages and edit page including revert page to previous version.

Conclusion & Recommendation

By the review of final product, wiki system should be success and easy to use, even though, there is still some insufficient. However, the more important benefit of this project is gaining much experience. The insufficient and weakness of systems can mean the next project can be more improvement.