Software Development Flashcards
(41 cards)
agile methodologies definition
an iterative process that produces incremental prototypes of software over short, fast-paced sprints
each prototype is user tested and any feedback and change in requirements will be accounted for in future sprints
extreme programming
a type of agile methodology that is more responsive to changing user needs with short development cycles and very frequent software releases
checkpoints are incorporated to change or add new user requirements
rapid application development definition
a method capable of speedy responses to changes in technologies and user requirements through repeated prototyping, continual evaluations, and strict time limits
the user will quickly receive a reduced-functionality mock up of the program
spiral model definition
an iterative version of the Waterfall model where stages are refined and repeated until the final product is complete
the first cycle works towards an initial prototype, and each successive cycle produces a refined prototype
waterfall lifecycle definition
each stage of the development is completed one at a time in linear order
results from a completed stage are input into the next
any previous stage can be returned to in light of feedback, however the stages that follow need to be worked through again
identify the common stages of software development life cycles (SDLCs)
analysis, design, development, testing, implementation, evaluation and maintenance
define white box testing
a form of testing carried out by software development teams in which the test plan is based on the internal structure of the program
all of the possible routes through the program are tested
what is TELOS?
a method of analysis used by designers to evaluate the feasibility of a project
it considers technical, economic, legal and operational aspects of the project, as well as scheduling
what are agile methodlogies
a collection of methodologies which aim to improve the flexibility of software development
they respond quickly to changes in user requirements
identify the advantages of waterfall programming methodologies
- straightforward to manage
- clear structure
- clearly documented
give three disadvantages of extreme programming methodologies
- high cost due to two people working on one project
- teamwork and good communication is essential
- end-user must be present throughout the duration of the project
what type of projects are spiral programming methodologies suited to
large, risk-intensive projects with high budget
what type of projects are Rapid Application Development (RAD) programming methodologies suited to
projects where high usability is required and user requirements may not be clear from the outset or are continually changing
suited to projects of a small to medium size with a relatively low budget and short time-frame
define an algorithm
a set of instructions used to solve a problem
state three key qualities or considerations good algorithms should make
- inputs must be clearly defined - what is valid and what is invalid?
- must always produce a valid output for any defined input
- must be able to deal with invalid inputs
- must always reach a stopping condition
- must be well-documented for reference
- must be well-commented so modifications can easily be made
what happens in analysis
stakeholders state what they require from the finished product
this information is used to clearly define the problem and the system requirements
requirements may be defined by:
- analysing strengths and weaknesses with current way this problem is being solved
- considering types of data involved including inputs, outputs, stored data and amount of data
what happens in design
the different aspects of the new system are designed, such as:
- inputs: volumes, methods, frequency
- outputs: volume, methods, frequency
- security features: level required, access levels
- hardware set-up: compatibility
- user interface: menus, accessibility, navigation
a test plan may also be designed at this stage
what happens in development
the design from the previous stage is used to split the project into individual self-contained modules, which are allocated to teams for programming
what happens at testing
the program is tested against the test plan formed in the design stage
there are various types of testing that can be carried out:
- alpha testing
- beta testing
- white box testing
- black box testing
what is alpha testing
alpha testing is carried out in-house by the software development teams within the company
bugs are pinpointed and fixed
what is beta testing
beta testing is carried out by end-users after alpha testing has been completed
feedback from users is used to inform the next stage of development
what is black box testing
this is a form of testing where the software is tested without the testers being aware of the internal structure of the software and can be carried out both within the company and by the end-users
the test plan traces through inputs and outputs within the software
what is implementation
once the testing stage has been used to make the appropriate changes to the software, it is installed onto the users’ systems
what happens in the evaluation section
after the implementation stage, the effectiveness of the software is evaluated against the system requirements defined at the analysis stage to evaluate it suitability in solving the problem
different criteria are considered, including robustness, reliability, portability and maintainability