Software Engineering


This is a semester-long class project using iterative development for a sophomore-level course. Students are assumed to have had an introduction to object-oriented programming. The attached zip file has assignments for five iterations covering the inception, elaboration, and contruction phases.


Douglas Troy


Larman, Craig. Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development (3rd Edition), 2004.



Assignment Duration

Two Weeks

Communication Skill


Technical Skill


Workplace Scenario

The most important step in the software development process is to understand the problem to be solved. The “problem” is typically a set of “needs” of the client related to their business or organization. If you come up with a great solution that does not meet the needs of the client, your project will not be a success!

The Vision document is one of the early documents that we create in our software development methodology. It’s our opportunity to work with the client to establish a common vision and basic scope for the project. We can explore the client’s vision for the project, its feasibility within the time and resources that we have, make a rough estimate of cost and time complete the project, and decide whether or not we can move ahead with the project. This is an essential step in any project. Note that we are not trying to completely define the client’s needs (requirements) or the solution. This will evolve as we move forward with the project.

The Supplemental Specification and the Glossary support the Vision. The focus of the vision is primarily on functional requirements (the features seen by the user). The Supplemental Specification captures the “URPS+” non-functional requirements: Usability, Reliability, Performance, Supportability and any others (such as legal issues). The Glossary defines critical terminology, and can sometimes document the format of data.

This is a team assignment to work with the client to create a common vision and scope for the class project, and to create the initial product backlog. This will help assure that your project is a success and meets the needs of the client. Note that these are “living documents” and will evolve as the project progresses.

Please note that the audience for the Vision, Supplemental Specification and Glossary includes the software engineers on your team and the client. This means that these documents should be written so that the client can easily understand them (don’t overuse technical jargon or acronyms, for example).

Team Size



Douglas Troy, “Project,” Incorporating Communication Outcomes into the Computer Science Curriculum, accessed June 18, 2018, http://cs-comm.lib.muohio.edu/items/show/91.


Creative Commons License


Allowed tags: <p>, <a>, <em>, <strong>, <ul>, <ol>, <li>