Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

FIT3077 Software Engineering: Architecture and Design

Sprint Two (25%) Specifications

Due: 11:55 pm, Thursday, 27th April

Semester 1, 2023

Sprint 2 Deliverables (25% of final unit mark)

All tasks are mandatory.

1.    Tech-based Work-in-Progress (software prototype)

●  A board with nine tokens set up in the correct initial positions.

●  The pieces can move on the board. They don’t have to be legal moves.

●  A basic User Interface is set up to be able to demonstrate the above.

2.    Architecture and Design Rationales

●  A  Complete  Class  Diagram  for  the  9MM  game,  including  Class  names,  attributes,  methods, relationship between classes, and cardinalities

●  Design Rationales (explaining the ‘Whys’ )

○  Explain two key classes that you have debated as a team, e.g. why was it decided to be made into a class? Why was it not appropriate to be a method?

○  Explain two key relationships in your class diagram, e.g. why is something an aggregation not a composition?

○  Explain your decisions around inheritance, why did you decide to use (or not use) it? Why is your decision justified in your design?

○  Explain how you arrived at two sets of cardinalities, e.g. why 0.. 1 and why not 1 …2?

○  Explain  why  you  have  applied  a  particular  design  pattern  for your software architecture? Explain why you ruled out two other feasible alternatives?

General Guidance

●   You do not have to implement the rules of the game (just yet).

●   You should not implement any of the advanced features.

●   As a guide, aim for the design rationales to be roughly between 2 - 4 pages of text (A4, Times New Roman 12 points font).

●     To avoid losing marks, ensure that multiple Git commits are made throughout the Sprint by all team members, and that all submission instructions are followed.

●    Rest of the description is same as for Sprint One, except see new rubric below.

●    In this assessment, you can use generative artificial intelligence (AI) in order to consider design alternatives/options  and  explore  their  advantages  and  disadvantages  only.  Your  final design decisions should be your own (show if it matches AI recommendation) along with your rationale description.

●   Any use of generative AI must be appropriately acknowledged (see Learn HQ).

General    Project    Technical    Requirements    and    Expectations (changes since Sprint 1 highlighted in grey)

There are several expectations, conditions and restrictions that apply to all project teams throughout the entirety of the project (i.e. all sprints).

1.  The object-oriented programming languages you are approved to use for the project (throughout all of the sprints) are Java, Python, C++, C#, TypeScript, Smalltalk and Eiffel.

2.   The application you will eventually develop must be implemented as a standalone application that is able to run locally on a single device and does not require separate server-side code to be written. Teams wanting to attempt server-side implementations should consult with the teaching

team and gain pre-approval.

3.   All work done  (from Sprint  1 onwards) must be committed and pushed to the official Monash GitLab      repository      provided     to      each     project     team     at     the     following     URL:

https://git.infotech.monash.edu/fit3077-s1-2023/<YOUR-MOODLE-GROUP-NAME>/project

4.   Unless explicitly stated otherwise (in writing) by the teaching team, any work done, committed and pushed to any personal Git repository or only available on personal working environments will not be accepted for assessment. Work should be done consistently throughout each sprint, and not started near the due date and rushed through.

5.   Each member of the team must contribute to the design and implementation of all deliverables, and must not work in silos. Teams must not delegate entire portions of a particular task or type of

deliverable (e.g., user stories) to a single team member. For example, in Sprint 2, each member

of  the  team  is  expected  to  contribute  to,  and  work  on  their  fair  share  of implementing the tech-based WIP, some architecture/class diagram work, and some rationales. A single member must  not  bear  the  sole  responsibility  of  implementing  the  entire  tech-based  WIP, the entire

architecture/class diagram and/or writing all rationales.

6.  Although each project team is offered the flexibility in choosing technologies that they will use for the project, all teams need to be able to demonstrate how they would be able to adequately and properly  apply  object-oriented  design  and  architecture  with  their  chosen  technologies.  The teaching team reserves the right to make the final decision whether or not a team’s choice of technologies for the project is suitable/acceptable.

7.  Any issues that arise which will potentially affect the progress or performance of your team must be raised as soon as possible to the teaching team.

Project Overview, Description and Requirements

Monash University is planning to run an exhibition during Open Day in August that showcases student talent from various faculties, including the Faculty of IT. All prospective students, their family members and other visitors are all welcome to attend. Additionally, the Faculty of IT has invited a guest of honour by the name of Dr. Mills, an influential expert in object-oriented design, to the exhibition. Rumour has it that  Dr.  Mills is an avid fan of traditional games and hence, the faculty wants to ensure that there is something showcased in the exhibition that will be of interest to them.

After an extensive planning and negotiation process, the faculty has decided to approach your team to help develop a 9 Men’s Morris (9MM) game client application. For this project, your team has also been given some flexibility in terms of how the final game client will look like and what technologies will be used, but the game needs to be completely developed and ready by mid-June. The faculty would like to check-in with your team regarding the progress of the game client development every few weeks so that everything  remains  on  track  and  any  issues  hindering  the timely completion of this project can be mitigated as quickly as they arise.

Since Dr. Mills is particularly passionate about object-oriented design and there is a possibility that Dr. Mills might want to speak to your team regarding how the game client has been developed, the faculty has also requested that the game client be developed with proper software development practices and object-oriented approaches/principles in mind throughout this project.

The  faculty would  like  a  standard  implementation  of the  9MM  game  and would  like  your team to implement additional functionality, as follows:

1.   Basic Requirements for Basic Prototype (Sprint 3 deliverable): The game client must be fully able to play 9MM according to the standard rules, and the game should be playable within the same game client instance by two players that will take turns in making their respective moves.

2.  Advanced  Requirements  for  Final  Prototype  (Sprint  4  deliverable):  Select  ONE  of the following advanced requirements to add to the Basic Prototype. Teams of 4 members will need to implement any TWO of the advanced requirements.

a.   Considering that visitors to the student talent exhibition may not necessarily be familiar with 9MM, a tutorial mode needs to be added to the game. Additionally, when playing a match, there should be an option for each player to toggle “ hints” that show all of the legal moves the player may make as their next move.

b.   Players  are  allowed  to  undo  their last move and the game client should support the undoing of moves until there are no more previous moves available. The game client also needs to be able to support saving the state of the currently active game, and be able to fully reload any previously saved game(s). The game state must be stored as a simple text file where each line in the text file represents the current state of the board and stores information about the previously made move. It is anticipated that different file formats will be required in the future so any design decisions should explicitly factor this in.

c.   A single player may play against the computer, where the computer will randomly play a move  among  all  of the  currently  valid  moves  for the  computer,  or  any  other  set  of heuristics of your choice.

d.  Allow a game of 9MM to be playable using two different game client instances - one made by your team and the other made by another team. Moves made on one game client need to be able to appear on the other game client as soon as they are made.

e.   Develop   a   3D   version   of  the   9MM   game.   This   advanced  functionality   is  only recommended for 4 people teams. Teams wishing to attempt this should discuss with the teaching team by the end of Sprint 2.

f.    If you have a brilliant and equally ‘sized’ functionality idea for the additional advanced feature, you can pitch it to the teaching team. Additional advanced functionality not listed above must be discussed with the teaching team and approved in advance, e.g. by end of Sprint 2.

Recording Sprint Contributions (hurdle)

Each team is required to have a single contribution log page for all team members in the wiki section of the team’s  project  in  Monash  GitLab that documents the contributions of each  member towards the particular sprint.  The link to the wiki section of each team is as follows:

https://git.infotech.monash.edu/fit3077-s1-2023/<YOUR-MOODLE-GROUP-NAME>/project/-/wikis/

Each team member should update the contribution log by adding entries that describe the pieces of work said team member had done, the start time and date, amount of time spent, who performed the work and if applicable, any other notes.  Each team member is not expected to immediately record each piece of work into the contribution log as soon as it is done, but is expected to record into the contribution log all of the unlogged work done thus far at least once or twice per weekYou SHOULD NOT update the contribution log on behalf of other team members.

Notes

    The  entirety  of  the  sprint  submission  will  be  marked  holistically  and  all  deliverables  are considered during assessment ofsubmitted work.

●    For the submission to be considered complete, rationales must be submitted as part of all sprint deliverables that require them.

●   The rationales submitted in Sprint Two will now carry marks.

Submission  Instructions  (changes  since  Sprint  1  highlighted  in grey)

To avoid losing marks, please ensure that you follow the submission instructions below carefully:

Monash GitLab Repository

●   As  mentioned  in  the  General Project  Technical Requirements  and Expectations  section,  all project work needs to be pushed to your team’s provided Monash GitLab repository.

●    If you use any software tools to create any of your wireframes, diagrams or word documents, you MUST  export  the  wireframes  and  diagrams  as  JPEG,  PNG  or  PDF  file(s)  and  the  word documents as PDF file(s). Ensure these exported files are then pushed to your team’s repository in addition to the raw files from these tools. Otherwise you may lose marks for not providing your deliverables in a correct and/or readable format.

●   Neat and legible hand-drawn diagrams are acceptable but must be scanned at a high resolution and also pushed to your team’s repository.

●    For the purposes of final submission, all text-based/written/drawn sprint deliverables should be compiled into a single PDF document and subsequently pushed to the repository.

Moodle

●    In addition to all project work being pushed to Monash GitLab by the due date, your project work must also be submitted by the due date to MoodleSprint 2 Moodle submission checklist:

○    The current state of your repository downloaded from Monash GitLab as a ZIP file.

○    A single compiled PDF file containing all text-based/written/drawn sprint deliverables.

●   Only  one  team  member  (on  behalf of their  project team) needs to make the submission to Moodle. Submissions must be in the fully submitted state - drafts will NOT be accepted.

●   When submitting, please ensure that all files you intend to submit are included in the submission and your submitted file(s) can be properly opened/extracted/read before clicking submit.

Sprint Contribution Log

●   The contribution log must be done using the teams Monash GitLab wiki. The URL to the wiki is: https://git.infotech.monash.edu/fit3077-s1-2023/<YOUR-MOODLE-GROUP-NAME>/project/-/wikis/

●   You may create/use a separate wiki page for each team member’s contribution log, or use a single wiki page where each team member has their own section to log their contributions into.

●    Each team member must record in the contribution log the details of their own contributions towards the sprint. Each team member must update their log at least once or twice a week and a team member must not update the log on behalf of other team members.

Further Notes

Lateness

Penalty of 10% of the total available marks per day late or part thereof after the due date, including the weekends  .

Extensions

No  extensions  will  be  given  in  normal  circumstances.  An  extension  may  be  granted  in  special circumstances   as   per  faculty   policy.   Extensions   must   be  applied  online  at  the  following   link: https://www.monash.edu/exams/changes/special-consideration  .    For    any    queries    related    to    the assessments, please contact:

●    if you are at Clayton campus, the Clayton team at <fit3077.clayton-x@monash.edu>

●    If you are at Malaysia campus, Chong at <chong.chunyong@monash.edu>

Authorship

The work in this assessment is team-based and the final submission must be identifiable as a team’s own work. Breaches of this requirement will result in submitted work not being accepted for assessment and may result in disciplinary action. Refer to the Academic Integrity and Plagiarism/Collusion section that follows for more details.

Academic Integrity and Plagiarism/Collusion

Academic integrity is about the honest presentation of your academic work. It means acknowledging the work of others while developing your own insights, knowledge and ideas. You should take extreme care that you have:

●   Acknowledged  words,  data,  diagrams,  models,  frameworks  and/or  ideas of others you  have quoted   (i.e.  directly  copied),  summarised,   paraphrased,  discussed  or  mentioned  in  your assessment through the appropriate referencing methods,

●    Provided  a  reference  list  of  the  publication  details  so  your  reader  can  locate  the  source  if necessary. This includes material taken from Internet sites.

To fully acknowledge artificial intelligence models (such as Generative AI) which cannot be cited, you should include both a declaration of the generated material and a declaration of the technologies that were used. At a minimum, you should include a declaration of use that explains what technologies, if any, you have used to generate material in working on your assessment.

For more information about acknowledging the use of generative AI for assignments, please refer to the following link:

https://www.monash.edu/learnhq/build-digital-capabilities/create-online/acknowledging-the-use-of-genera tive-artificial-intelligence

If you do not acknowledge the sources of your material, you may be accused of plagiarism because you have passed off the work and ideas of another person without appropriate referencing, as if they were your  own.  Monash  University  treats  plagiarism  as  a  very  serious  offence  constituting  misconduct. Plagiarism covers a variety of inappropriate behaviours, including:

●    Failure to properly document a source;

●    Copyright material from the internet or databases;

●    Collusion between students.

For further information on our policies and procedures, please refer to the following link:

https://www.monash.edu/students/study-support/academic-integrity