联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-21:00
  • 微信:codinghelp

您当前位置:首页 >> Java编程Java编程

日期:2021-11-06 11:54

SEG2105 - Introduction to Software Engineering - Fall 2021

Assignment 2 (5%)

Assignment due: October 27, 2021 (before midnight).

● Work in groups of 2.

● Create a group in Brightspace (Groups_Assignment2)

● Create or join a GitHub repository using the invitation below:

https://classroom.github.com/a/E4zD3Y_H

● The section “What to Submit” at the end of this document explains what and how to

submit. Late submissions or submissions by email will not be accepted.

PART 1 (Chapter 3) - 70 points

Instructions for setting up the OCSF and SimpleChat code can be found in the Brightspace.

1. E49, pages 104-105 (30 marks): Comment each change as you go and mark the changes

using the same style of comment. Hand in changes to your code with each preceded by

a comment so the TA can see what you changed for this question. Your comment should

look something like this '// **** Changed for E49' and your initials. Furthermore, add

normal code comments explaining anything non-obvious in what you are doing.

2. E50, pages 104-105 (30 points): Additional changes to OCSF. Your comments should look

something like this '// **** Changed for E50' and your initials.

3. First, run your modified version of the server on port 7XXX (where XXX corresponds to

the last three digits of your student number), and two clients. (10 points)

1) Then, using the jps and jstack tools (or the tool of your preference), find how

many threads are currently running in the JVM. Take a screenshot of the console

showing clearly the number of threads and include it in your report. Make sure

your JDK bin directory exists in the PATH environment variable (5 points).

2) Type the command <netstat -aon> in your terminal and identify the port used by

your server connection. In Linux, you can use the command <netstat -vatn> . Take

a screenshot of the console and include it in your report. (5 points)

1

Info about the tools can be found here:

- https://docs.oracle.com/javase/8/docs/technotes/tools/unix/jps.html

- https://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/tooldescr016.ht

ml

- https://www.lifewire.com/netstat-command-2618098

- https://stackoverflow.com/questions/31385400/windows-7-command-line-jps-not-work

ing

See page 4 for an example.

PART 2 (Chapter 5)

1. Create a UML class diagram (DOMAIN MODEL) for the system described below. Make

sure you include correct multiplicity. Show all attributes (include their type) and

associations plus at least five important operations. If generalizations are necessary,

show them too. Marks will be given for effort, even if you do not have a perfect solution.

However, marks will be lost for the common types of mistakes we talked about in class

(e.g. poor generalizations, wrong multiplicity, etc). You don’t need to include getters,

setters, or constructors in your class diagram. Return types or parameters are not

necessary for operations. Write down any necessary assumptions. (30 points)

Imagine you were re-creating Piazza. Model the classes, associations and generalizations

necessary. You need to track at least the following:

● Students who have accounts, along with their student number, name and email, their

cell phone number (if they are using one), courses they have access to, the questions

they have responded to and their grades on those questions, plus their total grade so far

in each course. Students can make private or public notes, comment on existing notes or

answer questions.

● Courses, which have a course code, title, semester, date, status (enable/not enabled),

description. A course can only be taught by one Professor. Only a Professor can edit the

class list, create questions, notes and create tournaments.

● Professors who create questions in courses (and there may be multiple

offerings/sections of the same course). A Professor may create multiple courses.

● Posts can be created by students or professors. A post needs to have a tag (category)

when created and can be private (seen by the professor only) or public (the entire class).

A post can be of two different types: Question or Note.

o Notes contain a summary (title) and the details of the note. Notes can be added

to the student’s reading list (when created by professors) or can be sent via

email. Notes also have a tag (category). Notes can be created by both professors

and students.

o Questions (can only be created by professors) their possible answers and which

of the answers is correct. Each question also has a grade to be awarded for

students who try it, and a grade to be awarded for students who get the answer

2

right. Each question also has a tag (category) and a status: ‘Active and Visible’,

‘Active’, ‘Visible’, ‘Review’ (students can see their answer), ‘Inactive’, ‘Closed’ and

‘Homework’ (questions are assigned to students as homework). Questions

assigned as homework must be answered before a specific date and time. All

Questions have some text asking the question and then accept answers of

various kinds:

? Multiple choice (with the option to allow the user to select just one or

many answers).

? Text (with maximum number of characters and lines that can be specified

by the maker)

? A numeric answer.

? A (single) word answer.

● Tournaments: Tournaments allow students to review material or demonstrate their

understanding in a fun and engaging way. In tournaments, students compete against

each other. Only Professors can create tournaments. A tournament has a starting date

and time, a set of questions (existing ones) and the number of rounds. In tournaments, a

profesor can specify the following:

o Max. attempts per question

o Length of each round (in seconds)

o Participation weight

o Correctness weight

o Penalty for incorrect answer

______________________________________________________________________________

What to submit: Submit via Brightspace the following TWO files:

● A document containing your answers for part 2. Make sure you submit a clear

screenshot of your class diagram.

● A README file containing your names and IDs and the link of your GitHub repository.

The Github Repository should contain the following:

● Your entire simplechat *directory* (DO NOT submit the OCSF framework directory and

DO NOT modify the OCSF framework).

Bonus +10 points. Use Umple for PART 2, question 1 OR

Bonus +10 points. Use a professional tool (Visual Paradigm Community Version, ArgoUML,

Papyrus for Eclipse) for PART 2, question 1.

3

ADDITIONAL DETAILS

How to use JPS/STACK commands:

First, type

jps -v

it will give you a list of process IDs,

then, take note of the process ID, and run.

jstack the_process_id

Ex.

4


版权所有:编程辅导网 2021 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp