Introduction to Software Engineering Flashcards

1
Q

What is software engineering?

A

The application of scientific principles to the design and creation of software

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What are the responsibilities of a software engineer?

A
  • designing, building, and maintaining software systems
  • writing and testing code
  • consulting with stakeholders, third-party vendors, and other team members
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is the difference between a software engineer and a software developer?

A

Software engineers build systems while software developers implement specific functionalities

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Insider’s opinion:
What is software engineering?

A
  • Using programming languages and engineering principles to build products
  • Building and improving software
  • A creative process of designing, envisioning, implementing, and then supporting and maintaining software through the full lifecycle
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Insider’s opinion:
What is the difference between a software engineer and a software developer?

A
  • Software engineer is a broader term than developer; development is one part of the process whereas engineering involves the full lifecycle
  • Software engineers are responsible for system design and architecture wheras software developers are more focused on building code
  • Titles can mean different things based on your country or even the company you are working for
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What is the software development lifecycle (SDLC)?

A

Systematic process used to develop high-quality software

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q
A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is the goal of SDLC?

A

To produce software that meets requirements

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What does the SDLC consist of?

A

Defined phases with their own processes and deliverables

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

When was the SDLC conceived of?

A

In the mid-1960s

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What drove the formulation of the SDLC?

A

The need for a systematic approach to the development process in order to account for the growing complexity of software

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What did the SDLC initially use?

A

The Waterfall Methodology

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What are the advantages of the SDLC?

A
  • It improves efficiency and reduces risks
  • Team members know what they should be working on and when
  • It facilitates communication among stakeholders
  • Team members know when development can move to the next phase
  • SDLC allows the team members to adapt to changing requirements
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What are the 6 phases of the SDLC?

A
  1. Planning
  2. Design
  3. Development
  4. Testing
  5. Deployment
  6. Maintenance
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Why are the tasks in the SDLC considered discrete?

A

The tasks in a previous phase do not overlap with tasks in the next phase

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What happens in Phase 1 of the SDLC?

A

Requirements are gathered, analysed, documented, and prioritised

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

What factors need to be considered when planning a software solution?

A
  • Users of the solution
  • The overall purpose of the solution
  • Data inputs and outputs
  • Legal and regulatory compliance
  • Risk identification
  • Quality assurance requirements
  • Resourcing
  • Project scheduling
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

What does a project team often do when stakeholders are struggling to define requirements?

A

They produce prototypes during the planning stage

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

What is a prototype used for?

A

Testing design ideas

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Prototyping only occurs in Phase 1 of the SDLC (True or False)

A

False, it can occur at various phases of the cycle

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

What happens after requirements have been gathered?

A

They are combined into a document called the software requirements specification (or SRS document)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

What is used to develop software architecture in the design phase?

A

The requirements gathered from the SRS

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

What document is created during the design phase?

A

The design document

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

In which phase do developers make use of the design document?

A

The development phase

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

What do project planners use a design document for?

A

They use it to determine and assign coding tasks

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

What phase comes after the development phase?

A

The testing phase

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

What happens during the testing phase?

A

Code is tested to ensure stability, security, and that it meets requirements from the SRS

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

What are some common levels of testing?

A
  • Unit testing
  • Integration testing
  • System testing
  • Acceptance testing
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

What happens after the testing phase?

A

The deployment phase

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
30
Q

What happens during the deployment phase?

A

The application is released into the production environment and is made available to users

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
31
Q

What phase comes after the deployment phase?

A

The maintenance phase

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
32
Q

Why is the maintenance phase necessary?

A

It helps to identify any other bugs, user interface issues, and any othe requirements that may not have been listed in the SRS document.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
33
Q

Write the requirements, and develop the software requirements specification (SRS)

A

Planning

34
Q

Document software architecture needs, and design the architecture

A

Design

35
Q

Assign tasks to developers. Write the code that powers the software

A

Development

36
Q

Test the application to ensure it is stable and meets the requirements

A

Testing

37
Q

Prepare the production environment, and deploy the software into production

A

Deployment

38
Q

Fix bugs reported by users, and make code enhancements

A

Maintenance

39
Q

Common software engineering processes

A
  • Requirements gathering
  • Design
  • Coding for quality
  • Testing
  • Releases
  • Documenting
40
Q

What does the SRS encompass?

A

The process of collecting and documenting the set of requirements that the software needs to adhere to

41
Q

What are the four broad categories of software requirements?

A
  1. Functional
  2. External and user interface
  3. System features
  4. Non-functional
42
Q

What is software design?

A

The process of transforming the requirements into a structure that is implementable using code

43
Q

The software design process translates the requirements into a language…

A

the developers can use to write the code

44
Q

What does a technical lead do in the design phase?

A

They break down the requirements into sets of related components with clearly defined behaviours, boundaries and interactions. These components define the system architecture.

45
Q

What does code quality refer to?

A

The characteristics of the code including attributes such as maintainability, readability, and security.

46
Q

What are coding practices used when coding for quality?

A
  • Following common coding standards
  • Using linters to detect erros
  • Commenting in the code to make it easy to understand and modify
47
Q

What is software testing?

A

The process of verifying that the software matches established requirements and is free of bugs

48
Q

Properly tested software ensures…

A

reliability, security, performance, and efficiency

49
Q

What is unit testing used for?

A

Testing the smallest component of code that can be isolated from the rest of the system

50
Q

When does integration testing occur?

A

After the components are integrated into the larger product (following on from unit testing)

51
Q

When does system testing take place?

A

After the larger product is deemed completed (following on from integration testing)

52
Q

Who is testing during user acceptance testing?

A

The intended end user

53
Q

What are the three categorie of testing?

A
  1. Functional
  2. Non-functional
  3. Regression
54
Q

When the newest version of a software is distributed, it is referred to as a…

A

release

55
Q

What is an alpha release?

A

The first functioning version of a system that is released to a select group of stakeholders

56
Q

What is a beta release?

A

A limited release given to stakeholders outside the developing organisation with the intention of seeing how the system performs in real conditions

57
Q

Is a beta release expected to meet all functional requirements?

A

Yes

58
Q

What does GA stand for?

A

General Availability

59
Q

When is a stable version released?

A

After changes to the beta release are agreed upon, made, and tested

60
Q

Who should be provided software documentation?

A

Both non-technical end-users and technical users

61
Q

Who is system documentation geared towards?

A

The technical user

62
Q

Who is user documentation for?

A

The non-technical end-users to assist them in the use of the product

63
Q

How is user documentation generally provided?

A

In the form of user guides, instructional videos, and manuals

64
Q

What does requirement gathering entail?

A

Collecting and documenting the set of requirements that the software needs to adhere to

65
Q

What does design entail?

A

Transforming requirements into a structure that developers can use

66
Q

What does coding for quality entail?

A

Following a set of coding practices during development

67
Q

What does testing entail?

A

Verifying that the software matches established requirements and is free of bugs

68
Q

What are the three types of releases?

A

Alpha, Beta, General Availability

69
Q

What does documenting require?

A

Text or video that explains the software to technical and non-technical users

70
Q

What are the steps to gathering requirements?

A
  1. Identifying stakeholders
  2. Establishing goals and objectives
  3. Eliciting requirements from the stakeholders
  4. Documenting the requirements
  5. Analysing and confirming the requriements
  6. Prioritising
71
Q

Who are the stakeholders in requirement gathering?

A

Key personnel from the organisation that requested the software product

72
Q

What is the difference between objectives and goals?

A

Goals are broad, long-term achievable outcomes while objectives are actionable, measurable actions that achieve the goal

73
Q

What three steps are accomlished iteratively?

A

Eliciting, documenting, and confirming requirements

74
Q

How is elicitation accomplished?

A

Through surveys, questionnaires, and interviews

75
Q

As the requirements emerge, they should be…

A

documented and checked to ensure they align with the goals and objectives

76
Q

In order to confirm the requirements, they should be…

A

analysed to ensure consistency, clarity, and completeness

77
Q

What happens to requirements after they have been confirmed?

A

They are prioritised

78
Q

What three documents come as a result of the requirements gathering process?

A
  1. software requirements specification
  2. user requirements specification
  3. system requirementes specification
79
Q

What does the user requirements specification (URS) describe?

A

It describes the business need and expectations of the end-users from the software system

80
Q

What does the system requirements specification describe?

A

It clearly outlines the requirements of an entire system, and it is broader in scope than the software requirements specification (SRS)

81
Q
A