Section 3 - Software Development Flashcards
What are the key stages of software development?
Analysis, Design, Implementation, Installation, and Evaluation
What has to be considered in the Analysis stage of the development?
The data - origins, uses, volumes and characteristics
The procedures - what is done, where, when and how, and how errors and exceptions are handled
The future - development plans and expected growth rates
Problems with any existing system
What has to be considered in the Design stage of the development?
Processing: algorithm and appropriate modular structure for the solution
Data structures: how data will be held and how it will be accessed
Output: content, format, sequence, frequency
Input: volume, frequency, documents used, input methods
User interface: screens and dialogues, menus, special-purpose requirements
Security: how the data is to be kept secure from accidental corruption or deliberate tampering or hacking
Hardware: selection of an appropriate configuration
Define what is meant by ‘Black box testing’
Carried out independently of the code used in the program. Creating test data for all the inputs and outputs and program functions.
Define what is meant by ‘White box testing’
Dependent on the code logic, program code is studied and tests are devised that test each possible path at least once.
Define what is meant by ‘Alpha Testing’
Carried out the software developer’s in-house testing team. Reveals omissions and errors in the system requirements.
Define what is meant by ‘Beta Testing’
Giving the package to a number of potential users who agree to use the system and report any problems to the developers.
Waterfall Model
Analysis -> Design -> Implementation -> Evaluation -> Maintenance
Each step is completed one at a time from beginning to end. Possible to return to previous steps, the developer would have to work back down through the following stages.
Spiral Model
Same structured steps as Waterfall, but introduces the idea of developing the software in iterative stages.
Requirements are defined at the start work towards initial prototype. Each loop around the model generates a refined prototype until the product is finished.
Agile modelling
Iterative process during which feedback is obtained from the user and changes are made incrementally as the next part of the system is built.
What is Agile modelling dependent upon?
Keeping the model simple - not trying to incorporate elements that may be useful at a later date
Rapid feedback from the user
Understanding that user requirements may change during development
Incremental changes as the model develops
Extreme programming
improve software quality and responsiveness to changing customer requirements.
Frequent releases of the software are made in short development cycles.Improve productivity and introduce checkpoints at which new customer requirements can be adopted
Rapid Application Development (RAD)
Introduced to complete major projects at a much faster rate.
Workshops and focus groups gather requirements
Prototyping refine system in response to user feedback
Reusing software components which have already been used elsewhere
Merits and Drawbacks of Waterfall model
Suitable for small projects that need careful supervision.
The absence of user feedback is a serious drawback.
Merits and Drawbacks of the Spiral and Agile models
Acknowledge that the user cannot always specify their requirements accurately don’t understand what is possible.
Easier to examine a working prototype in order to make changes to the system to improve it.
Merits and Drawbacks of Extreme programming and RAD Models
Good for large projects where there is a danger of getting sidetracked by suggested improvements, so that developer are continually chasing a new idea/target
What is an internet-related algorithm?
Manage and manipulate data stored on the internet.
What is a Route-finding algorithm?
Finding the best way between two points such as the best route to transmit packets of data from A to B over a network
what is a Compression algorithm?
compress data files so that they can be transmitted faster or held in a smaller amount of storage space.
What are the four programming paradigms?
Procedural, Object-oriented, declarative and functional programming
What data types do procedural languages have built in?
integer, real or floating point numbers
What does the user need to know when using procedural programming?
State and behaviour of the data structure