TM354 Flashcards

(145 cards)

1
Q

Causes of software errors [3]

A

Malleability
Complexity
Size

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

A good software system is… [6]

A
Useful
Usable
Reliable
Available
Flexible
Affordable
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Legacy systems are… [8]

A

Old
Large
Developed using outdated technologies
Implemented in old programming languages
Critical to the business
Changed a number of times since inception
Difficult to understand due to lack of documentation or experience

Therefore difficult to maintain

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

A module should… [4]

A

Have low coupling, high cohesion, a well-defined interface and represent a good abstraction

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

Reuse can improve development in terms of… [4]

A

Maintainability
Cost
Delivery time
Quality

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

Development activities [5]

A
Domain modelling
Requirements elicitation + analysis
Design
Implementation
Testing
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Traceability

A

Tracing the history of each requirement from its origin in the problem domain to its fulfillment in the final system.

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

What will determine the level of traceability?

A

The chosen development process

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

The UP advocates which development practices?

A

Timeboxing
Big risks up front
Early architecture
User involvement

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

The UP stages [4]

A

Inception
Elaboration
Construction
Transition

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

User stories should be… [6]

A
Independent
Negotiable
Valuable to users
Estimable
Testable
Small
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Difference between business functional requirement and technical solution requirement

A

Business functional requirement: system authenticates the users.

Technical solution requirement: authenticate users via a password

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

How to gather Software Functional Requirements

A
Business processes/events ->
Use cases ->
Scenarios ->
Functional tasks ->
Software functional requirements
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Non-functional Requirement Types [8]

A
Look and feel
Usability and humanity
Performance
Operational and environmental
Maintainability and support
Cultural
Legal
Security
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Performance Fit Criteria [6]

A
Speed
Capacity
Safety
Accuracy
Reliability
Availability
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Seucirty Fit Criteria [5]

A
Access
Privacy
Integrity
Audit
Immunity
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Function and non-functional requirements must have ______ so that they are testable

A

Fit criteria

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

Volere template sections [5]

A
  1. Project drivers
  2. Project constraints
  3. Functional requirements
  4. Non-functional requirements
  5. Project issues
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Main concepts in a business domain [4]

A

Resources
Processes
Rules
Goals

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

Examples of business processes and business rules

A

Business process: renting a car

Business rule: lowest mileage car always allocated

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

Use cases are used to capture ______ [1]

A

Functional requirements

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

Scenarios are used to ________ [1]

A

Illustrate the different ways a use case can unfold

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

Use case description [8]

A
Identifier + Name
Initiator
Goal
Precondition
Postcondition
Assumptions
Main success scenario
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Each step in a use case may correspond to _______

A

One or more software functional requirements

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Each software functional requirements should ______ [3]
Be unambigious State what the system should do (not how) Have a fit criterion
26
Use cases help to _______ [5]
``` Capture requirements Capture software requirements Plan development Validate the system Narrow down architecture ```
27
Use case descriptions help to _________ each use case [4]
Understand the complexity Determine which actors are involved Understand the level of risk Estimate effort to implement
28
Use case diagrams: What are Inclusion and Extension? Are they conditional or unconditional?
Inclusion: Two or more use cases have overlapping functionality that can be factored out as a separate use case. Unconditional. Extension: A use case has alternative scenarios that demand a variation on the original use case. Conditional.
29
Use case modelling steps [5]
1. Identify the actors 2. Analyse the behaviour 3. Find common behaviour and variations 4. Draw the model to show the actors, use cases and their relationships 5. Annotate as you learn more
30
You should stop prototyping when _______ [1]
When you are not generating new requirements
31
Difference between use case and user story
A use case describes a business process | A user story is a single, small piece of user functionality
32
Conceptual class attributes represent _____ [1]
Terms from the domain expert's vocabulary
33
Generalisation, specialisation and interfaces are not required during _______
Domain modelling
34
Express the constraint that a library member's current loans and past loans must not overlap
context LibraryMember inv: | (pastLoans -> intersection(currentLoans)) -> isEmpty()
35
Express the constraint that the room that a guest is occupying be part of the hotel that the guest is linked to
context Guest inv: | self.currentRoom.notEmpty() implies self.currentRoom = self.hotel
36
OCL logical operators [5]
``` and or xor not implies ```
37
OCL operations [14]
c1 -> isEmpty() c1 -> notEmpty() c1 -> count() ``` c1 -> includes(object) c1 -> includesAll(c2) c1 -> any(expression) c1 -> select(expression) c1 -> forAll(expression) c1 -> exists(expression) ``` ``` s1 = s2 (contains same elements) s1 -> untion(s2) s1 -> intersection(s2) s1 - s2 s2 - s1 ```
38
DbC helps to relate the requirements to the code by ______ [1]
Providing traceability
39
A subclass must neither ______ the precondition nor ______ the postcondition of its superclass
strengthen, weaken
40
Postconditions consist of ______ [3]
Creating/removing objects Creating/removing links Modifying attributes
41
Dynamic modelling helps to decide ______ [1]
Which operations should be allocated to which classes
42
Communication diagrams emphasise _______. | Sequence diagrams emphasise _________.
Communication diagrams emphasise the sending and receiving of messages. Sequence diagrams emphasise the ordering of messages.
43
The responsibility for creating objects should be given to the class that ________ [4]
Aggregates or contains the objects Uses the object Maintains the object Provides initialisation information
44
When a responsibility involves consolidating information that is distributed among objects, it should be assigned to _______ [1]
The class that has the most information to fulfill it
45
When can you update the navigability of associations?
Once you have interaction diagrams
46
The Law of Demeter | An object can send messages to _______ [4]
Objects sent as parameters to the current method New objects that the object has created in the current method Objects that it has direct links to (its immediate neighbours) Itself
47
Sequence diagram loop syntax
* [i:= 1..12] printReportForMonth()
48
Difference between defensive programming and DbC
Defensive programming: always check preconditions before processing. DbC: Assume that precondition has been met
49
What is the One Central Class strategy? Advantages [2] Disadvantages [1]
All UI messages are sent to a single object. + Low coupling + Good traceability - Central class can become overloaded
50
What is the Actor Classes strategy? Advantage [1] Disadvantages [2]
All UI messages are sent to objects that correspond to the real-world initiator. + System corresponds to real world - Traceability is more difficult - A use case may have more than one initiator
51
What is the Use Cases as Classes strategy? Advantage [1] Disadvantage [1]
All UI messages are sent to use case objects, which each have a run() method. e.g. checkerIn.run() + Increases usability as changes in workflows/business rules are localised to one class - Increased coupling as UI communicates with several classes
52
What are state machine diagrams represent? | What are they used for?
They represent the life histories of objects. | They are used to model software objects receiving messages or real-world objects responding to events
53
In a state diagram, if an event has consequences beyond a state change these can be modeled as _______ [1]
Actions
54
State machine actions should only refer to things that the object knows about, including ________ [4]
Its attributes Its operations Its links The parameters of the message it receives
55
What are entry/exit events on a state machine? | What is their syntax?
Events that take place each time there is a transition into or out of a state, including self-transitions. entry / setOccupant(aGuest) exit / removeOccupant()
56
How can you avoid triggering entry/exit events on a state machine? What is the syntax?
An internal transition does not involve a change of state. hotelLimitChanged() / resetAvailableRooms()
57
When deciding which attributes to include in a state diagram you should consider _______ [1]
Each attribute's frequency of change
58
In a state diagram, transitions have _______ [5]
``` Source state Target state Event trigger (message) Action / action sequence Guard ```
59
Reasons to partition a software system [3]
To manage size and complexity For information hiding For logical decomposition
60
Can packages have associations?
No, but a class in one package can have an association with a class in another
61
In a package diagram, what is the difference between <> and <>?
<> combines the namespaces so that elements in the imported package can be accessed as if in the same package. <> keeps the namespaces separate, so that identifiers have to be qualified (e.g. Accounts::Transaction).
62
UML visibility symbols [4]
+ public - private # protected ~ package
63
What is software architecture?
Software architecture is the overall structure of the system, in terms of software components and their relationships.
64
What is the relationship between architecture and requirements
They should be developed in parallel (twin peaks)
65
What are the Architecturally Significant Requirements? [4]
Core features Quality attributes Constraints Application environment
66
What are the architectural views [3]
Logical view Process view Deployment view
67
What does an architectural view represent?
A representation of the system that highlights the concerns of a stakeholder group
68
Examples of reuse in development [5]
``` Requirements patterns Analysis patterns Architecture Design patterns Idioms ```
69
Architectural styles [9]
``` Client-server Call-return Layered Peer-to-peer Data flow (pipes and filters) Data-centred Independent components Service Oriented Notification ```
70
Client-server architecture: components/connectors
Programs | Requests
71
Call-return architecture: components/connectors
Programs/objects | Messages
72
Layered architecture: components/connectors
Services | Service calls
73
Peer-to-peer architecture: components/connectors
Programs (peers) | Connections
74
Data-flow architecture: components/connectors
Programs/objects | Services that pipe the data
75
Data-centred architecture: components/connectors
Database server/client | Database queries
76
Independent components architecture: components/connectors
Components | Message exchange protocols
77
Service-oriented architecture: components/connectors
Service providers/consumers | Requests/responses
78
Notification architecture: components/connectors
Publishers/subscribers | Procedure calls/messages
79
What are frameworks?
Frameworks consist of a reusable architecture and a set of components that can be slotted into it
80
What is a product line?
A domain-specific framework incorporating specialist knowledge about a group of closely related systems
81
Types of design pattern [3]
Creational patterns Structural patterns Behavioural patterns
82
When should the Singleton design pattern be used?
When there should only be one instance of a particular class (e.g. one central class strategy)
83
When should the Factory design pattern be used?
When object creation and initialisation is complex, changeable or uses information the client may not know
84
When should the Factory Method design pattern be used?
When the actual classes should be determined at run-time (e.g. config file, late binding)
85
Component-based development (CBD) aims to ______ [1]
Assemble systems from reusable components
86
Components have two kinds of interface. What are they and what do they represent?
Required and provided. | They represent the set of assumptions that components make about each other
87
Components should ______ [3]. | They may include ______ [1].
Encapsulate data and operations Be fully documented and thoroughly tested Be known to their clients only through their interface May include NFRs in their specification
88
Components: Advantages [4] Disadvantages [3]
Faster and cheaper development More reliable and maintainable May require adapters May require plumbing May be inflexible
89
The Assume-Guarantee contract between components will include _____ [4]
1. Pre/Postconditions of all operations in the provided interface. 2. The invariants that apply to any publicly visible properties 3. The required interface and its assumptions 4. Any assumptions about the environment in which it will operate
90
Software that was not designed as a component can be integrated into a component-based system by _______
Wrapping it with an adapter that providers appropriate interfaces
91
What is a service?
A service is an abstract description of some business functionality. It is what is provided by a component, but the component itself has been abstracted away
92
How is a service different from a component? [6]
``` Platform independent Language independent Location independent Centralised Autonomous Can be stateless ```
93
Service types [3] and examples
Utility - currency conversion Business - check membership application Coordination - process membership application
94
SOA development stages [5]
1. Design workflow 2. Find services 3. Select services 4. Orchestrate 5. Test
95
Advantages of services [7]
``` Agile and flexible Less duplication Legacy integration 3rd party service integration Language independence Platform independence Location independence ```
96
Quality attribute scenarios - six part model [6]
``` Source Stimulus Artefact Environment Response Measure ```
97
Quality attribute scenarios - performance values
Source: internal/external Stimulus: periodic/sporadic/bursty/stochastic events Artefact: system Environment: normal/overloaded Response: process stimuli/change level of service Measure: latency/deadline/throughput/jitter/miss rate/data loss
98
Quality attribute scenarios - usability values
Source: end users Stimulus: user wants to learn system features/use system efficiently/minimise impact of errors/feel comfortable Artefact: system Environment: setting preferences/using system Response: supporting learning/supporting efficiency/allowing adaptation/minimising impact of errors/making user comfortable Measure: task time/no. of errors/no. of problems solved/success rate/user satisfaction/time taken/data lost
99
Performance tactics: manage demand [3]
Reduce frequency of events Limit demand Increase efficiency
100
Performance tactics: manage resources [3]
Increase resources Reduce bottenecks Exploit concurrency
101
Performance tactics: arbitrate resources [1]
Schedule resources
102
Performance tactics [3]
Manage demand Manage resources Arbitrate resources
103
Flexibility tactics [4]
Low coupling High cohension Keep modules small Late binding
104
Assertion mechanisms allow pre/postconditions to _______ [4]
Be checked at run-time Be turned on/off globally Be separated from program logic Indicate their breach
105
DbC uses _______ [1]. | TDD uses _______[1].
DbC uses invariants | TDD uses test cases
106
How high should quality be, and why?
Sufficiently high, so as to be useful and affordable
107
Software Quality Factor Categories [3]
Product operation requirements Product revision requirements Product transition requirements
108
Software Quality Factors - Product operation [5]
``` Correctness Reliability Efficiency Integrity Usability ```
109
Software Quality Factors - Product revision [3]
Maintainability Flexibility Testability
110
Software Quality Factors - Product transition [3]
Portability Reusability Interoperability
111
What is the difference between validation and verification?
Verification assumes the requirements are correct and aims to ensure that the system description is self-consistent and that development meets the specification. Validation focuses on meeting the needs of the stakeholders without assuming that the specification is correct
112
What is analytical completeness?
Ensuring the completeness of all requirements that have fit criteria
113
Test-driver Development process [6]
1. Decide on a code increment 2. Decide on a test 3. Write the test 4. Run all test (expecting failure) 5. Write the code 6. Re-run all tests
114
Benefits of test-driven development [7]
``` Test coverage Regression testing and early discovery of errors Executable documentation Beneficial effect on design Complements DbC Promotes good code quality Inhibition of 'featuritis' ```
115
When might TDD not be applicable? [5]
``` Applications with databases Multithreaded systems Legacy systems/large components Highly changeable requirements User-interfaces ```
116
What does TDD not replace? [3]
User/usability testing Acceptance testing Integration testing
117
DbC method structure [4]
method heading assert preconditions method body assert postconditions
118
Types of testing [6] (verification/validation)
``` Unit (verification) Integration (verification) Regression (verification) System (validation) Usability (validation) Acceptance (validation) ```
119
Functions of testing [2]
Improving quality by removing errors | Improving confidence by estimating quality
120
TDD and DbC focus on what type of testing?
Black-box testing
121
Black-box testing process
1. Determine the input space 2. Partition the input space into subdomains 3. Perform boundary testing on each subdomain
122
White-box testing process
Identify and test each path through the code
123
Disadvantages of black-box testing [2]
Tends to suffer from poor coverage | Cannot account for internal state of objects
124
Disadvantage of white-box testing 1]
Does not reveal missing or incorrect requirements
125
Software complexity metrics [7]
``` Lines of code Cyclomatic-complexity Depth of inheritance tree Coupling between objects Number of children Response for a class Weighted methods for a class ```
126
The logical view includes ________ [3]
Structural models Behavioural models Package diagrams
127
Visibility modifiers [4]
Public: visible to all classes Private: visible only to itself Protected: visible to itself and subclasses Package: (default) visible to classes in the same package
128
Primary Software Quality Attributes [4]
Correctness Usability Integrity Maintainability
129
Design patterns [8]
``` Adapter MVC Observer Factory Factory Method Singleton Decorator Facade ```
130
Writing tests for an operation involves _______ [3]
Setting up a fixture Invoking the operation Checking the postconditions
131
Specifying operations involves _________ [5]
1. Matching the signature and return type 2. Writing tests 3. Running tests (which fail) 4. Writing code (fulfilling contract) 5. Re-running tests
132
Compare agile and plan-driven development in terms of requirements change
Agile treats it as inevitable and starts building quickly to discover requirements. Plan-driven attempts to avoid it by having complete requirements before implementing them.
133
Why is estimation importing in agile development?
Being able to plan increments | Being able to deal with requirements changes
134
How does requirements documentation differ between agile and plan-driven development?
Agile: requirements documentation is kept to a minimum, is only used to the extent that it helps communication and is often discarded. Plan-driven: requirements documentation should be comprehensive and forms a contract between developers and customers
135
What does the logical view of a system describe?
The system's main functional elements and their interactions (i.e. the services the system must provide users)
136
How does TDD benefit design? [2]
Testability of design is enforced by the need to write tests before implementing requirements. Designs that rely on overly complex code will be identified when attempting to write tests for them, and can be reconsidered early.
137
What problem does the Adapter pattern solve?
A client that cannot use a component because it expects a different interface than the one provided.
138
What does it mean for a service to be stateless?
The service responds to each request as a 'one-off', without retaining any memory of previous requests.
139
How can agile development help achieve a good software system? [2]
Adapting to change requirements, leading to a flexible and useful system. Delivery on time, leading to an available system
140
Benefits of using a standard template for requirements capture [4]
1. Saves time repeatedly making decisions about what to record. 2. Ensures nothing important is left out. 3. Assists communication between developers 4. Allows projects to be compared and required reused
141
Benefits of prototyping [4]
1. Helps with the design of the UI. 2. Gets users involved, helping to capture and refine requirements. 3. Minimise misunderstandings between developers and users 4. Early detection of problems
142
Situations not suited to agile development [5]
Heavily regulated environment Large software development with distributed teams Requirements are well-defined and unlikely to change Customer is distant
143
Situations suited to agile development [4]
Requirements are constantly changing Developers and users can communicate regularly The team is small enough that everyone can participate in a meeting The developers like being empowered
144
Write the signature for operation addQtyOfProductToOrder, which takes arguments of type Order, Integer and Product and is sent to the system class Store
context Store:addQtyOfProductToOrder(order: Order, quantity: Integer, product Product) : String
145
Requirements must be _____ [6]
1. Necessary and traceability 2. Clear and realistic 3. Complete 4. Consistent 5. Verifiable and validated 6. Independent of design