首页
网站开发
桌面应用
管理软件
微信开发
App开发
嵌入式软件
工具软件
数据采集与分析
其他
首页
>
> 详细
CS-665程序代做、代写Python,c/c++编程
项目预算:
开发周期:
发布时间:
要求地区:
CS-665: Software Designs and Patterns
Class Project
This document should not be disseminated outside the purview of its intended purpose.
You Choose (20 points)
GitHub Project Template Link
https://github.com/edorsini/cs-665-project-template
Application Description
One of the key requirements for this course is the final project, which counts for 20% of the
grade and must be completed individually. This project presents an opportunity for you to
demonstrate your software design skills by solving a problem that interests you and presents a
suitable challenge.
During the course, we have covered a variety of design patterns, including the Strategy, Factory
Method, Abstract Factory, Singleton, Prototype, Command, Observer, State, Template, Facade,
Decorator, Composite, Adapter, Proxy, Iterator, and Mediator patterns. However, there are many
additional design patterns that can be used in Java programming, as listed on the website Java
Design Patterns.
Boston University Metropolitan College
The final project provides you with the opportunity to showcase your understanding and use of
design patterns in solving a real-world problem.
Your main objective for the class project is to expand your knowledge of design patterns. You
should choose a design pattern that was not covered in our class, study it on your own, develop
a unique use case scenario for it, implement the pattern in your preferred programming
language, and create a presentation that showcases the design pattern and your scenario.
It is highly recommended to utilize a combination of design patterns in your project, as this
mirrors the way design patterns are utilized in real-world software projects.
To get started, you should review the list of design patterns and select one that you find
interesting. Some examples of important patterns that were not covered in depth in our class
include the Bridge, Builder, Callback, Delegation, and Thread Pool patterns.
Please note that your project idea should not be taken from existing books or websites and
should be a unique project based on your own original ideas.
Also note that the implementation of a graphical user interface is not necessary. To demonstrate
the functionality of your implementation, you should implement unit tests.
Tasks
Implementation Description (2 points)
In your implementation of this application, it is important to consider software design principles.
This section outlines the main software design concepts and their goals.
For example:
● Explain the level of flexibility in your implementation, including how new object types can
be easily added or removed in the future.
● Discuss the simplicity and understandability of your implementation, ensuring that it is
easy for others to read and maintain.
● Describe how you have avoided duplicated code and why it is important.
● If applicable, mention any design patterns you have used and explain why they were
chosen.
Boston University Metropolitan College
Ed Orsini | edorsini@bu.edu
We recommend that you write this description in a README.md file using MarkDown format
(https://spec.commonmark.org/current/) and add the file to the root folder of your project. This
should be done after completing the other tasks in this assignment.
UML Class Diagram (5 points)
Develop a class model for your application, consisting of 5 to 8 of the most crucial classes, that
encompasses the features of the described use case scenario. Only include essential and
non-trivial methods.
Java Solution (13 points)
Utilize GitHub Classroom to create a private repository for your assignment.
● Commit your code to the private Github repository created for this assignment.
● Follow the project templates given to implement your project.
● Submit a zip file that includes the implementation package, with a README.md file
explaining how to compile and run the implementation. Ensure that the zip file includes
all subdirectories of the project, excluding any binary files. The zip file should not exceed
10MB in size and should only contain source files, not generated binaries.
● Provide clear and thorough documentation within the code. It is best to write the
documentation as the code is being implemented, rather than postponing it for later.
● Adhere to the Google Java Style Guide
(https://google.github.io/styleguide/javaguide.html).
● Ensure that the solution can be compiled using the mvn compile command.
● Implement JUnit tests to verify the functionality of the implementation. A minimum of
3-5 JUnit tests required.
The example below is found in the project template as an example in the following file:
Boston University Metropolitan College
Ed Orsini | edorsini@bu.edu
Using GitHub
Use GitHub for all your assignments.
1. Sign up or log in to your GitHub account.
2. Click the "New repository" button, located on your GitHub dashboard.
3. Enter a name for your repository, and provide an optional description.
4. Select whether to initialize the repository with a README file, .gitignore file, or license.
5. Click the "Create repository" button.
Your new repository will be created, and you can start uploading your code and other files. If you
have an existing project, you can use the "Import code" feature to upload your files to the new
repository. You can then use the files that are provided here as the skeleton of your project:
https://github.com/edorsini/cs-665-project-template
Submission
When you have completed your assignment:
1. Ensure that you have the latest version of your code saved on your computer or
downloaded from GitHub.
2. Compile all results from the three tasks into a single document, such as a PDF file for
the UML diagrams.
3. Zip all of your code and the document together into one .zip file. Remember to remove
any binary files, which are usually found in the bin/ or target/ folders, as they can
significantly increase the size of your zip file.
Boston University Metropolitan College
Ed Orsini | edorsini@bu.edu
4. Verify that you have correctly uploaded the zip file. To do this, download the file, unzip it,
and confirm that the contents are correct and that the file is not damaged. Please note
that we will only be able to evaluate the zip file uploaded to the blackboard, and any
incorrect or damaged files cannot be evaluated.
After completing your assignment, you can download a ZIP file of your repository using the
green download button on GitHub. Make sure to upload this ZIP file to Blackboard. It's important
to note that we will be grading both the final ZIP file uploaded to Blackboard and the history of
your GitHub repository. Both versions should match. The purpose of having a ZIP file on
Blackboard is to provide an archived copy of your assignment.
Grading
Your solution should be a standalone program that can be compiled and executed following the
instructions provided in the README.md file. It's recommended to utilize the provided project
template and utilize build tools like Maven to integrate your implementation. If your program
satisfies all the required functionality, compiles, and runs successfully, you will receive full
points. Grading will be based on the following evaluation criteria, and points will be deducted for
each task accordingly.
● Your UML diagram will be missing important components such as Interfaces/Classes,
which will result in a 5% reduction for each missing component.
● To compile your solution, we will use the "mvn clean compile" command after
downloading, unzipping, and running the command on your project. Your code must
compile using Java JDK 1.8 or else it will result in a 10% grade deduction for the
implementation task.
● If your code includes functionality bugs, a 10% deduction will be applied for each bug
found.
● Your submission should include a README.md file that clearly explains your conceptual
solution, the steps to compile and execute the code. Failure to include such a file or not
providing all requested information will result in a 10% reduction of points.
● Your program must implement the requested functionalities, and if it does not, a 10%
deduction will be applied for each missing functionality.
● We will use jplag (https://github.com/jplag/jplag) to programmatically check for
plagiarism. Any solutions that are found to be an exact duplicate of someone else's will
not be accepted, and we will contact you regarding the issue.
Boston University Metropolitan College
Ed Orsini | edorsini@bu.edu
Late Work
Late work will not be accepted. We understand that exceptions can be made in extreme
circumstances with proper documentation. For instance, if you provide a doctor/dentist note that
verifies you were unable to meet the deadline due to illness, an extension may be granted.
Academic Misconduct in Programming
In a programming course like ours, it's crucial to understand the line between acceptable
collaboration and academic misconduct. Our policy on collaboration and communication with
classmates is straightforward: you may not share or receive code through any means, including
visually, electronically, verbally, or otherwise. Any other forms of collaboration are permitted.
When it comes to communication with individuals who are not classmates, TAs, or the instructor,
it is strictly prohibited. This includes posting questions or seeking assistance on programming
forums such as StackOverflow.
When using external resources such as the web or Google, a "two-line rule" applies. You may
search for information and access any web pages you need, but you may not incorporate more
than two lines of code from an external source into your assignment in any form. Even if you
alter the code, such as by changing variable names, it remains a violation to use more than two
lines of code obtained from an external source.
It is important to properly cite your sources by adding a comment to your code that includes the
URL(s) consulted during the construction of your solution. This not only helps to ensure
academic integrity but also aids in later recollection of your thought process.
Boston University Metropolitan College
软件开发、广告设计客服
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
软件定制开发网!