软件维护代写 | COMP 3350 Software Maintenance Assignment
本次美国代写是软件维护的一个Assignment
Download the source code for the legacy software system from UMLearn. Then, complete
 the following activities. Provide brief written responses for each one (no more than 1 or 2
 paragraphs for each). Number your responses to match the corresponding activities.
Submit your response in a PDF document by the end of the day on the assignment due date
 shown on UMLearn.
Please note that all activities except the first must be done independently. All written work
 must be your own thoughts, in your own words. Before you submit your assignment, you
 must agree to an Honesty Declaration affirming that you have done your own work.
1. Build the system from the posted source. You may do this on your own, or together with
 other members of your project team. Note that you must participate in this activity, not
 simply watch as others do it. As your response for this activity, indicate “I participated in
 building the system”, and list the names of everyone else who also worked on this task.
2. Describe the process of building the system. Were there any difficulties (compatibility,
 dependencies, etc.)? Did you have to modify anything, or find additional libraries?
3. Explore the system to get a feel for what it does. As your response for this activity, describe
 briefly the purpose of the system, and include a screenshot.
4. Explore the source code for the software. Is there a discernable architecture? Draw an
 architectural diagram (or as close as possible) to show the high-level system architecture.
5. Choose two distinctly different maintenance tasks for the system: one new feature, and one
 fix or enhancement to existing code. You will not actually change the code. Describe, in
 high-level terms, these tasks. Label them “a” and “b”.
6. For each task, determine the dependencies relevant to the task. Start with the code where
 the modification will present itself, and drill down into the source code to find the most
 likely lowest-level component where the change will need to be made. Identify the path of
 dependencies by class name. For each, give a brief (one-sentence) justification that explains
 why this is a relevant dependency. If you use any tools to help identify dependencies,
 describe them. Label each sequence of dependencies with the same “a” and “b” used above.
7. For your fix or enhancement, try to locate a seam as close as possible to the lowest-level
 component from the previous activity. For your new feature, choose one component that
 will be a dependency of your new code. What kind of tests would you need to implement
 for that component? What internal or external dependencies need to be broken in order to
 write these tests? Are there any refactorings that could or should be performed? Describe
 them briefly. Again, label your answers using “a” and “b”.
8. Discuss briefly the maintainability of this source code. Are there any aspects of the project
 (architecture, design, code, etc.) that make it particularly easy or difficult to modify?

 
                        