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
What does system testing test?
The system as a whole, emergent properties.
26
What does acceptance training involve?
Testing with customer data to check it's acceptable
27
What is software evolution?
Software is inherently flexible and can change based on changing demands or circumstances
28
What activities might be assisted by CASE?
``` System model development Design entity management Interface construction Bug/issue management Version control management Debugging & fault finding Translating into new versions ```
29
What are functional requirements?
Statements of services the system should provide, how the system should react to particular inputs and behave in particular situations
30
What are non-functional requirements?
Constraints on the services or functions offered by the system, usually defined on the system as a whole
31
What is the problem with natural language specification?
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
32
How should user requirements be written?
In natural language, tables and diagrams
33
How are system requirements written?
In structured language, a PDL, or in a formal language
34
What do system requirements do?
Communicate the functions that the system should provide
35
What is PDL?
Program Design Language - like a more flexible programming language used to define requirements operationally
36
How is a software requirements document structured?
``` Preface Intro Glossary User requirements System architecture System requirements specification System models System evolution Appendices Index ```
37
What does the preface contain?
- Expected readers - Version history - Summary & explanation of latest version changes - Authors list
38
What does the introduction contain?
- Need for the system - Functions provided - System interactions w/ existing systems - Software alignment w/ organisation's objectives
39
What does the glossary contain?
- Technical terms used in document | - No assumptions as to technical expertise of reader
40
What does the user requirements definition contain?
- Nat. lang. and diagrams for user describing (a) services provided for user and (b) non-functional requirements of system - Product and process standards
41
What does the system architecture section contain?
- High-level overview of system architecture | - Distribution of functions across system modules
42
What does the system requirements specification contain?
- Detailed description of the functional and non-functional requirements
43
What does the system models section contain?
- System models showing relationships between system components, the system and its environment
44
What does the system evolution section contain?
- Anticipated changes to system
45
What do the appendices contain?
- Detailed specific info about the system's development (e.g. hardware & db descriptions)
46
What does the index contain?
Indices of the document including diagrams and functions
47
What are the 4 processes of requirement engineering?
Requirement elicitation Requirement analysis Requirement validation Requirement management
48
What is a feasibility study?
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?)
49
What are viewpoints?
A way of structuring requirements to represent the perspectives of different stakeholders
50
What is the Bell-LaPadula model?
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
51
What is cucumber?
Software tool used to help write requirements by giving clear notation to write specs
52
What are some model types?
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
53
What do context models do?
Show the position of a system in its environment with other systems and processes
54
What do process models do?
Show overall process and processes supported by system
55
What do behavioural models show?
A description of overall behaviour of the system
56
What are the two types of behavioural model?
Data processing models show how data is processed as it moves through the system State machine models show the systems response to events
57
What do data flow diagrams do?
Track and document how the data associated with a process is helpful to develop an overall understanding of the system
58
What do semantic data models describe?
The logical structure of data which is imported to or exported by the systems
59
What do object models describe?
Logical system entities, their classification and aggregation
60
What do sequence models show?
The interactions between actors and the system objects they use
61
What do structured methods do?
Provide a framework for developing system models
62
What do the circles in a classical petri net model represent?
Places
63
What do the squares in a classical petri net model represent?
Transitions
64
How are connections represented between place and transition in a classical petri net model?
Directed edges between places and transitions
65
What are the tokens in a classical petri net model?
Dynamic objects moving through places and transitions
66
What's another way to represent transitions in a classical petri net model?
As solid vertical bars
67
How is a transition enabled?
If all places connected to it (not from it) contain tokens
68
What happens when a transition is enabled?
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
When can a transition with no input fire?
At any time
70
How does a transition with no output behave?
Consumes incoming tokens regardless
71
Are petri nets deterministic? What does that mean?
Petri nets are not deterministic, a conflict can arise when two transitions fight for one token. Whichever gets it is arbitrary.
72
What can tokens represent?
Resources (humans/goods/machines), information, conditions, states of objects
73
What do places represent?
Buffers, channels, geographical locations, conditions, states
74
What do transitions represent?
Events, transformations, transportations
75
What do multiple arcs in the same direction between a place and transition mean?
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
What does formal specification involve?
Investing more effort in the early phases of software development, reducing requirement errors as it forces a detailed analysis of the requirements
77
What are algebraic specifications?
An approach to specification in which the system is specified in terms of its operations and their relationships
78
What is the structure of algebraic specifications?
Introduction (type of entity) Description (informal description of operations) Signature (syntax of interface) Axioms (semantics of operations)
79
What is AsmL?
Abstract State Machine Language - language for modelling the structure and behaviour of digital systems
80
How does Hoare's quicksort work?
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
What are the components to the shortest paths algorithm?
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
What are the five criteria to evaluate modular design methods?
Modular decomposability, modular composability, modular understandability, modular continuity, modular protection
83
What is modular decomposability?
A criterion met by a design method that supports the decomposition of a problem into smaller sub-problems which can be solved independently
84
What is modular composability?
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
What is modular understandability?
A criterion met by a method that encourages development of modules which are easily understandable
86
What is modular continuity?
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
What is modular protection?
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
What is the repository model?
All shared data for subsystems is held in a central database which may be accessed by all sub-systems
89
What are some advantages of the repository model?
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
What are some disadvantages of the repository model?
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
What is coupling?
A measure of strength of the inter-connections between system components
92
What does loose coupling mean?
Component changes are unlikely to affect other changes
93
Are OOP systems coupled?
Yes, but loosely - there's no shared state and objects communicate using message passing. A class is coupled to its super-classes
94
What is cohesion?
A measure of how well a component "fits together"
95
What is coincidental cohesion?
Weak cohesion where parts of a component are simply bundled together
96
What is logical association?
Weak cohesion where components which perform similar functions are grouped
97
What is temporal cohesion?
Weak cohesion where components which are activated at the same time are grouped
98
What is communicational cohesion?
Medium-strength cohesion where all elements of a component operate on the same input or produce the same output
99
What is sequential cohesion?
Medium-strength cohesion where the output for one part of a component is the input to another
100
What is functional cohesion?
Strong cohesion where each part of a component is necessary for the execution of a single function
101
What is object cohesion?
Strong cohesion where each operation provides functionality which allows object attributes to be modified or inspected
102
What makes a good system?
Reliable (low coupling) Flexible (low coupling, high cohesion) Affordable (software reuse) Available (decreased development time through reuse)
103
What's the difference between a sub-system and a module?
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
What are four different architectural models?
Static structural model Dynamic process model Interface model Relationships model
105
What do statistic structural models show?
Major system components
106
What do dynamic process models show?
Process structure of the system
107
What do interface models do?
Define sub-system interfaces
108
What's an example of a relationships model
Data-flow model
109
What are some advantages of the client-server model?
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
What are some disadvantages of client-server model?
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
What is the abstract machine model used for?
To model the interfacing of sub-systems
112
What are some characteristics of distributed systems?
``` Resource sharing Openness Concurrency Scalability Fault tolerance Transparency ```
113
What are some disadvantages of distributed systems?
Complexity Security Manageability Unpredictability
114
What is middleware?
Software that manages and supports the different components of a distributed system, usually off-the-shelf
115
What's multiprocessor architecture?
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
What is a thin client model?
A client-model where all the application processing and data management is carried out on the server
117
What's a fat-client model?
A client-server model where all processing and data management is carried out by the client
118
How does a three-tier architecture work?
Each of the application architecture layers may execute on a separate processor
119
What does object orientation mean?
Software organised as a collection of discrete objects that incorporate both data structure and behaviour
120
What is aggregation in class models?
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
What is composition in class models?
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
What is an association class?
Both the relationship between objects and a class in its own right. Contains data and methods for the relationship
123
What's the difference between verification and validation?
Verification shows conformance with specification, validation shows that the program meets the customer's needs
124
How should testing plans be constructed?
Early in the development process, should identify the balance between static verification and testing
125
How should a software test plan be structured?
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
What are software inspections
Very effective technique for discovering errors involving people, applicable to any representation of the system and requiring no execution of the system
127
What is black-box testing?
Testing that treats the program as a black box, where test cases are based on the specs
128
What is equivalence partitioning?
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
What is white-box (structural) training?
Derivation of test cases according to program structure
130
What are the most significant roles of a manager?
Planning, estimating and scheduling
131
How long do planning and estimating take?
They're iterative processes which continue throughout the course of a project, so, a lot.
132
What is a project milestone?
A predictable state where some formal report of progress is presented to management
133
What is risk management concerned with?
Identifying risks (project risks, product risks, business risks, etc.) and planning to ensure these do not develop into major threats
134
What are some estimation techniques for project cost?
``` Algorithmic cost modelling Expert judgement Estimation by analogy Parkinson's Law Pricing to win ```
135
What is algorithmic code modelling?
A formulaic approach based on historical cost information generally based on the size of the software
136
How is cost estimated in algorithmic cost modelling?
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
What is expert judgement cost estimation?
One or more experts in both software development and the application domain predict software costs independently until some consensus is reached
138
What is cost estimation by analogy?
Computing project cost by comparing the project to a similar project in the same domain
139
What is Parkinson's Law?
"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
What is pricing to win cost estimation?
The project costs whatever the customer is willing to spend on it
141
When would pricing to win be used?
When detailed information is lacking and it's the only strategy appropriate