1/49
COMPLETE
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
What is a software development lifecycle (SDLC)?
distinct phases programmers work through when developing a solution to a problem for a computer system
What is a methodology?
arrangement of phases
how programmers move from one pase to another
What are the key steps when creating a software?
feasibility study
requirements specification
testing
documentation
What is the purpose of a feasibility study?
carry out initial enquiries
any reasons why the new system may not be acceptable (before production)
determine whether the problem can be solved
saves time & money being wasted on a project that is likely to fail
What do analysts consider during a feasibility study?
technical (any hardware/software available to implement the solution?)
economic/cost benefit analysis (possible to run economically?)
social (is effect on humans involved too extreme to be socially acceptable/environmentally sound?)
effect on company’s practices & workforce (enough operational skill in workforce to be capable of running new system?)
expected effect on customer (customer not impressed, maybe not point)
legal/ethical (can system solve problem within the law)
time available (time scale acceptable for proposed system to be possible)
What is a requirements specification?
specification document developed between client & software developers
creates understanding of problem & presents solutions
What does the requirements specification ambiguously state?
everything the new system is expected to do
What does the requirements specification contain?
input requirements
output requirements
processing requirements
clients agreement to requirements
hardware requirements
software requirements
What is the purpose of testing?
ensures the project works correctly
What are the 4 different types of testing?
black box
white box
alpha
beta
What is black box testing?
tests possible predefined sets of inputs to see if they produce expected output according to design
w/o considering how the program works
need to test all possible types of situations w/o understanding/looking at the code
What is white box testing?
understands complete structure & logic of the program
uses source code to test the actual steps of the algorithms
make sure all parts work as intended
check every possible condition statement & path through algorithm
using dry runs & trace tables
What is alpha testing?
done by programmers, developers & employees within the software company
play role of user during development to try find bugs in program
may use emulators rather than actual hardware/software
What is beta testing?
beta version: pre - released test version of program
nearly complete + tested by programmers involved
given to a group of third party users to use as intended & test under normal operating conditions
report any errors/bugs in a program which programmer overlooked
e.g. functions that don’t work
incompatibility issues w/ other software/hardware
may report on desirable improvements
programmer tries to replicate & then address the errors find
may release updates,fixes,workarounds to beta testers
this is so the final version is more robust
What is the purpose of user documentation?
gives instruction to ensure software users can successfully use the system to produce the desired result
What may user documentation contain?
may contain info like:
descriptions of required I/O procedures
sample outputs from given inputs
using processing tools
instructions to operate the system
backing up & archiving procedures
file searching & maintenance
simple maintenance procedures (e.g. FAQs,troubleshooting, error messages & their meaning,glossary etc.)
What is the purpose of technical documentation?
describes and explains how the system works
Who is the technical documentation useful to?
a technician who may need to maintain & further develop/alter the system in the future
What information may the technical document include?
DFDs showing the flow of data through the system (Data Flow Diagram)
system flowcharts showing how parts of the system interrelate
flowcharts showing the operations involved in the algorithm
ERDs showing how data tables relate to each other (Entity Relationship Diagram)
What are the 5 different methodologies?
Waterfall Lifecycle
Agile Development Methodologies
Extreme Programming (XP)
Spiral Model
Rapid Application Development (RAD)
What are methodologies used for?
organising the development of a piece of software
Describe a waterfall lifecycle
a series of linear stages presented in an order where it is possible to return & re - evaluate any stage
What does a waterfall lifecycle consist of?
delete
What needs to be done in order for a waterfall lifecycle to create a working system?
all stages must be completed
What are the results from each stage of the waterfall lifecycle used for?
used to feed info & inform the work on the next stage
Is it possible return to re-evaluate one or more previous stages in a waterfall lifecycle?
yes
What amendments may be made when returning to previous stages in a waterfall lifecycle?
collecting more info/data
check on data that has been collected in order to improve the solution
What must happen after returning from previous stages in a waterfall lifecycle?
all intervening steps must be revisited
What are the stages included in a waterfall lifecycle?
Feasibility study
Analysis
Design
Implementation/Coding
Testing
Installation
Documentation
Evaluation
Maintenance
What are the advantages of a waterfall life cycle?
suits large scale projects (w/ stable base requirements)
requirements in early stages - focus on them for rest of project
focus on end user at start (may consult user throughout)
development phase focuses on code that meets requirements/design
ideal for inexperienced project teams & where requirements are defined
quality documentation w/ reliability & maintainability of developed software
progress of system development easily measurable
project progresses forward w/ slight movement backward
What are disadvantages of waterfall life cycles?
lifecycle cannot respond easily to change in requirements (often at the cost of time and money)
inflexible & limits changing requirements (dependent on clear definition of requirements)
excessive documentation - keeping it updated as project progresses = time consuming
missing system components discovered during design & coding
system performance cannot be tested until the system is almost full coded
What are agile development methodologies?
group of methods designed to cope w/ changing requirements by producing software in an iterative manner
What happens when a user realises they have't fully considered a requirement in agile development methodology?
they can have it added in a future iteration
What is an example of agile development?
extreme programming
What does it mean when we say the agile development methodology is iterative?
the program is coded,tested and improved repeatedly
iterations usually 1-4 weeks long
During extreme programming who becomes a part of the team?
a representative of the customer
What does the representative of the customer do in extreme programming?
help decide “user story“ (equivalent to requirements)
decide what tests will be used - to ensure they’ve been correctly implemented
answer any questions about any problem areas the programmers might have
What are advantages of extreme programming?
new requirements can be adopted throughout
end user is integral throughout
fair & strict programming standards used - ensure code in each iteration is well-tested, robust + good enough quality for final product
code created quickly & modules become available for use by the client as they are complete
What are disadvantages of extreme programming?
client has to ensure that they are represented on the development team to accept completed code & discuss any potential changes (client responsibility)
emphasis on coding rather than design
results in lack of documentation making it unsuitable for larger projects
How does the spiral model progress?
by evaluating and dealing with risks
Describe how the spiral model works
analyst collects data & proceeds through the stages until the evaluate stage
after evaluation - if modification needed, data collection will happen again to modify the results
different stages refined each time spiral is worked through
iterates until the project is complete
What is the spiral model usually used for?
mission critical projects
projects where risks are involved
games development
What are the advantages spiral model?
issues addressed early in project development - riskiest parts of project identified & dealt w/ first
software prototype created early in life cycle & refined w/ each spiral iteration
suitable for projects with changing requirements
What are disadvantages of the spiral model?
not suitable for large projects as requirements constantly changing
highly skilled development team needed to perform risk analysis
high development costs due to number of prototypes created + increased customer collaboration
hard to give clients solid deadline
What is Rapid Application Development (RAD) ?
method for designing software where a mock - up/prototype system of program designed & produced w/ reduced functionality to a set deadline
What happens in RAD when the mock-up/prototype is produced?
tested & evaluated to obtain feedback from end users to suggest improvements
results used to inform & refine design of next prototype
process cycle is repeated w/ each iteration improving program until final, fully functional version is produced
Where is RAD used?
where requirements of the system are not well defined
What is the development team authorised to do in RAD?
to make design decisions w/o need for detailed consultation w/ senior managers
What are the advantages of RAD?
end user can see working prototype early in project
end user involved in design & can change requirements - influence direction of program
concentration on essential elements needed for user w/ emphasis on fast completion
Disadvantages of RAD?
emphasis on speed of development may impact overall system quality
poor overall design as it wasn’t well defined at the start
not suitable for large projects