3. Software Development Approaches Flashcards
What is software development?
The process of creating new software solutions.
Identify the characteristics of the structured approach (x5)
- Characterised by distinct formal stages
- The coding of the solution cannot commence until the solution has been thoroughly planned in its entirety
- Generally used for large-scale projects where performance and reliability are vital requirements
- Since a large audience will use the final product, extra time and money is spent to ensure the final product is of the highest quality
Defining and understanding the problem (x5)
- Problem requirements must be understood precisely
- System analysts are experts in determining and defining requirements; they commence by compiling a list of outputs and test them to determine the exact inputs
- Existing systems should be studied to ensure the new system will accomplish all existing requirements
- All elements of the system should be considered
Includes catering to the needs of users, which may involve the creation of screen designs to document user requirements - Development plans are constructed, which provide an overview of the steps required to develop the solution and the relative timing allocated to each step
Planning and designing (x5)
- The structures that will hold the data during processing will be designed
- The project is broken down into modules; each module solving a particular aspect of the problem, known as top down design
- Methods of solving each problem are described using an algorithm description language such as pseudocode and flow charts
- These algorithms form the templates for the programmers who will code the solution in a programming language
- Data structures are designed and design standards are discussed and created
Implementing (x4)
- The solution is coded in a programming language
- Programmers are allocated specific modules to code
- They are given system models and algorithms
- This documentation ensures each programmer adheres to the planned solution and assists each module will operate correctly with other modules
Testing and evaluating (x4)
- Software must be tested before it can be used
- Large software development companies have teams of testers whose sole function is to check products against original requirements
- This stage involves testing for errors and performance of the product under real conditions
- Selections of potential users are often used to evaluate the solution and ensure it meets the user’s requirements, and is particularly important in regard to the user interface
Maintaining
Maintenance programmers are employed to perform upgrades to include new functionality and improve existing functionality
Identify the characteristics of the agile approach (x8)
- Places emphasis on the team developing the system rather than following predefined structured development processes
- They encourage cooperation and teamwork; they are particularly well suited to web-based software development
- Small teams of developers are used, they are able to share ideas and work on solutions together
- Often team members are multi-skilled so all are actively contributing to all development activities
- Basic functionality is included initially so operational software can be released as soon as possible
- Working versions are regularly delivered
- Responds well to changing specifications
- Development team and clients collaborate closely throughout development
Identify the disadvantages of the agile approach (x3)
- A significant issue is how to construct agreements when outsourcing the development
- Traditionally a strict set of detailed requirements together with the total cost and time for completion is negotiated
- No detailed specifications exist
Define prototype
An enactable model or mock-up of a software system that enables evaluation of features and functions in an operational scenario
Identify the characteristics of the prototyping approach (x5)
- Users are more able to express their needs when they see a realistic model of the final system
- Feedback based on prototypes of the final system uncovers many issues that would be difficult to determine using traditional meetings and text based documents
- Software prototypes can be used purely to assist in the formulation of requirements or they can be evolutionary
- Concept prototypes are produced to assist in the determination of requirements, they are then discarded
- Evolutionary prototypes develop over time and finally become the final operational product
Describe the RAD approach (x4)
- The main aim of RAD is to create a usable software solution in the shortest time possible at the lowest possible cost to the client
- Maximum use is made of existing code and software solutions
- CASE tools (computer aided software engineering) tools are used to further streamline the design and development process
- The software produced is limited to the capabilities of the software used during development
Identify the characteristics of the RAD approach (x6) :-)
Lack of formal stages - needs of individual clients and the individual product determine the manner in which the product is developed. As the scope is limited each team member is able to have an intimate knowledge of the entire system
Appropriate applications to develop RAD solutions - many RAD applications are developed using the scripting language built into larger software packages, such as VBA (visual basic for applications). A graphical integrated development environment (IDE) greatly improves the productivity of most RAD programmers
Communications between the developer and client - work together as a team. Often a single developer will use RAD to create an application for use by a specific client. Responding to changing and new specifications occurs quickly
Short time period - requirements are compromised in the interests of convenience
Small scale project - suited to small-scale projects; client is often a small business and the developer an individual
Low budget - RAD allows quality applications to be developed at low cost (due to existence of modern 4GLs). Encourages reuse of software components or modules
Describe the end user approach
When the end user develops their own software solution; they’re the developer. They usually have little to no experience in programming or software development
User makes extensive use of wizards and existing solutions
Describe the characteristics of the end user approach (x4)
Use of standard software packages - software is produced by packages already owned by the user. Experience as a user gives them sufficient knowledge to customise the product to suit their particular needs
End user as developer and maintainer - develop software with familiar tools. The solution focuses on solving the problem with little regard to testing or usability issues. No communication issues.
Small budget and/or short period for development - often zero development cost, an incentive for many users to develop their own software applications
Lack of formal stages - unstructured, informal developed, often undertaken with very little planning. No formal attempt is made to document the solution