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

Engineering Maintainable Android Apps (Coursera) Coursera
Vanderbilt University

Engineering Maintainable Android Apps (Coursera)

Engineering Maintainable Android Apps, which is a 4 week MOOC that shows by example various methods for engineering maintainable Android apps, including test-driven development methods and how to develop/run unit tests using JUnit and Robotium (or equivalent automated testing frameworks for Android), as well as how to successfully apply common Java/Android software patterns to improve the extensibility and clarity of Android apps.

Jun 8th 2026
4 Weeks
TCP/IP and Advanced Topics (Coursera) Coursera
University of Colorado System

TCP/IP and Advanced Topics (Coursera)

In this course, we give an in-depth study of the TCP/IP protocols. We examine the details of how IP enables communications across a collection of networks. We pay particular attention to the hierarchical structure of IP addresses and explain their role in ensuring scalability of the Internet. The role of address prefixes and the uses of masks are explained in details. We review in details about TCP three-way handshake, flow control, and congestion control. Furthermore, we provide an introduction to some advanced topics, including Multicast, SDN and security

Jun 8th 2026
5-12 Weeks
Networking and Security in iOS Applications (Coursera) Coursera
University of California, Irvine

Networking and Security in iOS Applications (Coursera)

You will learn to extend your knowledge of making iOS apps so that they can securely interact with web services and receive push notifications. You'll learn how to store data securely on a device using Core Data. You’ll also learn to securely deploy apps to the App Store and beta users over-the-air. The format of the course is through a series of code tutorials. We will walk you through the creation of several apps that you can keep as a personal app toolbox. When you make your own apps after this course, you can bring in these capabilities as needed. When necessary we pop out of the code tutorials to talk about concepts at a higher level so that what you are programming makes sense.

Jun 8th 2026
4 Weeks
Object Oriented Programming in Java (Coursera) Coursera
University of California, San Diego

Object Oriented Programming in Java (Coursera)

Welcome to our course on Object Oriented Programming in Java using data visualization. People come to this course with many different goals -- and we are really excited to work with all of you! Some of you want to be professional software developers, others want to improve your programming skills to implement that cool personal project that you’ve been thinking about, while others of you might not yet know why you’re here and are trying to figure out what this course is all about.

Jun 8th 2026
5-12 Weeks
Code Yourself! An Introduction to Programming (Coursera) Coursera
University of Edinburgh,Universidad ORT Uruguay

Code Yourself! An Introduction to Programming (Coursera)

Have you ever wished you knew how to program, but had no idea where to start from? This course will teach you how to program in Scratch, an easy to use visual programming language. More importantly, it will introduce you to the fundamental principles of computing and it will help you think like a software engineer.

Jun 8th 2026
5-12 Weeks
Classical Cryptosystems and Core Concepts (Coursera) Coursera
University of Colorado System

Classical Cryptosystems and Core Concepts (Coursera)

Welcome to Introduction to Applied Cryptography. Cryptography is an essential component of cybersecurity. The need to protect sensitive information and ensure the integrity of industrial control processes has placed a premium on cybersecurity skills in today’s information technology market. Demand for cybersecurity jobs is expected to rise 6 million globally by 2019, with a projected shortfall of 1.5 million, according to Symantec, the world’s largest security software vendor. According to Forbes, the cybersecurity market is expected to grow from $75 billion in 2015 to $170 billion by 2020.

Jun 8th 2026
3 Weeks
Real-Time Cyber Threat Detection and Mitigation (Coursera) Coursera
New York University

Real-Time Cyber Threat Detection and Mitigation (Coursera)

This course introduces real-time cyber security techniques and methods in the context of the TCP/IP protocol suites. Explanation of some basic TCP/IP security hacks is used to introduce the need for network security solutions such as stateless and stateful firewalls. Learners will be introduced to the techniques used to design and configure firewall solutions such as packet filters and proxies to protect enterprise assets.

Jun 8th 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 8th 2026
5-12 Weeks
Building Scalable Java Microservices with Spring Boot and Spring Cloud (Coursera) Coursera
Google Cloud

Building Scalable Java Microservices with Spring Boot and Spring Cloud (Coursera)

"Microservices" describes a software design pattern in which an application is a collection of loosely coupled services. These services are fine-grained, and can be individually maintained and scaled. The microservices architecture is ideal for the public cloud, with its focus on elastic scaling with on-demand resources. In this course, you will learn how to build Java applications using Spring Boot and Spring Cloud on Google Cloud Platform.

Jun 9th 2026
2 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 8th 2026
4 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 8th 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 8th 2026
4 Weeks