Chapter 11 Software Development Flashcards
Methods used to develop software on a big or small scale. Also there is a small focus on testing,prototyping and cycle stages.
What is software developement?
The process of encompassing the entire project, covering reasons for developement, audience and functionality.
What do you need to know before tackling software developement.
The client objectives, the stakeholders, services and constrains(functionality goals), expectation of quality and expectiation of time and budget.
What is a prototype?
Prototype is a version of a system that lacks full functionality, but shows feature implementation
What does a prototype give us ?
A prototype means the target audience gets a look and feel and can therefore make comments and suggest improvements to better fit the specification
What are the 2 methods of prototyping ?
Piloting and Modelling
What does piloting mean ?
Using a prototype to test the feasibility of desing proporsal or requirement
What does modelling mean ?
Built in order to develop further understanding of requirements.
What types of prototypes is there?
THROWAWAY OR EVOLUTIONARY
What is throwaway prototype?
A prototype where only knowledge gained from it is used.
What is an evolutionary prototype ?
A prototype that is actually a system under developemtn which keeps getting closer to solution.
What is a waterfall life cycle?
A method of development which consists of a sequence of stages/milestones. The project is being completed by flowing down those stages, where the next stage can only be entered once previous has been completed.
Stages of the waterfall method?
Determine requirements Analysis Design Coding Testing Maintenance
What are the advantages of the waterfall cycle?
Simple and easy to manage
Everyone can be clear on responsibilities and output is expected at each stage
Clear to see if project is on time / forces plannning
Disadvantages of the waterfall method?
Only at the testing stage problems willl show up
Misunderstanding the requirements may lead to issues which have to rectified once money has already been spent
Cant be adapted and cannot go back on stages
What kind of projects suit the waterfall method ?
Simpler projects which have clear requirements. It is also best if the projects have a fixed scope and fixed price.
What does RAD stand for ?
Rapid Application Developement
What is RAD.
A software developemtn process which relies heavily on programming and doesnt go much into the requirements or planning. It consists of cycles of prototyping+evaluation until functionality is validated by user.
Advantages of RAD.
Requirements or goals do not have to be fully clear
With constant and good feedback teh prtoduct is likely to have excellent functionality.
Disadvantages of RAD.
Very hard to accomplish if the user isnt commited to giving feedback.
Chance of havaing limited features since the application is pushed to the latest version for release.
Reduced scalability
What kind of projects is RAD best suited for?
Projects with unclear requirements and qucik completion time.
What is the spiral method ?
Often called an extension of the waterfall method, however it is designed so that risks are evaluated and reviewed regularly. It consists of 3 stages.
What are the three stages of the spiral method and what happens in each?
IDENTIFICATION - requirements are determined for the following rotation, chosen based on risks
DESIGN - risks are identified a nd alternatives are presented after a prototype is made( usually )
BUILD - a prototype with original requirement is made
Advanatges of the spiral method ?
Ideal for projects with high risks.
Strong approval and documentation control
Disadvantages of the spiral model?
Risk analysis is only as good as the person who does it
Can be very costly
Doesnt work well on smalller projects
May continue idefinitely
What is agile development ?
A group of methodologies, designed to cope with changing requirements. Teams produce software which is produced in an iterative manner, where improvements are built upon previous versions.It means the client gets to see results sooner and is able to provide adaptive feedback to fully meet objective.
What is SCRUM?
Scrum is an agile framework for managing knowledge work, with an emphasis on software development. It is designed for teams of three to nine members, who break their work into actions that can be completed within timeboxed iterations, called “sprints”, no longer than one month and most commonly two weeks, then track progress and re-plan in 15-minute stand-up meetings, called daily scrums.
Advantages of agile development ?
Software is deployed quicker,so customer can get value
Less resources are wasted since it is always up to date
You can adapt to changes bettter
Immediate feedback
Low costs
Issues are detected earlier and fixed
Disadvantages of agile development?
Difficult to measure progress with all those cycles
Requires a lot of employee energy since constant communication is required.
No clear end
No overall design
No fixed cost
Bigger features are avoided since they dont fit the cycles
With time the software can become disjointed
What is extreme programming ?
A methodology where a client or their representative becomes part of the team to decide ‘user stories’, decide tests and answer questions.It is an agile method where the focus is upon the code.
How does extreme programming work ?
It has iterations where a program is coded,tested and imporved repeatedly. This is done in pairs and under strict standarts to ensure quality
Advantages of extreme programming ?
Quality of code is likely to be very high
Can be adapted t changing requirements
Makes development simple and fast
Disadvantages of extreme programming ?
Programmmers must be able to collabrate together and be near each other
Client needs to stay commited
What are the three types of errors?
SYNTAX
LOGIC
RUN-TIME
What is a syntax error?
An error occurring when a statement breas the rules of the programming language, which makes it impossible to understand for the machine
What is a logic error ?
An error which is a mistake in the algorithm leding the function to do something that wasnt intended by the user. This can only be seen after execution
What is a run-time error?
An error occurring due to an unexpected situation with the data being processed or another factor, which causes the program to crash during execution.This si split into OVERFLOW,STAKC OVERFLOW and LIBRARY.
What is OVERFLOW?
A variable is too big to store
What is STACK OVERFLOW?
Not enough space to store operations
What is LIBRARY error?
No library implemented
What are the types of testing we have to know about?
- Alpha
- Beta
- Unit
- Integration
- White Box
- Black Box
- Destructive
What is testing?
An action which ensures lack of errors in the program.