Software Architecture

Hans-Petter Halvorsen

1 2 3

Schedule Week Assignment Textbooks Quiz Q&A Previous Next 


Software Architecture - This week's highlights


This weeks topic is Software Architecture. Software Architecture is the high level structure of a software system, the discipline of creating such structures, the documentation and the implementation of these structures.


Our main focus this week is to have full focus on implementing your system according to the Software Design and Architecure described in the SRD. If your SRD lack Design sketches and different sketches of your chosen Software Architecture, make sure to update the document with relevant sketches and information this week.


For more details, see the Week Assignment.

1. Preparations

2-3h. Main focus: Prepare to participate in class activities. It is important that you are prepared when you come to class. 

Software Architecture - This week's highlights



You need the following Software (make sure to install them before you come to class!):


Note! In class we will need to use the software mentioned above. Installing software is time consuming! Don't waste your, the group or the teachers time in class. Make sure to install it before class. If you don't have the software ready for class, you cannot keep up with the practical exercises and project work that you should do in class.



Please go through the resources below before you meet in class.


What is Software Architecture?


Class Library:

Video: ASP.NET Core - Class Library:

In the video below, a Class Library will be created and used in order to share code between 2 different ASP.NET Core Web Applications.

PowerPoint used in the Video + Code Example

This video is also available on my Youtube Channel (Industrial IT and Automation).


Database API:

Video: Database Views and Stored Procedures:

PowerPoint used in the Video


Video: Database Development:

PowerPoint used in the Video (Note! Azure DevOps was previously named Visual Studio Team Services)



The theory part of this course is "reading material" (it's like reading a novel), so be sure to take a look at some of the textbook resources below, and especially the Sommerville book. The main concept in this course is to read the theory at home and they apply the theory concepts on the project.

Software Development Literature


Read the following chapters in one ore more of the following Textbooks below before you meet in class:

Textbook Syllabus
Software Development - A Practical Approach
  • Ch.19: Software Architecure
Software Engineering (I. Sommerville)


  • Ch.6: Architectural Design
  • Ch.17: Distributed Software Engineering
  • Ch.18: Service-oriented Software Engineering
  • Ch.20: Systems of System
  • Ch.21: Real-time Software Engineering
Essentials of Software Engineering (Frank Tsu et al.)
  • Ch.7: Architecture and Methodology
  • App.C: SDD Document
Software Engineering (Saikat Dutt, et al.)
  • Ch.4: Design and Architectural Engineering
  • Ch.24: Em. Trends in Software Engineering

Note! The selected chapters for this topic are "reading material" in order to get an overview of software architecture in general.

No detailed knowledge is necessary, you just need to see the big picture. The selected chapters in bold font are highly recommended!

2. Activities in Class

6h. Main focus: Practice applying key concepts with feedback. Execution and review of the week assignment will be the main focus in class on Tuesdays and Fridays.


Review: We will rate the best Web Sites created last week. The best web site within each group will be rewarded. The other teams will be judges.

HTML/CSS Web Site Requirements Specifications + Vote Form + Vote Sheet

Use the Voting System (link will be provided in Microsoft Teams). A prize for the best web page will be given. The best web sites from each team should be used further in the project and be the final "report" in the final project delivery (which counts 60% of the grade). Note! You cannot rate your own web site.


Week Assignment

It is important that you do what's in the weekly assignments. The weekly assignments guides you through the course with a red line with a primary focus on important topics in software engineering and practical implementation of these topics through a large project. The contents of the week assignments are important criteria when it comes to censorship and grading in this course. 



Friday Afternoon Quiz - Can you relax this weekend? - or do you need to take an extra look at some of the available resources? In order to Pass this Quiz, you need to get a Score >= 70%. You should answer the questions without any aids!


3. Complementary Work

6-7h. Main focus: Finish Week Assignment. Check your understanding and extend your learning. Go through the following resources in order to review and get a deeper understanding of what you should learn in this topic. You may also need these resources in order to solve the week assignment.



It is recommended that you read the following documents:

Software Architecture Overview



It is recommended that you watch the following videos:

Architectural Design (from Software Engineering Course at NTNU, the Video is in Norwegian)

Architectural Design Decisions (from Software Engineering Course at NTNU)

Web Services


Web Resources

Below you find some additional resources for deeper understanding and reflection:

Digital Postkasse - Mer forsinkelser for E-boks (, 2015)

ASP.NET Web Programming



Review Questions - Note! This is mandatory! In order to Pass this Quiz, you need to get a Score >= 50%.

In order to get best outcome, you should answer the questions without any aids! You should also write your answers in your own words using Norwegian language. Don't just copy the text directly from the PowerPoints or the Textbooks, in that way you dont learn anything! When answering the Questions, pretend you are sit down taking the final written Exam. This means you should watch Videos, read the Textbooks, PowerPoints and oher Resources in advance before you start answering the Review Questions.

Questions and Answers (Q&A)

In this Forum everybody can ask Questions, answer Questions, give Tips and Tricks, etc. regarding Software Development. Please use Full Name and Picture.