Software Development Flashcards

You may prefer our related Brainscape-certified flashcards:
1
Q

What does the SDLC represent?

A

The development of software as phases or sets of activities

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

What causes the SDLC?

A

The desire to define a predictable process to improve quality

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

What does the SDLC involve?

A

Creating processes that can be effectively managed

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

What are the 5 broad categories of the SDLC?

A
  1. Requirement Analysis
  2. Design
  3. Implementation
  4. Testing
  5. Evolution
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is Requirement Analysis?

A

What business/scientific problem is the system addressing?

What will the system do? Who are the users?

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

What is Design?

A

Hardware, software and network requirements

What parts are in-house, and what is externally developed or bought of the shelf

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

What is Implementation

A

The process of turning a software design into a working system by writing code, integrating components, and deploying it for use.

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

What is Testing?

A

The process of evaluating software to ensure it works as expected, is free of bugs, and meets user requirements.

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

What is Evolution?

A

Has system accomplished its goals, are there any modifications

Also includes maintenance of the system

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

What are the 4 Software Development Methodologies?

A
  1. Waterfall
  2. Prototyping
  3. Rapid Application Development
  4. Agile Development
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What is a Waterfall?

A

Breaks process down into distinct sequential phases

  • Each phase needs sign-off befoore moving to the next
  • Leads to very well documented projects
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What is Rapid Application Development?

A

A fast, flexible software development method that emphasizes user feedback, quick iterations, and prototyping over extensive planning.

  • Often development deadlinne prioritised over requirements.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What is Agile Development?

A

A flexible, collaborative software development method focused on delivering small, functional pieces of software quickly and adapting to change.

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

What is Prototyping?

A

Creating a simplified, working model of the software to test ideas, gather feedback, and refine before the final version is built.

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

What are the advantages of Agile Development

A
  1. User engagement
  2. Rapid Development of a usable product
  3. Early testing catches bugs and results in a high quality product
  4. Small incremental changes mitigate potential risk of introducing large change to system
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What is a Scrum?

A

A framework within Agile development that organizes work into short, focused cycles called sprints (typically 2-4 weeks) to deliver small, workable software increments.

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

What is a Sprint planning meeting?

A

Part of a scrum that focuses on:

  1. Which items will be worked on
  2. Identify sprint tasks
  3. Divide the sprint into timeboxes
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

What is a Daily scrum meeting?

A

Part of a scrum that focuses on:

  1. Summarising previous day’s work and coming day’s work
  2. Intended to foster collaboration
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

What is a sprint review meeting?

A

Part of a scrum that focuses on:

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

What are the advantages of OOP?

A
  • Encapsulation/information hiding
  • Inheritance
  • Polymorphism
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

What is the difference with OOP in comparison to procedural programming?

A

Puts code into objects, in contrast to procedural programming where no relationships are defined for each entity.

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

What should classes in OOP include and how does encapsulation sometimes cause issues?

A
  • Classes in OOP should usually be specified to include only code
    related to their specific function.
  • Encapsulation can cause issues with tightly coupled classes that rely
    heavily on each other’s members.
  • This creates a lot of work in designing functions to access those -
    members.
  • These issues are more common in GUI programming.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Define a Nested Class

A

Classes defined within classes

23
Q

What are two types of Nested Class?

A
  • Static nested class
  • Inner class
23
Q

What modifiers can be used for standard outer classes and nested classes in Java?

A

Standard outer classes (top-level classes) can only be declared with two modifiers:
- public
- default (package-private)
Nested classes can be declared with any of the standard modifiers:
- public, private, protected, or package-private.

24
Q

What is the main difference between Static Nested Class and Inner Class?

A

Static nested class (doesn’t have access to instance members)

Inner class (does have access to instance members)

24
Q

Why use nested classes?

A
  • Closely linked classes can be located in one place for better
    organization.
  • If one class is only used by another, making it a nested class makes
    this relationship explicit.
  • Increases encapsulation by controlling visibility:
    • If the Engine class is nested inside the Car class, the private
      members of Car are visible to Engine.
  • Can also improve code readability.
24
Q

List 4 key features of Inner Classes

A
  • Can be difficult to spot in code
  • Will produce two class files on compilation
  • Inner classes can be directly accessed by the enclosing instance
  • All nested classes can be accessed externally through either the containing class or object
24
Q

How does the scope with inner classes work?

A

“this” refers to the inner type instance

“OuterClass.this” refers to the instance of the surrounding (outer) class, when within the inner class code blocks.

24
Q

What are local classes?

A

Local classes are defined and exist solely within a block (usually a method)

25
Q

What can’t local class declaration contain?

A

Cannot contain public, protected, private, or static.

25
Q

What can local classes access and not access?

A

Can access all members of outer class instance like standard inner class member

Cannot access method local variables unless they are declared as final

26
Q

Define an anonymous class

A

Classes that are declared without any class name at all

27
Q

How can anonymous classes be defined?

A

Not only may these be defined within a method, they may also be defined within an argument to a method.

28
Q

Define Concurrency

A

To be able to perform multiple processes at same time

Each process happens in parallel without having to wait for each other to be scheduled

(including the potential interaction between them)

29
Q

What is multiple tasks at the same time called?

A

Parallelism

30
Q

Why is concurrency important?

A

Most efficient use of hardware - gets the most out of the processor and its cores

31
Q

What is a thread?

A

Can be treated as lightweight processes

Threads exist within a process

32
Q

Why use threads instead of separate programs?

A

Easier to manage multiple threads under a process than have multiple different programs

33
Q

What is Multi-threading

A

OS can run threads in parallel
- Virtually, on a single core processor
- Actually, on a multi-core processor

34
Q

Define Nondeterminism

A

Where the exact order in which processes are executed cannot be predicted

35
Q

What causes Nondeterminism?

A

Multiple tasks are running at the same time, and the OS may decide to swich between them at different moments

36
Q

What is Liveness?

A

Being concerned both when code doesn’t perform correctly and that code performs correctly in time

37
Q

What are the 2 ways threads can be created in Java?

A
  1. Using the Thread class
  2. Using the Runnable interface
38
Q

How to stop a Thread?

A
  1. Setting a flag
  2. Interrupting
39
Q

What are Race Conditions?

A

When two threads try to access/change data at the same time

40
Q

Define an Atomic Action

A

In programming, atomic actions are self-contained, they can’t be stopped in the middle

  • They either happen or don’t
41
Q

What is Deadlock?

A

When thread 1 needs a resource in thread 2, and thread 2 needs a resourse in thread 1

This creates a deadlock and nothing happens as to run they both require resources from each other, creating an infinite cycle - deadlock

42
Q

Define Starvation

A

Where a thread can’t gain regular access to shared resouces because another thread is frequently calling the objects methods

43
Q

Define Livelock

A

Similar to deadlock, except that it occurs when 2 threads are too busy responding to one another to work

44
Q

What does wait() do?

A

Releases the lock and regains it using the notify()

45
Q

What is the difference between Wait and Sleep?

A

Wait
- Must occur in block synchronised on the monitor object
- Releases the monitor (lock) when called; doesn’t sacrifice the remainder of its time slice
- Will wake up if notified via call

Sleep
- Doesn’t need to occur in a synchronized block
- Retains the monitor (lock) when called and sacrifices the remainder of its time slice
- Can only be woken up by an interruption (not by notify)

46
Q

What is a Thread lifecycle?

A

Thread needs to wait to start until the start method is invoked goes between runnable and running, this is dependent on the OS

47
Q

What is Yield()?

A

Identifies the current thread as doing something not particularly important

48
Q

How does Yield() work?

A

Causes the currently executing thread object to pause and allow other threads to execute

If no other threads of the same priority need to execute, the thread continues.

49
Q

What is Join()?

A

Allows one thread to wait for the completion of another

50
Q

How to stop a Join()?

A

Like sleep, responds to an interrupt