Intro to Software Engineering Flashcards

1
Q

Define software engineering

A

Software engineering is 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

Discuss 2 key advantages of applying the software development lifecycle (SDLC) when developing enterprise software.

A
  • A roadmap to the software development process, helping to reduce risk and improve efficiency,
  • Increased communication between the team and stakeholders,
  • Clearly defined and understood responsibilities for each team member, and
  • The ability to be used iteratively, allowing for changing requirements.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What are the responsibilities of a software engineer? (and 1 diff btwn a developer)

A

esponsibilities of a software engineer include:
- Designing, building, and maintaining software systems
- writing and testing code
- consulting with stakeholders, third party vendors, security specialists, and other team
members.
- build systems while software developers implement specific functionalities within a system

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

define SDLC

A

Software Development Life Cycle, known as the SDLC,
is a systematic process to develop high-quality, low-risk software in a predictable timeframe and budget.

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

Describe each phase of the SDLC

A

SIX PHASES:

1 PLANNING involves requirement gathering and development
of the software requirement specification (SRS)

2 DESIGN The architecture is developed during the design phase and the design document is created for the next phase

3 DEVELOPMENT phase is when coding takes place

4 TESTING issues with the code are found and fixed if possible

5 DEPLOYMENT is when the code is released to the production environment.

6 MAINTENANCE stage feedback is collected from stakeholders, other UI issues may be identified, and code enhancements suggested.

**And this information then can be fed into another software development cycle if necessary.

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

list + Analyze 6 common software engineering processes required for building-high quality software.

A

1 Requirement gathering is collecting and documenting the set of requirements that the software
needs to adhere to: functional, external & ui, system features, nonfunctional

2 Designing transforms requirements into a structure that developers can use.

3 Coding for quality entails following a set of coding practices during development.

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

5 releases: There are three types of releases including: alpha (internal stakeholders), beta (external stakeholders, no bugs), and general availability

6 documenting requires text or video that explains the software to technical and non-technical
users.

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

Explain the requirement gathering process. (6)

A

6 steps meant to identify and solve a software problem:

1 identifying stakeholders. representative from every group the product affects

2 establishing goals (broad) and objectives (specific, actional measurable)

3 eliciting requirements from the stakeholders - surveys, questionnaires, interviews

4 documenting the requirements,
analyzing

5 confirming the requirements, and
prioritizing

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

Differentiate between a User Requirement Specification (URS), a Software Requirement Specification (SRS), and a System Requirement Specification (SysRS) document.

A

may be three documents that result from the requirements gathering process:

1 software requirements specification, or SRS: captures the functionalities that the software should perform
and also establishes benchmarks or service levels for its performance

2 user requirements specification, or URS: User requirements describe the business need and expectations
of the end-users from the software system.
The user requirements are written as “user stories” or
“use cases” that answer three questions:
Who is the user?
What is the function that needs to be performed?
And why does the user want this functionality

3 system requirements specification,
or SysRS:
documents system capabilities and acceptance criteria,
and policy, regulation, personnel, performance, security, and hardware requirements.

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

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.

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