Class format: | Asynchronous remote |
Instructor: | Dr. Harvey Siy |
Office: | PKI 281B |
Phone: | (402)554-2834 |
Email: | hsiy at unomaha dot edu |
Office Hours: | By appointment (call or email ahead) |
URL: | https://hsiy.github.io |
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 as asynchronous online. As such there will be no Zoom lectures. 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. Beginning the week of 8/31, at the start of the week I will post videos on the Canvas home page with a preview of what to look for that week in the lecture slides and submissions.
Midterm and Final Exams | 40% |
Project | 20% |
Research Paper | 20% |
Homeworks/Exercises: | 20% |
Exams will be take-home. The dates above are the expected submission dates.
In place of a big semester-long team-based project, for this semester, you will work on 3 small projects. Project 1 will focus on requirements engineering tools. Project 2 will focus on understanding software architecture. Project 3 will focus on formal specification.