Principles of Software Architecture
4 lectures 31:08
The Course Overview
- This video gives an overview of the entire course
Defining Software Architecture
Architecture is the fundamental organization of a system embodied in its components, their relationships to each other, and to the environment, and the principles guiding its design and evolution.
- Look at definition of software architecture
- See aspects of software architecture.
Characteristics of Software Architecture
An architecture of a system is best represented as structural details of the system and here we will see some of the characteristics of software architecture.
- Look at some of the common set of characteristics of software architecture
- Explore software architecture and its importance
Architectural Quality Attributes
The term quality attribute has been used to loosely define some of these aspects that an architecture makes trade-offs for.
- Learn Modifiability, Testability and scalability
- Explore Performance,Security and Deployability
Principles of Software Architecture
4 lectures 31:08
The Course Overview
- This video gives an overview of the entire course
Defining Software Architecture
Architecture is the fundamental organization of a system embodied in its components, their relationships to each other, and to the environment, and the principles guiding its design and evolution.
- Look at definition of software architecture
- See aspects of software architecture.
Characteristics of Software Architecture
An architecture of a system is best represented as structural details of the system and here we will see some of the characteristics of software architecture.
- Look at some of the common set of characteristics of software architecture
- Explore software architecture and its importance
Architectural Quality Attributes
The term quality attribute has been used to loosely define some of these aspects that an architecture makes trade-offs for.
- Learn Modifiability, Testability and scalability
- Explore Performance,Security and Deployability
The Course Overview
- This video gives an overview of the entire course
The Course Overview
- This video gives an overview of the entire course
The Course Overview
- This video gives an overview of the entire course
The Course Overview
- This video gives an overview of the entire course
- This video gives an overview of the entire course
- This video gives an overview of the entire course
Defining Software Architecture
Architecture is the fundamental organization of a system embodied in its components, their relationships to each other, and to the environment, and the principles guiding its design and evolution.
- Look at definition of software architecture
- See aspects of software architecture.
Defining Software Architecture
Architecture is the fundamental organization of a system embodied in its components, their relationships to each other, and to the environment, and the principles guiding its design and evolution.
- Look at definition of software architecture
- See aspects of software architecture.
Defining Software Architecture
Architecture is the fundamental organization of a system embodied in its components, their relationships to each other, and to the environment, and the principles guiding its design and evolution.
- Look at definition of software architecture
- See aspects of software architecture.
Defining Software Architecture
Architecture is the fundamental organization of a system embodied in its components, their relationships to each other, and to the environment, and the principles guiding its design and evolution.
- Look at definition of software architecture
- See aspects of software architecture.
Architecture is the fundamental organization of a system embodied in its components, their relationships to each other, and to the environment, and the principles guiding its design and evolution.
- Look at definition of software architecture
- See aspects of software architecture.
Architecture is the fundamental organization of a system embodied in its components, their relationships to each other, and to the environment, and the principles guiding its design and evolution.
- Look at definition of software architecture
- See aspects of software architecture.
Characteristics of Software Architecture
An architecture of a system is best represented as structural details of the system and here we will see some of the characteristics of software architecture.
- Look at some of the common set of characteristics of software architecture
- Explore software architecture and its importance
Characteristics of Software Architecture
An architecture of a system is best represented as structural details of the system and here we will see some of the characteristics of software architecture.
- Look at some of the common set of characteristics of software architecture
- Explore software architecture and its importance
Characteristics of Software Architecture
An architecture of a system is best represented as structural details of the system and here we will see some of the characteristics of software architecture.
- Look at some of the common set of characteristics of software architecture
- Explore software architecture and its importance
Characteristics of Software Architecture
An architecture of a system is best represented as structural details of the system and here we will see some of the characteristics of software architecture.
- Look at some of the common set of characteristics of software architecture
- Explore software architecture and its importance
An architecture of a system is best represented as structural details of the system and here we will see some of the characteristics of software architecture.
- Look at some of the common set of characteristics of software architecture
- Explore software architecture and its importance
An architecture of a system is best represented as structural details of the system and here we will see some of the characteristics of software architecture.
- Look at some of the common set of characteristics of software architecture
- Explore software architecture and its importance
Architectural Quality Attributes
The term quality attribute has been used to loosely define some of these aspects that an architecture makes trade-offs for.
- Learn Modifiability, Testability and scalability
- Explore Performance,Security and Deployability
Architectural Quality Attributes
The term quality attribute has been used to loosely define some of these aspects that an architecture makes trade-offs for.
- Learn Modifiability, Testability and scalability
- Explore Performance,Security and Deployability
Architectural Quality Attributes
The term quality attribute has been used to loosely define some of these aspects that an architecture makes trade-offs for.
- Learn Modifiability, Testability and scalability
- Explore Performance,Security and Deployability
Architectural Quality Attributes
The term quality attribute has been used to loosely define some of these aspects that an architecture makes trade-offs for.
- Learn Modifiability, Testability and scalability
- Explore Performance,Security and Deployability
The term quality attribute has been used to loosely define some of these aspects that an architecture makes trade-offs for.
- Learn Modifiability, Testability and scalability
- Explore Performance,Security and Deployability
The term quality attribute has been used to loosely define some of these aspects that an architecture makes trade-offs for.
- Learn Modifiability, Testability and scalability
- Explore Performance,Security and Deployability
Modifiable and Readable Code
5 lectures 31:35
Understanding Readability
The readability of a software system is closely tied to its modifiability. Well-written, well-documented code, keeping up with standard or adopted practices for the programming language, tends to produce simple, concise code that is easy to read and modify.
- Explore Python and readability
- Document your code
- Comment the code
Fundamentals of Modifiability
Cohesion and coupling are the main fundamentals of modifiability.
- Measure cohesion and coupling
- Process string and text
Exploring Strategies for Modifiability
Now that we have seen some examples of good and bad coupling and also cohesion, let us get to the strategies and approaches that a software architect can adopt to improve the modifiability of the software system.
- Reduce two-way dependencies
- Use inheritance techniques
- Use late binding techniques
Metrics - Tools for Static Analysis
Static code analysis tools can provide a rich summary of information on the static properties of your code, which can provide insights into aspects like complexity and modifiability/readability of the code.
- Learn about code smells
- Explore cyclomatic complexity
- Run Static Checkers
Refactoring Codes
Now that we have seen how static checkers can be used to report a wide range of errors and issues in our Python code, let us do a simple exercise of refactoring our code. We will take our poorly defined metric test module as the use case (the first version of it), and perform a few refactoring steps.
- Fix complexity
- Fix code smells
- Solve styling and coding issues
Modifiable and Readable Code.
5 lectures 31:35
Understanding Readability
The readability of a software system is closely tied to its modifiability. Well-written, well-documented code, keeping up with standard or adopted practices for the programming language, tends to produce simple, concise code that is easy to read and modify.
- Explore Python and readability
- Document your code
- Comment the code
Fundamentals of Modifiability
Cohesion and coupling are the main fundamentals of modifiability.
- Measure cohesion and coupling
- Process string and text
Exploring Strategies for Modifiability
Now that we have seen some examples of good and bad coupling and also cohesion, let us get to the strategies and approaches that a software architect can adopt to improve the modifiability of the software system.
- Reduce two-way dependencies
- Use inheritance techniques
- Use late binding techniques
Metrics - Tools for Static Analysis
Static code analysis tools can provide a rich summary of information on the static properties of your code, which can provide insights into aspects like complexity and modifiability/readability of the code.
- Learn about code smells
- Explore cyclomatic complexity
- Run Static Checkers
Refactoring Codes
Now that we have seen how static checkers can be used to report a wide range of errors and issues in our Python code, let us do a simple exercise of refactoring our code. We will take our poorly defined metric test module as the use case (the first version of it), and perform a few refactoring steps.
- Fix complexity
- Fix code smells
- Solve styling and coding issues
Understanding Readability
The readability of a software system is closely tied to its modifiability. Well-written, well-documented code, keeping up with standard or adopted practices for the programming language, tends to produce simple, concise code that is easy to read and modify.
- Explore Python and readability
- Document your code
- Comment the code
Understanding Readability
The readability of a software system is closely tied to its modifiability. Well-written, well-documented code, keeping up with standard or adopted practices for the programming language, tends to produce simple, concise code that is easy to read and modify.
- Explore Python and readability
- Document your code
- Comment the code
Understanding Readability
The readability of a software system is closely tied to its modifiability. Well-written, well-documented code, keeping up with standard or adopted practices for the programming language, tends to produce simple, concise code that is easy to read and modify.
- Explore Python and readability
- Document your code
- Comment the code
Understanding Readability
The readability of a software system is closely tied to its modifiability. Well-written, well-documented code, keeping up with standard or adopted practices for the programming language, tends to produce simple, concise code that is easy to read and modify.
- Explore Python and readability
- Document your code
- Comment the code
The readability of a software system is closely tied to its modifiability. Well-written, well-documented code, keeping up with standard or adopted practices for the programming language, tends to produce simple, concise code that is easy to read and modify.
- Explore Python and readability
- Document your code
- Comment the code
The readability of a software system is closely tied to its modifiability. Well-written, well-documented code, keeping up with standard or adopted practices for the programming language, tends to produce simple, concise code that is easy to read and modify.
- Explore Python and readability
- Document your code
- Comment the code
Fundamentals of Modifiability
Cohesion and coupling are the main fundamentals of modifiability.
- Measure cohesion and coupling
- Process string and text
Fundamentals of Modifiability
Cohesion and coupling are the main fundamentals of modifiability.
- Measure cohesion and coupling
- Process string and text
Fundamentals of Modifiability
Cohesion and coupling are the main fundamentals of modifiability.
- Measure cohesion and coupling
- Process string and text
Fundamentals of Modifiability
Cohesion and coupling are the main fundamentals of modifiability...