CSCI 2134 - Software Development - Assignment No.4


  • 作业标题:CSCI 2134 - Software Development - Assignment No.4
  • 课程名称:Dalhouse University CSCI 2134 Software Development
  • 完成周期:1天

Objective

Extend an existing code-base and perform some basic class-level refactoring in the process.

Preparation:

Clone the Assignment 4 repository
https://git.cs.dal.ca/courses/2021-fall/csci-2134/assignment4/????.git
where ???? is your CSID.

Problem Statement

Take an existing code-base, add required features, test it, and refactor it as necessary.

Background

The online auction system is moving on to version 2. Your boss wants you to add some new
features to the program that have been requested by the customer. She has hired you to extend
the code. She also mentioned that the original designer of the code did not do a great job and
wondered if there was any way to improve the code. She will provide you with (i) the code-base,
(ii) the existing requirements, and (iii) the specification of the additions to be made.
Your job is to (i) create a design for the additions, (ii) implement the additions, (iii) create unit
tests for the additions, and (iv) identify opportunities for class-implementation and class-interface refactoring, and (v) do some refactoring where appropriate. May the source be with you!

Task

  1. Review the old specification (specification.pdf) in the docs directory. You will absolutely need to understand it and the code you are extending.
  2. Review the extension specification at the end of this document, which describes all the extensions to be done.
  3. Design and implement the extensions using the best-practices we discussed in class.
  4. Provide a readable, professional looking UML diagram of the updated design. This should be
    a PDF file called design.pdf in the docs directory.
  5. For each new class and method that you implement, you must provide unit tests in the form
    of Junit5 tests. Depending on your design, you may also need to modify previous unit tests.
    You should design your classes and modify existing classes to facilitate the testing.
  6. In a file in the docs directory called refactoring.txt list all the class-implementation
    and class-interface refactoring that you will do and refactoring that you would recommend.
  7. Perform any class-implementation and class-interface refactoring that you promised to do.
  8. Bonus: Research the Factory pattern that is used to instantiate classes derived from the same
    superclass or interface. E.g., when you create different types of lots they could implement a
    Lot interface or be subclasses of an abstract Lot class and be constructed by a new LotFactory
    class. Implement the Factory pattern to improve the creation of objects. Be sure to update
    the UML diagram and provide unit tests.
  9. Commit and push back everything to the remote repository.

Grading

The lab will be marked out of 4 points:

。。。


文章作者: IT神助攻
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 IT神助攻 !
  目录