Requirements Gathering for Secure Software Development (Coursera)

Requirements Gathering for Secure Software Development (Coursera)

In Software Requirements Elicitation for Secure Software Development, we're going to discuss the overall software requirements process as it applies in waterfall, spiral, and agile models. You'll learn about each of these processes and your goals as a software requirements analyst. This is not an easy task! Who do you talk to, when, and what kind of knowledge are you trying to obtain, in any software life cycle? How do you handle obstacles as you go? These are the questions we will focus on answering in this specialization.

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

Course 1 of 5 in the Requirements Engineering: Secure Software Specifications Specialization.

Syllabus

WEEK 1
The Software Requirement Specification Process and Cost
Software Requirements are a vital part of the Software Development Lifecycle. While there are many ways to go about collecting and recording requirements, the cost of bad requirements is high. Here we discuss what Software Requirements Specifications are and some challenges in writing them well.

WEEK 2
Starting to Build Requirements- What does the customer want?
We need to figure out what the customer wants. And moreso- what they need! How do you develop a relationship with you customers and learn about the overall domain and potential solutions? Here you will learn about the requirements engineering process, what it entails, how to develop a relationship with your customer, and some tips to succeed early on.

WEEK 3
Software Lifecycles
Not all requirements documents are created equally- if at all (formally). How you work with requirements partially depends on the software lifecycle used. Here we learn about the different software development lifecycles and discuss how they affect the requirements we produce.

WEEK 4
Goals and Models for Elicitation
To increase flexibility to change in software development, the agile lifecycle was produced. The agile process much changes how we deal with requirements. We discuss these challenges and your role as a requirements analyst. We also begin to analyze the types of statements that you want to form as you elicit data to move towards clarity.

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

Related Courses

Introduction to Architecting Smart IoT Devices (Coursera) Coursera
EIT Digital

Introduction to Architecting Smart IoT Devices (Coursera)

Embedded Systems are so ubiquitous that some of us take them for granted: we find them in smartphones, GPS systems, airplanes and so on. But have you ever wondered how these devices actually work? If so, you're in the right place! In this course, you'll learn about the characteristics of embedded systems: the possibilities, dangers, complications and recipes for success.

Jun 15th 2026
3 Weeks
C# for .NET Developers (Coursera) Coursera
Board Infinity

C# for .NET Developers (Coursera)

In this course you will be introduced to everything from the basics of programming concepts like variables, data types, and control structures, to more advanced topics like object-oriented programming, etc. By the end of the course, you'll have a solid understanding of C# programming, the .NET framework, and how to use them to build a variety of applications. You'll have the skills and knowledge you need to start your career as a C# developer or take your current skills to the next level.

Oct 5th 2026
3 Weeks
Capstone: Autonomous Runway Detection for IoT (Coursera) Coursera
EIT Digital

Capstone: Autonomous Runway Detection for IoT (Coursera)

The students will develop a larger system using the learning outcomes from these courses, and the students will evaluate the developed system in a real-world programming environment. This course is a true engineering task in which the student must, not only implement the algorithm code, but also handle the interfaces between many different actors and hardware platforms.

Oct 5th 2026
3 Weeks
Introducción al desarrollo web (Coursera) Coursera
Universidad de los Andes

Introducción al desarrollo web (Coursera)

Este curso te proporcionará los conceptos básicos para iniciarte en el fascinante mundo de la Ingeniería de Software para aplicaciones web. Abordaremos los conceptos fundamentales de estructura, contenido y presentación de una página web, para luego centrarnos en la sintaxis del lenguaje de marcas HTML y en el uso de las etiquetas para crear títulos, párrafos, listas, enlaces, imágenes y formularios.

Oct 5th 2026
4 Weeks
Quantitative Model Checking (Coursera) Coursera
EIT Digital

Quantitative Model Checking (Coursera)

The integration of ICT (information and communications technology) in different applications is rapidly increasing in e.g. Embedded and Cyber physical systems, Communication protocols and Transportation systems. Hence, their reliability and dependability increasingly depends on software. Defects can be fatal and extremely costly (with regards to mass-production of products and safety-critical systems).

Oct 5th 2026
5-12 Weeks
Principles of Computing (Part 2) (Coursera) Coursera
Rice University

Principles of Computing (Part 2) (Coursera)

This two-part course introduces the basic mathematical and programming principles that underlie much of Computer Science. Understanding these principles is crucial to the process of creating efficient and well-structured solutions for computational problems. To get hands-on experience working with these concepts, we will use the Python programming language. The main focus of the class will be weekly mini-projects that build upon the mathematical and programming principles that are taught in the class.

Oct 5th 2026
4 Weeks
Programming Reactive Systems (Coursera) Coursera
École Polytechnique Fédérale de Lausanne

Programming Reactive Systems (Coursera)

Reactive programming is a set of techniques for implementing scalable, resilient and responsive systems. The basic building-block of such systems is event handlers. This course teaches how to implement reactive systems in Scala by using high-level abstractions based on event-handlers. You will learn how to: use, transform and sequence asynchronous computations using Future values; write concurrent systems based on Actors, using untyped Akka and Akka Typed; design systems resilient to failures; implement systems that can scale out according to a varying workload; transform and consume infinite and intermittent streams of data with Akka Stream; understand how back-pressure controls flows of data

Oct 5th 2026
5-12 Weeks
Introducción a la programación en Python I: Aprendiendo a programar con Python (Coursera) Coursera
Pontificia Universidad Católica de Chile

Introducción a la programación en Python I: Aprendiendo a programar con Python (Coursera)

Decía Steve Jobs que “todo el mundo debería aprender a programar un ordenador porque esto te ayuda a pensar”. Hoy en día la programación es una herramienta fundamental para el desarrollo de la tecnología moderna. Este curso te introduce en el mundo de la programación en el lenguaje Python.

Oct 5th 2026
5-12 Weeks
Functional Program Design in Scala (Scala 2 version) (Coursera) Coursera
École Polytechnique Fédérale de Lausanne

Functional Program Design in Scala (Scala 2 version) (Coursera)

In this course you will learn how to apply the functional programming style in the design of larger Scala applications. You'll get to know important new functional programming concepts, from lazy evaluation to structuring your libraries using monads. We'll work on larger and more involved examples, from state space exploration to random testing to discrete circuit simulators. You’ll also learn some best practices on how to write good Scala code in the real world. Finally, you will learn how to leverage the ability of the compiler to infer values from types.

Oct 5th 2026
5-12 Weeks
IBM z/OS Rexx Programming (Coursera) Coursera
IBM

IBM z/OS Rexx Programming (Coursera)

This course is designed to teach you the basic skills required to write programs using the REXX language in z/OS. The course covers the TSO extensions to REXX and interaction with other environments such as the MVS console, running REXX in batch jobs, and compiling REXX. A total of 11 hands-on labs on an IBM Z server (via remote Skytap access) are part of this course.

Oct 5th 2026
5-12 Weeks
Requirements Specifications: Goals and Conflict Analysis (Coursera) Coursera
University of Colorado System

Requirements Specifications: Goals and Conflict Analysis (Coursera)

In Requirements Goal Development and Language Analysis, we move from the spoken word to precise writing. A first step in this is writing goals. We will talk about goals used in requirements engineering and, from this, writing use cases from what we learn. Use cases can be in diagram and written form. Then- the villains enter- misuse cases and abuse cases are discussed in how we can deal with them in a Requirements environment. In gathering requirements, you'll have many questions remaining. Often this leads to the need of more interviews and group sessions. We'll go through how to handle group meetings, dealing with inconsistency, and handling conflict between stakeholders.

Sep 21st 2026
4 Weeks
SRS Documents: Requirements and Diagrammatic Notations (Coursera) Coursera
University of Colorado System

SRS Documents: Requirements and Diagrammatic Notations (Coursera)

As requirements are being gathered and prioritized, they also need to be documented. In Diagrammatic Notations and Software Requirements Specification Writing, we discuss and practice the process of turning requirements into something readable to the customers at a high level, and the developers. When a designer or developer reads your document, they should be able to understand the overall idea, the scope, the domain, the resources, the expectations, and why alternative choices are not selected. To create a document in this way, you use a balance between storytelling (with pictures!) and complex diagrams.

Sep 21st 2026
5-12 Weeks