Unit 3 Software Development Flashcards
Analysis
the data - its origin, uses, volumes and characteristics
The procedures - what is done, where, when and how, and how errors and expectations are handled
The future - development plans and expected growth rates
Problems with any existing system
Processing
The algorithms and appropriate modular structures for the solutions, specifying modules with clear documented interfaces
Data structures
How data will be held and how it will be accessed - for example in a dynamic data structure such as a queue or tree, or in a file or database
Output
Content, format, sequence, frequency, medium (e.g screen or hard copy)
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 configurations
Black box testing (functional testing)
It is testing that is solely carried out in the code. It involves looking at the program specification and creating a set of data that covers all of the inputs and outputs and program functions
White box testing (structural testing)
This is dependent on the code logic, and derives from the program structure rather than its function. Downfall is that it can’t test what isn’t there
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
Beta testing
When a new package is being developed for release as a software package, beta testing
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 the surface and more work will be carried out.
Evaluation
The evaluation may include a post-implementation review, which is a critical examination of the system usually done three to six months after it has been put into operation. This waiting period allows users and technical staff to learn how to use the system, get used to the new ways of working and understand the new procedures required. It allows management a chance to evaluate the usefulness of the reports and on-line queries. The solution should be evaluated on the basis of effectiveness, usability and maintainability
The waterfall lifecycle model
The waterfall model is where each step is completed one at a time from the beginning to the 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 the developers then have to work back down through the following stages: Analysis, Design, Implementation, Evaluation and Maintenance
The spiral model
The Spiral model uses the same steps as the waterfall model but it introduces the idea of developing the software in iterative (repeating) 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
Agile modelling
At all stages of the analysis, design and implementation, and agile approach may be adopted, as 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 the system are designed and implemented while other parts are still being analysed and then, for example, implementation and testing may be intermixed. The developer may then go back to design another aspect of the system.
Throughout the process, feedback will be obtained from the user; this is an iterative process during which changes made are incremented as the next part of the system is built.
First Requirement gathering is done then a quick design which is made into a prototype shortly. Then the designers will get the costumers evaluation so that they can then refine the prototype this will be done repeatedly until they then create the finial system
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