Chapter 2: Application of Software Development Approaches
Chapter 2: Application of Software Development Approaches
List of Approaches
− First two phases (defining and planning) are generally the responsibility of a systems analyst.
− A system analyst develops plans and scheldules and interacts with users of the system.
− Programmers do most of the work for the other stages. They rely on system analysts to provide
detailed specifications of the required program.
− There are two types of programmers in this approach, generally; system and application
programmers.
− A system programmer writes instructions for the computer's OS.
− An application programmer writes the instructions for the computer to peform a specific task.
− During definition of problem stage, system analysts interviews users and management and
collects data about the existing (if any) system through observation, surveys and the collection
of documents.
− A key factor in the definition of problem stage is the feasibility of a planned software solution.
1. Financial feasiblity:
- Does the proposed plan make sense money wise?
- Will it profit the client?
- Can the client afford it?
- Often presented as a “cost-benefit analysis”.
2. Operational feasiblity:
- Will the client be able to operate the software?
- Does the client have the staff/means to use the proposed plan?
3. Technical feasibility:
- Does the client have the required hardware?
- Will the client be able to efficently run the proposed plan on their current systems?
4. Scheduling feasiblity:
- Can we finish this on time?
- Will the client have the proposed plan installed within a reasonable deadline?
The Prototyping Approach
− Can be used in two different ways; as an information gathering tool or as a basis for a fully
working program.
− For example a prototype can be developed and shown to a client just to give them idea of what
the final product will look like, and to get feedback from the client. This is an information
gathering approach.
− As a basis, the client is shown a prototype several times throughout the development process,
and the prototype is eventually refined until it is a final, polished product.
− Prototyping approach is useful for applications when there is a lot of human-computer
interaction. (eg. Multimedia and internet applications)
− Prototype is based off initial specifications from the client.
− Prototype is then shown to client, and changes are made based off their evaluation.
This is a general
BEGIN
prototyping approach.
CREATE PROTOTYPE
EVALUATE PROTOTYPE
NO
ARE CHANGES TO BE MADE?
YES
MODIFY PROTOTYPE
END
The Rapid Application Development Approach (RAD)
Methods of Implementation
Direct Cut-Over
An immediate and complete conversion to the new system.
Parallel Conversion
Has complete use of both systems for a period of time, easing into the switch between systems.
Pilot Conversion
Involves the use of parts of the fully installed new system while the old one is still in use.
− New system is fully installed but is only used for some operations.
− Means the old system is still available if the new one fails.
− Allows the users to evaluate new system as a completed version.
− Allows users to train others in usage of the new system.
Current Trends
Outsourcing
Example: Schools rely on other companies for their software (SchoolPRO, etc) but still employ IT
staff to maintain the software.
Populuar Approaches
− The ease-of-use and easy acquisitation of software such as web-page editors has been
encouraging an evolutionary prototyping approach (the flow chart a few pages back).
− Small end-users (everyday folk) usually customize “off-the-shelf” software to solve their own
specific problems.
Employment Trends
− The move toward outsourcing means less likelihood of a development job being permanent.
− Software developers are often hired on a per-contract basis.
− Workers in the IT field are often working under a contract that lasts until the project is done, or
one that is a fixed-term within a development team.
Use of CASE Tools and their Application
Software Versions
Data Dictionary
Identifier:
the main name of the control or data item. Eg: “cost.”
Alias:
alternative names for the same item. Eg, tempoary data items used for
swapping or other such processes. Eg: “cost_temp”
Processes:
the processes that use the data item together with the way in which the data item is
used. Eg: “cost” may be calculated as “quanity” multiplied by “unit_price.
Other Information:
a generalised category which includes data type info, restrictions or limitations on the
data items and any preset values.
Test Data
− Falls into two categories: data that tests specific modules, and date that tests the system as a
whole, usually under simulated working conditions.
− Usage of a “test-data generator” can be fed conditions and syntax of data and will then output a
large set of test data.
− Program known as a “file comparator” can be used to compare outputs of two different versions
of the same program. Same input data is entered into the two versions and the output is saved.
The comparator then scans each of the output files and indicates where and what the differences
are.
Production of Documentation
Needs
− Needs other than the user's own need to be considered when identifying the problem.
− Includes the need to represent various data items, need to store certain facts and the need to
output data in a particular manner.
− Human needs are easiest to identify and address as the developer can put themselves in the
position of the user.
− Activities such as surveys, interviews and observation can help identify human needs of
software.
− Needs of multiple types of users need to be addressed/considered. (The elderly, disabled, etc)
− Also includes physical needs of the user's hardware, such as graphics cards, processor speed,
RAM, and other system requirements.
− Includes specific hardware requirements, for example a speech recognition program requires a
microphone.
Objectives
− An objective is simply the criteria against which performance is measured. For example, if a
program needs to display a value that changes in real time, then the objective would be to
calculate and display the updated value every fiftieth of a second.
− Objectives can be split into categories, for example a set of objectives relating to user
interaction, or a set of objectives relating to the “background” workings of the program.
− Objectives are recorded in statements that put the user's needs into an understandable format.
For example, a company may wish to automate their production line. This initial need is then
broken down into objectives, such as the production line being able to produce a certain number
of items in a specific amount of time.
Boundaries
− When there are multiple systems within a software solution, the places where outputs leave one
of the systems and move to the next are called boundaries.
− Boundaries need to be clearly defined.
− The boundaries need to be communicated to each member of the development team.
Determining the Feasibility of the Solution
− Feasiblity has a range of factors, some obvious (is it worth solving this problem?), and some
less obvious (can we get this done in a reasonable time frame?).
− Through development, the consideration of these factors is reported on in a feasibility study.
− The factors can sometimes become a tangle of technical, scheldule and financial aspects of
feasibility. For example if a project requires a certain hardware component, the development
and installation of that hardware may become a factor technically, time-wise and financially.
Financial feasiblity.
Can we afford to develop this? Can the client afford to run this?
Operational feasiblity.
Is the proposed solution user-friendly? Will be people be able to use it easily?
Technical feasibility.
Do the technologies and tools exist to create and run this solution?
Schelduling feasibility.
Can we develop the solution in a decent time frame? Will it still be worth using by
the time it is developed?
Constraints.
What has the client said we can/can't do? Are the client's staff capable of running the
solution?
Alternatives.
Are there existing solutions?