Implementation of Software Solutions Flashcards

1
Q

What do you have to conisder when choosing the language for a program

A

the nature of the project

the intended environment including, hardware, operating and network use

The experience of the programmers

Event driven or sequential approach

Maintainability

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

What are the two types of metalanguages

A

EBNF and Railroad diagrams

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

What are the symbols for EBNF

A

<> for non terminal (rules to be defined elsewhere)

= (this is defined as)

[] optional

{} a repetition that is repeated zero or more times to make it one or more put a symbol infront of the loop

() for grouping

Terminal symbols are just words

| for a choice between alternatives

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

How to read Railroad diagrams

A

Read the diagram as if it was a train on a railroad track

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

What is meta languages

A

it describes the syntax of programming languages

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

What is Translation

A

It is the process of converting high-level code or source code into machine executable codes.

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

What are the two common methods of translation

A

Interpretation and Compilation

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

What is interpretation

A

It is a translation method that translates each line or statement of the source code into machine code and then immediately executes it. If errors exist then it will cause a halt to the execution once encountered.

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

What is a disadvatnage of interpretation

A

it slows down the process of execution significantly because each statement must be translated into executable code before it is executed.

Users must also have a copy of the interpreter installed on their machines for execution to take place which eequires further costs and memory overheads.

The developer has limited control over his intellectual rights because the users can easily access the code becase it is distributed to users.

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

What is the main advantage of Interpretation

A

Developers use it during the coding to allow them to execute small fragrments of code quickly and helps debug/test the system.

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

What is compilation

A

It is when the source code as its entirety is translated into executable code. They can later be executed without any need for the translater. Errors encountered during the compilation process are relayed as a series of messages to the programmer.

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

What is the main difference between Compiler and interpretation

A

A compiler does not produce any actual machine code until the entire source code is known to be correct in terms of the syntax of the source code.

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

What is advantages of compilers

A

they are used to produce executable code for the majority of commercial applications because it runs faster and more efficiently thant interpretated products.

The intellectual rights of the author are protected as the code is not available to users

it is easier to provide quality support because they know the precise workings of the application as users can’t modify the code.

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

What is the disadvantage of Compiler

A

It is harder to understand the details of the original source code, and the source code is not available to the users.

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

What is requried to translate source code into object code

A

lexical analysis

syntactical analysis

code generation

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

What is lexical analysis

A

it is the process of examining each word to ensure it is a valid part of the language. It achieves this through the use of a table of symbols or tokens. It gets the identifiers and constants to add them into a predefined table which serves as a dictionary to check if the words are correct and becomes tokenised.

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

What is syntactical analysis

A

It is the process of checking the syntax of sentences and phrases is correct in terms of the grammatical rules of the language.

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

what is parsing

A

it is the process of checking the syntax of a sentence.

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

What is a Dynamic Link Library (DLL)

A

A file containing object code subroutines that add extra functionality to a high-level language. DLLs need to be distributed with applications.

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

What is code generation

A

it is after when the processes of lexical analysis and syntactical analysis have completed without error then the machine code can be generated. It involves converting each token or series of tokens into their respective machine code instructions. Because we know that the tokens are correct and are in the correct order, no errors will be found during code generation.

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

What is a register

A

A temporary storage location within the central processing unit. The size of a register is the same as the word size of the processor.

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

What is machine code

A

it is the native language of the CPU. it is written in a string of 1s and 0s.

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

What is a flag in relation to a CPU

A

In relation to the CPU, a flag is a single bit stored within a register. Flags are used to
indicate an event has occurred within the CPU.

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

what is interrupt in a CPU

A

In relation to the CPU an interrupt is a call to an outside device. The device responds by
reading or writing to the accumulator

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

What are the stages in the FETCH Execute cycle

A

Fetch instruction from primary memory and place in the instruction register.

Set the program counter to the next instruction’s address. As instructions are stored sequentially this step merely increments the program counter by 1.

Decode the instruction. This is performed by the control unit. Involves determining the nature of the instruction.

Load operands from memory (if required) into a register. For example, an add instruction will include an operand that is a number. A store instruction will include an operand that is a memory address. Some instructions, such as increment, have no operands.

Execute the instruction and store the result. The ALU usually performs this task. Normally the result is stored in the accumulator. Some tasks require more than one result so other locations are used. For example, an add with carry will store the main result in the accumulator and set the carry flag appropriately.

Reset the fetch-execute counter back to one ready to commence the process again from step 1.

26
Q

What are some debugging tools

A

Breakpoints

Resetting variable contents

Program traces

Single line stepping

Watch expressions

27
Q

What are some Error detection/correction techniques

A

Stubs

Drivers

Flags

Debugging output statements

peer checking

desk checking

Structured walkthrough

use of expected output

28
Q

What are Good program practices

A

Use of a clear modular structure: refers to the top down desing of the project.

one logical task per subroutine

Quality of solution: it refers to how superior it is in performance, design and matainability to other solutions.

Appropriate use of control and data structures

Writing for subsequent maintenance.

Version control and regular backup

Recognition of relevant social and ethical issues

29
Q

What are the types of error in software solutions

A

Syntax

Logic

Runtime

30
Q

what is a syntax error

A

it is an error that prevents the translator from converting high-level code into object code because of incorrect use of high-level lanugage. it can result from both the lexical analysis and the syntactical analysis.

31
Q

What are logic errors

A

They are the result of syntactically correct code that does not complete the required task.

32
Q

What are runtime errors

A

They are errors are errors detected by the
computer whilst a program is executing. There are many possible reasons for the system to generate a runtime error. The error, or bug, can be linked to either hardware or software problems

33
Q

What is a Bug

A

An error or defect in software or hardware that causes a program to malfunction.

34
Q

What is a crash

A

A serious computer failure. The computer itself stops working or an application aborts unexpectedly. Caused by hardware malfunction or a serious software bug.

35
Q

what is a stub

A

A stub is a small subroutine used in place of a yet to be coded subroutine. The use of stubs allows higher-level subroutines to be tested. Stubs do not perform any real processing; rather they aim to simulate the processing that will occur in the final subroutine they replace

36
Q

What is a driver

A

A driver is a subroutine written to test the operation of one or more other subroutines. Commonly, drivers set the value of any required variables, call the subroutine to be tested and output the results of the subroutine call

37
Q

What are flags used for debugging

A

flags are used to check if certain sections of code have been executed or certain conditions have been met. A flag is used to indicate that a certain condition has been met. Usually a Flag is set to either true or false, that is, most flags are Boolean variables.

38
Q

What are debugging output statements

A

Strategic placement of temporary output statements can help to isolate the source of errors. By placing output statements within called subroutines, the programmer can determine which subroutines have been called.

39
Q

What is peer checking

A

Peer checking involves other team members in the task of analysing each other’s work to detect and correct errors.

40
Q

What is desk checking

A

the process of working through an algorithm or piece of source code by hand. A table with a column for each variable is used. As the algorithm or code is worked through by hand, changes to variables are made by writing the new value under the appropriate identifier.

41
Q

What are structured walk through

A

Structured walk throughs, as the name suggests, are more formal than peer checks. The developer or team of developers present their work to a group of interested parties. This group may include representatives from management, marketing and potential users, with the aim being to present the software and formally work through its functionality

42
Q

What is the use of expected output

A

When initial test data items are created the expected output from these inputs should be calculated by hand. Once the subroutine has been coded, the test data is entered and the output from the subroutine is compared to the expected outputs.

43
Q

What are break points

A

Breakpoints are used to temporarily halt the execution of the code. Once execution has stopped it is possible to examine the current value of each variable. By adding breakpoints at strategic points within the code, it is possible to locate the source of the error.

44
Q

What is resetting variable contents

A

Altering the value of variables during the execution of code can be useful in determining the nature of an error. The ability to alter a variable’s contents can also allow the programmer to determine which values are causing errors without the need for the variable to actually attain that value as a consequence of execution.

45
Q

What are program traces

A

Tracing, in terms of error detection, refers to tracking some aspect of the software. A program trace enables the order of execution of statements to be tracked or the changing contents of variables to be tracked. Both these types of trace involve analysing and following the flow of execution.

46
Q

What is single line stepping

A

Single line stepping is the process of halting
execution after each statement is executed. Each statement is highlighted as it is executed.

47
Q

What are watch expressions

A

A watch expression is an expression whose
value is updated in the watch window as
execution continues. Usually watch expressions are variable names

48
Q

What is user documentation

A

Users are the final operators of the product. Documentation targeted at users needs to be directed at their level of knowledge and expertise.

49
Q

What is an installation guide

A

Installation guides should provide the user with sufficient information to successfully install the software product on their machine(s). Hardware and software requirements will be included together with step-by-step instructions to guide the user through the set-up process.

50
Q

What is a User manual

A

user manuals aim to provide concise and accurate information in regard to the operation and purpose of software. Topics in user manuals describe what tasks the software can complete, why these tasks are required and how these tasks are completed using the software. The information needs to be presented using a format that is appealing, accessible and consistent. Often much of the information traditionally contained in a user manual will be included in help files that are accessible directly from within the application.

51
Q

What is a reference manual

A

Reference manuals are designed to be an efficient source of information. In terms of
software, a reference manual should succinctly describe each command within the application. Reference manuals are not designed to be read from start to finish, rather they will be read in random order as needs arise.

52
Q

What are tutorials

A

Tutorials provide instruction in the use of software products using example scenarios. The user is lead step-by-step through the processes included in the product. The user performs the tasks under the direction of the tutorial. Tutorials are designed so users can experience real world use of the application before using their own data.

53
Q

What is online help

A

It is documentatino that is provided online rather than printed manuals.

54
Q

What are the types of user doccumentation

A

Installation guide

User manual

reference manual

Tutorials

Online help

55
Q

What is Technical doccumentation

A

it is doccumentation designed fro an audience who are proficient and knowledgeable in regard to the subject matter. In terms of software products, technical documentation primarily describes the structure and engineering behind a product.

56
Q

What are the types of technical doccumentation

A

Log Books (or process diaries)

Source code doccumentation

models and diagrams.

57
Q

What is a log book

A

A log book records the systematic series of actions that have occurred during the development of a project. Log books or process diaries are often utilised during the design and development of products in many industries. Maintaining a log book is a method of chronologically recording the processes undertaken to develop a final product

58
Q

What is source code doccumentation

A

it is the documentation of the code

59
Q

What are the two types of internal/source code doccumentation

A

Comments and intrinsic doccumentation

60
Q

What are comments

A

Comments provide information for future programmers. The translator ignores comments, or remark statements, within the code. Each procedure, function and logical process within the code should be preceded by a comment. They explain what section of code does rather than how it does it.

61
Q

What is Intrinsic doccumentation

A

Intrinsic documentation is therefore
documentation that is part of the code by its very nature. In other words, the code is
self-documenting. There are two main types of intrinsic documentation: the use of meaningful identifiers and indenting of code. Identifiers should describe the purpose of the element it represents and indenting improves readibilitiy.