C++

Generic Programming and Library Development

Quarter 4, 2008

   Assignments
   Evaluation
   Exam
   Home
   ISIS
   Plan
   Points
   Presentations
   Slides


The CPH STL
The CPH STL project

The Open Tissue
The OpenTissue project

Review assignment

The purpose of this assignment is to perform a formal inspection of the existing components of the CPH STL (www.cphstl.dk). The students will be divided into about 10-15 groups and each group will inspect a separate component of the library. The idea is that the groups continue the work with the same component in the mini-project released simultaneously with this assignment, and also done in groups.

The inspections are done in two phases. First, the reviewers read the design and the code of the component and write a list of found defects. This list should be committed into the CPH STL CVS repository (module Review, directory Generic-programming-2008 in .txt format). This phase is done individually and the deadline for the defect lists is Friday, 23 May. Second, the reviewers meet in a formal inspection meeting on Tuesday, 27 May. We have reserved the whole day for these meetings (at 8-10, 12-14, 14-16, 16-18, and 18-20). One of teachers will be present in these meetings as a moderator. Other roles should be taken by the students.

To get started, read Chapter 21 on Collaborative construction from the book Code Complete [2]. A copy of this chapter is available at the kopirum (in a red box with label Jyrki). Before the review you should read the formal specification of the component under inspection. This can be found from Clause 23 of the C++ standard [1]. In the following checklist, questions referring to some typical mistakes found in earlier reviews are listed. See also the checklist given in [2, p. 491].

  • Is commenting done properly?
  • Are variable names descriptive?
  • Are all functions defined actually used?
  • Are any explicit types used even if generic types---depending on template parameters---should have been used?
  • Is it possible to make the programs shorter and easier to maintain?
  • Can the programming style be improved?
  • Is encapsulation done properly so that there are no trap doors?
  • Are the programs const correct?
  • Are allocators used adequately?
  • Are there any memory leaks?
  • Are the concepts used in the implementation within the bounds specified in the C++ standard?
  • Are the running-time requirements specified in the C++ standard fulfilled?
  • Are the iterator-validity requirements specified in the C++ standard fulfilled?
  • Are the exception-safety requirements specified in the C++ standard fulfilled?

Groups

Meeting Resources reserved Group Component
27/5 at  8-10 Office N226, Projektor 1 Jan & Wojciech dynamic array
27/5 at  8-10 Jyrki's office, Projektor 2 Frej & Jørgen red-black tree
27/5 at 12-14 Office N226, Projektor 1 Jens & Marc doubly-linked list
27/5 at 12-14 Jyrki's office, Projektor 2 Jon & Per levelwise-allocated pile
27/5 at 14-16 Office N226, Projektor 1 Matias & Simon binary heap
27/5 at 14-16 Office S203, Projektor 4 Bue & Søren binomial heap
27/5 at 14-16 Jyrki's office, Projektor 2 Franck, Morten & Stefan open-address hash table
27/5 at 16-18 Office S203, Projektor 4 Anders & Bo AVL tree
27/5 at 16-18 Office N226, Projektor 1 Anders, Pascal & René leftist tree
27/5 at 16-18 Jyrki's office, Projektor 2 Asger weak queue
27/5 at 18-20 Jyrki's office, Projektor 2 Christian, Daniel & Filip hash table with chaining
27/5 at 18-20 Office N226, Projektor 1 Klaus & Michael singly-linked list
28/5 at 14-16 Jyrki's office, Projektor 2 Bergur AA tree
28/5 at 16-18 Jyrki's office, Projektor 2 Henrik 2-3 heap
    segmented array
    BB[alpha] tree
    (a, b) tree
    navigation pile
    maxiphobic heap
    multiary heap

References

[1]
American National Standards Institute: International standard: Programming languages---C++, 2nd edition, ISO/IEC (2003) [pdf]
[2]
Steve McConnell, Code complete: A practical handbook of software construction, 2nd edition, Microsoft Press (2004)
This page was last modified by Jyrki Katajainen on 09.06.2008.