Software Development Lifecycle Flashcards

1
Q

What is the Software Development Lifecycle (SDLC)?

A

The SDLC represents the development of software as a set of phases or activities.

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

What stage of the SDLC is described as “figuring out what problem the system is addressing”?

A

Requirements Analysis Phase

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

What stage of the SDLC is described as “finding out and obtaining the relevant hardware, software and network requirements”?

A

Design Phase

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

What stage of the SDLC is described as “making any modifications if necessary”?

A

Evolution Phase

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

What stage of the SDLC is described as “assessing the software thoroughly and fixing any detected bugs”?

A

Testing Phase

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

What stage of the SDLC is described as “installing the system to support the intended business functions”?

A

Implementation Phase

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

What is the “Waterfall approach”?

A

The “waterfall” approach breaks the SDLC into distinct, sequential phases, which needs managerial sign-off before moving onto the next.

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

What is the difference between a project and a program?

A

A project is a chunk of work to be done, while a program may be a collection of separate projects.

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

What are some examples of factors that go into reducing the risk of a project?

A

Experience, difficulty to implement, size and type of the project, number and independence of components, available resources, clarity of client requirements and the staging of deliverables are all factors that go into reducing the risk/increasing the chance of success of a project.

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

What is the “Incremental/Divide and Conquer approach”?

A

An incremental model develops different versions of a program, developing it further and further until the project is in a deliverable state.

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

What is the “Iterative/Rapid Application Development (RAD) approach”?

A

The RAD approach is where we rework and “evolve” existing components until the project can be “closed”, or delivered.

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

What is the “V-Model Development Lifecycle”?

A

The V-Model is a way of representing a project as almost like a “V”, where each phase on the “left” has a corresponding phase on the “right”.

Typically, this means that each development phase will have a corresponding testing phase.

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

What is meant by “Agile” development?

A

Agile is a method based on short, iterative “sprints”, where we incrementally develop, but iterate after a QA testing phase.

These “sprints” may be short, long, or even dynamic based on the project being made.

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

What is meant by “Scrum” development?

A

Scrum is a method based on Agile where each sprint is fixed-length, typically around 2-4 weeks long, where we aim to produce a piece of working, functional software within that deadline.

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

What is meant by “Paired Programming”?

A

Paired Programming is a method where two programmers will work on the same task, with one person acting as the “driver”, while the other acts as the “observer”.

The observer sits back and keeps an eye out for potentially harmful or lazy practices that could be an issue later in development.

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

What are the three phases of Scrum programming?

Hint: One at either end, one frequently

A

Sprint plan meetings, which happen at the start of a sprint, to plan the tasks that need to be completed.

Daily scrim meetings, where programmers summarise the previous/coming day’s work.

Sprint review meetings, which happen at the end of a sprint, to demonstrate and analyse the completed software.

17
Q

What is meant by “version control”?

A

Version control allows you to record changes over time in the form of versions, and allows you to recall specific “versions” later.

18
Q

How does version control help out a development team?

A

Version control acts as a sort of project-wide time machine that can both examine how a project looked at certain points and rollback certain versions if new changes are undesirable or buggy.

19
Q

What should we NOT store in version control?

A

Anything that is sensitive or secret. For example, API keys, automatically generated documents (like Javadoc), or encryption secrets.

20
Q

What is the difference between a centralised and a distributed repository?

A

A centralised repository is one where there exists only one master repository, and all workstations connect directly to only this one repository.

A distributed repository, instead, is one where each repository has multiple sub-repositories.

21
Q

In what order do we commit and push data to a remote version control repository?

A

We first commit, which saves the updates along with a log name and description.

Then, we push, which updates the remote repository with this new commit.

22
Q

What is a pull request in version control?

A

A pull request is made when a developer requests to merge the changes made in one branch to another.

23
Q

How does the repository store which iteration the data is in?

A

The copies of the data have file-specific numbering - e.g. version 13 of MyObject.java.

The repositories store revision specific numbering instead - e.g. MyObject.java at revision 5.

24
Q

What is a revision tag?

A

A revision tag is a way to provide text for particularly important revisions.

e.g. “Fixed Connection.java”

25
Q

What is the trunk of a repository?

A

The main codebase that developers are working on is called the trunk.

26
Q

What is a branch of a repository?

A

A branch is a separate sub-repository, which, at runtime, contains a copy of the main repository, and has its own history and changes tracking.

27
Q

What is meant by forking a repository?

A

A fork is a completely separate branch of development stored as an entirely separate repository, managed by a different development team.

28
Q

What is meant by merging to a repository?

A

A merge is the ability to merge changes made in branches to the main trunk.

29
Q

What is meant by locking in a repository?

A

Locking is a solution for a situation where two or more people try and change the same file at the same time.

30
Q

What is strict locking in a repository?

A

Strict locking states that only one person can change a file at any one time.

31
Q

What is optimistic locking in a repository?

A

Optimistic locking states that all files may be changed, but if the repository has changed since your last checkout, the local copy needs to be updated before you can commit the change.