Asee peer logo

A Merged Software Requirements and Architecture Course

Download Paper |


2016 ASEE Annual Conference & Exposition


New Orleans, Louisiana

Publication Date

June 26, 2016

Start Date

June 26, 2016

End Date

August 28, 2016





Conference Session

Software Engineering Constituent Committee Division Technical Session 1

Tagged Division

Software Engineering Constituent Committee

Page Count




Permanent URL

Download Count


Request a correction

Paper Authors


J. Scott Hawker Rochester Institute of Technology (COE)

visit author page

Dr. Hawker graduated with a B.S. and M.S. in Electrical Engineering from Texas Tech University in Lubbock, Texas, in 1981 and 1982, respectively. He graduated with a Ph.D. in Electrical Engineering from Lehigh University in Bethlehem, Pennsylvania, in 1990. He has over 15 years of industry experience developing large-scale, multi-agent information and control systems for diverse applications including manufacturing, combat pilot decision support and mission management, robotics, and surveillance. In these areas, he developed and applied technologies including distributed, component-based software architectures, software and systems engineering process models, intelligent control, the semantic web, and real-time artificial intelligence. In 1999, Dr. Hawker joined the Computer Science Department at the University of Alabama as an Assistant Professor focusing on software engineering, and in 2004 he moved to the Software Engineering Department at RIT. Dr. Hawker is also co-director of the Laboratory for Environmental Computing and Decision Making, which focuses on modeling and understanding the impact of freight transportation and automotive industry activities and public policies. Dr. Hawker also performs research on improved software development processes for scientific software. Dr. Hawker is a member of the ASEE, IEEE, IEEE Computer Society.

visit author page


Robert Kuehl Rochester Institute of Technology

visit author page

Robert is an adjunct lecturer in the Software Engineering Department at the Rochester Institute of Technology. He has primarily been teaching undergraduate courses in Requirements Engineering and Software Architecture Design, and Human Computer Interface Design. Prior to teaching Robert worked in industry at the Eastman Kodak Company in a variety of software engineering related roles in support of digital imaging product research and development.

visit author page


Mehdi Mirakhorli

visit author page

Dr. Mehdi Mirakhorli is an Assistant Professor at Rochester Institute of Technology with a research background in software architecture design, requirements engineering, and application of data mining in software engineering. Previously, he worked as a software architect on large data-intensive software systems in the banking, meteorological and health care domains. He has served on the Program Committees for several conferences and as Guest Editor for a special edition of IEEE Software on the Twin Peaks of Requirements and Architecture. Dr. Mirakhorli has received two ACM SIGSOFT Distinguished Paper Awards at the International Conference on Software Engineering.

visit author page

Download Paper |


The undergraduate software engineering curriculum at <<university name elided>> used to have a course in Software Requirements Engineering, and a separate course in Software Architecture. As part of a curriculum re-design, we merged the requirements and architecture courses. This was a challenging process since some material from the two courses needed to be deleted. It was a valuable process in that it brought the two strongly-related courses together. Practitioners in industry do not treat requirements and architecture as isolated practices. Merging the two courses help students learn ways of separating, yet bridging, the gap between problem-space thinking (requirements) and solution-space thinking (design). This paper discusses the practical motivations to merge these two courses, the valuable and challenging decisions in merging them, and lessons learned after teaching the new course for three years.

One of the big opportunities in merging the requirements and architecture courses was to provide team projects and individual activities that spanned the requirements specification and architecture design activities of software development. For the project, student teams find an external "sponsor" of their project (so they experience software elicitation with external stakeholders). They perform three quick iterations focusing on requirements. Instructor feedback is provided between each iteration. The first iteration results in a Vision and Scope document, the second iteration results in a draft requirements specification, and the third iteration results in a validated software requirements specification. Use case modeling and associated object-oriented analysis modeling techniques are used to support requirement specification and validation.

Throughout the requirements elicitation and analysis, we emphasize the need for well-defined quality requirements. Although at this point in the course, the students are not yet in a position to design an architecture they are beginning to perform design thinking in the context of requirements.

As the student projects move into the architecture-focused iterations, the students are given reading and lecture material that introduce architecture patterns and tactics as ways to satisfy quality requirements. They develop two drafts of an architecture design, with instructor feedback between drafts. Students identify deficiencies in their requirements specifications and learn how to evaluate an architecture design. They are able to more easily distinguish and move between problem-space requirements thinking and solution-space design thinking.

Reading and lecture materials are given as-needed for the projects. Since we compressed two courses into one, some valuable course material was lost. We focused course content on what students need to execute the projects. We lost time for detailed study of requirements analysis and specification, for a thorough coverage of architecture patterns and styles (we focus on architecture tactics), and for covering advanced topics of architecture such as reverse engineering or product line architecture design. Overall, we believe we made the correct decision to integrate the two courses and to focus on integrated requirements and architecture projects. We are still looking for ways to gently work lost content back into the combined course.

Hawker, J. S., & Kuehl, R., & Mirakhorli, M. (2016, June), A Merged Software Requirements and Architecture Course Paper presented at 2016 ASEE Annual Conference & Exposition, New Orleans, Louisiana. 10.18260/p.26357

ASEE holds the copyright on this document. It may be read by the public free of charge. Authors may archive their work on personal websites or in institutional repositories with the following citation: © 2016 American Society for Engineering Education. Other scholars may excerpt or quote from these materials with the same citation. When excerpting or quoting from Conference Proceedings, authors should, in addition to noting the ASEE copyright, list all the original authors and their institutions and name the host city of the conference. - Last updated April 1, 2015