0% found this document useful (0 votes)
75 views3 pages

SENG 3091 Software Design and Architecture Software Design 09 Object Oriented Software Engineering

This course provides an in-depth look at software design, including design patterns, frameworks, architectures, and middleware. Students will learn to design distributed systems using middleware, incorporate design principles like performance and security, and measure internal qualities and complexity. The course also covers software evolution, reengineering, and reverse engineering. Students will apply these concepts through case studies and a project using middleware architectures.

Uploaded by

Jebesa
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
75 views3 pages

SENG 3091 Software Design and Architecture Software Design 09 Object Oriented Software Engineering

This course provides an in-depth look at software design, including design patterns, frameworks, architectures, and middleware. Students will learn to design distributed systems using middleware, incorporate design principles like performance and security, and measure internal qualities and complexity. The course also covers software evolution, reengineering, and reverse engineering. Students will apply these concepts through case studies and a project using middleware architectures.

Uploaded by

Jebesa
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

Program of Study Haramaya University

College of Computing and


Informatics, Software Engineering
Department
BSc. in Software Engineering
Courses code SENG 3091
Courses Title Software Design and Architecture
Degree Program B.Sc. in Software Engineering
Module name Software Design
Module number 09
Year /semester III / II
Pre-requisites Object Oriented Software Engineering
Status of the course Compulsory

Course Description:

36

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.

Course Objectives:
Upon completion of this course, students will have the ability to:
 Design and implement software using several different middleware technologies 
 Apply a variety of frameworks, and architectural styles in designing a wide variety of
software 
 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 
Course Schedule, topics, activities, and readings

Week Topic
Introduction to Software design
- Design, Architecture, Development, Deployment, Maintenance, Operation, Keeping
option open, Device independence, Junk Mail, Physical addressing,
1&2
- Design Specifications
- General and domain specific design principles

Object oriented design concepts


- Design Consideration (Abstraction, Modularity, Information Hiding, Complexity,
System Structure, Object-Oriented Metrics, abstract types, interfaces,
polymorphism, delegation vs sub classing, generics)
- Classical Design Methods
Functional decomposition, Data Flow Design, Design based on Data structures.
- Object-Oriented Analysis and Design Methods
The Booch Method
FUSION
RPU Revisited

2, 3 & 4

Architecture styles and Design


- Overview of Software Architecture
- Architectural Styles
(client and server architecture, pipe and filter architecture, event-based architecture,
layered architecture, data-flow architecture)
- Architectural Design
Software Subsystem Architectural Design
(Designing Object-oriented Software Architectures, Designing Client/Server
5, 6 , 7 Software Architectures, Designing Service-Oriented Architectures, Designing
&8
Component-Based Software Architectures, Designing Concurrent and Real-Time
Software Architectures, Designing Software Product Line Architectures, Software
Quality Attributes)

Middleware architectures and Design Pattern


9, 10 & - COM,
11
- CORBA, and .Net
- Other Middleware Technologies
- Design Patterns
(Structural design pattern, Behavioral design pattern, Functional design pattern)

Extensive case studies of real designs


12-15
- Basics of software metrics;
- Measuring software qualities
- Reengineering and reverse engineering techniques.
- Sample Lab Assignment
- Building a significant project using one or more well- known middleware
architecture

Teaching and learning methods

37
Assessment & Evaluation Methods

Course policy:

Texts and references:

1. Software Modeling and Design, Hassan Gomaa


2. Software Engineering: Principles and Practices, Hans Van Vlient
3. Clean Architecture: A Craftsman’s Guide to Software Structure and Design

You might also like