software engineering Flashcards
Name two traditional software engineering methodologies [2 marks]
Waterfall, V Model, Spiral, Iterative
Name and explain briefly the four fundamental activities common to all Software Engineering processes. [4 marks]
specifying what you wnat to build; building/coding; testing/validation; evolution/maintenance.
Many Quality Assurance managers consider gathering Requirements to be the most important activity in the Software Engineering process. Identify and explain two reasons for this belief. [4 marks]
the whole plan is based upon the requirements; its cheapest to fix a miscommunication in the requirements stage, compared to later in the project; you define the criteria by which the client agrees to pay for the product
UML can be used to model both requirements and specifications. Explain how the same tool is used differently for these things. 4 marks
a sequence diagram can be used to model the sequence of actions between several people and systems (requirements), and then to design the sequence of function calls the new code will take (specifications)
Describe the difference between ‘low-fidelity’ or ‘high-fidelity’ prototyping. 2 marks
lo-fi is about quickly producing possible ideas to help making decisions; hi-fi is about checking the final idea is right
Companies often use coding conventions and standards. Describe two reasons why coding conventions help maintain implementation quality. 2 marks
increases readability of code; defines good practice; creates a single style
Paired programming is an implementation approach designed to increase quality of software. Describe 3 benefits provided by paired programming. 3 marks
sharing best practice; reviewing and coding at the same time; separating thinking and coding
Describe the primary role of the release testing team. 1 mark
to stop the code going out if it is not ready
A common software engineering mistake is to presume that acceptance testing should only happen at the end of the project. Describe how the principle of acceptance testing should be considered differently to maximise Software Quality. [3 marks]
More likely to accept the final product if they have seen lots of progress before; they should ideally accept the designs; should also see and accept incremental versions of the software
Companies often have to produce software for different platforms, and different version histories of operating systems. Describe how Configuration Management can be used to generate software for different versions of Android (or iOS). [3 marks]
configuration management involves creating build scripts that work for different platforms; each build script might pull in different libraries at build time that work for e.g. older vresions of android, or different platforms; these build scripts get automatically triggered and deployed to a matching virtual machine