Introduction to Quality Software-What is Quality?
Welcome to the course
What is Quality Software?
()
Quality in Design-"Good Design"
What is good design?
()
Quality Attributes according to Microsoft
CMU SEI Technical Report on Quality Attributes
Quality in Design-Quality Metrics
Measuring Coupling
()
Coupling Factor
Measuring Cohesion
()
Lack of Cohesion of Methods
Additional Measures of Quality
()
Lack of Documentation (as a metric)
Metric Definitions - SonarQube
Quality in Design-Software Design Patterns
Introduction to Patterns and the Observer Pattern
()
Further Reading on Observer Pattern
Strategy Pattern
()
Further Readings on Strategy Pattern #1
Further Readings on Strategy Pattern #2
Adapter Pattern
()
Further Readings on Adapter #1
Further Readings on Adapter #2
Quality in Architecture-Introduction to Software Architecture Quality
What is Software Architecture?
()
ISO/IEC/IEEE Systems and software engineering — Architecture description
Architectural Styles
()
View, Viewpoint, and Perspective
()
Writing Scenarios
()
Quality in Architecture-Security as an Architectural Concern
Security Perspective
()
Attack Trees
()
Security Tactics
()
Quality in Implementation-Coding Style
Code Style
()
Tabs vs. Spaces
Bad Coding Standards
Code Style Examples
()
Quality in Implementation-Debugging and Static Analysis
Debugging
()
Static Analysis
()
Static Analysis Tools
Quality in Implementation-Comments and Self-Documentation
Commenting
()
Quality in Implementation-Version Control and Build Process
Version Control Systems
()
Git and GitHub
Build Process
()
Intro to Make
A closer look at Apache Ant
Gradle
Comparison: Ant, Maven, and Gradle
Quality in Testing and Deployment-Testing
Test Selection
()
More Details of Code Coverage
MC/DC Example
Minimum Acceptable Code Coverage
Test Adequacy
()
Test-Driven Development
()
Quality in Testing and Deployment-Deployment
Continuous Integration
()
Jenkins - Getting Started
Jenkins Pipelines
SonarQube
SQALE Indices and Indicators
SonarQube Open Source Project Hosting
ovirt-root on SonarCloud
Continuous Delivery / Continuous Deployment
()
Netflix's Spinnaker
Spinnaker
Textbook in the field
Deployment Best Practices
More Deployment Info
Beyond "Continuous"