Exam Flashcards

1
Q

Explain the term DevOps.

A

Set of software development practices that combine software development and IT operations to shorten systems-development life cycle. It is intended to reduce time between committing change and change being placed into normal production, while ensuring high quality. Especially important with growing Cloud popularity.

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

List the names of commonly used phases in the software development process in the right order.

A
  • Feasibility study and planning
  • Requirements
  • Implementation
  • Testing
  • Deployment, operation, maintenance
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What are the main questions treated in a feasibility study?

A
  • Scope of planned project
  • Technical possibility
  • Benefits
  • Expected costs
  • Resources available
  • Risks
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is a Mockup? What alternatives to it exist?

A
  • Mockup: way of designing user interfaces on paper or virtually, which provide visual details (colour, topography). Software mockup will therefore look like the real thing, but does not work beyond what the user sees.
  • Wireframe: visual guide representation that represents the skeletal framework of a website. It is low-fidelity, is a ’bare-bones’ blueprint, that is usually presented with placeholders for the final content. They are created for the purpose of arranging elements to best accomplish particular purposes.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Describe the Waterfall model. What is the core difference between the waterfall model and the modified waterfall model?

A
  • Waterfall model: sequential development process that flows like a waterfall through all phases of a project. Each phase must be fully completed to start the following one.
  • Modified Waterfall model: Waterfall model + feedback (only in one direction). Allows to go back at any step, to overcome problems of the Waterfall model. Best suited for situations where requirements are well understood and no unclarity exists.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What is the core idea of “iterative development”?

A

It is a cyclic process of prototyping, testing, analysing and refining products/processes:
- Story of software
- Use cases and interactions system-user
- Central use case implementation
- Deploy and observe
- Go back to step 1/2 check whether it affects the story, find next use case to expand

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

What is the core idea of “Agile Development”?

A

Requirements/solutions evolve through collaborative effort of self-organising and cross-functional teams and customers. It advocates for adaptive planning, evolutionary development, early delivery, and continual improvement. It also encourages rapid and flexible response to change.

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

Explain the term “Continuous integration”, what core factors/techniques are important to realise CI in practice?

A

Practice of merging all developer working copies to shared mainline several times a day. Every code change should be a separate commit, and should automatically trigger code compilation and all running tests. Only commits without errors are allowed in main branch.

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

Explain the tool “Docker” and its importance in software engineering.

A

Docker is a platform designed to help developers to build, share, and run container applications. It lets you quickly deploy and scale applications into any environment and know your code will run.

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

What are branches in Git and how are they typically used?

A

A branch is a pointer to a snapshot of your changes. To implement a new feature or fix, a new branch is spawned to encapsulate the changes. This makes it harder for stable code to get merged in the main code base.

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

SonarQube is a tool that helps guarantee code quality and security.

A

True

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

Gerrit is an automatic debugging software.

A

False

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

Maven is a modern replacement for Git.

A

False

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

Maven and Gradle have similar functionality.

A

True

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

Mockito does not realise mockups.

A

True

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

Jenkins is a software to implement unit tests.

A

True

17
Q

Describe the main use for Selenium.

A

Selenium is a suite of browser automation tools that automate web browser interactions for testing purposes. It simulates user interaction with a web page by using a synthetic sequence of user behaviour.

18
Q

Describe the typical usage of JUnit.

A

Framework used to test Java applications, which checks each class without running the whole project.

19
Q

Explain why Mockito can be quite useful. Explain in which Mockito is often used together with its main purpose.

A

It is used for integration testing. It generates Mock objects for a specific interface/ method. Mock objects simulate the behaviour of real objects in a controllable way for testing purposes. It simplifies the test setup.

20
Q

List all the names of the different steps of the Waterfall model in order.

A
  • Feasibility study
  • Requirements
  • Design
  • Implementation
  • Testing
  • Acceptance and release
  • Maintenance
21
Q

Describe shortly what this tool is used for in SE: Git

A

Git: version control system, used to track changes in a file system, allows to coordinate work and data integrity.

22
Q

Describe shortly what this tool is used for in SE: Gradle

A

Gradle: build automation tool, used to control the development process of task compilation, packaging, testing, deployment and publishing.

23
Q

Describe shortly what this tool is used for in SE: Jenkins

A

Jenkins: automation server, helps to build, test, and deploy software. It runs servlet containers.

24
Q

Describe shortly what this tool is used for in SE: Selenium

A

Selenium: suite of browser automation tools that automate web browser interactions for testing purposes.

25
Q

What are the 4 main principles of Agile Software Development as described in the Agile Manifesto, name 2 major methodologies for agile development?

A
  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan
    2 major methodologies: Scrum, Kansan
26
Q

What is a Sprint, and what are important activities used in a sprint?

A

2 week - a month period in which a releasable product is produced. A sprint starts immediately after a previous sprint.
- Daily Scrum: 15 minute meeting to plan and review
- Sprint review: done at the end of a sprint, what was done, what is next
- Sprint retrospective: done after sprint review, team inspects itself and creates plan for internal improvement of team work/organisation

27
Q

What is a pipeline in Continuous Integration?

A

Series of steps that must be performed in order to deliver a new version of software.

28
Q

What are breakpoints?

A

Breakpoints are a debugging event, that instruct the debugger to stop at a particular code location in a program, returning control of the debugger to the user. The user may then inspect the application state.

29
Q

Describe JUnit using a code snippet.

A

Framework used to test Java applications, which checks each class without running the whole project.

@Test
public void testString() {
	assertEquals(“Hello World”, helloWorld())
}