• Shuffle
    Toggle On
    Toggle Off
  • Alphabetize
    Toggle On
    Toggle Off
  • Front First
    Toggle On
    Toggle Off
  • Both Sides
    Toggle On
    Toggle Off
  • Read
    Toggle On
    Toggle Off
Reading...
Front

Card Range To Study

through

image

Play button

image

Play button

image

Progress

1/30

Click to flip

Use LEFT and RIGHT arrow keys to navigate between flashcards;

Use UP and DOWN arrow keys to flip the card;

H to show hint;

A reads text to speech;

30 Cards in this Set

  • Front
  • Back
  • 3rd side (hint)
Q1 – What are the benefits to a
Modular approach to Development?


And why is modularisation useful in general?
* Developer can understand system better

* Developer only need to know about interface
* Reuse and Black box testing increased
* Easier to fix bugs as irrelevant modules avoided
*Different parts can be implemented based on priority
*Reduces complexity and size – u can use decomposition – to break system down into modules
*Modularisation encapsulates data – which leads to low coupling
Q1 – Name and define the characteristics of good software system
* Useful – Meets user's needs

* Usable – User interface is usable
* Flexible – Can be easily changed
* Available – Up and running!
* Affordable – Customer can buy and maintain
* Reliable – Does not break
Q1 – What system would benefit from
incremental development?
* Systems design can be broken up
and developed incrementally.



* Being able to implement core functionality while other increments are developed.


* System can be divided up into unit's/modules and worked on in a self contained way.
Q1 – Why is software maintenance important?
* Improve/change
* To correct errors

* Adapt to a changing
environment/requirements

* Introduce customerenhancements
* Improve software in anticipation of future changes
* Encourages refactoring
Q1 – Compare the requirements process for Agile V's Plan driven approach
A– Work with stakeholders
– Requirement change is fine,during iteration evaluation – revise/adapt/discard requirement). Adapt system to meet requirements often an incremental/iterative approach
P – Requirements gathered and set in stone during req phase, do not go back and change. Suits system where req's are known (government legisaltion driven
Q1 – In Agile Development
What is estimation and why is it important?
*Estimation shows how long a use case or user story will take to implement!


*So you should know how long it will take to get the desired functionality in place, good to know what the timescale is.
Q1 – What is a legacy system and why are they a problem?
* Lots of changes make them complex and rigid
* Documentation of code and req's outdated
*Not enough resource to maintain system
(based on old technology, people have left org)
Q1 – What are the definitions of iterative and incremental development
Iterative
Revisit one or more phases of devlopment in a systematic way. Going through an iteration cycle of a unit/segment/part of system. Evaluate if req was met, does unit need revising/replacing/discarding. Then implement any change to unit


Increment
Working on one unit (core functionality for example) at a time, delivering the system incrementally, provides it quicker in increments
Q1 – What is domain analysis?
Understandingbusiness processes and rules, you can then create activity diagrams, speak tothe domain experts.

Understanding the domain allows you to
produce better quality software, reuseof
architecture, patterns are more likely if you
understand the domain well.
Q2 – What is a...

*Functional Requirement?
*Non–functional Requirement?
*Fit criterion – with an example...
Func req –

An activity or business process that is required of the system
eg; the system must allow the user to login to the system.

Non–funq req –
A quality requirement such as
Performance, reliability, maintainability
the quality must be testable and measurable to be useful.
EG: The user must be able to login with
minimal training within 2 seconds 24/7

Fit criterion: (use it to test a non–func req, as example above)
Q2 – Identify Stakeholders for a Vet Practice
Identify Stakeholders
Who uses it? – Staff
Q2 – Why is requirements documentation important?


How does Agile view requirements engineering documentation?

How does Agile capture req's?
* Forms a contract between the commisionaers of the system and developer
*Traceability
*Aids communication with client
*As a reference for verifying and validation testing
*provides exact detail (func/non–funq) and main basis of why system was built.



*Agile – Only document if there is a purpose, should aid common understanding, communication and traceability

*Using User stories,
user story cards (very basic)
just a paragraph of a user req
accpetance test has the detail to be used for implementation to satisy user story req
Q2 – What are the properties of good requirement?
* Necessary and Traceable
* Clear/Concise/Realistic
*Complete – Not always possible in Agile as req's change, but as complete as can possibly be.
*Consistent – Do not contradict each other
*Verifiable – Does it exist?
Can check it has been implemented
*Validated – is this what was needed, is it valid?
The implementation is what was intended
Q2 – What is a Volere template,



Why is a template important for requirements capture?
Volere structure is...
– Requirement name
– Description
– Rationale – justify the requirement
– Originator
– Fit criterion – Measurement to test req



Why use it?
*Provides structure of what to record for each requirement – so can then compare requirements.

* Nothing left outAssists incommunication as parties know what to expect from requirement
Q2 – What are the 8 classes of functional requirements?
*Look and feel – appearance
*Usability – Ease of use (considering disabled user)
*Performance – How fast/safe/accurate/reliable/available/
*Operational – Environment the system will have to work in
*Maintainability – Expected changes and time allowed to make them
* Cultural –
*Security – Security and confidentiality of product
Q3 – What is a...
Business Process
Business Rule
Business Process – workflow
This is an acitivity of work that is carried out. What is done, by who, in what order, what resource is needed and what consequence
Business Rule – constraint
Is a constraint on how the business is run
(look out for verbs such as 'shall not' 'should')
in scenario description
Q3 – How does a use case aid in communication?
Gives the user and developer a method to have a shared/common understanding of the system



Gives the user the opportunity understand the system and exactly what will be implemented based on this requirement
Q4 – OCL
Invoice is for a customer and anappointment.
But that customer must be the one for the appointment.
Use OCLwrite down an invariant
expressing this
constraint.
//fce-study.netdna-ssl.com/2/images/upload-flashcards/96/29/86/17962986_m.jpg
Context [class] inv:
self.[classNavigatingTo].[classNavigatingTo]

=

self.[classNavigatingTo]


Context Invoiceinv:
self.Appointment.Customer=self.Customer
Q4 – OCL
How can you modify this so a customer
can be identified
against a job number, as opposed to
just the appointment?
//fce-study.netdna-ssl.com/2/images/upload-flashcards/96/31/45/17963145_m.jpg
Create another association
Between Customer and Appointment
Called CustomerJob
Multiplicity of 0...1 for Appointment class
Q4 – OCL
Write down invariant which expresses constraint that
lead developer for module must be one of developers assigned to thatmodule.
//fce-study.netdna-ssl.com/2/images/upload-flashcards/96/33/70/17963370_m.jpg
Context Module inv:
self.developer–>include(self.leadDeveloper)
Cyclomatic Complexity?
(Show working)
//fce-study.netdna-ssl.com/2/images/upload-flashcards/98/20/60/17982060_m.jpg
1 to start with (always 1 to begin with)
1 – The first IF
1 – The first FOR
2 – There is an IF and an OR (||) means OR
(x2 different pathways (possible results )in the IF so x2)
Total: 5
How does a layered architecture promote reuse?
More cohesive
Seperation of concerns
EG: x3 layered architecture allows you to change the presentation layer,
while keeping logic and data layer unaffected.Layered architecture allows a swap and reuse of components
Why is the LOC (Line of Code) metric, not a good way of measuring complexity
It does not show how complex the classes are, how many pathways their are.

How ambiguous the system could be.

How many associations there are between classes. Which all contribute to complexity.
Q12 – Redraw this
communication
diagram as a
sequence
diagram
//fce-study.netdna-ssl.com/2/images/upload-flashcards/98/21/05/17982105_m.jpg
Look at the numbering of the methods, that is how to convert it!
1. Book event date to team method
2.Find a free member (occurs on team class
3. Team speaks to event
4. Event speaks to venue then member
Q12 – Difference between
Communication and Sequence diagram?
A sequence and communications diagram show the same information, however.



Sequence

Easier to see message ordering from object to object over time



Communication

Easier to see links, role names and flow of traffic between a group of objects
Q12 – Do a signature with pre and post conditions
aka: a system operation
//fce-study.netdna-ssl.com/2/images/upload-flashcards/98/24/62/17982462_m.jpg
Look at the model – the answer is all their...
The parameter values are in the create method on diagram.
Also because it says {new} it means that event class has the method, its invoked from the team class, which just passes params to it.


Operation syntax/Format...


Context [Class]:: [Method]
(Param value1, param type1 : Param value 2, param type2 : etc...)


(note–Type could be an object!, not just data type)



pre
–– (The bit before the method is invoked is the pre)
eg: aMember is free for a date



post
–– Just explain what the method does!
––A new Event anEvent has been created
––anEvent has been linked to aVenue
––anEvent has been linked to aMember



EG:

context Event::create(aMember : Member, aDate : Date, aVenue : Venue)


pre
–– aMember is free for aDate


post
–– a new Event anEvent has been created
–– anEvent has been linked to aVenue
–– anEvent has been linked to aMember
Q5 – Draw a sequence diagram for assigning a developer to an increment, which class comes first? how do you decide?
//fce-study.netdna-ssl.com/2/images/upload-flashcards/00/16/71/18001671_m.jpg
Expert – which class knows about the information. Which class owns the information?
Q12 –

Also note – 100 miles is a boundary – because a calculation comes into effect doubling the amount they get paid (not show in diagram)

? missing data?

Q12 – What is the difference between white box and black box testing
Black
Internal structure is not known or tested:
Only concerned with validation of output
Not how the validation is produced
Functionality within is not a concern
(Normally done by testing team)

White
Internal structure is known to tester:
Tester validates internal structure
aswell as ouput
(Normally done by development team)
Q12 – Whats an executable assertion and what part does it play in testing?
Executable assertions can test the correctness of methods in test driven development
and also verify meeting pre and post conditions in design by contract.