COMP201 - Software Engineering Flashcards

1
Q

What are the four fundamental activities in all software processes?

A

Specification - what the system should do and its development constraints
Development - production of the software system
Validation - checking the software is what the customer wants
Evolution - changing software in response to change in demands

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

What is CASE?

A

Computer-Aided Software Engineering - software systems intended to provide automated support for software process activities (e.g. requirement analysis)

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

What are the essential attributes of software products and documentation?

A

Maintainability - software must be (easily) evolvable to meet changing needs
Dependability - software must be trustworthy (work with all data)
Efficiency - software shouldn’t be wasteful with system resources
Usability - software must be usable by the users it was design for

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

What are the responsibilities involved in software engineering?

A

Confidentiality, competence, intellectual property rights, computer misuse

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

What are processes?

A

A series of activities with specific characteristics

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

What are the characteristics of processes?

A

Prescribe all major activities
Use resources and produce intermediate and final products
May include sub-processes and have entry and exit criteria
Activities organised in a sequence
Constraints or controls may apply to activities

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

What are generic process models?

A

Models describing the organisation of software processes

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

What are some examples of generic software process models?

A
The waterfall model (distinct phases of specification & development)
Evolutionary development (specification & development interleaved)
Formal systems development (mathematical system model formally transformed to an implementation)
Reuse-based development (system assembled from existing components)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What are iterative process models?

A

Models describing the software process as a cycle of activities

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

What is requirement engineering?

A

The process of developing a software specification

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

What activities are in the design process?

A
Architectural design
Abstract specification
Interface design
Component design
Data structure design
Algorithm design
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What happens in architectural design?

A

The subsystems making up their relationships are identified and documented

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

What happens in abstract specification?

A

An abstract specification of each subsystem’s operational constraints and services is produced

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

What happens in interface design?

A

An unambiguous interface with other subsystems is designed and documented for each subsystem.

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

What happens in component design?

A

Services are allocated to components and the interfaces of these components are designed

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

What happens in structure design?

A

The data structures used in the system implementation are designed in detail and specified

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

What happens in algorithm design?

A

The algorithms used in components to provide services are designed and specified

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

What is a model?

A

A graphical view of the operation/structure of a system - can be dynamic or static

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

Why use models?

A

Formalises the type and format of required information
Easier to get big picture than with text documents
Do not rely heavily on natural language
Some can be translated automatically to a software implementation
Can be tested for validity automatically

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

What are design methods?

A

Design (structured) methods are systematic approaches to developing a software design)

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

What are the 5 testing stages?

A
Unit testing
Module testing
Subsystem testing
System testing
Acceptance testing
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

What does unit testing test?

A

Individual components

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

What does module testing test?

A

Related collections of dependent component

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

What does subsystem testing involve?

A

Modules integrated into subsystems and tested, focus on interface testing

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

What does system testing test?

A

The system as a whole, emergent properties.

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

What does acceptance training involve?

A

Testing with customer data to check it’s acceptable

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

What is software evolution?

A

Software is inherently flexible and can change based on changing demands or circumstances

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

What activities might be assisted by CASE?

A
System model development
Design entity management
Interface construction
Bug/issue management
Version control management
Debugging & fault finding
Translating into new versions
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

What are functional requirements?

A

Statements of services the system should provide, how the system should react to particular inputs and behave in particular situations

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

What are non-functional requirements?

A

Constraints on the services or functions offered by the system, usually defined on the system as a whole

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

What is the problem with natural language specification?

A

Ambiguity - readers and writers may interpret same words differently
Over-flexibility - too many ways of expressing one idea
Lack of modularisation - natural language structures are inadequately suited to structuring systems

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

How should user requirements be written?

A

In natural language, tables and diagrams

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

How are system requirements written?

A

In structured language, a PDL, or in a formal language

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

What do system requirements do?

A

Communicate the functions that the system should provide

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

What is PDL?

A

Program Design Language - like a more flexible programming language used to define requirements operationally

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

How is a software requirements document structured?

A
Preface
Intro
Glossary
User requirements
System architecture
System requirements specification
System models
System evolution
Appendices
Index
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
37
Q

What does the preface contain?

A
  • Expected readers
  • Version history
  • Summary & explanation of latest version changes
  • Authors list
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
38
Q

What does the introduction contain?

A
  • Need for the system
  • Functions provided
  • System interactions w/ existing systems
  • Software alignment w/ organisation’s objectives
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
39
Q

What does the glossary contain?

A
  • Technical terms used in document

- No assumptions as to technical expertise of reader

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

What does the user requirements definition contain?

A
  • Nat. lang. and diagrams for user describing (a) services provided for user and (b) non-functional requirements of system
  • Product and process standards
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
41
Q

What does the system architecture section contain?

A
  • High-level overview of system architecture

- Distribution of functions across system modules

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

What does the system requirements specification contain?

A
  • Detailed description of the functional and non-functional requirements
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
43
Q

What does the system models section contain?

A
  • System models showing relationships between system components, the system and its environment
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
44
Q

What does the system evolution section contain?

A
  • Anticipated changes to system
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
45
Q

What do the appendices contain?

A
  • Detailed specific info about the system’s development (e.g. hardware & db descriptions)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
46
Q

What does the index contain?

A

Indices of the document including diagrams and functions

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

What are the 4 processes of requirement engineering?

A

Requirement elicitation
Requirement analysis
Requirement validation
Requirement management

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

What is a feasibility study?

A

A short focused study that checks if the proposed system is worthwhile (i.e. does it contribute to organisational objectives? can it be engineered w/ current tech and w/i budget? can it be integrated? is there a simpler way?)

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

What are viewpoints?

A

A way of structuring requirements to represent the perspectives of different stakeholders

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

What is the Bell-LaPadula model?

A

All items given security clearance level, no read-up (a subject with level (1) cannot read level (2), level (2) can’t read level (3), etc.), no write-down (a level (4) doc can’t be included with a doc in level (3)), trusted objects can write down

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

What is cucumber?

A

Software tool used to help write requirements by giving clear notation to write specs

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

What are some model types?

A

Data processing model -
shows how data is processed at different stages
Composition model - shows how entities are composed of other entities
Architectural model - shows principal subsystems
Classification model - shows entities’ common characteristics
Stimulus/response model - shows the system’s reaction to events

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

What do context models do?

A

Show the position of a system in its environment with other systems and processes

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

What do process models do?

A

Show overall process and processes supported by system

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

What do behavioural models show?

A

A description of overall behaviour of the system

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

What are the two types of behavioural model?

A

Data processing models show how data is processed as it moves through the system
State machine models show the systems response to events

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

What do data flow diagrams do?

A

Track and document how the data associated with a process is helpful to develop an overall understanding of the system

58
Q

What do semantic data models describe?

A

The logical structure of data which is imported to or exported by the systems

59
Q

What do object models describe?

A

Logical system entities, their classification and aggregation

60
Q

What do sequence models show?

A

The interactions between actors and the system objects they use

61
Q

What do structured methods do?

A

Provide a framework for developing system models

62
Q

What do the circles in a classical petri net model represent?

A

Places

63
Q

What do the squares in a classical petri net model represent?

A

Transitions

64
Q

How are connections represented between place and transition in a classical petri net model?

A

Directed edges between places and transitions

65
Q

What are the tokens in a classical petri net model?

A

Dynamic objects moving through places and transitions

66
Q

What’s another way to represent transitions in a classical petri net model?

A

As solid vertical bars

67
Q

How is a transition enabled?

A

If all places connected to it (not from it) contain tokens

68
Q

What happens when a transition is enabled?

A

It may “fire” (consume tokens from input places and produce tokens for output places) - only one transition fires at a time, even if more than one is enabled

69
Q

When can a transition with no input fire?

A

At any time

70
Q

How does a transition with no output behave?

A

Consumes incoming tokens regardless

71
Q

Are petri nets deterministic? What does that mean?

A

Petri nets are not deterministic, a conflict can arise when two transitions fight for one token. Whichever gets it is arbitrary.

72
Q

What can tokens represent?

A

Resources (humans/goods/machines), information, conditions, states of objects

73
Q

What do places represent?

A

Buffers, channels, geographical locations, conditions, states

74
Q

What do transitions represent?

A

Events, transformations, transportations

75
Q

What do multiple arcs in the same direction between a place and transition mean?

A

The number of arcs specifies the number of tokens to be produced/consumed
This can also be represented by writing a number next to a single arc)

76
Q

What does formal specification involve?

A

Investing more effort in the early phases of software development, reducing requirement errors as it forces a detailed analysis of the requirements

77
Q

What are algebraic specifications?

A

An approach to specification in which the system is specified in terms of its operations and their relationships

78
Q

What is the structure of algebraic specifications?

A

Introduction (type of entity)
Description (informal description of operations)
Signature (syntax of interface)
Axioms (semantics of operations)

79
Q

What is AsmL?

A

Abstract State Machine Language - language for modelling the structure and behaviour of digital systems

80
Q

How does Hoare’s quicksort work?

A

Pick one item from an array (pivot)
Partition items in the array around pivot so all elements to the left are smaller and all elements to the right are larger than pivot
Use recursion to sort the two partitions

81
Q

What are the components to the shortest paths algorithm?

A

Shortest paths from given node s where nodes of graph given as set N and distance between adjacent nodes given map D where D(n,m)=infinity denotes that two nodes are not adjacent

82
Q

What are the five criteria to evaluate modular design methods?

A

Modular decomposability, modular composability, modular understandability, modular continuity, modular protection

83
Q

What is modular decomposability?

A

A criterion met by a design method that supports the decomposition of a problem into smaller sub-problems which can be solved independently

84
Q

What is modular composability?

A

A criterion met by a method that leads to the production of modules that may be freely combined to produce new systems.
Directly related to reusability

85
Q

What is modular understandability?

A

A criterion met by a method that encourages development of modules which are easily understandable

86
Q

What is modular continuity?

A

Criterion satisfied by a method that leads to production of software where a small change in the spec leads to a change in few or 1 module(s)

87
Q

What is modular protection?

A

A criterion satisfied by a method that yields architectures where the effect of an abnormal condition at run-time affects few (or one) module(s)

88
Q

What is the repository model?

A

All shared data for subsystems is held in a central database which may be accessed by all sub-systems

89
Q

What are some advantages of the repository model?

A

Dbs are efficient at sharing large amounts of data and data doesn’t have to be transformed between subsystems
Subsystems producing data don’t need to give a shit about how that data will be used
Many standard operations (backup, security, recovery, etc.) are centralised and controlled by a single repository manager
The data model is visible through the repository schema

90
Q

What are some disadvantages of the repository model?

A

Subsystems must agree on the data model, so there will be compromises (e.g. with performance)
Evolution may be difficult since a large amount of data is generated and translation may be difficult and expensive
Different systems have different requirements which may be difficult to enforce in a single db
It may difficult to distribute repository over a number of different machines

91
Q

What is coupling?

A

A measure of strength of the inter-connections between system components

92
Q

What does loose coupling mean?

A

Component changes are unlikely to affect other changes

93
Q

Are OOP systems coupled?

A

Yes, but loosely - there’s no shared state and objects communicate using message passing. A class is coupled to its super-classes

94
Q

What is cohesion?

A

A measure of how well a component “fits together”

95
Q

What is coincidental cohesion?

A

Weak cohesion where parts of a component are simply bundled together

96
Q

What is logical association?

A

Weak cohesion where components which perform similar functions are grouped

97
Q

What is temporal cohesion?

A

Weak cohesion where components which are activated at the same time are grouped

98
Q

What is communicational cohesion?

A

Medium-strength cohesion where all elements of a component operate on the same input or produce the same output

99
Q

What is sequential cohesion?

A

Medium-strength cohesion where the output for one part of a component is the input to another

100
Q

What is functional cohesion?

A

Strong cohesion where each part of a component is necessary for the execution of a single function

101
Q

What is object cohesion?

A

Strong cohesion where each operation provides functionality which allows object attributes to be modified or inspected

102
Q

What makes a good system?

A

Reliable (low coupling)
Flexible (low coupling, high cohesion)
Affordable (software reuse)
Available (decreased development time through reuse)

103
Q

What’s the difference between a sub-system and a module?

A

Sub-systems are systems in their own right whose operations are independent of the services provided by any other sub-systems.
Modules are system components that provide services to other components but wouldn’t normally be considered as a separate system

104
Q

What are four different architectural models?

A

Static structural model
Dynamic process model
Interface model
Relationships model

105
Q

What do statistic structural models show?

A

Major system components

106
Q

What do dynamic process models show?

A

Process structure of the system

107
Q

What do interface models do?

A

Define sub-system interfaces

108
Q

What’s an example of a relationships model

A

Data-flow model

109
Q

What are some advantages of the client-server model?

A

Distribution of data is straightforward
Makes effective use of networked systems
May require cheaper hardware
Easy to add new servers or upgrade existing ones

110
Q

What are some disadvantages of client-server model?

A

No shared data model so sub-systems use different data organisation. Data interchange may be inefficient
Redundant management in each server
No central register of names and services - hard to find what services are available

111
Q

What is the abstract machine model used for?

A

To model the interfacing of sub-systems

112
Q

What are some characteristics of distributed systems?

A
Resource sharing
Openness
Concurrency
Scalability
Fault tolerance
Transparency
113
Q

What are some disadvantages of distributed systems?

A

Complexity
Security
Manageability
Unpredictability

114
Q

What is middleware?

A

Software that manages and supports the different components of a distributed system, usually off-the-shelf

115
Q

What’s multiprocessor architecture?

A

Simplest distributed system model
System composed of multiple processes which may execute on different processors
Architectural model of many large real-time systems
Distribution of process to processor may be pre-ordered or may be under the control of a dispatcher

116
Q

What is a thin client model?

A

A client-model where all the application processing and data management is carried out on the server

117
Q

What’s a fat-client model?

A

A client-server model where all processing and data management is carried out by the client

118
Q

How does a three-tier architecture work?

A

Each of the application architecture layers may execute on a separate processor

119
Q

What does object orientation mean?

A

Software organised as a collection of discrete objects that incorporate both data structure and behaviour

120
Q

What is aggregation in class models?

A

A part-whole relationship (denoted with diamond on whole side and normal line on part side). Denotes that an object “is part of” another

121
Q

What is composition in class models?

A

A special kind of aggregation where the whole strongly owns its parts - if the whole is copied or deleted its parts go with it. Denoted by a filled-in diamond on the side of the whole

122
Q

What is an association class?

A

Both the relationship between objects and a class in its own right. Contains data and methods for the relationship

123
Q

What’s the difference between verification and validation?

A

Verification shows conformance with specification, validation shows that the program meets the customer’s needs

124
Q

How should testing plans be constructed?

A

Early in the development process, should identify the balance between static verification and testing

125
Q

How should a software test plan be structured?

A

Process - description of major phases of testing process
Requirements - ensure all requirements are individually tested
Items - specify the products of the software process
Schedule - overall schedule for testing software including allocating resources in advance
Recording - results of tests must be recorded
Hard/software requirements - list of software tools required and est. hardware utilisation
Constraints - any constraints affecting testing process

126
Q

What are software inspections

A

Very effective technique for discovering errors involving people, applicable to any representation of the system and requiring no execution of the system

127
Q

What is black-box testing?

A

Testing that treats the program as a black box, where test cases are based on the specs

128
Q

What is equivalence partitioning?

A

Input data and output results fall into different classes where all members of a class are related - these classes are equivalence partitions where the program behaves in an equivalent way for each class member.

129
Q

What is white-box (structural) training?

A

Derivation of test cases according to program structure

130
Q

What are the most significant roles of a manager?

A

Planning, estimating and scheduling

131
Q

How long do planning and estimating take?

A

They’re iterative processes which continue throughout the course of a project, so, a lot.

132
Q

What is a project milestone?

A

A predictable state where some formal report of progress is presented to management

133
Q

What is risk management concerned with?

A

Identifying risks (project risks, product risks, business risks, etc.) and planning to ensure these do not develop into major threats

134
Q

What are some estimation techniques for project cost?

A
Algorithmic cost modelling
Expert judgement
Estimation by analogy
Parkinson's Law
Pricing to win
135
Q

What is algorithmic code modelling?

A

A formulaic approach based on historical cost information generally based on the size of the software

136
Q

How is cost estimated in algorithmic cost modelling?

A

As a mathematical function of product, project and process attributes
Effort = A * Size^B * M
A = organisation-dependent constant, B disproportionate effort for large projects, M = multiplier reflecting product process and people attributes

137
Q

What is expert judgement cost estimation?

A

One or more experts in both software development and the application domain predict software costs independently until some consensus is reached

138
Q

What is cost estimation by analogy?

A

Computing project cost by comparing the project to a similar project in the same domain

139
Q

What is Parkinson’s Law?

A

“The project costs whatever resources are available” - work expands to fill the time available, cost is determined by available resources rather than objective statement

140
Q

What is pricing to win cost estimation?

A

The project costs whatever the customer is willing to spend on it

141
Q

When would pricing to win be used?

A

When detailed information is lacking and it’s the only strategy appropriate