Requirements Engineering: Secure Software Specifications Specialization

Start Date: 07/12/2020

Course Type: Specialization Course

Course Link: https://www.coursera.org/specializations/requirements-engineering-secure-software

About Course

This specialization is intended for software engineers, development and product managers, testers, QA analysts, product analysts, tech writers, and security engineers. Even if you have experience in the requirements realm, this course will expand your knowledge to include new viewpoints, development styles, techniques and tools. For anyone seeking a graduate degree, certificate, or professional degree in computer science, these courses will additionally give you a broad understanding of how requirements engineering is performed and help you get a first foot forward into your upcoming careers. The Software Requirements specialization focuses on traditional software requirements elicitation and writing techniques, while also looking at requirements from a security standpoint. In traditional methods, non-functional requirements, such as security, are often ignored overall. In this specialization, students will be introduced to ways of eliciting requirements from stakeholders, how to analyze these requirements, conduct risk mitigation and analysis, prioritize requirements, document, and bring security concerns into the software lifecycle early on.

Course Syllabus

Requirements Gathering for Secure Software Development
Requirements Elicitation: Artifact and Stakeholder Analysis
Requirements Specifications: Goals and Conflict Analysis
Software Requirements Prioritization: Risk Analysis

Coursera Plus banner featuring three learners and university partner logos

Course Introduction

From Customers to Secure Software Products. This specialization helps learners to create secure software from beginning to end of development. Requirements Engineering: Secure Software Specifications Specialization In this course, you'll examine the requirements for software components in order to enable you to design better software systems. You'll be able to emphasize the importance of validating and reproducible tests, and avoid common pitfalls that can derail your work if you screw up. You'll also gain an in-depth understanding of requirements communication. You'll learn about requirements communication in the context of software systems, and the role of the engineering design team. You'll also be taught the basics of environment requirements, and why communication is key. After completing this course, you'll be able to: • Describe the requirements for a software component • Write a specification document • Enforce requirements through a process of quality assurance • Communicate requirements effectively • Write a requirement communication plan • Write an acceptance test • Write a requirement search plan • Write a test plan This course is required for Completion of the requirements for the specialization, "Requirements Engineering: Secure Software". This course is also required for the specialization, "Software Product Management Capstone", as we will be covering the requirements management process of selecting and implementing a process design. The requirements for this specialization are listed in the "Requirements Engineering" section of the specialization guide, "Starting Software Engineering" (https://softwareengineering.coursera.org/specializations/requirements-engineering-secure-software). Software engineering

Course Tag

Requirements Elicitation Requirements Analysis Software Requirements Requirements Engineering

Related Wiki Topic

Article Example
Requirements engineering Requirements engineering (RE) refers to the process of defining, documenting and maintaining requirements to the sub-fields of systems engineering and software engineering concerned with this process.
Requirements engineering There is no evidence that requirements engineering contributes to the success of software projects or systems. Problem structuring, a key aspect of requirements engineering, decreases design performance.
Software requirements Software Requirements is a field within software engineering that deals with establishing the needs of stakeholders that are to be solved by software. The IEEE Standard Glossary of Software Engineering Terminology defines a requirement as:
Requirements engineering In the waterfall model, requirements engineering is presented as the first phase of the development process. Later software development methods, including the Rational Unified Process (RUP), assume that requirements engineering continues through the lifetime of a system.
Software engineering Software engineering extends engineering and draws on the engineering model, i.e. engineering process, engineering project management, engineering requirements, engineering design, engineering construction, and engineering validation. The concept is so new that it is rarely understood, and it is widely misinterpreted, including in software engineering textbooks, papers, and among the communities of programmers and crafters.
Requirements specification Requirements specification in systems engineering and software engineering is the direct result of a requirements analysis and can refer to
Software requirements specification Software requirements specification establishes the basis for an agreement between customers and contractors or suppliers (in market-driven projects, these roles may be played by the marketing and development divisions) on what the software product is to do as well as what it is not expected to do. Software requirements specification permits a rigorous assessment of requirements before design can begin and reduces later redesign. It should also provide a realistic basis for estimating product costs, risks, and schedules. Used appropriately, software requirements specifications can help prevent software project failure.
Software architecture Requirements engineering and software architecture can be seen as complementary approaches: while software architecture targets the 'solution space' or the 'how', requirements engineering addresses the 'problem space' or the 'what'. Requirements engineering entails the elicitation, negotiation, specification, validation, documentation and management of requirements. Both requirements engineering and software architecture revolve around stakeholder concerns, needs and wishes.
International Requirements Engineering Conference The International Requirements Engineering Conference (RE), is one of the largest annual software engineering conferences. It has an 'A' rating from the Australian Ranking of ICT Conferences and an 'A1' rating from the Brazilian ministry of education.
Requirements engineering The first use of the term "requirements engineering" was probably in 1979 in a TRW technical report but did not come into general use until the 1990s with the publication of an IEEE Computer Society tutorial and the establishment of a conference series on requirements engineering that has evolved into the current International Requirements Engineering Conference.
Requirements engineering Some research suggests that software requirements are often an illusion misrepresenting design decisions as requirements in situations where no real requirements are evident.
Requirements analysis In systems engineering and software engineering, requirements analysis encompasses those tasks that go into determining the needs or conditions to meet for a new or altered product or project, taking account of the possibly conflicting requirements of the various stakeholders, "analyzing, documenting, validating and managing" software or system requirements.
Search-based software engineering Search-based software engineering is applicable to almost all phases of the software development process. Software testing has been one of the major applications. Search techniques have been applied to other software engineering activities, for instance, requirements analysis, design, development, and maintenance.
Software engineering Software engineering (SWE) is the application of engineering to the development of software in a systematic method.
Software requirements The activities related to working with software requirements can broadly be broken up into Elicitation, Analysis, Specification, and Management.
Software requirements specification A software requirements specification (SRS) is a description of a software system to be developed. It lays out functional and non-functional requirements, and may include a set of use cases that describe user interactions that the software must provide.
Software engineering The IEEE Computer Society and the ACM, the two main US-based professional organizations of software engineering, publish guides to the profession of software engineering. The IEEE's "Guide to the Software Engineering Body of Knowledge - 2004 Version", or SWEBOK, defines the field and describes the knowledge the IEEE expects a practicing software engineer to have. The most current SWEBOK v3 is an updated version and was released in 2014. The IEEE also promulgates a "Software Engineering Code of Ethics".
Requirements engineering The activities involved in requirements engineering vary widely, depending on the type of system being developed and the specific practices of the organization(s) involved. These may include:
Social software engineering One of the main observations in the field of SSE is that the concepts, principles, and technologies made for social software applications are applicable to software development itself as software engineering is inherently a social activity. SSE is not limited to specific activities of software development. Accordingly, tools have been proposed supporting different parts of SSE, for instance, social system design or social requirements engineering.
International Requirements Engineering Board The personal members and are authors of the book Requirements Engineering Fundamentals as reference teaching book to prepare for the exam "Certified Professional for Requirements Engineering" in the Foundation Level.