Paper 1 Mod 2 Flashcards

(51 cards)

1
Q

What is a software development methodology?

A

A structured and controlled framework used to plan, manage, and guide the process of creating an information system.

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

What are the key characteristics of software development methodologies?

A

They have the same final outcome and similar stages, but differ in approach and teamwork dynamics.

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

List five software development methodologies you need to be aware of.

A
  • Waterfall
  • Agile
  • Extreme Programming
  • Spiral
  • Rapid Application Development
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Describe White Box Testing.

A

Uses detailed insider knowledge of the target system to improve tests and utilizes the source code.

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

What are the benefits of White Box Testing?

A
  • Leads to deep and more detailed testing
  • Requires less testing time
  • Tests quality of code and app design
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Describe Black Box Testing.

A

Requires no previous information and takes the approach of an uninformed attacker without access to the source code.

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

What are the benefits and disadvantages of Black Box Testing?

A
  • Benefits: Simulates a realistic scenario
  • Disadvantages: Tests take longer and some areas may remain untested
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is the Waterfall methodology?

A

A traditional methodology involving a linear plan where each task feeds into the next.

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

What is a major drawback of the Waterfall methodology?

A

It is rigid and does not allow going back to previous stages once completed.

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

What are the four phases of the Spiral Methodology?

A
  • Planning
  • Risk Analysis
  • Engineering
  • Evaluation
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What is a key focus of the Spiral Methodology?

A

Risk management and adaptability to changing requirements.

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

What is the Agile methodology?

A

Breaks projects into dynamic phases called sprints, using an iterative approach.

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

What is the role of teamwork in Agile methodology?

A

Teamwork and collaboration are central, with constant communication and customer involvement.

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

Describe Extreme Programming.

A

A form of agile development emphasizing frequent releases and short development cycles.

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

What is Test Driven Development in Extreme Programming?

A

Tests are written before the code to ensure requirements are met.

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

What is Rapid Application Development (RAD)?

A

A methodology that focuses on fast project completion and prototype creation with minimal planning overhead.

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

What are some key features of Rapid Application Development?

A
  • Swift creation of prototypes
  • Minimal planning overhead
  • Workshops with little documentation
  • Reuse of software components
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Fill in the blank: Agile methodology adapts to _______.

A

[changes in requirements]

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

True or False: The Waterfall methodology is flexible and allows for changes at any stage.

A

False

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

What does the Spiral Methodology allow for after each evaluation phase?

A

Begins a new planning phase informed by evaluation results.

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

What is a key benefit of using prototypes in RAD?

A

Constant feedback until the prototype becomes the final product.

22
Q

What is paging?

A

Paging is when memory is split up into equal-sized sections known as pages, with programs being made up of a certain number of equally-sized pages.

23
Q

What is segmentation?

A

Segmentation is the splitting up of memory into logical sized divisions, known as segments, which vary in size. These are representative of the structure and logical flow of the program, with segments being allocated to blocks of code such as conditional statements or loops.

24
Q

What is virtual memory?

A

It is when a section of secondary storage is used to act as RAM when the space in main memory is insufficient to store programs being used. Sections of programs that are not currently in use are temporarily moved into virtual memory through paging. The new programs are then loaded to memory.

25
What is a disadvantage of virtual memory?
Disk thrashing :- where the computer freezes and it spends more time moving items from RAM to secondary storage and the other way around than decoding and executing instructions.
26
What is an interrupt?
Interrupts are signals generated by software or hardware to indecate to the processor that a process needs attention. Different types of interrupts have different priorities and how urgent they are must taken into accont by the operating system when allocating processor time.
27
28
How does the interrupt service routine work?
The processor checks the contents of the interrupt register at the **end** of each fetch-decode-execute cycle. If an interrupt exists that is of a higher priority to the process being executed, the current contents of the special purpose registers in the CPU are temporarily transferred into a stack. The processor then responds to the interrupt by loading the appropriate interrupt service routine to RAM. A flag is set to signal the ISR has begun. Once the interrupt has been services, the flag is reset.
29
What is scheduling?
It is a method where the OS has to ensure all sections of programs being run recieve a fair amount of processing time.
30
What are pre-emtive scheduling algorithms?
Jobs are actively made to start and stop by the operating system. Examples :- Multilevel feedback queues, shortest remaining time, Round robin.
31
What are non pre-emptive scheduling algorithms?
Once a job is started, it is left alone until it is completed. Examples :- First come First serve, Shortest Job first.
32
What is the round robin scheduling algorithm?
Each job gets an equal, fixed time slice (quantum) to execute before moving to the next job in the queue. Ensures all jobs are processed equally, preventing starvation. Longer jobs take more cycles to complete because their execution is split into small, interrupted segments. Jobs are treated equally, regardless of urgency or importance.
33
What is the First come first served scheduling algorithm?
Jobs are processed in chronological order by which they entered the queue. FCFS doesn't support priorites.
34
What is the Multilevel feedback queues scheduling algorithm?
This makes use of multiple queues, each which is ordered based on a different priority. This can be difficult to implement due to deciding which job to prioritise based one a combination of priorities.
35
What is the Shortest job first scheduling algorithm?
Queue Order: Jobs are sorted by completion time, with the shortest jobs processed first. Goal: Minimizes average waiting time for jobs, ideal for batch systems. The processor must know/estimate each job’s duration (not always possible). Starvation of longer jobs if short jobs keep entering the queue.
36
What is the Shortest remaining time scheduling algorithm?
Shorter timer left jobs have priority Preemptive: The OS can interrupt a running job if a shorter job arrives.
37
What are linkers?
This is a piece of software that is responsible for linking external modules and libraries included within the code.
38
What are static linkers?
Modules and libraries are added directly into the main file. This increases the size of the file. Any updates to modules and libraries externally will not affect the program.
39
What are dynamic libraries?
Addresses of modules and libraries are included in the file where they are referenced. When the program is run, the loader retrieves the program at the specified address so it can be executed.
40
What is a loader?
Loaders are programs provided by the operating system. When a file is executed, the loader retrieves the library or subroutine from the given memory location.
41
What is alpha testing?
Alpha testing is carries out in-hour by the software development teams within the company.
42
What is beta testing?
Beta testing is carried out by end-users after alpha testing has been completed. Feedback from users is used to inform the next stage of development.
43
44
What is the waterfall model?
Description: Sequential and linear software development approach. Process: Divided into distinct phases (requirements, design, implementation, testing, maintenance). Advantages: Clear structure, easy to understand and manage, well-suited for projects with stable requirements. Disadvantages: Limited flexibility for changes, long feedback loop, high risk of late-stage changes.
45
What is agile methodology?
Description: Iterative and incremental software development approach. Process: Emphasizes collaboration, adaptability, and customer feedback throughout the development process. Advantages: Flexibility to adapt to changing requirements, customer involvement, early and continuous delivery of working software. Disadvantages: Requires active customer involvement, may be challenging for large or distributed teams.
46
What is Extreme Programming?
Description: Agile methodology emphasizing high-quality software development practices. Process: Iterative development with a focus on customer satisfaction, continuous testing, and frequent releases. Advantages: Emphasis on teamwork, customer involvement, and software quality. Disadvantages: Requires skilled developers, may be challenging for inexperienced teams.
47
What is spiral methadology?
Description: Combines elements of both waterfall and iterative development models. Process: Iterative approach with risk management at its core, involving multiple cycles of planning, risk analysis, development, and evaluation. Advantages: Risk-focused approach, flexibility in incorporating changes, good for large and complex projects. Disadvantages: High cost and time investment, complex to manage.
48
What is rapid application development?
Description: Emphasizes rapid prototyping and quick development cycles. Process: Iterative development with a focus on prototyping, user feedback, and quick iterations. Advantages: Faster development cycles, customer involvement, early feedback. Disadvantages: May sacrifice long-term maintainability for speed, requires highly skilled team members.
49
What is a programming paradigm?
They are different approaches to using a programming language to solve a problem. They split into two main catagories - imperative and declarative.
50
What is a imperative paradigms?
They use code that clearly specifies the actions to be performed to reach the solution.
51
What is a declarative paradigm?
They focus on stating the desired result rather than how to get there, How the result is obtained is either hidden from the user or is heavily abstracted.