Exam prep Flashcards

1
Q

What are the advantages of communication diagrams over sequence diagrams?

A

Links can be viewed

Role names can be viewed

Less notation is required

Less space required

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

What is the difference between a sequence diagram and a communication diagram?

A

Both diagrams give the same information, but the sequence diagram emphasizes time in its layout and the communication diagram emphasizes the objects that are communicating in its layout.

Time is implicit in sequence diagrams (it is inferred by vertical position), while it is given explicitly in communication diagrams (via numbers).

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

A good software system is one that meets its users’ needs. List three characteristics that such a system should possess.

A

A good software system should be useful, usable, reliable, flexible, affordable and available

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

Give two ways in which agile software development can help achieve a good software system.

A

Agile software development is based on principles such as the ones below which help to achieve some characteristics of a good software system:
 Software should be capable of adapting to change in requirements, helping to achieve a flexible and useful system.
 Software should be delivered on time helping to achieve an available system.

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

What is the difference between a functional requirement and a nonfunctional requirement?

A

A functional requirement is one that specifies an action the software must perform e.g. check, calculate, record, retrieve etc., whereas a non-functional requirement specifies a quality that the software must possess, e.g.
usability, reliability, maintainability etc.

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

What are the advantages of using a standard template, such as the Volere template, for requirements capture?

A

Using a standard template for requirements capture
 saves wasting time repeatedly making decisions about what to record;
 ensures that nothing important is left out;
 assists communication between developers;
 allows projects to be compared and requirements reused in some cases.

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

What are the benefits of prototyping? Who should test a prototype?

A

The benefits of prototyping include
 It helps with the design of the user interface;
 it gets the users involved and is a good way of capturing and refining requirements;
 it help minimise misunderstandings between the developer and the users;
 it may allow early detection of possible problems, before things have gone too far, and at a relatively low cost;

The prototype should be tested by ‘real’ users – those who will be using the software on a day-to-day basis.

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

What is the relationship between stakeholders and architectural views?

A

An architectural view represents the concerns of a set of stakeholder groups.

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

What is reused in a framework?

A

A framework reuses an architecture together with code for components that can slot into that architecture.

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

How are the Model-view-controller (MVC) and Observer software patterns related?

A

In MVC the view needs to be kept updated when the state of the model changes. This can be achieved by using the Observer pattern, with the model as the subject and the view as the observer.

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

Suggest advantages of developing software by plugging together off-the-shelf components.

A

Advantages of plugging together off-the-shelf components
 Should be cheaper
 Allows quicker development
 Behaviour of well-tried components will be well understood
 Components are replaceable with other components that have to same interface

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

Suggest disadvantages of developing software by plugging together off-the-shelf components.

A

Disadvantages
 We will be restricted to the capabilities of the components
 Some additional software is likely to be needed
 Adapters may be needed if interfaces are incompatible
 Creating a system from pluggable components may be more difficult than it sounds.

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

What is the difference between a provided and a required interface?

A

A provided interface describes the operations a component provides to other components. A required interface describes the operations a component requires from other components.

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

The usual response measures for a performance scenario are latency, deadline, throughput, jitter, miss rate and data loss. Choose two of these that would be most appropriate in the case of an internet radio service, and briefly explain your answer.

A

Latency will affect how quickly a channel can start playing
Throughput must be sufficient to stream the service to the user
Data loss must be low otherwise some part of the broadcast will be missed

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

In test driven development what steps do you need to carry out before you write the code that implements an operation.

A

Decide on code increment; decide on test; write the test, run the test assuming failure; and only then write the code

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

Present two situations in which the use of agile development would not be recommended or would be difficult to implement.

A

Agile is not recommended or is difficult to implement in the following situations
 Heavily regulated environment – agile is not amenable to heavy regulated documentation
 Predictability is more important than flexibility – agile values flexibility rather than predictability
 Large software development with distributed teams – difficulty to scale has been a constant criticism of agile; distributed teams put a heavy burden on communication which so central to agile
 Requirements are well defined and unlikely to change
 Customer is distant –agile demands close involvement of customer

17
Q

Present one situation in which agile developments would be easy to implement.

A

Agile is easy to implement in the following situations
 Requirements are constantly changing – agile deals with well with change
 Developers and users can communicate regularly – agile demands close
involvement of developers and users
 The team is small, so that everyone can take part in a single stand-up meeting.
 Team members are disciplined enough not to use “agile” as an excuse for cowboy coding (writing code according to their own rules disregarding
what has been agreed by team).
 Developers like being empowered.

18
Q

What are the benefits of TDD?

A
Early discovery of errors
Comprehensive test coverage
Executable documentation
Beneficial effect on design
Promotes code quality
Inhibits featuritis
19
Q

Limitations of TDD?

A

Doesn’t apply to UI
Unsuitable in dealing with systems integrated with databases, multithreaded & legacy systems.
TDD is only as good as the tests.

20
Q

What are the steps in TDD?

A
  1. Decide on code increment
  2. Decide on test
  3. Write test
  4. Run test predicting failure
  5. Write code
  6. Run test
21
Q

When would a communication diagram be chosen over a sequence diagram?

A

The creation of new objects and new links with the {new} constraint are clearly identifiable in communication diagrams.