Software Development Flashcards

(22 cards)

1
Q

What is debugging?

A

The process of identifying the root cause of an error and correcting it.

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

What is testing?

A

Process of identifying the error initially.

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

What are the types of software development testing?

A
  1. Verification
  2. Validation
  3. Usability testing
  4. Compatibility/portability testing
  5. Security testing
  6. Compliance testing
  7. Accessibility testing
  8. Performance and stress testing
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is verification and validation of software?

A

Verification - Is the product working as planned?

Validation - Is the product working as required?

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

How would you verify and validate the functions of a piece of software?

A

Verify - unit testing, integration testing, system testing.

Validate - user acceptance testing, clinical validation testing.

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

What is pseudocode?

A

An informal, natural language-like notation for describing how an algorithm or a program will work without getting close to the target programming language.

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

Why is pseudocode used?

A

To streamline the creation of code within routines.
Generating code from it becomes nearly automatic if written at the right level.
Once the pseudocode is written, code is built around it such that the pseudocode forms the basis for the programming comments, eliminating commenting effort whilst providing meaningful comments.

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

How should pseudocode be written?

A

Using natural language-like statements that precisely describe specific operations.
Avoid syntactic elements from the target programming language which eliminates the benefit of high-level design.
Write at the level of intent by describing the meaning of the approach rather than how it will be implemented in the target language.

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

What is a bug a symptom of?

A

The developer doesn’t fully understand what the program does

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

What is the difference between software coding and software development?

A

Software coding is writing the code that makes the software as part of the software development, whereas software development encompasses the entire process of creating and maintaining software, includes requirements, design, coding, integration, testing and deploying

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

What is included in the scope of software development?

A
  1. Traditional programs
  2. “Simple” spreadsheets
  3. Scripts/macros to enhance applications
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Why is software development used?

A
  1. To enhance or add functionality
  2. Research and development
  3. Automate laborious processes
  4. Implement control systems
  5. Manage instruments
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

When is a QMS required?

A

If developing a medical device (or good practice)

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

What are the requirements for software development?

A

Planning, requirement analysis, design, code, verification, integration and testing, maintenance, risk management, post market surveillance

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

What is UML?

A

Unified Modelling Language
- Set of formalised graphical representations for design entities and relationships

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

Why is UML used?

A

Supports commons understanding in communicating desing
Accelerated the process of considering design alternatives

17
Q

What is test driven development?

A

Start by writing a test which verifies the intended outcome is achievd and do whatever necessary to make the test ass and once it passes, software must be okay - this is thought to be more robust

18
Q

What are the implications of test driven development?

A

Increased overhead during development but less overhead during maintenance

19
Q

What is a unit test?

A

Verifies components of system

20
Q

What is a behaviour test?

A

End user perspective

21
Q

What documents are required when developing software?

A

Development policy, trianing records, justification, risk assessments, designs, testing evidence, user manual, clinical saftey report