Engineering Practices for Building Quality Software

  • 4.5
Approx. 18 hours to complete

Course Summary

Learn how to implement secure software quality practices in software engineering. This course covers topics such as threat modeling, risk assessment, security testing, and code review.

Key Learning Points

  • Understand the importance of secure software quality in software engineering
  • Learn how to identify and mitigate security threats through threat modeling and risk assessment
  • Implement security testing and code review in your software development process

Related Topics for further study


Learning Outcomes

  • Understand the importance of secure software quality practices
  • Be able to identify and mitigate security threats in the software development process
  • Implement security testing and code review in your software development process

Prerequisites or good to have knowledge before taking this course

  • Basic knowledge of software development
  • Familiarity with software security concepts

Course Difficulty Level

Intermediate

Course Format

  • Online
  • Self-paced

Similar Courses

  • Secure Software Design
  • Software Security
  • Applied Cryptography

Related Education Paths


Notable People in This Field

  • Bruce Schneier
  • Adam Shostack
  • Troy Hunt

Related Books

Description

Agile embraces change which means that team should be able to effectively make changes to the system as team learns about users and market. To be good at effectively making changes to the system, teams need to have engineering rigor and excellence else embracing change becomes very painful and expensive.

Knowledge

  • You will learn how to quantiatively measure design quality attributes.
  • You will establish feasible and testable scenarios for evaluating quality attributes in software architecture.
  • You will develop skills to ensure quality in developing code beyond correct functionality alone.
  • You will understand quality approaches to post-development stages of the lifecycle.

Outline

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

Summary of User Reviews

Read reviews for Engineering Practices for Secure Software Quality course on Coursera. Users loved the interactive quizzes and practical assignments. Overall, this course is highly recommended for those interested in secure software development.

Key Aspect Users Liked About This Course

interactive quizzes and practical assignments

Pros from User Reviews

  • Hands-on experience with secure software development
  • Great course material with practical examples
  • Excellent instructors who are knowledgeable and engaging
  • Good pacing and structure of the course
  • Opportunities for peer review and feedback

Cons from User Reviews

  • Some users found the course material too basic
  • Access to some course materials was limited
  • Some assignments were too time-consuming
  • Discussion forums were not very active
  • Some users experienced technical difficulties with the platform
English
Available now
Approx. 18 hours to complete
Kevin Wendt
University of Minnesota
Coursera

Instructor

Kevin Wendt

  • 4.5 Raiting
Share
Saved Course list
Cancel
Get Course Update
Computer Courses