Software DD (Evaluation) Flashcards

Different evaluation criteria and what they mean

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

What are the 5 main Evaluation Criteria?

A
  • Fitness for purpose
  • Efficient use of coding constructs
  • Usability
  • Maintainability
  • Robustness

From RGC Aberdeen website

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

Fitness for purpose

A

Fitness for purpose is establishing whether or not your software fulfils all the functional and user requirements detailed in the specification. Any omissions or issues should be described here.

For example:

  • Optional requirements
  • Any requirement that is met but there is perhaps a concern/issue or it is “just met”

So when establishing fitness for purpose you need to refer to the requirements and ensure that they have been met.

From RGC Aberdeen website

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

Efficiency

A

Efficiency can be defined as:
“achieving maximum productivity with minimum wasted effort or expense”
Just because all functional requirements have been met does not that it has been done in the most efficient manner.

From RGC Aberdeen website

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

Efficiency - Efficient use of coding constructs

A

This aspect of evaluation looks at whether the most appropriate programming constructs or data types have been used:

  • Suitable Data Types
  • Conditional or Fixed Loops
  • Arrays
  • Nested Selection Statements
  • Procedures/functions with parameter passing

Efficiency does not always mean speed of execution - it could be memory footprint or limiting access to files/databases.

From RGC Aberdeen website

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

Efficient use of coding constructs - Suitable Data Types and Structures

A

Have you used appropriate variable types
* Certain functions can only be carried out on certain variable types - such as concatenation on strings

Have you used arrays/records suitably?
* Arrays may not be faster at execution but with regards to memory size they can make code more compact

From RGC Aberdeen website

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

Efficient use of coding constructs - Fixed and Conditional Loops

A

Where possible have you used a loop?
* A loop may not always be faster for a small number of iterations but over larger iterations would be more efficient.

If you are using a fixed loop - is that the most efficient option?
* What if you are searching through a list of 100,000 items and you have found an item
* A conditional loop could be more efficient as you could use logic to halt the loop from running unnecessarily, preventing needless iterations through large arrays.

From RGC Aberdeen website

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

Efficient use of coding constructs - Selection Statements

A

Elif and Else instead of If

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

Modularity

A

Modularity should allow you to reuse functions. A subroutine can be reused by passing different parameters into it.

Modularity also allows programmers to be working on different modules independently from each other (as long as they aware what the inputs and outputs are). It also assists in debugging as if particular requirement isn’t working properly than that may narrow it down to a subroutine or two.

From RGC Aberdeen website

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

Usability

A

You can have a functioning product but if it is not usable then it isn’t really very useful. You need to test and evaluate the usability of your product. The usability can be just as important as the functionality - if a product isn’t usable then it is less likely to be successful.
You can ask participants to perform specific or routine tasks using your product
Such as installing the product
Saving a file etc.
Then the important factor is the observation of the user under controlled conditions and the feedback that is given.

From RGC Aberdeen website

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

Maintainability

A

How readable is your code?

Meaningful variable names/identifiers assist you (and other developers) to identify the function of programs.

Indentation and the use of white space are also extremely useful
* Remember that Python uses indentation instead of delimiters such as { } or ( ) and end if/next loop etc

Remember that modularity can help maintainability as:
* Local variables can help reduce variable clashes.
* Subprograms can be edited independently of each other.
* Bugs/Errors should be able to located easier.

From RGC Aberdeen website

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

Robustness

A

A piece of software is robust if it can deal with exceptional or incorrect data or unusual situations. Your input validation or file access should be one of your main considerations. You cannot deal with every possible scenario but you should aim to test those that may happen - even if you cannot deal with them as yet.

From RGC Aberdeen website

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