ITSE411 : Software Design and Architecture

Department

Department of Software Engineering

Academic Program

Bachelor in Software Engineering

Type

Compulsory

Credits

03

Prerequisite

ITSE311

Overview

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
  • Design and Access consideration
  • Activity Diagrams
  • State Machine Diagrams
  • User Interface Design 1
  • User Interface Design 2

Networks Programming (ITSE405)
Mobile Applications Development (ITSE304)
Cryptographic Algorithms and Protocols (ITSE306)
Information Retrieval Systems (ITSE307)
Mobile Operating System (ITSE308)
Programming Paradigms (ITSE309)
Principles of Games Developments (ITSE401)
Multimedia Systems (ITSE404)
Cloud Computing (ITSE406)
Web Services (ITSE407)
Web Applications Development (ITSE408)
Modelling of Complex Systems (ITSE303)
Data Mining/Business Intelligence (ITSE302)
Social Networking (ITSE409)
Logic Programming (ITSE301)
Mathematics I (ITMM111)
Physics (ITPH111)
Problem solving Technic (ITGS113)
Intro to Information Technology (ITGS111)
General English1 (ITEL111)
Arabic language 1 (ITAR111)
Mathematics II (ITMM122)
Arabic language 2 (ITAR122)
General English2 (ITEL122)
Introduction to Programming (ITGS122)
System Analysis and Design (ITGS124)
logic Circuit Design (ITGS126)
Introduction to Networking (ITGS215)
Introduction to Statistics (ITST211)
Object Oriented Programmin (ITGS211)
Introduction to Software Engineering (ITGS213)
Discrete Structures (ITGS217)
Numerical analysis (ITGS219)
Introduction to Databases (ITGS228)
Data Structure (ITGS220)
Foundation of Information Systems (ITGS222)
Introduction to Internet Programming (ITGS226)
Computer Architucture & Organization (ITGS223)
Information Security (ITGS224)
Design and Analysis algorithms (ITGS301)
IT Project Management (ITGS303)
Software Requirements Analysis (ITSE311)
Advanced Databases (ITSE312)
Scientific Writing (ITGS304)
Modern Programming Language (ITSE322)
Software Construction (ITSE321)
Operating System (ITGS302)
Software Design and Architecture (ITSE411)
Advanced Internet Programming (ITSE412)
Human Computer Interaction (ITSE413)
Software Engineering Ethics (ITSE414)
Software Quality Assurance and Testing (ITSE421)
Software Reuse and Component-Based Software Engineering (CBSE) (ITSE422)
Visual Programing (ITSE423)
software design models (ITSE424)