Section 3 - Software development Flashcards
What is the system development lifecycle?
Analysis
Design
Implementation
Evaluation
Maintenance
What information might a system analyst collect? (2)
What the current system does
What the new system needs to do
What might a system analyst do to collect information? (4)
Interview people who will use new software
Use questionnaires to gain large amounts of information
Observe what the current system does
Look at existing documentation
What does a system analyst give back after an analysis?
A system documentation used to evaluate the final product.
What does or should a software design document include? (7)
A description of the data (data types, format and validations),
Database design and management (if appropriate),
Input/output screens and reports,
How the data will be processed,
How the software will be tested
Hardware requirements/configuration
System Security
What happens in the implementation phase of software development?
Coding and testing the software (while tracing and correcting errors),
Writing user and technician documentation,
Installing software for the user
What are the two types of testing?
Black box (functional) and white box (structural)
What is white box testing?
Testing the code logic by using test data to test all the possible paths within a program at least once.
What is alpha testing?
In-house testing that is closed from the public and can reveal many bugs or problems
What is beta testing?
When (often) commercial software is distributed to potential users to be tested and where the user agrees to the testing.
Why is beta testing effective?
It gains lots of real world info and experience for the developers since people often do things that the original developers didn’t anticipate.
What happens in the evaluation phase of software development?
Around 6 months after distribution, people critically evaluate if the system works and that all aspects of the software are tested. This is evaluated against the original specification document to compare performance, the systems criteria, any errors made and any unexpected benefits/problems
What is acceptance testing?
Testing every aspect of a software then evaluating it against the original specification document to accept that it now works/performs as intended.
What are the three different types of maintenance
Corrective maintenance,
Adaptive maintenance,
Perfective maintenance
What is the waterfall model?
Similar to the lifecycle model except it doesn’t loop, when you get to the end, you can’t go back upwithout re-completing the previous stages in the model.
Advantages of the waterfall model
Simple to understand
each stage is separate with good documentation,
Projects are straightforward to manage,
model works well for smaller projects too
Disadvantages of the waterfall cycle
Not much user involvement after the analysis stage.
Working software not produced until late in the project,
User is given the finished product which doesn’t leave much room for improvement
When should the waterfall model be used?
The product has a clear outcome
No ambiguous requirements
The project is short,
The technology is well understood
What are the four main stages of the spiral model?
Analysis, design, implementation, evaluation
Advantages of the spiral model
Well defined steps
Software is produced at an early stage in development.
User can give feedback during the iterative process
End result more likely to be what the user wants.
Disadvantages of the spiral model
Iterative process is very time-consuming,
More costly to develop with the time needed,
Not suitable for smaller projects
When should the spiral model be used?
For medium to high-risk projects,
When users aren’t sure of needs or technological possibilities,
When requirements are complex,
For projects which may take a long time to develop and may need to take advantage of recent/future technological advancements.
What is the agile model and how does it work?
Software is rapidly developed in an iterative process in so-called development cycles with individually implemented features where each version improves on previous functionality and is thoroughly tested
benefits of the Agile model
Software is quickly and continuously developed which leads to good client satisfaction,
Working software is frequently published and developed.
Good for small, time-critical projects,
Limited planning to get started.
Disadvantages of the agile model
Lack of emphasis on proper design and documentation,
Product can fail to deliver if the user is not explicit in their requirements,
Not suitable for novice programmers
When should the agile model be used?
When new changes need to be implemented,
When the client is an expanding or developing business where their needs are constantly changing and developing
What is extreme programming?
A type of agile development designed to improve productivity and responsiveness by doing frequent releases and utilizing short development cycles.
What can go wrong in a large project that isn’t properly planned and staffed?
Costs can spiral,
Personnel can change,
Requirements can change,
Technology advances can make a project obsolete.