Exam prep Flashcards
What are the advantages of communication diagrams over sequence diagrams?
Links can be viewed
Role names can be viewed
Less notation is required
Less space required
What is the difference between a sequence diagram and a communication diagram?
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).
A good software system is one that meets its users’ needs. List three characteristics that such a system should possess.
A good software system should be useful, usable, reliable, flexible, affordable and available
Give two ways in which agile software development can help achieve a good software system.
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.
What is the difference between a functional requirement and a nonfunctional requirement?
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.
What are the advantages of using a standard template, such as the Volere template, for requirements capture?
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.
What are the benefits of prototyping? Who should test a prototype?
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.
What is the relationship between stakeholders and architectural views?
An architectural view represents the concerns of a set of stakeholder groups.
What is reused in a framework?
A framework reuses an architecture together with code for components that can slot into that architecture.
How are the Model-view-controller (MVC) and Observer software patterns related?
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.
Suggest advantages of developing software by plugging together off-the-shelf components.
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
Suggest disadvantages of developing software by plugging together off-the-shelf components.
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.
What is the difference between a provided and a required interface?
A provided interface describes the operations a component provides to other components. A required interface describes the operations a component requires from other components.
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.
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
In test driven development what steps do you need to carry out before you write the code that implements an operation.
Decide on code increment; decide on test; write the test, run the test assuming failure; and only then write the code