Sudan University Of Since & Technology
Collage of Computer Science & Information Technology
Department Of Software Engineering
Software Design and Architecture
Course Description:
An in-depth look at software design. Continuation of the study of design patterns, frameworks,
and architectures. Survey of current middleware architectures. Design of distributed systems
using middleware. Component based design. Measurement theory and appropriate use of
metrics in design. Designing for qualities such as performance, safety, security, reusability,
reliability, etc. Measuring internal qualities and complexity of software. Evaluation and evolution
of designs. Basics of software evolution, reengineering, and reverse engineering.
Prerequisites: SE211
Learning outcomes:
Upon completion of this course, students will have the ability to:
• Apply a wide variety of design patterns, frameworks, and architectures in designing a wide
variety of software.
• Design and implement software using several different middleware technologies.
• Use sound quality metrics as objectives for designs, and then measure and assess designs to
ensure the objectives have been met.
• Modify designs using sound change control approaches.
• Use reverse engineering techniques to recapture the design of software.
Teaching methods
Lectures.
Tutorials.
Self-Learning
Assessment
Midterm Exams (25%)
Homework. (10%)
Report (15 %)
Final examinations (50%).
Topics
Lecture # Topic Title
1. Introduction :Review of Software Engineering
2. UML Review
3. Software Design Attributes and Goals
4. Software Components
5. Design Patterns 1
6. Design Patterns 2
7. Improving Existing Design : Refactoring
8. Evaluating Software Design : Software Measurements and Metrics
9. Mid Term Exam
10. Software Architecture : Introduction
11. Selecting & Creating an Architecture
12. Documenting the Architecture
13. Analyzing & Evaluating the Architecture
14. Final Exam
The Report
Each Group of at max three students should submit Report from 15-20 pages in one of the
flowing topics:
Software Component Engineering
Architectural Style
Software Product line
Service Oriented Architecture
OO design
Other Topics
The Report at the end should be presented as seminar within the class times (10 -20 mints
presentation).
Report 10% .
Presentation 5%.
Text Books:
“Software Design: From Programming to Architecture” by Eric J. Braude, John Wiley & Sons,
2004, ISBN: 0 - 471- 42920 -1.
Other References :
1. L. Bass, P. Clements , and R. Kazman : " Software Architecture in Practice " ,
second ed., Addison Wesley , 2003.
2. “Refactoring Workbook”, by William C. Wake, Addison Wesley, 2003.