We may earn an affiliate commission when you visit our partners.
Course image
Kevin Wendt

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.

Read more

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.

In this course, you will learn about engineering practices and processes that agile and traditional teams use to make sure the team is prepared for change. In additional, you will also learn about practices, techniques and processes that can help team build high quality software. You will also learn how to calculate a variety of quantitative metrics related to software quality.

This is an intermediate course, intended for learners with a background in software development. To succeed in the course, you should have experience developing in modern programming languages (e.g., Java, C#, Python, JavaScript), an understanding of software development lifecycle models, familiarity with UML diagrams (class and sequence diagrams), and a desire to better understand quality aspects of software development beyond program correctness.

At the end of this course, you will be able to comfortably and effectively participate in various techniques and processes for building secure and high quality software.

Enroll now

What's inside

Syllabus

Introduction to Quality Software
In this module, you will be introduced to the concept of quality as it relates to software.
Quality in Design
In this module, you will learn about a variety of quality metrics including how to calculate them. A discussion of design patterns follows, allowing you to gain a deeper understanding of the quality they provide and exposure to several important patterns.
Read more

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Provides a solid understanding of quality software development practices
Covers various quality metrics and their calculation, enabling learners to measure and improve software quality
Examines quality aspects in different stages of the software development lifecycle, from design to testing and deployment
Taught by Kevin Wendt, an experienced instructor in software development

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Engineering practices for quality software

According to learners, this course offers a largely positive overview of essential software engineering practices. Students praise its broad coverage, touching upon quality aspects from design through deployment. Many found the material relevant for professionals and appreciated how assignments reinforce concepts. Specific modules like testing and continuous pipelines, as well as quality metrics, were frequently highlighted as valuable. While the lectures are often described as clear and engaging, some reviewers noted a desire for more hands-on exercises or coding labs, feeling certain sections leaned more theoretical than practical. The course is seen as a solid foundation, though some wished for deeper dives into specific implementation details.
Course assignments help solidify understanding.
"The assignments reinforced the material well."
"The examples were clear and relevant."
"The modules are well-structured and build upon each other logically."
Testing, deployment, and metrics modules are well-received.
"The modules on testing and continuous pipelines were particularly helpful."
"I appreciated the focus on metrics and design patterns."
"The segment on static analysis tools was useful..."
"The section on quality metrics was new to me and very insightful."
"The testing and deployment part was particularly strong."
"The emphasis on metrics and continuous integration/delivery pipelines was very current and useful."
Material is highly relevant for industry professionals.
"Highly recommend for anyone wanting to improve software quality in their team."
"It's definitely geared towards professionals, which is perfect for me. I immediately started applying some of the techniques at work."
"The focus on practical applications and industry practices is a major plus. Highly relevant for anyone in software engineering."
"Recommended for professional developers."
Covers software quality from design to deployment.
"This course was exactly what I needed to bridge the gap between theoretical knowledge and practical application of engineering practices."
"Good overview of various quality concepts. I appreciated the focus on metrics and design patterns."
"Fantastic course! It covers a wide range of essential topics for building robust software."
"A valuable course for understanding software quality from different angles - design, architecture, implementation, and testing."
"Top-notch content on software quality engineering. Very comprehensive, covering design to deployment."
Could benefit from more hands-on labs or coding.
"Some parts, like the security section, felt a bit rushed, and I wish there were more hands-on labs throughout the course..."
"The course provides a decent foundation, but it felt more theoretical than I expected for an intermediate course. I was hoping for more practical examples and coding exercises."
"Okay course, but uneven in quality. Some modules were great (like testing), others were too brief or abstract (like security or some architecture parts)."
"Solid introduction to engineering quality... It could use more practical coding exercises or examples, as some parts were quite theoretical."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Engineering Practices for Building Quality Software with these activities:
Review object-oriented programming concepts
Review the fundamental principles of object-oriented programming to enhance your understanding and preparation for the course.
Show steps
  • Revisit the concept of classes and objects
  • Review inheritance and polymorphism
  • Refresh your knowledge on design patterns
Read 'Clean Code' by Robert C. Martin
Gain insights into best practices for writing clean, well-structured, and maintainable code, which is essential for building high-quality software.
View CLEAN CODE on Amazon
Show steps
  • Read the chapters on naming conventions and code organization
  • Follow the guidelines for writing readable and maintainable code
Create a diagram illustrating software architecture
Enhance your understanding of software architecture by creating a visual representation of a system's components, their relationships, and their interactions.
Browse courses on Software Architecture
Show steps
  • Identify the key components of the system
  • Determine the relationships between the components
  • Create a diagram using UML or a similar notation
Four other activities
Expand to see all activities and additional details
Show all seven activities
Practice writing unit tests for different scenarios
Strengthen your ability to write effective unit tests, ensuring the reliability and robustness of your code.
Browse courses on Unit Testing
Show steps
  • Write unit tests for positive and negative scenarios
  • Test for edge cases and boundary conditions
Attend a workshop on code versioning
Gain practical experience with version control tools, enabling effective collaboration and tracking of code changes.
Browse courses on Version Control
Show steps
  • Learn how to use a version control system like Git
  • Practice branching and merging
Participate in a coding competition
Test your problem-solving abilities and coding skills by participating in a coding competition, fostering innovation and excellence in software development.
Browse courses on Competitive Programming
Show steps
  • Choose a coding competition and register
  • Practice solving coding challenges
  • Participate in the competition and submit your solutions
Create a documentation for a software project
Develop your skills in technical writing and documentation by creating a comprehensive document for a software project, ensuring clear communication and understanding of its design, implementation, and usage.
Browse courses on Software Documentation
Show steps
  • Gather information about the software project
  • Organize the documentation into logical sections
  • Write clear and concise instructions and explanations

Career center

Learners who complete Engineering Practices for Building Quality Software will develop knowledge and skills that may be useful to these careers:
Software Quality Assurance Engineer
A Software Quality Assurance Engineer tests and evaluates software to ensure it meets quality standards. This course may be useful for those in this role, as it provides a foundation in engineering practices and processes used to build high quality software. The syllabus includes modules on software quality, design, architecture, implementation, and testing.
Software Test Engineer
A Software Test Engineer tests and evaluates software to ensure it meets quality standards. This course may be useful for those in this role, as it provides a foundation in engineering practices and processes used to build high quality software. The syllabus includes modules on software quality, design, architecture, implementation, and testing.
Computer Systems Analyst
A Computer Systems Analyst analyzes, designs, and implements computer systems. This course may be useful for those in this role, as it provides a foundation in engineering practices and processes used to build high quality software. The syllabus includes modules on software quality, design, architecture, implementation, and testing.
Quality Assurance Analyst
A Quality Assurance Analyst tests software applications to ensure they meet quality standards. This course may be useful for those in this role, as it provides a foundation in engineering practices and processes used to build high quality software. The syllabus includes modules on software quality, design, architecture, implementation, and testing.
Technical Project Manager
A Technical Project Manager leads and manages technical projects. This course may be useful for those in this role, as it provides a foundation in engineering practices and processes used to build high quality software. The syllabus includes modules on software quality, design, architecture, implementation, and testing.
Software Engineer
A Software Engineer designs, develops, and maintains software applications. This course may be useful for those in this role, as it provides a foundation in engineering practices and processes used to build high quality software. The syllabus includes modules on software quality, design, architecture, implementation, and testing.
DevOps Engineer
A DevOps Engineer collaborates with software developers and operations teams to ensure the smooth and efficient delivery of software applications. This course may be useful for those in this role, as it provides a foundation in engineering practices and processes used to build high quality software. The syllabus includes modules on software quality, design, architecture, implementation, and testing.
Software Development Manager
A Software Development Manager leads and manages software development teams. This course may be useful for those in this role, as it provides a foundation in engineering practices and processes used to build high quality software. The syllabus includes modules on software quality, design, architecture, implementation, and testing.
Software Architect
A Software Architect leads technical initiatives and translates business requirements into software solutions. This course may be useful for those in this role, as it provides a foundation in engineering practices and processes used to build high quality software. The syllabus includes modules on software quality, design, architecture, implementation, and testing.
Systems Analyst
A Systems Analyst analyzes and designs business systems. This course may be useful for those in this role, as it provides a foundation in engineering practices and processes used to build high quality software. The syllabus includes modules on software quality, design, architecture, implementation, and testing.
Information Technology Consultant
An Information Technology Consultant provides consulting services to businesses on the use of information technology. This course may be useful for those in this role, as it provides a foundation in engineering practices and processes used to build high quality software. The syllabus includes modules on software quality, design, architecture, implementation, and testing.
Cybersecurity Analyst
A Cybersecurity Analyst protects computer systems and networks from cyberattacks. This course may be useful for those in this role, as it provides a foundation in engineering practices and processes used to build high quality software. The syllabus includes modules on software quality, design, architecture, implementation, and testing.
Business Analyst
A Business Analyst analyzes business needs and requirements. This course may be useful for those in this role, as it provides a foundation in engineering practices and processes used to build high quality software. The syllabus includes modules on software quality, design, architecture, implementation, and testing.
Network Administrator
A Network Administrator manages and maintains computer networks. This course may be useful for those in this role, as it provides a foundation in engineering practices and processes used to build high quality software. The syllabus includes modules on software quality, design, architecture, implementation, and testing.
Database Administrator
A Database Administrator manages and maintains databases. This course may be useful for those in this role, as it provides a foundation in engineering practices and processes used to build high quality software. The syllabus includes modules on software quality, design, architecture, implementation, and testing.

Reading list

We've selected 13 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Engineering Practices for Building Quality Software.
Provides a set of principles and best practices for writing clean and maintainable code. It valuable resource for software engineers of all levels.
Classic work on design patterns. It provides a catalog of proven design solutions to common software development problems.
Provides a comprehensive guide to software architecture. It covers topics such as modularity, dependency injection, and testing.
Provides a comprehensive overview of agile software development. It covers topics such as Scrum, Kanban, and Test-Driven Development.
Comprehensive textbook on software engineering. It covers all aspects of the software development lifecycle, from requirements gathering to deployment.
Provides a practical introduction to test-driven development. It great resource for software engineers who want to learn how to write better tests.
Provides a comprehensive guide to domain-driven design. It valuable resource for software engineers who want to design complex systems.
Provides a comprehensive guide to software security. It covers topics such as secure coding, threat modeling, and vulnerability management.
Provides a comprehensive guide to software testing. It covers topics such as test planning, test design, and test execution.
Provides a comprehensive guide to software quality assurance. It covers topics such as quality planning, quality control, and quality improvement.
Provides a practical guide to agile testing. It covers topics such as test planning, test design, and test execution in an agile environment.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser