COURSE 1:  INTRODUCTION TO SOFTWARE ENGINEERING

Module 1: SDLC – The Software Development Lifecycle

IBM AI DEVELOPER PROFESSIONAL CERTIFICATE

Complete Coursera Study Guide

Last updated:

INTRODUCTION – SDLC – The Software Development Lifecycle

This module provides a comprehensive introduction to the field of software engineering. In the initial lesson, you’ll be introduced to the fundamentals of software engineering, the software development lifecycle (SDLC), the essential components of building high-quality software, and the process of writing effective requirements. Lesson two will take you deeper into various methodologies for software development, offering an exploration of different career paths within the industry. You will also gain valuable perspectives from experienced professionals who will share their insights.

Moreover, you will learn how different roles within a software development team collaborate and interact to create enterprise-level software. This module aims to equip you with a thorough understanding of the field and prepare you for various opportunities within software engineering.

Learning Objectives

  • Define software engineering and explain the responsibilities of a software engineer.
  • Discuss key advantages of applying the software development lifecycle (SDLC) when developing enterprise software.
  • Describe each phase of the SDLC
  • Analyze common software engineering processes required for building-high quality software.
  • Explain the requirement gathering process.
  • Differentiate between a User Requirement Specification (URS), a Software Requirement Specification (SRS), and a System Requirement Specification (SysRS) document.
  • Compare and contrast waterfall, V-shape model, and agile methods of software development.
  • Distinguish between functional, non-functional, and regression testing.
  • Identify and describe different types of documentation.
  • Compare and contrast the common roles and responsibilities on a software engineering project.

PRACTICE QUIZ: OVERVIEW OF SOFTWARE ENGINEERING

1. Which of the following best describes the primary responsibilities of a software engineer?

  • Designing, building, and maintaining software systems (CORRECT)
  • Writing test cases based on requirements 
  • Writing documentation 
  • Designing the user experience

Correct: Correct. Software engineers are responsible for designing, building, and maintaining software systems.

2. Which of the following best describes a key advantage for a business to follow the SDLC?

  • It defines the roles of the development team. 
  • The SDLC offers an overview of the process, so stakeholders know where they fit into that process. (CORRECT)  
  • It tells the QA team what test cases to write. 
  • It allows for creativity because of its adhoc approach to software development.

Correct: Correct! The SDLC does offer an overview of the process, so stakeholders know where they fit into that process.

3. Which of the following best describes an activity that happens in the planning phase of the software development lifecycle (SDLC)?

  • Software architecture is designed.
  • User requirements are written. (CORRECT) 
  • Bugs are identified. 
  • The coding process begins.

Correct: Correct! User requirements are written during the planning phase of the SDLC.

4. Which of the following best describes an alpha release?

  • It is the first functioning version of a system released to a select group of stakeholders. (CORRECT)
  • It is the most stable release. 
  • It is intended for all users. 
  • It meets all functional requirements.

Correct: Correct! The alpha release is the first functioning version of a system released to a select group of stakeholders.

5. Which statement best describes the User Requirements Specification (URS)?

  • It contains policy and regulation requirements. 
  • It contains functional, external interface, and non-functional requirements. 
  • It can be combined with the Software Requirements Specification to form the System Requirements Specification (SysRS). 
  • It primarily contains use cases. (CORRECT)

Correct: Correct! The URS primarily contains use cases.

PRACTICE QUIZ: THE SOFTWARE BUILDING PROCESS AND ASSOCIATED ROLES

1. Which of the following best describes the Waterfall approach to the software development lifecycle (SDLC)?

  • It is an iterative approach to the SDLC. 
  • The last stage is called the “feedback stage” rather than the “maintenance stage.” 
  • It is a sequential approach to the SDLC. (CORRECT)
  • Tests are written during the validation phase.

Correct: Correct! Waterfall is a sequential approach to the SDLC.

2. In semantic numbering, what does the 9 in the version number 9.1.33.6 represent?

  • The “9” position indicates patches or minor bug fixes. 
  • The “9” position indicates changes that are less significant than a patch. 
  • The “9” position indicates major changes to the software such as a new release. (CORRECT)
  • The “9” position indicates that minor changes were made to a piece of software.

Correct: Correct! The 9 in version 9.1.33.6 represents a major change such as a new software release.

3. Which of the following best describes non-functional testing?

  • It tests application attributes like performance and security. (CORRECT)
  • The goal of non-functional testing is to make sure the application is usable and accessible. 
  • It is only concerned with inputs and corresponding outputs of the system under test. 
  • It consists of black-box testing rather than white-box testing.

Correct: Correct! Non-functional testing tests attributes like performance, security, scalability, and availability.

4. Which role is primarily responsible for facilitating communication among team members and stakeholders?

  • Scrum-master (CORRECT)
  • Information developer
  • Software architect 
  • Product manager

Correct: Correct! The scrum-master is primarily responsible for facilitating communication among the team and stakeholders.

5. Which of the following describes a difference between process documentation compared to product documentation?

  • Process documentation is intended for the quality assurance team whereas product documentation is intended for the system administrators. 
  • Process documentation provides technical documentation to the developers whereas product documentation explains standard operating procedures. 
  • Process documentation explains how to execute procedures whereas product documentation explains how to use the software. (CORRECT)
  • Process documentation is in a written format whereas product documentation is in video format.

Correct: Correct! Process documentation explains how to execute procedures whereas product documentation explains how to use the software.

QUIZ: THE SOFTWARE DEVELOPMENT LIFECYCLE

1. Which of the following is the best description of software engineering?

  • The application of scientific principles to the organization of a software system. 
  • The set of all activities related to software development. 
  • Any activity related to software development.
  • The application of scientific principles to the design and creation of software. (CORRECT)

Correct: Software engineering is the application of scientific principles to the design and creation of software.

2. Which of the following best describes a key advantage for a business to follow the SDLC?

  • It gives development teams a process to follow to improve efficiency and reduce risks. (CORRECT)
  • It helps technical writers develop accurate documentation. 
  • It defines all the roles of the development team. 
  • It allows for creativity because of its ad-hoc approach to software development.

Correct: Correct! The SDLC gives development teams a process to follow to improve efficiency and reduce risks.

3. Which of the following best describes an activity that happens in the maintenance phase of the SDLC?

  • The coding process begins. 
  • Fixing minor user interface issues. (CORRECT)
  • Code is thoroughly tested.
  • The system requirements specification is written.

Correct: Correct! Often minor issues are found during the maintenance phase and those issues are then addressed.

4. Which of the following best describes a beta release?

  • It is the most stable release. 
  • It is intended for all users. 
  • It is the first functioning version of a system released to a select group of stakeholders. 
  • It meets all functional requirements. (CORRECT)

Correct: Correct! The beta release meets all functional requirements.

5. Which statement best describes the Software Requirements Specification (SRS)?

  • It primarily contains use cases. 
  • It can be combined with the System Requirements Specification (SysRS) to form the User Requirements Specification (URS). 
  • It is combined with the User Requirements Specification (URS) to form the System Requirements Specification (SysRS). 
  • It contains functional, external interface, and non-functional requirements. (CORRECT)

Correct: Correct! The SRS contains functional, external interface, and non-functional requirements.

6. Which of the following is an iterative approach to the software development lifecycle (SDLC)?

  • Waterfall 
  • Agile (CORRECT)
  • V-shape 
  • Verification

Correct: Correct! Agile is an iterative approach to the SDLC.

7. Which of the following best describes functional testing?

  • Its goal is to make sure the application is usable and accessible. (CORRECT)
  • It is concerned with confirming that a recent change to the application is not adversely affecting existing functionality. 
  • It tests application attributes like performance and security. 
  • It tests application attributes like scalability and availability.

Correct: Correct! The goal of functional testing is to make sure the application is usable and accessible.

8. Which best describes black-box testing?

  • It is used to verify internal structure, design, and coding. 
  • It is equivalent to regression testing. 
  • It is used to test inputs and outputs. (CORRECT)
  • It is equivalent to non-functional testing.

Correct: Black-box testing is used to test inputs and outputs.

9. Which role is primarily responsible for designing the software’s interface?

  • Product owner 
  • Stakeholder 
  • UX designer (CORRECT)
  • Software architect

Correct: Correct! The UX designer is primarily responsible for designing the software’s interface.

10. Which of the following is a type of documentation that describes the expected features and functionality of the software system?

  • Design documentation 
  • User documentation 
  • Requirements (CORRECT)
  • Technical documentation

Correct: Correct! Requirements describe the expected features and functionality of the software system.

CONCLUSION – SDLC – The Software Development Lifecycle

In conclusion, this module aims to provide you with a thorough introduction to the field of software engineering. By covering the basics of the software development lifecycle (SDLC), essential components of high-quality software, and effective requirement writing in the first lesson, you’ll build a solid foundation. The second lesson expands your knowledge by exploring different software development methodologies and career opportunities, along with insights from experienced practitioners.

Additionally, you’ll learn about the collaborative nature of software development teams and how various roles work together to develop enterprise-level software. This comprehensive overview will equip you with the knowledge and insights needed to pursue a successful career in software engineering.