编译器代写 | COMPILERS AND INTERPRETERS

这是一篇来自澳洲的关于软件工程过程和工具挑战2的软件工程代写

 

1 Overview

You are required to answer questions and write answers in your words or implement a code where it is asking. All questions are about lectures 5-10 (recording videos and notes) and tutorials weeks 6-9.

Purpose of the Assignment:

Assessing your knowledge that has been practiced from Week 5 to Week 10 including CI/Docker through different problem/questions that you supposed to answer.

2 Scenario

Microservices – Git – Docker-CI:

Scenario and requirements:

Assume we have an online Fund Management Service, and the main business function is “account management”. Therefore, we want to create two Microservices that can create, update, delete, and read persons and their accounts.

We also want to keep our code on Github and use Dev branch for implementation and release our final version through Main branch. For implementing each feature, we can use a feature branch that will be merged into Dev branch when the feature is ready.

Later we want to dockerise both services and dockerise our local database. So we can run them locally on different ports and being able to test by postman.

Writing three unit-tests per services for controllers.

Finally, we want to build, run and test our product through Github action CI ( with db)

Important: Database must be local, (not on cloud), and it is strictly MySQL for marking purpose.

Your application, for each service should have these packages under main package:

– controller

– dao ( you may add separate package as services)

– exception

– model

You need to have two services and therefore two apps that includes two end-points:

-Create Person API

Endpoint: http://localhost:8080/person (POST). Request Body

can be like:

{

“id”: 01,

“name”: “John Smith”,

“address”: “10 Albert

St, Melbourne”,

“postcode”: “3000”,

“age”: “25”,

“job”: “Engineer”,

“email”: “ js@email.com”,

“phoneno”: “03234654”

}

– Get Item API

Endpoint: http://localhost:8080/item/person{id} (GET).

– Get Item List API

Endpoint: http://localhost:8080/persons/person (GET).

– Update Item API

Endpoint: http://localhost:8080/psersons/person (PUT).

– Delete Item API

Endpoint: http://localhost:8080/persons/person (DELETE).

– Create Person API

Endpoint: http://localhost:8080/person (POST).

Request Body can be like:

Create Account API

Endpoint: http://localhost:8080/account (POST). Request Body

can be like:

{

“id”: 01,

“account type”: “Term Investment”,

“acc number”: “23456789”

“account name”: “J Smith”,

“Balance”: “300”,

“date”: date of today

}

There are three account types: Term Investment, Loan, Saving

– Get Item API

Endpoint: http://localhost:8080/account/account{id} (GET).

– Get Item List API

Endpoint: http://localhost:8080/accounts/account (GET).

– Update Item API

Endpoint: http://localhost:8080/accounts/account (PUT).

– Delete Item API

Endpoint: http://localhost:8080/accounts /account (DELETE).

Above end point are example, you can name your path as you like, but the body of the messages must follow the above suggestion.

2.1

Tasks:

  1. Create a spring boot application through your IntelliJ idea, make local Git and a remote Github. Push your skeleton code (A simple spring boot application with created packages based on above requirements to start with, into Github. Add the id “homy1” as admin to your Github. (2 marks doing all steps and first push)
  1. Create a Dev branch, then a feature branch for each class, and push your class into your feature branch, then merge it into the Dev branch when your feature is done.

You should have a feature branch per class. (3 marks for branching practice)

  1. Implement person and account microservice based on scenario with local database ( 20 marks – 10 for each services implemented properly)
  1. Add MySQL locally as your DB ( 5 marks)
  2. 3 unit-tests per controller ( 9 marks)
  3. Adding docker file and docker compose for each service and your db.
  4. Build, and run through CI. Your CI can have failures, but last build should be successful. ( 6 marks)
  1. Record yourself and test your app with Postman and show changes in database. Then explain your unit tests and Controller methods only through recording (1 minutes per method) Total recording should not be more than 6 minutes. Video is being used by marker for marking the student, no video means no mark, and you will receive any marks for tasks without recorded video. (8-10 minutes in total)

Hint 1: You may need two model classes for account services, one for account and another for account types.

Hint 2: Follow below guides as alternative solutions

https://rmit.instructure.com/courses/90756/discussion_topics/1798034

3 Learning Outcomes

This assessment relates to the following learning outcomes of the course:

  • utlilize various software engineering processes and their tools as required for best-practice development of software systems.
  • plan, identify and apply processes, standards and tools for phases of a softwareengineering life cycle for a substantial software development project.

4 Plagiarism

NOTE: Plagiarism is a very serious offence.

Plagiarism is the presentation of the work, idea or creation of another person as though it is your own. It is a form of cheating and is a very serious academic offence that may leadto exclusion from the University. Plagiarised material can be drawn from, and presented in, written, graphic and visual form, including electronic data and oral presentations. Plagiarism occurs when the origin of the material used is not appropriately cited.

Plagiarism includes the act of assisting or allowing another person to plagiarise or to copy my work.

The penalty for plagiarised assignment work may include reduction of marks awarded forthat assignment, including to zero, or even failure of the course for a particularly serious case, for a first offence. Subsequent offences may involve heavier penalties, including thepotential for expulsion from the university for repeat offences. Please bear in mind that RMIT University uses plagiarism detection software to detect plagiarism and that all assignments will be tested using this software.

See the RMIT website for more information about the university policies on Plagiarism and Academic Misconduct.

5 Submission Instructions

1- On Microsoft word page, type your name and student number, then add your Github repository link for all tasks, you add readme for any documentations.

2- Also download a zip from file from your code.

3- Add your recorded file and document and zipped code into a folder and zip the folder.

4- Submit through Canvas.