Software Engineering (SE) November 06, 2018

In Project 3: TDD you will follow a TDD process to implement code. It is due on Friday, Nov 16. I strongly advise that you start right away.

The input for a (source) code-analysis project is source code that can come from multiple sources, including solitary files (e.g., main.cpp), directories of source-code files (e.g., src/), source-code archives (e.g., project.tar.gz,, and standard input (i.e., stdin, e.g., std::cin).

In addition, solitary files and source-code archives can include a URL, e.g.,

To perform the code analysis, the source code is wrapped in a single XML element with metadata about the source code. For example, let’s say we have the C++ code:

then the matching XML form of the code is:

The programming language is most often determined from the file extension, e.g., .cpp for C++, but there are other options. The variety of input sources and program options for the metadata follows the rules stated below.

Other possible attributes include filename, url, hash, and LOC (lines of code) Full Attributes Example. The hash is a SHA1 hash, 40 hexadecimal characters representing 20 bytes, which is what Git uses.



Error Handling

All error messages are written to standard error (i.e., std::cerr), and the function should return an empty string


Your score will depend on: