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.