Software Development

advertisement
Software Development
Chapter 1
The Software Development Process
Project Progression
 For the advanced higher course we focus on the finer details
of the software development process
Higher course statement
Explanation of the iterative
nature of the software
development process.
Description of the purpose of
the software specification as a
legal contract.
Explanation of the importance
of each stage (analysis, design,
implementation, testing,
documentation, evaluation,
maintenance) of the
development process.
Advanced Higher course statement
Description of the progression through
project proposal, feasibility study
(economic, legal, technical and time),
operational requirements document
(ORD) and system specification,
detailed design, implementation,
component testing, system
and acceptance testing,
evaluation and maintenance.
Higher
course statement
Description and exemplification
of pseudocode and one graphical
design notation structure diagram
or other suitable) including data
flow.
Explanation of the need for
systematic and comprehensive
testing.
Advanced Higher
course statement
Comparison of different
user-interface design styles
(menu-driven, textual, graphical).
Explanation of module, component
and beta (acceptance) testing.
Description of debugging
techniques: dry runs, trace tables
(tools), break points.
Project Scope
 The scope of projects can vary greatly in:



Size
Complexity
Cost
Small scale project
Medium scale project
Large scale project
Student computing
project.
Computerisation of a small
library with web access.
Supermarket chain installing new OS and
terminals in all stores nationwide
Installation of home
computing system.
Updating of office filing
system from manual to
computerised
Software house implementing a major
upgrade, globally.
Computer systems: 1 - 10
Computer systems: 20 - 600
Computer systems: 10,000+
Project Proposal Indication
 The process starts with a perceived need that originates from a
client
 A client may be an individual or company
 Changes to an existing system or a new system is thought to be
required
 Within the client organisation management will be responsible
for all decisions about the proposed new system
 System changing is a costly and time-consuming process
Possible System Problems
 Things to take into consideration at the proposal stage are:



Current system may be too old or expensive
Current system is so outdated it cannot respond to customer
demands
The premises are inadequate to house and run the system
effectively
Problems can come to light from a variety of sources
End users
errors in system
system too slow
Middle management
difficulty getting reports from system
complaints from customers
Senior management
system too costly
system causing poor service
Project Proposal
 Once the problem has been recognised a manager draws up a
report that will define the problem
 This report is referred to as the Project Proposal
 It is used to articulate requirements in a clear and unambiguous
manner
 It is completed by a member of management and they are the
key client contact during this phase of enquiry
Content Of A Project Proposal
 The project proposal converts an idea into details of a potential
project, including

Outcomes, Outputs, Major Risks, Costs, Estimate Of
Resources, Time Required
• A company profile and options for additional services should be
included in the project proposal
Further information covered is:
Project outline,
Project Type,
Project Justification,
Budget Constraints,
Risk Factors
After The Proposal
 The client company can now receive tenders for the
proposed project
 The main issues to be addressed are:
 Time Scale
 Cost
 Staff Required
 Essential Resources
Should management decide to take the project further a
Feasibility Study will take place
Pupil task - Past paper questions…
Susan Jones runs a nanny agency providing childcare for
approximately fifty clients.
She would like to introduce a computerised system which has been
designed to meet her needs, rather than continue using the mixture
of spreadsheet and word processing
applications of her current system.
She has produced a project proposal which details her plans for the
new system.
The project proposal is a non-technical document prepared by the
user.
Outline three major points which would be addressed in the
project proposal
Answers….
•The scope and objectives of the proposed project.
•Costs
•Resources
•Time to complete / Deadline for project
•Expected Outputs
•Risk factors
Feasibility Study
 The purpose of a feasibility study is to ascertain whether
expenditure of time and money is likely to prove
worthwhile and whether problem objectives can be realistic
as aspirations of companies may be unrealistic
 Results of this study will determine which solutions can be
further developed
 The feasibility study should be conducted reasonable
cheaply and within a short time scale
There are no legal or contractual requirements at this stage
Who Does The Feasibility Study?
 Large companies have a committee to evaluate new
systems
 Other companies select a working group made up of
management personnel and system analysts
 Other companies give responsibility to a project director
The person responsible for undertaking the feasibility study
is in most cases the project leader
Feasibility Criteria
 An effective solution to a project is determined by operational
constraints
 These constraints must be taken into consideration when
starting a feasibility study




Technical Feasibility
Schedule Feasibility
Economical Feasibility
Legal Feasibility
Technical Feasibility
 The feasibility study must ascertain which technologies are are
necessary for the system to work
 It may be the case that advanced technology does not yet exist
 Determining whether the hardware and software will operate
under the proposed workload and environment is part of
technical feasibility
Technical Problems
 Development of a new system involves risks


Software companies and clients can appear to be in perfect
agreement until the final product is supplied
Clients have unrealistic visions of computer systems
The feasibility study is where idealism meets realism
• Further problems might include:
 Training of Personnel
 Consideration of Service Warranty
 Help Desk Facilities
Schedule (time) Feasibility
 This may be assessed as part of technical feasibility
 Time is a main factor in developing a new system and most
companies have an annual schedule of events
Questions that could be asked at this stage are:
 How long will the proposed system take to develop?
 Will it be ready within the time-frame?
 When is the best time to install it?
The scheduling of components can be aided (planning techniques) by a
Gannt or PERT chart.
Gannt Chart
 This is like a horizontal bar graph used to plan and schedule
projects
 The horizontal axes represents the time scale and start and
finish times of components are graphically represented
PERT
The Program (or Project) Evaluation and Review Technique,
commonly abbreviated PERT, is a model for project management
designed to analyze and represent the tasks involved in completing a
given project. It is commonly used in conjunction with the
critical path method or CPM.
Pupil Activity -
Watch this video and then complete task
Using either a Gannt or Pert chart create a plan to show the
planning requirements of delivering a new car. For example
the body of the vehicle (how long does it take to create and
how many departments use this part of the vehicle)
Economical Feasibility
 This deals with cost implications
 Clients want to know how much each option costs, what is
affordable within the companies budget, and what they get for
their money
 A Cost Benefit analysis is part of the economical feasibility
study
 If the project is not cost effective there is no point proceeding
New System Costs
 A new computer system is an investment and involves capital
outlay
 Costs of a new system include:



Cost of Acquiring (consultancy fees, program development)
Cost of Installing ( equipment, workplace costs)
Cost of Maintaining (training)
Break Even Point
 This is when the new system starts to make money and
stops costing money
 It is extremely difficult to quantify
Break even
point
New System Benefits
 Benefits that management would be looking for in a new
system would be:
 Reduced Running Costs
 Increased Operational Speed
 Increased Throughput of Work
 Better Reporting Facilities
Legal Feasibility
 This has to do with conflicts that arise between the proposed
system and legal requirements



How would the new system affect contracts?
Is there health and safety issues?
Are there any software licensing implications?
Feasibility Report
 The final step in the feasibility study is the production of a
report for the client
 This will contain:

A Summary of Findings, Possible Solutions, Guidance,
Alternative Options, Project Schedules, Target Dates,
Cost, Recommendations
 If the project can be implemented the management will
now decide if it should and if the benefits will outweigh the
costs
If the feasibility report is favourable then the project goes to
the next stage – Full System Investigation
Pupil task – answer the following questions…
A company that manufactures a wireless palmtop computer has decided to
introduce the capability for it to be used for free voice calls over the
Internet using a broadband connection.
The company intends to create software for their servers to allow users
access to the voice calls.
(a) Initially, the company undertook a feasibility study by investigating
technical feasibility.
(i) When investigating technical feasibility, the system performance of the
palmtop was considered. State two hardware characteristics that affect
system performance.
(ii) State two other aspects of feasibility that the company would have
considered.
(iii) Describe two benefits of a feasibility study for the company.
Answers…
(a) (i) Two hardware characteristics that affect system performance are:
• Type of backing storage
• Processor speed
• Bandwidth
• Range/bandwidth of wireless
• Amount of RAM
(ii) Two other aspects of feasibility that the company would have
considered are:
• Economic
• Time
• Legal
Pupil Task
A company decides to offer DVD rental through the World Wide Web. After
registering, a customer will create a list of movies that he or she would like
to watch. The highest positioned available movie from the list will be posted to the
customer.
When finished with the DVD, the customer will post it back. The management of
the company decide to appoint a project team to oversee the implementation of a
software solution.
(a) The management of the company are aware that the proposed system is both
technically and legally feasible but they still authorise a feasibility study. State
two benefits a feasibility study will provide for the company.
(b) A system analysis is undertaken resulting in a system specification. This
system specification will specify the hardware required for the new system.
(i) State two other items that will be specified.
(ii) Describe how the system specification could be validated.
Answer
(a) • Assessment of a range of options (indicating advantages/
disadvantages of each option).
• Proposed course of action or recommendation to client.
• Cost-benefit analysis/indication of whether project is
economically or financially viable.
• Schedule − doable within timescale.
1 mark x 2 benefits
(b) (i) • Scope, limits, boundaries of the problem.
• Functional description detailing what the proposed system will do.
• Data description indicating data types and storage.
• Project schedule.
• Details of user documentation, details of user training
required.
Answers on the same line should not be treated as different
1 mark x 2 items
(ii) Comparing with ORD (1) to check that all of the requirements
are being met (1).
(iii)
Two benefits of a feasibility study for the company are:
• Smaller initial cost is cheaper than full scale development
• Provides suggestions of possible solutions
• Includes a recommended solution where possible
• A description of the benefit of one of the types of feasibility
Pupil Homework
Complete Homework
System Investigation
 The purpose of the system investigation is to determine in detail
what has to be done to solve the problem
 Either an existing system will be analysed and a new one
designed or a new system is created from scratch
 If a system already in place work that it carries out is investigated
and this investigation forms the basis for the new system design
 If there is no system to investigate a new system will have to be
created from the beginning
The investigation is carried out by a System Analyst
System Analyst
 The analyst’s work is undertaken in 2 stages:


Completion of a full system investigation
Production of an Operational Requirements Document
 The analyst carries out detailed observation of the company
by interviewing, observing and using sampling techniques
 The boundaries of the system have to be established,
including:
 System Inputs
 Processing
 Program Outputs
Analyst’s Problems
 The system analyst’s job may seem straightforward but:
 People fear change
 Employees feel threatened by the prospect of a new
computer system
 Employees think that computers threaten their jobs
 Employees are anxious about learning new procedures
 Employees fear they wont be able to cope with technology
 The analyst may find it difficult to gain the co-operation of
employees
Functional Specification
 This document is written by the analyst after the investigation
stage is complete
 It notes what functionality is required and what the data
processing requirements are
 Another name for this document is an Operational
Requirements Document
Operational Requirements Document
(ORD)
 The ORD contains a full description of the problem with all
the inputs, processes and outputs
 This document is used throughout the remainder of the
development process
 The client management will review the ORD and when
agreement is reached a formal ORD is produced
Legal ORD
 The formal Operational Requirements Document will
stand as a legally binding contract between the clients
and the consultants
 It serves to protect both parties
 The consultant must produce a system to meet the
specification, so it protects the client
 The clients might think up additions to the specification
which would incur additional costs, so it protects the
consultants
An ORD & An Analyst
 The ORD will be used by the consultants as a working
document that will inform everyone involved in the
development process
 The analyst has to make sense of it and understand it because:



People don’t always know what they want of a new system
Requirements can involve specialised knowledge
Interests can conflict as different people want different
features
The analyst then goes on to write the specification of the
operational requirements, this is the basis of the contract for
the system and it should be written as clearly as possible
Completed ORD
 When complete the ORD will contain 4 main specifications:




Functional Specification (detailing what the system will do)
Physical Specification (list of hardware needed)
Data Requirements (declaring what storage capacity is
required)
System Prospectus (containing a project schedule, user
documentation and training needs)
The ORD marks the end of the investigation phase of the project
When it has been agreed the Development Phase begins
Pupil Homework
Complete Homework
System Design
 The first part of the development stage is system design
 This is where the components described in the ORD are
brought together into a coherent whole
 Flows of data are clarified
 Each component is refined using methodologies like:




Structured Charts
Data Flow Diagrams
Jackson Structured Programming
Pseudocode
• This is done until is low enough to put into code
Structured Charts
Data Flow Diagrams
Jackson Structured Programming
JSD is an object-based system of development, where the behaviour of
objects is captured in an entity structure diagram.
Jackson Structured Programming or JSP is a method for structured
programming based on correspondences between data stream structure
and program structure.
JSP structures programs and data in terms of sequences, iterations and
selections,
As a consequence it is applied when designing a program's detailed
control structure, below the level where object-oriented methods
become important
Design Process
 The aim of this process is to create a system with no
inconsistencies and no illegal relationships
It is important to make sure that the system being built is the
one that was asked for
 The process of checking that the product matches the
specification is called verification
 Validation is checking the that the product is what the
customer want
Implementation
 This phase is started once the design is complete
 This is the most crucial part of the project
 The theory of analysis and design is now put into practice and
often problems not previously encountered are found
 Tasks to be carried out at implementation are:






Coding and testing the system
Human Computer Interface fully designed and tested
Setting up hardware on site
Legacy files
Manual and documentation complete
Staff trained
Implementation and Testing of Components
Module
Testing
Sub-system
Testing
System
Testing
Acceptance
Testing
Implementation - Testing
 It is important that the design is tested and that testing is
done systematically
 Dry Runs and Structure Walkthroughs are used to test
individual modules
 Test data is designed using these parameters:



Input (often called test case)
Reasons for choosing test case
Expected results
 A set of these cases is designed for each module
 The designer will run the test data by using trace tables
(tools) to check that the logic is correct
Implementation - Modular Testing
 Top-Down testing goes with top-down development
 Systems are divided into sub-systems which are developed
separately
 Modules are created and tested within their sub-system
 A module is tested as soon as it is coded
 When all modules have been tested the whole sub-system is
tested
 The sub-systems are then brought together and the complete
system is tested
Implementation -Test Strategies
 There are 2 test strategies that are implemented at different
stages of the testing process
 Black Box Testing
 White Box Testing
 In order to fully test a software project both black and white
box testing are required
 Once ready the system is installed on the client’s site and is
subjected to Acceptance Testing
Implementation -Black Box Testing
Here we don’t need to know the contents of a
component (module). Inputs are fed in and test is
accepted as correct if output is correct. If output
is wrong, module is sent back for bug-fix
Tester doesn’t have to have worked on project or
know the language
Implementation -White Box Testing
Tester must know the language
Has to ‘see’ the code inside the module and test
all options within the module
White box testing is generally carried out as the
code is developed, but may also be revisited when
black box testing fails
Pupil Task - Past paper question
When designing the code for the system, the programmers
should aim to produce modules which are as independent as
possible.
Describe two steps that the programmers should take to
ensure module independence
Answer
Ensure that modules have as little interaction with other
modules as possible.
In other words it will have a simple interface when viewed by
other parts of the program
structure. Local variables should be used as much as possible
but parameter lists should
be simple, perhaps using a record structure rather than a list of
single variables.
each module should carry out one function or task whenever
possible. This is easier to develop and understand by others when
it comes to system integration and maintenance
Pupil task – past paper question
Describe one other validation technique that would be
appropriate for the system, identifying the stage(s) of the
software development process in which it would be applied
answer
Description of dry run or other appropriate technique e.g.
black box testing of modules, alpha or beta code release
testing, or acceptance testing, associated correctly with a
stage of the development process.
Implementation –
Setting up hardware on site (Changeover)
 Once testing has been passed the changeover from the old
system to the new has to take place
 There are several approaches that can be adopted:





Parallel Conversion
Phased Conversion
Pilot Conversion
Direct Conversion
Combined Conversion
Implementation -Parallel Conversion
 This involves running the new system in parallel with the old
one for a period of time
 An advantage is that the old system can serve as a backup
 A disadvantage is the duplication of processing data
Implementation -Phased Conversion
 This is similar to parallel conversion but it is carried out in a
smaller, more manageable scale
 The new system gradually takes over, keeping risks to a
minimum
 Phased conversion can take longer and problems may arise
when controlling old and new systems
Implementation -Pilot Conversion
 This is a safe option
 A retrospective trial on data previously processed in
conducted
 Or changeover is restricted to a particular section of the
old system
 Pilot conversion allows a number of trials to be conducted
until an acceptable version is ready
 The advantage to pilot conversion is that disruption to the
system is minimal
Implementation -Direct Conversion
 This is the big bang approach which involves immediate
conversion from the old system to the new
 Direct conversion is the most practical solution and it attracts
the minimum costs and disruption
 The system users must be prepared
 Changeover must be done at a time when the workload is at a
minimal
Implementation
-Combined Conversion
 This involves a mixture of approaches
 Some parts of the system may be change while others may
have to be testing by piloting
 This approach depends on the specific application and the
exiting system
Implementation -Legacy files
(correct formats and media)
Legacy systems are considered to be potentially problematic by many
software engineers for several reasons:
Legacy systems often run on obsolete (and usually slow) hardware,
and spare parts for such computers may become increasingly difficult to
obtain.
If legacy software runs on only antiquated hardware, the cost of
maintaining the system may eventually outweigh the cost of replacing
both the software and hardware unless some form of emulation or
backward compatibility allows the software to run on new hardware.
Documentation
The User Guide and Technical Guide are created throughout system
development
Writers rarely get enough time to complete these since…
Once system is implemented, everyone wants it
installed straight away
Programmers can be changing the system up to
the last minute
This means at the time of delivery, the system and the documentation
may not match
Implementation - Staff training
Conception – What will be offered?
Planning – How?
Execution – When and at what pace and scale?
Control – How will feedback and contingencies be acted upon?
Feedback – How we have to integrate and reply back activity to activity?
Evaluation
 When the new system is up and running it is important to
evaluate it in terms of running to the original specification
 Evaluations are used to determine if the system is:
 Usable
 Cost Effective
 Conforming to Criteria
 Techniques such as observation, interviewing and
questionnaires are used for evaluation
Evaluation Criteria
 There is no limit to the number or type of criteria used
in evaluation
 Evaluation criteria used could be:
 The time it takes to install a piece of equipment
 The number of errors an operator makes while doing a
task
 The time it takes an operator to complete a task
 The number of times a computer crashes or hangs
 The number of phone calls made to the help line
 The number of times an operator consults a manual
The key criterion in evaluating software is whether it is Fit
For Purpose
Maintenance
 This is the most time consuming stage
 Some bugs only become apparent over time and changes may
have to be made to adapt the system to new demands
 Any enhancement to the system is maintenance
 Proper maintenance depends on accurate error reporting and a
maintenance log
Maintenance Categories
 There are different categories of software maintenance:




Corrective Maintenance is the repair of defects found in
the code
Adaptive Maintenance serves to modify the software
should it be used in a new environment
Perfective Maintenance deals with updating the software
in response to user requests
Preventative Maintenance deals with updating the system
documentation
Percentage Costs
 Here is the Software Development
Process with percentage costs for
each stage included
Download