CS504 Highlighted Handouts Lectures 23-45 Set 2 by Dream Team
- Type
- Highlighted handout
- Course
- CS504 Software Engineering - I
- Size
- PDF 1.6 MB
- Updated
- 23 Oct 2026
You get 3 free files a day on the website. Add the Chrome extension for 30 a day.
Preview text
Text from pages 2, 4, 5 of 108. Download the file for all 108 pages.
End-
Performan ce Scalability
System
Software
e
Implementation
Use
End-user
Functionali Logical use case view
8.6 Architectural Views
Software architecture defines the high level structure of the software by putting together a number of architectural elements in an organized fashion. These elements are chosen to satisfy the functional as well as non-functional requirements of the system. Perry and Wolfe proposed the following formula for software architecture:
Software architecture = {Elements, Forms, Rationale}
That is, a software architecture is a set of elements which have a certain form. These elements are further divided into three categories. These are: data elements, processing elements, and connecting elements. The data elements contain the information that is used and transformed in the system; the processing elements process the data elements and specify the transformation functions, and connecting elements connect different pieces of architecture together. These can themselves be data or processing elements.
This formula was modified by Boehm as follows:
Software architecture = {Elements, Forms, Rationale/Constraints}
Krutchen proposed that the software architecture model should be composed of multiple views as a software architecture deals with abstraction, with decomposition and composition, with style and esthetics as well as requirements from different stake holders. His architectural model is known as Krutchen’s 4+1 architectural view model. As evident, this model proposes the development of 5 main views namely the logical view, the process view, the physical view, the development view, and the use case view. The logical view is the object model of the design, the process view captures the concurrency and synchronization aspects of the design, the physical view documents the mapping(s) of the software onto the hardware and reflects its distributed aspect, the view describes the static organization of the software in its development environment, and the uses selected use cases or scenarios to validate that the architecture supports the required functionality.
This model is shown in the following diagram.
Process View
System
integrators
Scalability Throughput Deployment View
System
engineering
System topology Delivery, installation
This model has been slightly modified by Clements et. al. and is shown in the following diagram.
Clement’s modified version of Krutchen’s 4+1 Architectural View Model
In this model, the architecture is again prepared and analyzed from 5 different perspectives. The 4 main views are Functional View, the Concurrency View, the Physical View, and the Development View. Code view is not present in the original Krutchen model and is basically an extension of the development view.
The Functional View comprises of various different functions provided by the system, key system abstraction, and the domain elements. It connects different dependencies and data flows into a single view. This view can be used by the domain engineers, productline engineers, as well as the end users of the system. It can be used for understanding the functionality provided by the system, modifiability of the system, reusability, tool support, and allocation of work.
The Development View documents the different files and directories in the system and users of this view include the development and the configuration management staff as well as the project managers. The major uses of this view include maintenance, testing, configuration management, and version control.
The components of the Code View include classes, objects, procedures, functions, subsystems, layers, and modules. It documents the calling as well as the containing hierarchy of different components of the system. Its primary users are the programmers and designers of the system. The primary intent of developing this view is to use it for maintenance and portability. Concurrency View intends to document different parallel processes and threads in the system. Its main focus is on event synchronization and parallel data flows. It is used primarily by integrators, performance engineers, and testers. The main purpose of building this view is to identify ways and means to improve performance by highlighting possible opportunities for parallelism.
The Physical View depicts the physical organization of this system and how this system will be physically deployed. This includes different processors, sensors, and storage devices used by the system. This view connects various network elements and communication devices. The primary users of this system include hardware and system engineers. The view is developed with an intention to document and analyze system delivery and installation mechanism. The view is also used in understanding and analyzing issues pertaining to system performance, availability, scalability, and security.
Finally, there are Scenarios. Scenarios are basically use cases which describe the sequences of responsibilities and change cases which are changes to the system. As stated earlier, the first objective of developing a system is to fulfill the functional requirements setout for the system. These functional requirements are written in the form of use cases. Therefore, scenarios are used to understand and validate the system. Their secondary purpose is to communicate the design to the other users of the system. Scenarios tie all the view together into an integrated system. They are also used to understand the dynamic behavior of the system and understand the limits of design.
This is summarized in the following table:
functions, key system abstractions, domain elements domain engineers, product-line designers, end users functionality, modifiability, product lines/reusability, tool support, work allocation
Code View
classes, objects, procedures, functions, subsystems, layers, modules designers, reusers modifiability/maintainabi lity, portability, subsetability
View
files, directories managers,
configuration managers managers, programmers, configuration managers
Physical
View
CPUs, sensors, storage hardware engineers, system engineers system delivery and installation, performance, availability, scalability, security
View
processes, threads engineers, integrators, testers performance, availability
Related CS504 files
All CS504 files →- CS504 Midterm File 3 Midterm PDF 4 MB
- CS504 Quiz 1 Solution by MCS Quiz PDF 587 KB
- CS504 Highlighted Handouts by 404 Highlighted PDF 3.3 MB
- CS504 Highlighted Handouts by VUBuddy Highlighted PDF 2.1 MB
- CS504 Highlighted Handouts Lectures 23-45 by Dream Team Highlighted PDF 2.5 MB
- CS504 Highlighted Handouts by VU Topper RM Highlighted PDF 5.4 MB
Get more out of VUBuddy, for free
- Unlimited downloads
- The explanation behind every MCQ answer
- Study offline on slow data
- 30 downloads a day instead of 3
- Sign in and buy Pro Semester here
One Pro Semester membership works in both the extension and the app.