0% found this document useful (0 votes)
5 views

Software Architecture

The document outlines a course on Software Architecture for Computer Engineering students, detailing its objectives, outcomes, and teaching methods. It covers key concepts such as architectural styles, non-functional requirements, and distributed architectures, with a focus on practical applications and assessments. The course includes lectures, practicals, and tutorials, utilizing various tools and resources to enhance learning.

Uploaded by

larymarklary
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)
5 views

Software Architecture

The document outlines a course on Software Architecture for Computer Engineering students, detailing its objectives, outcomes, and teaching methods. It covers key concepts such as architectural styles, non-functional requirements, and distributed architectures, with a focus on practical applications and assessments. The course includes lectures, practicals, and tutorials, utilizing various tools and resources to enhance learning.

Uploaded by

larymarklary
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/ 4

COURSE OUTLINE /TEACHING PLAN

1. SCHOOL COMPUTER ENGINEERING


2. DEPARTMENT NWS
3. SEMESTER 1
4. COURSE TITLE SOFTWARE ARCHITECTURE
5. COURSE CODE
SWEY4101
6. CREDIT VALUE 4
NAME OF LECTURER/FACILITATOR:
TEL:
Course Description:
This course provides a comprehensive understanding of software architecture, focusing on
the design and evaluation of architectural patterns, the documentation and views used in
software architecture, and the consideration of non-functional requirements. Students will
learn about architectural styles, design patterns, distributed software architectures, and the
process of designing and evaluating software architectures. The course also explores
emerging trends and future challenges in the field of software architecture.

Course Objectives:
● Gain a solid foundation in software architecture principles and concepts
● Understand the importance of non-functional requirements and how to measure them
● Learn about different architectural views and the documentation process
● Explore architectural styles and their application in software design
● Master various design patterns for creating robust and scalable architectures
● Understand distributed software architectures and their challenges
● Develop skills in designing and evaluating software architectures for modern
technologies
● Recognize anti-patterns and strategies for addressing them
● Explore the role of software agents and formal methods in software architecture
● Stay updated on emerging trends and future challenges in software architecture

Course Outcomes:
By the end of the course, students will be able to:
● Explain the key concepts and principles of software architecture
● Assess and measure non-functional requirements for software systems
● Create effective software architecture documentation and views
● Apply the 4+1 view model for describing software architectures
● Identify and utilize appropriate architectural styles for different design scenarios
● Implement creational, behavioral, and structural design patterns in software
architecture
● Design and manage distributed software architectures
● Employ suitable approaches and tools for evaluating software architectures
● Recognize and address anti-patterns in software architecture
● Understand the role of software agents and formal methods in software architecture
● Analyze future challenges and emerging trends in the software architecture discipline


Tools Needed:

● Computer or laptop with internet access


● Software architecture modeling and documentation tools (e.g., Archi, Enterprise
Architect, Lucidchart)
● Programming languages and development environments for implementing design
patterns and distributed architectures

Method of Teaching
S/N Activity Duration
1 Lectures 12
2 Practicals 12
3 Tutorials
Total 24
Assessment
SN Assessment Mode Mark
1 Continuous assessment (CA) 30%
2 Examination 70%
3
Total 100

TEACHING PLAN
SLOT Delivery Mode
Week Day Time Topics per Week Lec T Pract Ass
t ut
1 4HR Introduction to Software Practicals (2 Take-home
S Architecture Theory (2 hours): √ √ hours): exercise:
● Definition and importance Hands-on lab: Research and
of software architecture Analyzing and analyze a
● Key principles and evaluating real-world
concepts in software software software
architecture architectures architecture
● Role of software case study
architecture in system
development

2 4HR Measuring Non-functional Practicals (2 Take-home


S Requirements and Documentation √ √ hours): exercise: Create
Theory (2 hours): Hands-on lab: an architectural
● Understanding Documenting view for a given
non-functional software software system
requirements and their architectures
significance using different
● Techniques and metrics for views
measuring non-functional
requirements

3 4HR Architectural Styles and Design Practicals (2 Take-home


S Patterns Theory (2 hours): √ hours): exercise: Design
√ a software
● Overview of different Hands-on lab: architecture
architectural styles (e.g., Implementing using a specific
layered, client-server, design patterns architectural
microservices) in software style and
● Characteristics and architecture relevant design
application of each patterns
architectural style

4 4HR Distributed Software Architectures Practicals (2


S and Evaluation Theory (2 hours): √ √ hours): Take-home
● Challenges and Hands-on lab: exercise:
considerations in designing Designing and Analyze and
distributed software evaluating a propose
architectures distributed improvements
● Approaches for software for a distributed
communication, architecture software
synchronization, and fault architecture
tolerance

5 4HR Anti-patterns and Remediation Practicals (2


S Theory (2 hours): √ √ hours): Take-home
● Common anti-patterns in Hands-on lab: exercise:
software architecture and Identifying and Identify and
their implications addressing propose
● Strategies for identifying anti-patterns in solutions for
and addressing software anti-patterns in
anti-patterns architecture a provided
software
architecture
6 4HR Software Agents, Formal Methods, √ √ Practicals (2
S and Future Trends Theory (2 hours): Take-home
hours): Hands-on lab: exercise:
● Introduction to software Exploring Research and
agents and their role in software agents present on a
software architecture and formal specific
● Application of formal methods in emerging trend
methods in software software in software
architecture verification and architecture architecture
validation
● Future challenges and
emerging trends in software
architecture

Resources:
● Textbook: "Software Architecture in Practice" by Len Bass, Paul Clements, and Rick
Kazman
● Online resources, articles, and research papers on software architecture topics
● Case studies and examples of real-world software architectures
● Video lectures and tutorials on software architecture concepts and techniques
Course Master Co-Instructors Head of Department

Mbachan Fabrice Tanwan

You might also like