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
What do project planners use a design document for?
They use it to determine and assign coding tasks
26
What phase comes after the development phase?
The testing phase
27
What happens during the testing phase?
Code is tested to ensure stability, security, and that it meets requirements from the SRS
28
What are some common levels of testing?
* Unit testing * Integration testing * System testing * Acceptance testing
29
What happens after the testing phase?
The deployment phase
30
What happens during the deployment phase?
The application is released into the production environment and is made available to users
31
What phase comes after the deployment phase?
The maintenance phase
32
Why is the maintenance phase necessary?
It helps to identify any other bugs, user interface issues, and any othe requirements that may not have been listed in the SRS document.
33
Write the requirements, and develop the software requirements specification (SRS)
Planning
34
Document software architecture needs, and design the architecture
Design
35
Assign tasks to developers. Write the code that powers the software
Development
36
Test the application to ensure it is stable and meets the requirements
Testing
37
Prepare the production environment, and deploy the software into production
Deployment
38
Fix bugs reported by users, and make code enhancements
Maintenance
39
Common software engineering processes
* Requirements gathering * Design * Coding for quality * Testing * Releases * Documenting
40
What does the SRS encompass?
The process of collecting and documenting the set of requirements that the software needs to adhere to
41
What are the four broad categories of software requirements?
1. Functional 2. External and user interface 3. System features 4. Non-functional
42
What is software design?
The process of transforming the requirements into a structure that is implementable using code
43
The software design process translates the requirements into a language...
the developers can use to write the code
44
What does a technical lead do in the design phase?
They break down the requirements into sets of related components with clearly defined behaviours, boundaries and interactions. These components define the system architecture.
45
What does code quality refer to?
The characteristics of the code including attributes such as maintainability, readability, and security.
46
What are coding practices used when coding for quality?
* Following common coding standards * Using linters to detect erros * Commenting in the code to make it easy to understand and modify
47
What is software testing?
The process of verifying that the software matches established requirements and is free of bugs
48
Properly tested software ensures...
reliability, security, performance, and efficiency
49
What is unit testing used for?
Testing the smallest component of code that can be isolated from the rest of the system
50
When does integration testing occur?
After the components are integrated into the larger product (following on from unit testing)
51
When does system testing take place?
After the larger product is deemed completed (following on from integration testing)
52
Who is testing during user acceptance testing?
The intended end user
53
What are the three categorie of testing?
1. Functional 2. Non-functional 3. Regression
54
When the newest version of a software is distributed, it is referred to as a...
release
55
What is an alpha release?
The first functioning version of a system that is released to a select group of stakeholders
56
What is a beta release?
A limited release given to stakeholders outside the developing organisation with the intention of seeing how the system performs in real conditions
57
Is a beta release expected to meet all functional requirements?
Yes
58
What does GA stand for?
General Availability
59
When is a stable version released?
After changes to the beta release are agreed upon, made, and tested
60
Who should be provided software documentation?
Both non-technical end-users and technical users
61
Who is system documentation geared towards?
The technical user
62
Who is user documentation for?
The non-technical end-users to assist them in the use of the product
63
How is user documentation generally provided?
In the form of user guides, instructional videos, and manuals
64
What does requirement gathering entail?
Collecting and documenting the set of requirements that the software needs to adhere to
65
What does design entail?
Transforming requirements into a structure that developers can use
66
What does coding for quality entail?
Following a set of coding practices during development
67
What does testing entail?
Verifying that the software matches established requirements and is free of bugs
68
What are the three types of releases?
Alpha, Beta, General Availability
69
What does documenting require?
Text or video that explains the software to technical and non-technical users
70
What are the steps to gathering requirements?
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
Who are the stakeholders in requirement gathering?
Key personnel from the organisation that requested the software product
72
What is the difference between objectives and goals?
Goals are broad, long-term achievable outcomes while objectives are actionable, measurable actions that achieve the goal
73
What three steps are accomlished iteratively?
Eliciting, documenting, and confirming requirements
74
How is elicitation accomplished?
Through surveys, questionnaires, and interviews
75
As the requirements emerge, they should be...
documented and checked to ensure they align with the goals and objectives
76
In order to confirm the requirements, they should be...
analysed to ensure consistency, clarity, and completeness
77
What happens to requirements after they have been confirmed?
They are prioritised
78
What three documents come as a result of the requirements gathering process?
1. software requirements specification 2. user requirements specification 3. system requirementes specification
79
What does the user requirements specification (URS) describe?
It describes the business need and expectations of the end-users from the software system
80
What does the system requirements specification describe?
It clearly outlines the requirements of an entire system, and it is broader in scope than the software requirements specification (SRS)
81