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