Software Design is a creative activity in the software development process. In this course, we will apply various software design approaches to develop some common applications. The focus is on adapting the methods to the ever-changing requirements while taking into considerations factors such as internationalization, localization, modeling, and so on.
This is one of the essential courses for software engineering specialty. After completing this course, students should have a basic practical understanding of the following:
There is no textbook for this class but the references listed below are helpful. Students must also be able to write programs to demonstrate their ability to implement the design. Since this is a pragmatic course, students will apply various approaches to design software. Each month student will review literature on software design to expand the knowledge beyond what available in the textbooks.
Week No. |
Topics |
1 |
Basic Concepts of Design |
2 |
Design Quality |
3 |
Design Principles |
4 |
Software Architecture |
5 |
Description of Software Architectures |
6 |
Typical Architectural Styles |
7 |
Using Styles in Design |
8 |
Midterm Examination |
9 |
Architectural Design Space |
10 |
Scenario-Based Analysis and Evaluation |
11 |
Analysis and Evaluation of Modifiability |
12 |
Quality Trade-Off Analysis |
13 |
Model-Based Analysis |
14 |
Handling Changes |
15 |
Design Rejuvenation |
16 |
Conclusion |
17 |
Final Examination |
The course grade will be based on
Item |
Weight |
Assignments |
45% |
Literature reviews |
20% |
5% |
|
Exams |
30% |
The above description is only tentative; it may be changed at the instructor’s discretion.