|
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)
|