1 Shawlands Academy Higher Computing Software Development Unit.

Slides:



Advertisements
Similar presentations
Testing Relational Database
Advertisements

Software development process. Explanation of the iterative nature of the software development process.
Int 2 Computing Software Development.
P5, M1, D1.
Describing Process Specifications and Structured Decisions Systems Analysis and Design, 7e Kendall & Kendall 9 © 2008 Pearson Prentice Hall.
Software Development Process. Software Development Process Stages 1. Analysing the problem: What do we need to do? 2. Designing the program: How do we.
Alford Academy Business Education and Computing1 Advanced Higher Computing Based on Heriot-Watt University Scholar Materials Implementation and Testing.
System Design and Analysis
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Chapter 3 Planning Your Solution
BPC.1 Basic Programming Concepts
Software Development, Programming, Testing & Implementation.
The Project AH Computing. Functional Requirements  What the product must do!  Examples attractive welcome screen all options available as clickable.
DCT 1123 PROBLEM SOLVING & ALGORITHMS INTRODUCTION TO PROGRAMMING.
The Software Development Process A*D*I*T*D*E*M All Day I Try to Defy Evil Milligan.
Introduction to Systems Analysis and Design Trisha Cummings.
Higher Grade Computing Studies 1. Software Development Cycle Higher Computing Software Development S. McCrossan 1 Introduction The development of a piece.
CC0002NI – Computer Programming Computer Programming Er. Saroj Sharan Regmi Week 7.
Chapter 8: Systems analysis and design
Higher Computing Software Development. Software Development Process There are 7 main stages involved in developing a new software program: Analysis Design.
CSC-115 Introduction to Computer Programming
1 The Software Development Process  Systems analysis  Systems design  Implementation  Testing  Documentation  Evaluation  Maintenance.
BTEC Unit 06 – Lesson 08 Principals of Software Design Mr C Johnston ICT Teacher
Describing Process Specifications and Structured Decisions Systems Analysis and Design, 7e Kendall & Kendall 9 © 2008 Pearson Prentice Hall.
The Software Development Life Cycle. Software Development SDLC The Software Development Life-Cycle Sometimes called the program development lifecycle.
Chapter 3 Developing an algorithm. Objectives To introduce methods of analysing a problem and developing a solution To develop simple algorithms using.
Describe the Program Development Cycle. Program Development Cycle The program development cycle is a series of steps programmers use to build computer.
Advanced Higher Computing SOFTWARE DEVELOPMENT PROCESS.
Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures.
SE: CHAPTER 7 Writing The Program
Programming for Beginners Martin Nelson Elizabeth FitzGerald Lecture 5: Software Design & Testing; Revision Session.
Developing an Algorithm
Software Development Process.  You should already know that any computer system is made up of hardware and software.  The term hardware is fairly easy.
C++ Programming Language Lecture 2 Problem Analysis and Solution Representation By Ghada Al-Mashaqbeh The Hashemite University Computer Engineering Department.
1 Software Development Topic 1 The Software Development Process.
I Power Higher Computing Software Development The Software Development Process.
Intermediate 2 Software Development Process. Software You should already know that any computer system is made up of hardware and software. The term hardware.
Iterative Nature of the Development Process Iteration = repetition or doing something over again. The software development process can be repetitive, especially.
The Systems Life Cycle AS Computing F451 AS Computing F451.
The Software Development Process
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Systems Development Life Cycle
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Program Development Cycle
Intermediate 2 Computing Unit 2 - Software Development.
Computer Programming CONTENTS Introduction to Operating Systems Introduction to programming languages Introduction to perl programming language Programming.
Topic 4 - Database Design Unit 1 – Database Analysis and Design Advanced Higher Information Systems St Kentigern’s Academy.
Software Development Process Higher Computing Unit 2 – Software Development.
How Are Computers Programmed? CPS120: Introduction to Computer Science Lecture 5.
 Software Development Life Cycle  Software Development Tools  High Level Programming:  Structures  Algorithms  Iteration  Pseudocode  Order of.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
GCSE ICT 3 rd Edition The system life cycle 18 The system life cycle is a series of stages that are worked through during the development of a new information.
1 The System life cycle 16 The system life cycle is a series of stages that are worked through during the development of a new information system. A lot.
CMSC 2021 Software Development. CMSC 2022 Software Development Life Cycle Five phases: –Analysis –Design –Implementation –Testing –Maintenance.
Software Design and Development Development Methodoligies Computing Science.
In today’s lesson we will be looking at: what we mean by the software development lifecycle the phases in the lifecycle We will focus particularly on testing:
Advanced Higher Computing Science
ICS 3UI - Introduction to Computer Science
Higher Software Development
Programming Problem steps must be able to be fully & unambiguously described Problem types; Can be clearly described Cannot be clearly described (e.g.
Computer Programming.
Designing and Debugging Batch and Interactive COBOL Programs
Unit# 9: Computer Program Development
Problem Solving Techniques
PROGRAMMING METHODOLOGY
Introduction to Systems Analysis and Design
Software Development Life Cycle
Software Development Process
Software development process
The Software Development Process
Presentation transcript:

1 Shawlands Academy Higher Computing Software Development Unit

2 Explain Aspects of the Software Development Process

3 The Software Development Process Analysis Design Implementation Testing Documentation Evaluation Maintenance

4 Remember A D ance I n T he D ark E very M onday Analysis Design Implementation Testing Documentation Evaluation Maintainance Monday

5 Systems Analysis What is a systems analyst? –A systems analyst observes, clarifies and models an existing system to assess its suitability for computerisation. In the process, the analyst could also find ways of improving the system. –The systems analyst must have a sound technical background. They may once have been programmers.

6 Skills and techniques of the Systems Analyst The systems analyst must –extract the clients needs –document these needs in a formal way –communicate these to the designers

7 Extracting the Clients Needs Extracting the clients needs is known as requirements elicitation. This is done by: –interviewing the client’s management personnel –making observation notes of the client’s business –The analyst will also inspect information sources used by the client to keep track of their business.

8 The Software Specification is the end result of the requirements elicitation is a written statement of what the design team must go on to make It forms part of a legally binding contract between the client and the development team It is extremely important to get this document right. Mistakes made later can be very costly.

9 Analyst’s Reports The systems analyst must document the clients needs by drafting formal reports: –requirements specification –software specification

10 Fact Finding Analysis is a fact-finding process, and there are five key questions that need to be asked, often repeatedly. These key questions are:  WHO?  WHAT?  WHERE?  WHEN?  WHY? Not HOW?

11 Designing the Solution Once the needs of the user are clearly understood and documented, software development can move onto the next stage, involving the DESIGN of the system.  Design of the User Interface  Design of the structure of the software Design of the detailed logic of the software

12 Design Representations There are a number of commonly used forms of design representation in common use. Examples include: –structure diagrams –pseudocode

13 Structure Diagram A commonly used syntax for structure diagrams is as follows: A procedureA loop A decisionA single task

14 An example: A structure diagram allows the design of a program to be drawn out in diagrammatic form. Here is an example:

15 Pseudocode Pseudocode is another example of a method of describing a program. Simple English words are used to describe the steps of the algorithm and any refinements made.

16 Pseudocode - Example 1.Display information 2.Get details 3.Do calculation 4.Display answer Refine step 2 2.1display prompt 2.2get value 2.3while value out of range 2.4display error message 2.5get value 2.6loop Top level design Notice the numbering system Simple English words in a familiar program form

17 Hierarchy of Software A diagram of the hierarchy of software will –show the relationship between all the modules of the software –identify modules which contain a call to other sub modules.

18 An Iterative process It is important to realise that the software development process is iterative in nature. This means that the problem will be revisited a number of times getting closer and closer to the required solution on each time round.

19 Implementation The next stage involves turning the carefully structured design into a working solution.

20 Choosing an Environment Before we can implement a solution we must decide on the programming environment which is most suitable. Languages are generally designed for a specific purpose.

21 Programming Languages

22 Things to Remember...  The code should be modular, - procedures and functions should be used. Library modules should be ‘closed’ so that the variables used in them cannot disturb the code of the rest of the program.  Meaningful variable names should be used.  There should be internal commentary, explaining what each section of the code does. Where a complex algorithm has been implemented, it is helpful to comment on several lines of the code, in addition to a general description of what the module does.

23 Things to Remember (2)  Where parameters are being used in a module, they should be described in the commentary of the module. This is particularly important in library modules. Parameter lists should be small and manageable. If a procedure or function requires a set of parameters which is very big, then it is likely that it is performing more than one program function. The original design needs to be revisited, and functionally decomposed.

24 Debugging the Solution - Testing A common technique in trying to debug a piece of software is to conduct a structured walkthrough (step through each line of logic in the code) using a structured listing, which is simply a formatted display or printout of the code. It is important that the code is written in such a way that helps the above activities.

25 Dry Runs To complete a dry run the programmer works through a section of program code by hand. This is very useful for locating errors in both syntax and semantics. A trace table will normally be used in this activity.

26 Trace Tables A trace table is constructed with a column to identify the instruction executed and a column for each variable. The programmer works through each line of the listing changing the appropriate variables.

27 Test Data 1.“normal” operation of the software, to make sure that there are no unexpected results in ordinary work. 2. the operation limits of the software, to make sure that the boundary conditions identified in the design stage are being handled properly. 3.“exceptions” to the normal operating conditions. This set will show whether or not the software can react to unexpected inputs in an effective way, without crashing. The expected results from a test data set must be known in advance, so that they can be checked against the actual results. You should include test data to demonstrate the following:

28 Documentation - The User Guide This document should describe how to use the software. Ideally there should also be tutorial files which can take the user through examples of a piece of work, and allow them to become familiar with the commands, and the various sections of the software.

29 Documentation - The Technical Guide This document should provide information on how to install the software hardware requirements software requirements

30 Evaluation Does the solution meet the user requirements? –Judge this against a set of criteria screen layout help required user prompts fitness for purpose maintainability robustness reliability portability

31 Some Definitions Correctness –A program is correct if it matches the users requirements Maintainability –A program will be easily maintained if it has been written in a way which will make it easy to change. This will include internal commentary meaningful variable and procedure names parameter passing

32 Some Definitions (2) Reliability –A program is reliable if it is free from bugs, ie it must meet the requirements repeatedly under severe testing Readability –A program is readable if it is easily understandable by people other than the original programmer, ie good internal documentation, use of white space, etc.

33 Some Definitions (3) Portability –A program is said to be portable if it can be transferred from one system to another with minimal adaptation Efficiency –A program is efficient if it uses the most appropriate structures for the job. It should run as fast as possible and not use up more system resources than are necessary.

34 Some Definitions (4) Robustness –A program is said to be robust if it does not crash when invalid data is input or unexpected results are generated. Fitness for Purpose –Does the program meet the requirements?

35 Maintenance Activities identified as part of maintenance: –corrective (17%) –adaptive (18%) –Perfective (65%)

36 Maintenance Costs Maintenance is very costly. It is vital that errors are detected at as early a stage as possible.

37 Factors Affecting Maintainability The application being supported staff mobility too many versions not enough documentation dependence on external environment hardware and software stability