Section 3 - Software Development Flashcards
What must be considered during analysis of software development?
The data - Its origin, uses, volumes and characteristics
The procedures - What is done, when it’s done, where and how
The future - Development plans and expected growth rates
Problems - Issues with any existing system
What must be considered during the design of software development?
Processing - The algorithms and appropriate modular structure for the solution, specifying modules with clear documented interfaces
Data structures - How data will be held and how it will be accessed
Output - Content, format, sequence, frequency, etc
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/hacking
Hardware - Selection of an appropriate configuration
What is black box testing?
Black box testing is carried out independently of the code use in the program. It involves looking at the program specification and creating a set of test data that covers all the inputs and outputs and program functions
What is white box testing?
White box testing is dependent on the code login, and derives from the program structure rather than its function. The program code is studied and tests are devised which test each possible path at least once. The weakness of white box testing is that it will not detect missing functions.
What is alpha testing?
Alpha testing is carried out by the software developer’s in-house testing team. It is essential because it often reveals both errors and omissions in the system requirements definition. The user may discover that the system does not in fact have the required functionality because the requirements were not specified carefully enough, or because the developer has overlooked or misunderstood something in the specification
What is beta testing?
When a new package is being developed for release as a software package, beta testing is often used. This involves giving the package to a number of potential users who agree to use the system and report any problems to the developers. Microsoft delivers beta versions of it’s products to hundreds of sites for testing. This exposes the product to real use and detects problems that may not have been anticipated by the developers.
What is implementation?
Coding and testing will be carried out, errors traced and corrected. When all is thought to be satisfactory the software will be installed on the user’s system and more testing will be done. At this stage new weaknesses and omissions are almost bound to surface and more work will be carried out.
What is evaluation?
The evaluation could include a post-implementation review which is a critical examination of the system around 3-6 months after it has been put into operation. The waiting period allows the users and technical staff to learn how to use the system and gives them time to report any extra bugs they may find which were missed before
What is the waterfall lifecycle model?
The waterfall model illustrates the methodology described above, in which each step is completed one at a time from beginning to end. Each step has specific outputs that lead into the next step. It is possible to return to a previous stage if necessary but the model shows that developers then have to work back down through the following stages.
The user/customer is involved at the start of the process, in the analysis stage, but then has little input until the evaluation stage. Changes made later in the project have high cost implications to work already completed so it is important to get each stage completed before moving to the next
What is the spiral model?
The spiral model uses the same structured steps but introduces the idea of developing the software in iterative stages. At the start of the process the requirements are defined and the developers work towards an initial prototype. Each successive loop around the spiral generates a refined prototype until the product is finished. Spiral model is mostly used for large scale projects, for example, projects that take years. Smaller projects use a variation on this called the Agile model.
Stages:
Analyse: The requirements for the next prototype
Design: The next version, the new prototype
Implement: Code and test the new prototype
Evaluate: The new prototype, which generates a plan for the next iteration
What is the agile model?
In an agile approach the stages of software development may not be completed in a linear sequence. It might be that some analysis is done and then some parts of a system are designed and implemented while other parts are still being analysed, and then for example, implementation and testing may be intermixed. Feedback is obtained from the user throughout the process.
The success depends on:
Keeping the model simple
Rapid feedback from the user
Understanding that user requirements may change
Being prepared to make incremental changes
What is extreme programming?
Extreme programming is a software development methodology which is intended to improve software quality and responsiveness to changing customer requirements. It is a type of agile software development in which frequent “releases” of the software are made in short development cycles. This is intended to improve productivity and introduce checkpoints at which new customer requirements can be adopted.
What is Rapid Application Development (RAD)?
Some very large projects may be developed over a long period of time during which both technology and user requirements change. Major changes at late stages of development can sometimes lead to projects being cancelled or restarted at considerable cost. In response to this problem the RAD methodology was introduced, offering the promise of much faster completion of major projects.
The ideas behind it:
Workshops and focus groups to gather requirements
Use of prototyping to continually refine the system
Producing within a strict time limit each part of the system
Reusing any software components which have been used elsewhere
Pros and Cons of each development methodology:
Waterfall system lifecycle:
Very suitable for small projects which need careful supervision
Absence of user involvement is a serious drawback
Spiral and Agile:
Acknowledge that users often can’t specify requirements accurately at the beginning
Much easier to examine a working prototype to work out what needs to be done to it
Extreme programming and RAD:
Good for large projects where there is danger of getting sidetracked
What is an algorithm?
An algorithm is a procedure or a way to do things, e.g. a recipe for a cake or a knitting pattern or a set of direction from A to B.