|Meeting time:||W 6:00-8:40|
|Instructor:||Dr. Harvey Siy|
|Email:||hsiy at unomaha dot edu|
|Office Hours:||By appointment (call or email ahead)|
|Prerequisites:|| CSCI 4830/8836 (Introduction to Software Engineering), |
assumes a working understanding of SDLC, teamwork, project tracking, prototyping, requirements, design, testing and version control.
|Textbook:||Requirements Engineering: Fundamentals, Principles and Techniques by Pohl, 2010. Companion website|
|Textbook:||Requirements Engineering: from System Goals to UML Models to Software Specifications by Lamsweerde, 2009. Companion website|
|Optional:||Software Engineering (10th edition) by Ian Sommerville, Addison-Wesley, 2010. companion website, link to 9th edition, link to 8th Edition|
|Optional:||Object-Oriented Software Engineering (3rd edition) by Bruegge and Dutoit, Prentice Hall 2009. Companion website|
|Optional:||Software Requirements (3rd edition) by Wiegers and Beatty, 2013. Companion website|
|Optional:||Requirements Engineering by Kotonya and Sommerville, 1998.|
|Optional:||The Architecture of Open Source Applications (Vols 1-2) by Brown and Wilson. Online|
|Optional:||Documenting Software Architectures: Views and Beyond (2nd ed) by Clements, Bachmann, Bass, Garlan, et al., 2003. (Available on Safari Books through UNO Library)|
The early stages in a software engineering project are often dominated by one question, what should we build? To address this question, software engineers engage in two activities, requirements engineering, which produces an organized body of necessary information about the product to be built, and architectural design, which produces a blueprint for how an acceptable product might be realized in software. Though distinct, these activities are typically intertwined (the so-called "twin peaks"). Architecture cannot exist without requirements, and some information needed by requirements engineering may not be obtainable without knowledge of the architecture.
This course is a continuation of the study of software engineering with an emphasis on these early activities of software development. Practical processes of requirements engineering and architectural design are included, as well as formal specifications of software systems. Other topics such as relevant metrics and support tools are also discussed.
On completion of this course, students will be able to:
This course is being offered in person. Lectures will be flipped, that is, lecture slides and videos, and homeworks are provided in advance of the meeting. The class meeting time itself will be used for discussion and recap, and to give you time to work on the project and paper as needed. The Canvas home page is your guide to the activities expected for each week. The posted slides on the homepage will be the primary source of lecture information. Rather than reading off of the information that are in the slides, my videos will give a preview of what to look for in the lecture slides.
|Midterm and Final Exams||40%|
In place of a big semester-long team-based project, for this semester, you will work on 4 small projects. Project 1 will focus on requirements specification. Project 2 will focus on tool support for requirements engineering and/or architecture design. Project 3 will focus on understanding software architecture. Project 4 will focus on formal specification.