Software Development Approaches Flashcards
What are the five steps of the software development cycle
Defining and understanding the problem
Planning and designing
Implementation
Testing and evaluating
Maintenance
What are the factors that influence when choosing an approach
the size of the product
the nature of the product
the skills of the development personnel
the detail of the requirements
the finances available to fund the product development
what are the five common software development approaches
Structured Approach
Agile Approach
Prototyping Approach
RAD (Rapid Application Development) Approach
End User Development Approach
What is the Structured Approach
the structured approach is the traditional approach to software development, as the name suggests it involves a very structured, step-by-step stages. Each stage of the software development cycle must be completed before progressing the to the next step
the stages of the Structured approach
Defining and understanding the problem
Planning and designing
Implementation
Testing and Evaluation
Maintenance
What is another name for the Structured approach
The waterfall method
what is Structured approach best suited to
it is best suited to software developments where all the requirements of the product are, or can be defined and understood before any planning and designing commences.
what is a Driver (not debugging and testing technique)
It is the interface between a hardware device and an application
what is validation
the process of substantiating the requirements of a system.
where do most of the source of errors occur in the traditional approach
Defining and Understanding the problem (56%)
what is the relative cost of error corrections for errors originating at the defining and understanding the problem stage
Defining and understanding: 1
Planning and Designing: 5
Implementation: 10
Testing and evaluation: 40
Maintenace: 200
Characteristics of the Structured approach
it is the most formal approach
has 5 distinct stages (defining and understanding, Planning and Designing, Implementing, Test and Evaluating, Maintaining)
Requires a large time frame
There is very little room for error
Costs of developing with this software is expensive
what is the Agile development approach
Agile development approach is the quickest Software development cyle approach that creates apps in a short amount of time. It releases the product as fast as it can and continually releases update after update to keep up with the competition.
What are the characteristics of the Agile Approach
lack of formal stages
emphasis on collaboration and speed to market (development team and clients collaborate closely)
emphasis on the user’s experience
Emphasis on getting the product to the market
iteratively (continously) update and refine the product based on customer feedback
Responds well to changing specifications
what is the agile development approach best suited to
the Agile approach is best suited to web-based software development and other software applications that are modified reguluary (such that they can evolve and are updated over time)
What is are the stages of the Software development cycle for the Agile Approach
Defining and understanding initial problem
Plan, design and implement
Test and evaluate current solution
release working version to users
define and understand new requirements
What is a prototype
A prototype is an enactabled model or mock up of a software system that enables evaluation of features and functions in an operational scenario.
What is the prototyping approach
The prototyping approach creates re-tierations of a prototype leading up to the final prototype to progressively refine user requirements. This approach allows for interactions between the customers and the software developers.
what are the two major types of prototypes
Concept prototypes and Evolutionary Prototypes
what is a concept prototype
a concept prototype is prototype used to promote discussion and further enhance the developer’s knowledge of the customer’s requirements. This prototype is never meant to be the final product.
What is an evolutionary prototype
An evolutionary prototype is intended to be the intial prototype that will eventually become the final product. Each succesive generation of prototypes is an improvement on its predecessor to the eventually a level of functionality is reached where the prototype becomes the final product.
What is the RAD (Rapid Application Development) approach
The Rad approach is a software development approach that allows usable systems to be built within a small amount of time. It aims to get a working product up and operation as fast as possible even if some secondary requirements are not met.
What is API
API (Application Programmers Interface) is a set of functions and procedures built into the operating system that can be used by programmers
what are some disadvantages to using the RAD approach
buying modules may be more expensive than building from scratch
other software may be requried to be installed on customers’ devices
less efficient code because it is not specifically made for the particular job
Reliance on third party modules may sacrifice needed functionaliy and add unneeded functinoality
Using third party components may create legal problems
Characteristics of RAD Approach
Lacks formal stages
typically used for developing databases
Uses CASE Tools to assist development
Use of existing routines
Short time development period
small-scale project
low budget
Communication between developer and client
What are some advantages for using the RAD approach
Buying modules may save money compared with building them from scratch
greatly reduced manual coding
possibly fewer code errors as code is produced by CASE tools
Shorter software development cycle resulting in reduced costs
Standardised look and feel because of the use of APIs and other reusable components