辅导COMP/2013、讲解python/c++、讲解UML DESIGN、辅导Python, C/C++设计

- 首页 >> Python编程

COMP/2013 (Lab 03 - 2018)

1

LAB 3: UML DESIGN GROUP PROJECT

Aims:

Practice your object oriented analysis and design/maintenance skills

Practice working in small design teams

Consider how to design software with lower maintenance effort in the future

You are supposed to work with your group project group members on this!

THE STUDENTSHIP MATCH APPLICATION

You have been asked by the Student Union to develop a new "Student-Internship Match"

application for them. A legacy system exists but it was abandoned some years ago. The idea

is to match students with the right skillset to internship offers provided by local companies.

Before students and companies can use the application they need to register and once they

received their username/password they can log in. After registration students and

companies need to add a profile which will be stored in a database (together with their login

details). The profile can be edited at any time. Companies can then start posting job offers

which will be stored in the database. Student profiles consist of student details and skills

while job offers consist of company details, a job description and requirements. Skills and

requirements are to be submitted in form of predefined keywords so that they are easy to

be matched in later searches.

Once the data has been stored in the database students as well as companies can then

query the database and a query engine will try to match job offers with student profiles and

vice versa. At a later stage the student union is planning to replace the keyword search with

an intelligent query engine. It is a requirement that the application is designed following

object oriented principles and that it is easy to maintain and extend. If you have any ideas

for extensions in order to improving the usability of the application you are encouraged to

add these to your design.

The legacy system was operated by a secretary who would handle all the data input and

search requests. The only surviving design artefact from this system is the class diagram

shown in Figure 1.

COMP/2013 (Lab 03 - 2018)

2

Figure 1: Legacy system class diagram

YOUR TASK

Find your group project group members and work together for the object oriented analysis

and design of this application.

You are asked to produce the following for the new "Student-Internship Match" application:

Use-case diagram for the described application

Complete use case specification for a non trivial use case (e.g. "search for jobs")

Activity diagram of the same use case

Sequence diagram of the same use case

Class diagram

o Classes including key attributes and operations o Relationships

o Multiplicity indicators

Non trivial state machine diagram for one of the classes

Remember that this is a group exercise - so you should work together with your peers. We

recommend using pen and paper for an initial brain storming of your ideas (with the whole

team) and then swapping to Visual Paradigm for finalising your diagrams (you find Visual

Paradigm on the lab machines but you can also download and install a free Community

edition on your own machine). For finalising the diagrams perhaps two team members

should work together - XP style :). Make sure that all your diagrams are coherent in the end

and be prepared to explain your design to the lab helpers during the last half hour of the

lab.

COMP/2013 (Lab 03 - 2018)

3

Link for downloading Visual Paradigm Community Edition:

https://www.visual-paradigm.com/download/community.jsp

Visual Paradigm Quick Guide:

https://cdn.visual-paradigm.com/quickstart/quickstart.pdf

To improve ease of maintainability in the future, try to think about these points when you

design your system:

Keep it as simple as possible (KISS principle)

Keep similar functionality together, and different functionality apart (encapsulation)

o Also known as “high cohesion, and loose coupling”

How easy would it be to change a module or feature in the future?

How good are your diagrams at explaining the system to a new programmer?


站长地图