Software Engineering

profileMoeAl
ChangeRequestProject.docx

Read Motivation: Project work for understanding the rationale behind this assignment.  For this project, you need to use all the required tools and concepts you learnt in CSC4111 Lab assignments and the change process you learnt in CSC 4110 (Chapters 3 through 10).

Change Request Project:

Implement changes to the easyPaint application based on the individually assigned change request numbers  described in the document: Project_Change_Request_W2019.docx. Preview the document

Complete this project by collaborating with your assigned project group members for the related activities. Majority of this project's work is individual, but there are some activities that require collaboration with your project group members. Please follow the additional instructions below.

Activities required to complete this task:

1. Clone the project from the Project directory of your group repository. Locate your group number & the appropriate URL to access the git repository from the Project_Change_Request_W2019.docx file.

2. Perform the change processes with respect to your assigned change request number of the project. You must complete all the following steps of the process in sequence:

· Concept location->Impact analysis->Prefactoring->Actualization->Postfactoring->Verification

3. While you are implementing the required changes to meet the assigned change request number of the project, the sequence of software changes increase with complexity and code conflicts among the team members of your own group. You have to collaborate (via group meetings) to resolve conflicts with the code changes and also to develop refactored code.

4. Use the template described in this this document ProjectReport_Format.docx Preview the document and complete all sections. Name the report as YourLastName_FirstName_Project.docx and submit it before the due date to this canvas page. Note: Remove all hints in the document before submitting the report. You will lose 5 points if you leave any hints sections in the report.

5. As required in the report part, everyone must complete the impact analysis before the meeting. Discuss your estimated impact set with your teammates to find out all possible conflict files. The whole team then negotiates some deadlines before the final due time for pushing those files individually and submits the schedule to the repository. Anyone missing the group meeting will be considered as admitting the schedule decided by participated teammates.

6.  After completing the change, correctly push your modified source code to the assigned directory of the Git repository. Pushing to a wrong directory or ruining the baseline due to incorrect operations will result in a failing grade (0 points) for this part. Make sure you resolve any conflict prior to your push.

7. You are required to unit test your code by running it with some cases (i.e. functional testing). You should also specify and record the cases you use in the verification section of your report (e.g. “After implementing the change request X, I drew a dashed line out of the canvas and failed to do so. Then I drew a dashed line inside the canvas successfully. So this capability worked correctly for my test cases.”). Repository and report parts still follow the late policy in the syllabus.

8. Make sure to put adequate comments for the code where this change request's main logic is implemented.

9. Please read the additional remarks section for your code changes.

Some additional Remarks: (1) Every file in the original baseline belongs to source files, so find a way to keep them distinguished with those redundant files generated after running CMake or Visual Studio. (2) Each path of dependency search (depth-first) can stop at a library type (e.g. String, Qt types) or if there is no more supplier in that path. (3) Redundant files are not valid results for Concept Location/Impact Analysis. Review of lab assignments you did can help you distinguish those files. (4) If CMakelist.txt is changed, you also need to modify easyPaint.pro accordingly to complete the change. (5) If you do not understand a method, a good way is modifying that method, then executing the program to compare the difference. (6) Do NOT push any redundant file to the repository (DLLs, binary files folder, etc.). Move the new source files in correct folders if you add them (inspect the folders in the 1st baseline of easyPaint to make sure). (7)Push only the files with extension:  *.cpp, *.h, *.rc, *.bmp, *png, *.ico

Grade Points: 1. Report: 40% 2. Working code and correct Git submission: 60%

Any questions you have please let me know as soon as possible. I will not answer questions at the last minute.