Software Design as an Element of the Software Development Lifecycle (Coursera)

Software Design as an Element of the Software Development Lifecycle (Coursera)

This course talks about software development lifecycles a description/prescription for how we write software. Design is a step in this life cycle, and the course explores the implications of this. Design has a role in the life cycle; it is always there, regardless of the kind of life cycle we’re talking about. Why is that? Why was design considered as a step in this life cycle?

Class Deals by MOOC List - Click here and see Coursera's Active Discounts, Deals, and Promo Codes.

Course 1 of 4 in the Secure Software Design Specialization

Syllabus

WEEK 1
Design, is a Thoughtful Process
Design requires that you be much more than minimally knowledgeable about your project and how to accomplish it.

WEEK 2
How Design fits into the flow of software development
How Design translates requirements into specifications which coders can understand and use.

WEEK 3
Design in the Context of Different SDLC's
There are different ways to develop software, but design plays a similar set of roles regardless of why way is used.

WEEK 4
How High-Level Design (or Architecture) handles Security Problems
The difference between high-level and detailed design and how high-level design is good at handling security issues.

WEEK 5
Final Exam
A comprehensive course assessment comprising of 5 quizzes. Each assessment contains a randomized set of questions from different modules of the course.

Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Software Design as an Abstraction (Coursera) Coursera
University of Colorado System

Software Design as an Abstraction (Coursera)

The design step in developing software has some unique characteristics. First of all, it’s the only step where drawing pictures of things is the norm. Why is that? What do pictures do that other representations cannot do? Pictures have varying levels of detail; pictures have context. Pictures…paint a picture. Why are these things important? In this course, too, we begin looking at other disciplines (building architecture is a favorite one) for lessons on design.

Jun 22nd 2026
5-12 Weeks
Engineering Practices for Building Quality Software (Coursera) Coursera
University of Minnesota

Engineering Practices for Building Quality Software (Coursera)

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.

Jun 22nd 2026
4 Weeks
Proactive Computer Security (Coursera) Coursera
University of Colorado System

Proactive Computer Security (Coursera)

I’ve heard this before – “I’m not sure my computer security practices are working”. I reply “Have you tested them?” This course is the fourth and final course in the Practical Computer Security specialization. In this course, you’ll learn how to proactively test what you have put in place to protect your data. In the first week you’ll be able to discuss the basics of deterrents and how to “trick” attackers into believing they’ve hit a goldmine of data away from your real systems. In week 2, you’ll be able to understand and discuss the steps of penetration testing methodology.

Jun 22nd 2026
5-12 Weeks
Mastering the Software Engineering Interview (Coursera) Coursera
University of California, San Diego

Mastering the Software Engineering Interview (Coursera)

You’ve hit a major milestone as a computer scientist and are becoming a capable programmer. You now know how to solve problems, write algorithms, and analyze solutions; and you have a wealth of tools (like data structures) at your disposal. You may now be ready for an internship or (possibly) an entry-level software engineering job. But can you land the internship/job? It depends in part on how well you can solve new technical problems and communicate during interviews. How can you get better at this? Practice!

Jun 22nd 2026
4 Weeks
Introduction to Programming with MATLAB (Coursera) Coursera
Vanderbilt University

Introduction to Programming with MATLAB (Coursera)

This course teaches computer programming to those with little to no previous experience. It uses the programming system and language called MATLAB to do so because it is easy to learn, versatile and very useful for engineers and other professionals. MATLAB is a special-purpose language that is an excellent choice for writing moderate-size programs that solve problems involving the manipulation of numbers.

Jun 22nd 2026
5-12 Weeks
Enterprise and Infrastructure Security (Coursera) Coursera
New York University

Enterprise and Infrastructure Security (Coursera)

This course introduces a series of advanced and current topics in cyber security, many of which are especially relevant in modern enterprise and infrastructure settings. The basics of enterprise compliance frameworks are provided with introduction to NIST and PCI. Hybrid cloud architectures are shown to provide an opportunity to fix many of the security weaknesses in modern perimeter local area networks.

Jun 22nd 2026
4 Weeks
Concurrent Programming in Java (Coursera) Coursera
Rice University

Concurrent Programming in Java (Coursera)

This course teaches learners (industry professionals and students) the fundamental concepts of concurrent programming in the context of Java 8. Concurrent programming enables developers to efficiently and correctly mediate the use of shared resources in parallel programs. By the end of this course, you will learn how to use basic concurrency constructs in Java such as threads, locks, critical sections, atomic variables, isolation, actors, optimistic concurrency and concurrent collections, as well as their theoretical foundations (e.g., progress guarantees, deadlock, livelock, starvation, linearizability).

Jun 22nd 2026
4 Weeks
Cryptographic Hash and Integrity Protection (Coursera) Coursera
University of Colorado System

Cryptographic Hash and Integrity Protection (Coursera)

This course reviews cryptographic hash functions in general and their use in the forms of hash chain and hash tree (Merkle tree). Building on hash functions, the course describes message authentication focusing on message authentication code (MAC) based on symmetric keys. We then discuss digital signatures based on asymmetric cryptography, providing security properties such as non-repudiation which were unavailable in symmetric-cryptography-based message authentication.

Jun 22nd 2026
4 Weeks
Cyber Threats and Attack Vectors (Coursera) Coursera
University of Colorado System

Cyber Threats and Attack Vectors (Coursera)

Data breaches occur nearly every day. From very large retailers, down to your fantasy football website, and anywhere in between, they have been compromised in some way. How did the attackers get in? What did they do with the data they compromised? What should I be concerned with in my own business or my systems? This course is the second course in the Practical Computer Security. It will discuss types of threats and attack vectors commonly seen in today’s environment.

Jun 22nd 2026
5-12 Weeks
TDD - Desenvolvimento de Software Guiado por Testes (Coursera) Coursera
Instituto Tecnológico de Aeronáutica

TDD - Desenvolvimento de Software Guiado por Testes (Coursera)

Neste curso, assumimos que você já sabe projetar e desenvolver programas mais complexos em Java, com método e organização graças às boas práticas e princípios exercitados no curso anterior; mas você talvez não se sinta ainda confortável em projetar programas usando técnicas ágeis, como o desenvolvimento guiado por testes (TDD).

Jun 22nd 2026
4 Weeks
Cyber Attack Countermeasures (Coursera) Coursera
New York University

Cyber Attack Countermeasures (Coursera)

This course introduces the basics of cyber defense starting with foundational models such as Bell-LaPadula and information flow frameworks. These underlying policy enforcements mechanisms help introduce basic functional protections, starting with authentication methods. Learners will be introduced to a series of different authentication solutions and protocols, including RSA SecureID and Kerberos, in the context of a canonical schema.

Jun 22nd 2026
4 Weeks
Big Data Analytical Platform on Alibaba Cloud (Coursera) Coursera
Alibaba Cloud Academy

Big Data Analytical Platform on Alibaba Cloud (Coursera)

Building an Analytical Platform on Alibaba Cloud can empower how you take in, analyze, and demonstrate clear metrics from a set of Big Data. This course is designed to teach engineers how to use Alibaba Cloud Big Data products. It covers basic distributed system theory and Alibaba Cloud's core products like MaxCompute, DataWorks, E-MapReduce as well as a bundle of ecosystem tools.

Jun 22nd 2026
5-12 Weeks