Presentation is loading. Please wait.

Presentation is loading. Please wait.

Module 4 Part 1 Introduction To Software Development : Systems Analysis & Design Introduction To Software Development : Systems Analysis & Design.

Similar presentations


Presentation on theme: "Module 4 Part 1 Introduction To Software Development : Systems Analysis & Design Introduction To Software Development : Systems Analysis & Design."— Presentation transcript:

1 Module 4 Part 1 Introduction To Software Development : Systems Analysis & Design Introduction To Software Development : Systems Analysis & Design

2 Module Objectives At the end of the module, students should be able to: understand the term and concept of system analysis and design understand the concept of software engineering and its importance understand the concept of System Development Life Cycle (SDLC) To understand how to solve problem analytically To discuss the concept and importance of algorithm in developing programs To understand and create flow chart to organized information / data and the flow of process

3 Computer Systems System – an organized set of related components established to accomplish a certain task –Computer system – a system that has a computer as one of its components

4 Systems Analysis & Design Analysis - studying an existing system to determine how it works and how it meets users’ needs –Typically happens as a result of some impetus for change, combined with the authority to make the change Design - the process of developing a plan for an improved system, based on the result of the systems analysis

5 Individuals Involved in Systems Analysis Systems analyst – performs analysis and design –May perform some programming as well Client – the person or organization contracting to have the work done User – the people who will have contact with the system

6 What is software? Computer programs and associated documentation such as requirements, design models and user manuals. Software products may be developed for a particular customer or may be developed for a general market. Software products may be –Generic - developed to be sold to a range of different customers e.g. PC software such as Excel or Word. –Bespoke (custom) - developed for a single customer according to their specification

7 What is software engineering? Software systems are now ubiquitous. –Virtually all electrical equipment now includes some kind of software The specification, development, management and evolution of these systems make up the discipline of software engineering - an engineering discipline that is concerned with all aspects of software production. Software engineers adopt a systematic and organized approach to their work and use appropriate tools and techniques depending on the problem to be solved, the development constraints and the resources available.

8 Attributes of good software? The software delivered should : –Have required functionality –Have required performance –Be maintainable –Be dependable and usable.

9 Software Process A set of activities whose goal is the development or evolution of software. Generic activities in all software processes are: –Specification - what the system should do and its development constraints –Development - production of the software system –Validation - checking that the software is what the customer wants –Evolution - changing the software in response to changing demands.

10 Software Process Model (SPM) A simplified representation of a software process, presented from a specific perspective. A set of activities whose goal is the development or evolution of software Examples of process perspectives are –Workflow perspective - sequence of activities; –Data-flow perspective - information flow; –Role/action perspective - who does what. Example of generic process models –Waterfall, Iterative development, Spiral, rapid prototyping, etc

11 The Systems Development Life Cycle 1.Preliminary investigation 2.Analysis 3.Design 4.Development 5.Implementation Previously software development consisted of a programmer writing code to solve problem Nowadays as systems are so big and complex a set of procedure is needed to develop the software.

12 Waterfall Model (SPM)

13 Software Development Method

14 Introduction to Problem Solving Pseudocoding Flowcharting Program verification and testing Program documentation Software Development Methods

15 Introduction to Problem Solving A process of transforming the description of a problem into the solution of that problem by using our knowledge of the problem domain and by relying on our ability to select and use appropriate problem-solving strategies, techniques and tools. Computers can be used to help us in doing problem solving. Problem solving (within the context of developing programs) refers to analysing a problem with the intention of deriving a solution for the problem.

16 The software development method consists of the following steps: 1.Specification of needs 2.Problem analysis 3.Design and algorithmic representation 4.Implementation 5.Testing and verification 6.Documentation Software Development Method (SDM)

17 1. Specification of Needs To understand exactly: –what the problem is –what is needed to solve it –what the solution should provide –if there are constraints and special conditions.

18 2.Problem Analysis In the analysis phase, we should identify the following: –Inputs to the problem, their form and the input media to be used –Outputs expected from the problem, their form and the output media to be used –Special constraints or conditions (if any) –Formulas or equations to be used

19 3. Design and Algorithmic Representation An algorithm is a sequence of a finite number of steps arranged in a specific logical order which, when executed, produces the solution for a problem. An algorithm must satisfy these requirements: –It must have an input –It must have an output –It should not be ambiguous (there should not be different interpretations to it) Every step in algorithm must be clear as what it is supposed to do

20 –It must be general (it can be used for different inputs) –It must be correct and it must solve the problem for which it is designed –It must execute and terminate in a finite amount of time –It must be efficient enough so that it can solve the intended problem using the resource currently available on the computer An algorithm can be represented using pseudocodes or flowcharts. 3. Design and Algorithmic Representation

21 pseudocodes A pseudocode is a semiformal, English-like language with limited vocabulary that can be used to design and describe algorithms. Criteria of a good pseudocode: –Easy to understand, precise and clear –Gives the correct solution in all cases –Eventually ends In 1966, two researchers, C. Bohn and G. Jacopini, demonstrated that any algorithm can be described using only 3 control structures: sequence, selection and repetition.

22 a. The sequence control structure –A series of steps or statements that are executed in the order they are written in an algorithm. –The beginning and end of a block of statements can be optionally marked with the keywords begin and end. –Example: begin read birth date from user calculate the difference between the birth date and today’s date print out the exact age of the user end

23 Statement 1 a. The sequence control structure Begin End

24 –Defines two courses of action depending on the outcome of a condition. –A condition is an expression that is either true or false. –The keyword used are if and else. b. The selection control structure

25 Begin Read age if age is greater than 55 print “retired” else print “still working” end_if End b. The selection control structure

26 Condition else- statement(s) then- statement(s) (12a) b. The selection control structure

27 c. The repetition control structure –Specifies a block of one or more statements that are repeatedly executed until a condition is satisfied. –The keyword used is while. Condition Loop Statement(s)

28 Begin while user still wants to play Select either to play on network or play against computer if play on network create connection to remote machine play game with connected computer else select mission play game locally end_if Ask user whether he/she still wants to play end_while End c. The repetition control structure

29 Flowcharts Flowcharts is a graph used to depict or show a step by step solution using symbols which represent a task. The symbols used consist of geometrical shapes that are connected by flow lines. It is an alternative to pseudo coding whereas a pseudocode description is verbal, a flowchart is graphical in nature. Program flowcharts, because they are represented graphically, makes understanding easier.

30 Terminal symbol - indicates the beginning and end points of an algorithm. Process symbol - shows an instruction other than input, output or selection. Input-output symbol - shows an input or an output operation. Disk storage I/O symbol - indicates input from or output to disk storage. Printer output symbol - shows hardcopy printer output. Flowcharts Symbol

31 Selection symbol - shows a selection process for two-way selection. Off-page connector - provides continuation of a logical path on another page. On-page connector - provides continuation of logical path at another point in the same page. Flow lines - indicate the logical sequence of execution steps in the algorithm. Flowcharts Symbol

32 Begin Read Value1, Value2 Calculate Sum = Value1 + Value2 Display Sum End Read Amount Calculate Actual=Amount * 0.80 Calculate Actual=Amount NO YES End Begin Amount >20.00 ? Program Flowcharts

33 4.Implementation The process of implementing an algorithm by writing a computer program using a programming language (for example, using C language) The output of the program must be the solution of the intended problem

34 5.Testing and Verification Program testing is the process of executing a program to demonstrate its correctness Program verification is the process of ensuring that a program meets user-requirement After the program is compiled, we must run the program and test/verify it with different inputs before the program can be released to the public or other users (or to the instructor of this class)

35 6.Documentation Contains details produced at all stages of the program development cycle. Can be done in 2 ways: –Writing comments between your line of codes –Creating a separate text file to explain the program Important not only for other people to use or modify your program, but also for you to understand your own program after a long time (believe me, you will forget the details of your own program after sometime)

36 Documentation is so important because: –You may return to this program in future to use the whole of or a part of it again –Other programmer or end user will need some information about your program for reference or maintenance –You may someday have to modify the program, or may discover some errors or weaknesses in your program Although documentation is listed as the last stage of software development method, it is actually an on-going process which should be done from the very beginning of the software development process. 6.Documentation

37 Example of a problem Every year, XYZ staffs will be given a raise in their salary. The percentage of raise varies depending on the evaluation made by the Head of Department (HOD) The HOD will give each of the staff a score to indicate their performance of the year. (Table below shows the percentage raise for different performance level) Performance Score % salary raise 10 22 35 47 510 Enter your current salary : RM3000.00 Enter your performance score: 4 Your new salary is : RM3210.00 Example of output: Write a pseudocode that can calculate the new salary of a staff (after a raise) given the current salary and the performance score.

38 This problem is straightforward  all the information required is given in the table. It should be clear that we need to calculate the new salary and the formula is not given. Figure out the formula. Then we can come up with the following specification of needs for our problem –A staff can determine his/her new salary by specifying his/her performance score and current salary –The new salary is calculated based on % raise of his/her performance score. 1. Specification of needs New salary = (current salary * % raise) + current salary

39 We have to develop a program to do the following: 1.Prompt the user to interactively enter his/her current salary 2.Prompt the user to interactively enter his/her performance score 3.Calculate the new salary 4.Output the new salary 1. Specification of needs

40 2. Problem Analysis In the analysis phase we should identify the following: –Input to the problem –Output/s from the problem –Any special constraints or conditions –Formula(s) or equation(s) to be used From the sample problem, we have the following: –Input - 2 inputs; current salary and performance score –Output – 1 output item is expected; new salary

41 Constraints – the program should not accept the performance score values beyond the range specified (1-5) Formula  2. Problem Analysis new salary = (current salary * % raise) + current salary

42 3. Design & Algorithm Representation For the given problem, we have to design an algorithm and verify its correctness Design must be done on paper, not just visualize in our minds. Therefore, we should be able to represent and document our algorithm using appropriate representation tools –Pseudocode and Flowchart

43 3. Design & Algorithm Representation Pseudocode Begin Read Performance Score, Current Salary Calculate New Salary New Salary = Current Salary + (Salary Raise(%) * Current Salary)) Display Current Salary, Performance Score, New Salary End

44 3. Design & Algorithm Representation

45 4.Implementation –This phase require you to start doing the programming – translate each of step of the algorithm into a statement in programming language. 5.Testing & Verification –In our sample, we should test our algorithm with performance score 1 to 5 to ensure that it calculates the correct income raise. –Ensure the program built meets user requirement. 4. Implementation 5. Testing & Verification

46 6. Documentation Document everything Program documentation consists of : –Concise requirement specification –Description of input/output, constraints, formula/s etc. –pseudocode or flowchart of the algorithm. –Source program (source code). –Hardcopy of sample test run (sample output)

47 Exercises Solve the following problem using SDM up to step no. 3 only Calculating Electricity Bills The unit for electricity usage is kWh. For domestic usage, the tariff used is tariff A. The monthly rate for tariff A is 21.8 cents/unit for the first 200 unit, 25.8 cents/unit for the next 800 units and 27.8 cents/unit for each additional units. Given the amount of electricity units (in kWh) used by a customer, calculate the amount of money needs to be paid by the customer to TNB. A bill statement needs to be printed out.


Download ppt "Module 4 Part 1 Introduction To Software Development : Systems Analysis & Design Introduction To Software Development : Systems Analysis & Design."

Similar presentations


Ads by Google