Workflows

Steven Zeil

Last modified: Jun 29, 2015
Contents:

Certain activities seem to occur almost continuously. The workflows describe the “daily work” of a software designer. The four workflows are

1 What Happens In Each Workflow?


The Topic of Interest

The topic of interest (TOI) is the part of the system that you are working with at the moment.

All the workflows have to be viewed in terms of the TOI.


What Happens in Each Workflow?

2 Iterative Application of the Workflows

 

3 Examples

3.1 Example: Class Discovery

Topic of interest:

What are the basic characteristics of a book in the library?


Analysis:


Design:


Implementation:

The team draws a simple UML class relationship diagram (these diagrams are introduced in a later lesson) describing the Book, BookCopy, and Author classes:

 


Validation:

3.2 Example: ADT Interface

Topic of interest: Developing the ADT interface for a Book.


Analysis:

The developer looks at the previous diagram and notes that each book can have multiple authors, so the interface must provide some way to access an unknown number of author objects.


Design:

The developer suggests using an iterator for this purpose, knowing this to be a common idiom in C++ for accessing an unknown number of “contained” objects.


Implementation:

The developer adds the lines

typedef ... AuthorIterator;

and

AuthorIterator begin() const;
AuthorIterator end() const;

to the class declaration for Book.


Validation:

The developer looks at some of the proposed algorithms that will work with books and authors, checking to see if those algorithms could be coded using an iterator style.

Satisfied that it will do so, the developer distributes the new class declaration to the rest of the development team for their approval.

3.3 Example: Test Design

Topic of interest:

Developing a unit test for the Book ADT


Analysis:

The tester reviews the required attributes and behaviors of the book class and concludes that it is reasonably self-contained and should be testable using a self-checking test.


Design:

The tester examines the Book interface and divides the member functions into

The tester writes a test driver that


Implementation:

The tester codes the unit test driver, using the team’s chosen test framework.

Validation:

The tester checks the unit test code against the Book interface to verify that each Book function is being invoked during the test.

3.4 Example: ADT Implementation

Topic of interest:

Implementing the Book ADT


Analysis:


Design:

The programmer decides that the std::list would provide appropriate performance and would make for a simple implementation as well.


Implementation:

The programmer writes the std list into the private section of the class declaration and codes the accompanying function bodies.


Validation:

The programmer runs the previously developed unit test on the new Book implementation.

3.5 Example: Training Manuals

Topic of interest:

Preparing training documents for the new automated check-in system


Analysis:


Design:

The author decides which scenario variants and interactions are important and common enough to be needed in the initial training, and which can be relegated to reference documentation.


Implementation:

The author writes the relevant chapters and sections.


Validation:

The sections are submitted to one of the system designers to be checked for accuracy and to one or more domain experts to be checked for understandability.

.