This course offers 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.
Intended learning outcomes
Knowledge &understand
To familiarize the student with ways to extract the components of the domain model
To familiarize the student with ways of deducing the relationships between the components of the domain
The student will draw the components of the domain and the relationships between them
To familiarize the student with design patterns to use
The student will recognize the differences between the different shapes that make up the UML
mental skills
The student analyzes the components of the domain model
That the student compare the ways of eliciting relationships between the components of the domain
To distinguish the different shapes and how to use them
The student will compare different design styles
Practical & professional skills
That the student determines the appropriate format for his model
That the student be able to design the component layers of the software
To design the component interfaces of the system
To identify the activities inherent in the system
General and transferable skills
Editorial communication by writing reports
Oral communication through participation in lectures and oral Presentations
Use IT tools to solve problems
Work in a team to participate in quarterly discussions
Teaching and learning methods
Lectures
Tutorials
Assignments
Presentations
Methods of assessments
Midterm exam I = 20
Midterm exam II = 20
Assignments = 10
Final exam = 50
Course contents
Domain Modeling 1
Domain Modeling 2
The System Sequence Diagram
The Logical architecture of the system 1
The logical architecture of the system 2
Communication Diagrams
Class Diagrams
General Responsibility Assignment Software Patterns 1
General Responsibility Assignment Software Patterns 2