Exam prep Flashcards

1
Q

Traceability

A

Track progress to demonstrate the delivery of requirements and reconstruct steps taken, such as in response to changes.

Can use documentation, and agile practises. TDD and user stories contribute to traceability by recording code and user requirements changes.

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

Business rule

A

Constraints on the operation of the business, not necessarily related to the system. E.g. policy

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

Business process

A

Activities or responsibilities of the business which may translate to the proposed system.

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

Validation

A

The right thing is being built.

The process of checking what has been implemented is satisfiable and meets the proposed requirements.

Not to be confused with verification - checking the system is correct and relevant to the business rules.

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

Verification

A

The process of checking if the system is correct and relevant to the specification and business rules.

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

Singleton pattern

A

Where only one instance of a class is desired.

E.g. a UI component where multiple objects communicate with a single UI instance, or a main system coordination class. Multiple instances could lead to problems from objects in different states leading to unwanted behaviour.

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

Adapter pattern

A

Where multiple components with different interfaces must interact.

The Adapter provides a common interface which bridges communication between the Classes through an Adapter class. This avoids incompatibility, with the Adapter acting as the mediator which supplies the interface.

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

Service Oriented Architecture (SOA)

A

Independently designed services which can be integrated, tested and changed without affecting the core system, as they are not tightly coupled.

Often based around microservices which use web protocols like HTTP to serve external resources, e.g. a REST API.

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

Main benefit of services

A

Saves development time and increases flexibility compared to working within the constraints of a monolithic architecture, where each change could have a large impact on the whole system.

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

Difference between services and components

A

Whereas a component must be attached to the existing system and may require an adapter, a service is an independent external resource often based around web protocols, e.g. a REST API. This avoids the problems of compatibility.

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

Actors

A

The main roles in the proposed system. Not simply a list of classes. Actors utilise or interact with the system in some way and are directly involved in the business processes.

e.g. Staff, Customer, Administrator, User (generalisation)

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

Use case success criteria

A

Walkthrough of the steps to a successful outcome. Lists the activities in the correct order of completion, similar to an activity diagram.

Can include addition extensions, such as alternate branching steps in the walkthrough.

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

Functional requirements

A

Things the system must do. The core tasks regardless of constraints on how they are achieved (non-functional).

Should not be statements about the properties or quality of a system (non-functional). Derived from requirements elicitation, business domain, user stories etc.

e.g. “The system shall accept a credit card number from the client.”

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

Non-functional requirements

A

Qualities of the system and constraints on the functional requirements.

Typically organised by category:

  • Look-and-feel; design and appearance
  • Usability and humanity; ease-of-use and accessibility
  • Performance; speed, accuracy, reliability
  • Operational and environment; conditions the product must function under (e.g. under water, outdoors, 24/7)
  • Maintainability and support; changes, updates, time allowed
  • Cultural; special considerations for the users of the product
  • Legal; laws, standards and regulations which apply
  • Security; how secure the system is, confidentiality, protections
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Fit criteria

A

A condition or measurement which can be used to objectively test if the requirement has been satisfied.

For functional requirements this should be a true/false condition; e.g. “The user has been registered with an account.”

For non-functional requirements it should include a measurement; e.g. “90% of experienced customers should take no more than 30 seconds to make a withdrawal”, “The system shall function correctly up to 48hrs at a time.”

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

Agile motivation/objective

A

Put people and working software over extensive planning and documentation.

17
Q

Main benefits of Agile

A

Flexible development process which can easily adapt to the changing requirements, resulting in better software which is fit for purpose.

18
Q

How agile uses modelling

A

Avoid creating UML models which aren’t relevant.

Models should be able to communicate and agree on design but should not exceed their purpose by adding time and complexity.

19
Q

Agile documentation vs plan-driven

A

Created with purpose. Minimise the amount of planning in favour of delivery of a working product. Replace the extensive plan-driven approach with team and client communication through user stories, regular face-to-face meetings (scrum) etc.

For requirements, it is refined throughout development with agile and replaced with artefacts like user stories, whereas with plan-driven a specific phase is allocated.

20
Q

Core agile practises

A
  • Being flexible allowing for change, not linear and restricted
  • Faster delivery of a working solution with more focus on developing
  • Short iteration cycles (timeboxing, scrum) to allow for refinement, feedback and incremental design
  • Emphasis on people and software over process
  • Test Driven Development
  • Regular team meetings and pair programming
21
Q

Why is reuse desirable

A

It reduces development time and cost whilst increasing flexibility by avoiding the unnecessary duplication of effort to reinvent existing solutions. It also benefits from prior test coverage making maintenance easier.

22
Q

Benefits of TDD

A
  • Coverage; majority of code has been tested.
  • Regression testing; changes which break previous tests can quickly be identified.
  • Executable documentation; tests document code purpose and expected behaviour
  • Code quality; increases code focus by implementing specific behaviour for each defined test
  • Design by contract; test-first compliments DBC invariants by asserting that conditions are met
  • Prevent feature creep; unnecessary features are difficult to add because they must be planned first using tests
23
Q

Limits of TDD

A
  • User interface; does not apply well to interactivity, where usability testing is more suited
  • Acceptance; cannot be a replacement for acceptance testing
  • Large code bases and legacy components; reusing parts from a legacy system or large code base where TDD was not employed throughout can be inconsistent
  • Management and time; writing many tests can slow development time and delay the delivery of features which may not be suitable for the client or management
  • Rapidly changing requirements; tests must be continually rewritten as they become invalid which can be a hindrance
  • Only as good as the test cases; cannot be a catch-all solution that works in all cases, as defining good test cases can be complex
24
Q

GRASP Creator

A

Allocate responsibility for object creation in order to fulfil other responsibilities.

Assigned to the class that references the class of the new object, especially if the class provides the data necessary for creation.

Low coupling as the new object is likely already linked to the creator.

E.g. bank (creator) responsible for creation of new accounts, as they are linked.

25
Q

GRASP Expert

A

Allocates a responsibility to a class which has the necessary information to fulfil it – the information expert – represented by its properties.

Used to decide which interacting objects a responsibility should be assigned. E.g. an object representing a sale through its properties could have the responsibility of calculating totals.

Maximises encapsulation – objects use their own information to fulfil a task without relying on others, therefore low coupling and high cohesion.

26
Q

coupling

A

Degree of dependence between parts of the system.

E.g. Module A depends on Module B which depends on Module C. Includes importing behaviour from another class and references.

Low coupling (independence) is favoured as it increases reusability by not requiring a chain of dependencies to implement a single feature, resulting in easier maintenance, testing and implementation.

27
Q

cohesion

A

How closely related a set of activities are within a single module.

High cohesion means a module performs one thing well, low cohesion includes many unrelated things. Therefore, high cohesion is favoured as its more predictable and easier to abstract.

28
Q

balancing coupling and cohesion

A

Low coupling and high cohesion are generally opposed. If each module only performs a single task, then complex tasks must include multiple modules, leading to high coupling.

A balanced middle-ground of independent components with a core set of responsibilities is desired, which design-by-contract (DbC) can help achieve.

29
Q

design by contract (DbC)

A

Alternative to TDD. Each operation is a contract made of pre and post conditions. Assertions are used to test the precondition is satisfied.