首页
网站开发
桌面应用
管理软件
微信开发
App开发
嵌入式软件
工具软件
数据采集与分析
其他
首页
>
> 详细
代写159.251 Software Design and Construction
项目预算:
开发周期:
发布时间:
要求地区:
Massey University
159.251 - Software Design and Construction
Assignment 1
Deadline and Late Submission Penalties
You must submit your final work using the stream submission system no later than 9 October
2024 at 11.59 pm. The penalty is 20% deducted from the total possible mark for every day
delay in submission (one day late – out of 80%, two days late then out of 60% … etc.).
You are expected to manage your source code and other deliverables using version control.
“The Cat Ate My Source Code” is not a valid excuse for a late submission.
Contribution to Final Grade of the Course: 22%
Please read carefully, as there are many parts that you should be aware of.
Overview
You are to work in self-selected pairs (i.e., select your teammate) to create the program
defined below. You will need to use git to manage source code contribution and integration
between the two members. All project issues and changes should be tracked using an issue
tracker (set up within your repository).
Note: Both group members will receive the same mark unless it is clear that the work is
predominantly that of a single person. These will be sorted out on a case-by-case basis. The
partition of the work is entirely up to you and your project partner.
Part of this assignment is to become familiar with using git for version control. You must use
GitHub for this assignment, and the repository must be private.
IMPORTANT: use the following conventional name for your repository: 251-Assignment1-
2024-FirstName1-FirstName2. For example, if the first student is Sarah and the second
student is Li, then the repository name should be (251-Assignment1-2024-Sarah-Li).After submitting your assignment on Stream, you must send an invitation to your GitHub
repository to one of our markers. After the submission is completed, one of the markers
will contact you to request access to your repository.
Tools Required
● IDE independent: You may develop this in any IDE or code editor you like! The tools
included here are available for major IDEs and Maven dependencies.
● Git and GitHub(for version control)
● GitHub Issue Tracker (for log changes and bugs)
● Maven (for dependency management and process automation)
● A code metrics tool
● Docker for packaging
● PMD (for code quality check)
● other libraries to perform the different functionalities (you are free to search and use
any library that will help in implementing any of the functionalities).
Tasks
1) Developing a text editor program using Java – see details below.
2) Source code and version control:
a) create and maintain a git repository on your local machine for your source code
and on a remote repository to provide a central server accessible to both
members and also accessible for marking.
b) keep an audit trail of commits in the git repository. These will inform part of
the marking.
c) make sure that you actively (almost daily) use git features such as branching
and merging (not only on the last day before submission!).
d) write your configurations in YAML file. You must submit at least one
configuration file that works with the text editor. This could be a file with the
default parameters for the text editor, such as the default text format or default
font colour.
3) Log changes and bugs: keep track of changes and issues – use an issue tracker as
part of your version control. Please use the same issue tracker that is provided by your
Git project hosting site (i.e., the “issues” feature in GitHub). This has to be actively
used!
4) Automation: automate your process so it is easier to load files and generate reports.
Use Maven to declare all dependencies. If you are using any external libraries, do not
include any jar files with your submission but add them as Maven dependencies! Also,
don’t try to change your Maven files into a different format. The pom file should be an
XML file.
Build those Maven build tasks in your Continuous Integration (CI) pipeline using GitHub
Actions. Make sure that the configuration (YAML) file is correctly added.
5) Readability: ensure you write clean code, correctly handle exceptions, and add
comments to explain your code. Make your code “human-readable!”.
6) Quality: check the quality of your code and outputs
2a) use code quality tools to report metrics data of your program. The metrics report
generated from your code should be submitted. The process should be
automated and included in your Maven dependencies (see Section 2 below).
b) (Bonus) Write unit tests using JUnit to test (at least) the following functionalities:
open, save and search (see details below).
7) Deployment: package your project and deploy it into a Docket container (a Windows
or Linux container). This must allow the markers to run the Maven project from the
Docker container (without the need to install or configure the environment). Make sure
to include your Docker file with your project, and to include details on how to load and
run your container in the README file.
Make your own text editor!
1. The Text Editor
Your program is basically a standard text editor (or text processor) – something similar to
Notepad, Atom, or Geany. The editor should allow you to write text on it using standard text
encoding formats (i.e., ASCII/UTF-8). You should develop this program in Java. Note: a
standard text file (mostly) does not need any additional metadata files to assist the reader in
interpretation,
The main functionalities of the text editor are:
- Full GUI access to the application
- Create a menu of options at the top of the editor, similar to the following
The menu should (at least) include the following sub-menus: File, Search, View, and Help
- Implement the following functionalities:
o New function: to create a new (fresh) window.
o Open function: to read other text files (just standard .txt files). This should
allow users to navigate the file system to select\search for a file.
o The ability to read OpenDocument Text (.odt) files. This is part of the Open
function.
o Save function: save text output into .txt file format. This should allow users to
navigate the file system to save the file in a selected drive/location.
o Search: search for text within the screen (this will be tested based on a single
word)
o Exit: to quit the program – close all windows.
o Select text, Copy, Paste, and Cut (SCPC) capabilities.
o Time and Date (T&D): retrieve the current time and data from the OS and
place it at the top of the editor's page.
o About: display the names of both team members and a brief message in a
popup message box.
o Print function: allow your editor to print text by connecting it to the local printer
in your machine (similar to any other text editor you have used).
3Harder functions
● ability to read source code files such as .java, .py, .cpp or similar. different
syntax should be shown in different colours. For example:
● reading and displaying other file formats beyond txt and source code files:
mainly, Rich Text Format (RTF) and OpenDocument Text (ODT) format.
Hint: you can use an external library to do so.
● include a PDF conversion function in your editor, so the file can be saved in
PDF format (for standard text files). Use an external library for this, such as
Apache PDFBox.
Note: There is no specific requirement regarding which GUI library you should use, but try to
make your program as cool as possible!
2. Code Quality and Management
Once development is done, you must report metrics data using a metrics tool. You may use
a software metrics tool (see some examples above). Code quality report from PMD should
also be submitted with your assignment.
a) generate a metrics data report from any software metrics tool (see below for the
specific metrics) and add the report file (.txt or html) to $project$/reports/metrics
b) create a new maven goal called “pmd” that should generate a metrics report using
PMD (see below for the specific metrics) and add the report files to
$project$/reports/pmd.
● Code Size (per class): Lines of Code (LOC) and Number of Methods (NOM)
● Code Complexity: Cyclomatic Complexity and code coupling metrics
(Coupling Between Objects (CBO) OR Efferent Coupling).
● Code Quality Report from PMD. Use only Java Basic rules such as Naming
Convention for classes and variables (extract the full report and include it with
your submission).
Submitting your assignment
45
Submission must be completed on Stream using the Assignment submission site.
Share your program on your private GitHub repository with us by sending a share
invitation to the user. This is to track commits on your Git repository.
Include a README file in the top level of the project
The Readme.md is a file with a Markdown syntax (this should be correctly formatted
as a markdown) that contains:
1. the names & IDs of BOTH MEMBERS of the group.
2. clear instructions on how to run your program and if there are any other
directories, what they contain.
3. for each student, a couple of the most significant git commit IDs show the
work of each individual member of the group.
4. a link to your private GitHub repository. A marker will contact you after
submission to request access to the repository. Note: there will be a penalty if
the repository is found to be public.
Who submits what?
Only one member of a group should submit a complete project, the other just submit
the Readme.md file:
● member A: submit (through Stream) a single compressed (e.g., zip or tar) file
that contains the assignment (Maven project files and other configuration
filess without the /target directory)
o name the compressed file with both members’
FirstName_LastName and ID numbers (e.g. Xiaofeng_Liu-87878787-
Susan_Jones-01010101.zip)
● member B: submit just the README.md file containing your name and that of
the partner who is submitting the zip/tar file. This is so Stream knows that
you've submitted something.
Markdown Quick guide
https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing
and-formatting-on-github/basic-writing-and-formatting-syntax6
Assessment
软件开发、广告设计客服
QQ:99515681
邮箱:99515681@qq.com
工作时间:8:00-23:00
微信:codinghelp
热点项目
更多
代做ceng0013 design of a pro...
2024-11-13
代做mech4880 refrigeration a...
2024-11-13
代做mcd1350: media studies a...
2024-11-13
代写fint b338f (autumn 2024)...
2024-11-13
代做engd3000 design of tunab...
2024-11-13
代做n1611 financial economet...
2024-11-13
代做econ 2331: economic and ...
2024-11-13
代做cs770/870 assignment 8代...
2024-11-13
代写amath 481/581 autumn qua...
2024-11-13
代做ccc8013 the process of s...
2024-11-13
代写csit040 – modern comput...
2024-11-13
代写econ 2070: introduc2on t...
2024-11-13
代写cct260, project 2 person...
2024-11-13
热点标签
mktg2509
csci 2600
38170
lng302
csse3010
phas3226
77938
arch1162
engn4536/engn6536
acx5903
comp151101
phl245
cse12
comp9312
stat3016/6016
phas0038
comp2140
6qqmb312
xjco3011
rest0005
ematm0051
5qqmn219
lubs5062m
eee8155
cege0100
eap033
artd1109
mat246
etc3430
ecmm462
mis102
inft6800
ddes9903
comp6521
comp9517
comp3331/9331
comp4337
comp6008
comp9414
bu.231.790.81
man00150m
csb352h
math1041
eengm4100
isys1002
08
6057cem
mktg3504
mthm036
mtrx1701
mth3241
eeee3086
cmp-7038b
cmp-7000a
ints4010
econ2151
infs5710
fins5516
fin3309
fins5510
gsoe9340
math2007
math2036
soee5010
mark3088
infs3605
elec9714
comp2271
ma214
comp2211
infs3604
600426
sit254
acct3091
bbt405
msin0116
com107/com113
mark5826
sit120
comp9021
eco2101
eeen40700
cs253
ece3114
ecmm447
chns3000
math377
itd102
comp9444
comp(2041|9044)
econ0060
econ7230
mgt001371
ecs-323
cs6250
mgdi60012
mdia2012
comm221001
comm5000
ma1008
engl642
econ241
com333
math367
mis201
nbs-7041x
meek16104
econ2003
comm1190
mbas902
comp-1027
dpst1091
comp7315
eppd1033
m06
ee3025
msci231
bb113/bbs1063
fc709
comp3425
comp9417
econ42915
cb9101
math1102e
chme0017
fc307
mkt60104
5522usst
litr1-uc6201.200
ee1102
cosc2803
math39512
omp9727
int2067/int5051
bsb151
mgt253
fc021
babs2202
mis2002s
phya21
18-213
cege0012
mdia1002
math38032
mech5125
07
cisc102
mgx3110
cs240
11175
fin3020s
eco3420
ictten622
comp9727
cpt111
de114102d
mgm320h5s
bafi1019
math21112
efim20036
mn-3503
fins5568
110.807
bcpm000028
info6030
bma0092
bcpm0054
math20212
ce335
cs365
cenv6141
ftec5580
math2010
ec3450
comm1170
ecmt1010
csci-ua.0480-003
econ12-200
ib3960
ectb60h3f
cs247—assignment
tk3163
ics3u
ib3j80
comp20008
comp9334
eppd1063
acct2343
cct109
isys1055/3412
math350-real
math2014
eec180
stat141b
econ2101
msinm014/msing014/msing014b
fit2004
comp643
bu1002
cm2030
联系我们
- QQ: 9951568
© 2021
www.rj363.com
软件定制开发网!