Presentation is loading. Please wait.

Presentation is loading. Please wait.

Overview History Hardware Software Software Development Life Cycle

Similar presentations


Presentation on theme: "Overview History Hardware Software Software Development Life Cycle"— Presentation transcript:

1 Overview History Hardware Software Software Development Life Cycle
Programming Languages Structured Programming Defining the Problem cosc175 - lec1

2 History of computers First Generation computers (1951-1958)
vacuum tubes used large amounts of electricity, heat,large and expensive ENIAC - computed trajectories for U.S. Army UNIVAC - first commercially available computer, census Second Generation computers ( ) transistors, less heat more reliable, less expensive Third Generation computers ( ) integrated circuits less heat, higher speed cosc175 - lec1

3 History of computers Fourth Generation computers (1971-present)
microprocessor => Personal Computer Apple II (1977), IBM PC (1981) ARPANET (1969) WWW (1991) Today - cheaper, smaller, better Fifth Generation computers (present and beyond) Artificial Intelligence cosc175 - lec1

4 Computer Components (Hardware)
Peripherals Central Processing Unit ( CPU ) Input Device Control Unit Arithmetic Logic Unit Output Device Auxiliary Storage Device Memory Unit ( RAM & Registers ) cosc175 - lec1

5 Software Systems Software Programming Environment Application Software
Operating System – software that controls overall operation of computer DOS, Windows, Unix, Linux Programming Environment Editor/Compiler/Interpreter/Linker/ Debugger Application Software cosc175 - lec1

6 Software Development Life Cycle
Define the Problem (Analysis) Design the Solution (Algorithm) Code Solution (Program) Test and Debug Maintain & Document cosc175 - lec1

7 SDLC cosc175 - lec1

8 1. Analysis What? Defining the Problem Requirements
Generate and document a clear problem statement Need to talk to all stakeholders Most common cause of software system failure traced to poor requirements gathering IPO cosc175 - lec1

9 2. Design HOW? Planning Algorithm – expansion of steps in the IPO diagram Flowchart Pseudocode cosc175 - lec1

10 netPay = payRate * hrsWorked
Start Input payRate Input hrsWorked netPay = payRate * hrsWorked Output netPay Stop Pseudocode: Input payRate Input hrsWorked netPay = payRate * hrsWorked Output netPay cosc175 - lec1

11 Design tools pseudocode flowchart Can be done easily on word processor
Implements structured design elements well Not visual No standard Standardized visual Difficult to modify requires special software to do on computer cosc175 - lec1

12 An Algorithm is . . . Step-by-step procedures for solving a problem in a finite amount of time. We are learning to write algorithms and the computer is simply a fast and flexible tool for implementing algorithms. An algorithm is an ordered set of instructions such that:      (1) There are a finite number of steps.      (2) It takes a finite amount of time to execute the steps.      (3) Each step is precise in meaning, and “doable.”      (4) It solves a general class of problems. cosc175 - lec1

13 3. Code the Solution Choose language Edit – create source program
Compile - translate Syntax error – violate rules of programming language Link Create an executable program cosc175 - lec1

14 4. Test and Debug Test with variety of data
Debugging: locating and correcting errors Logic error or bug - flaw in algorithm Run-time error e.g. Divide by zero Programming packages usually have debugger software to help programmer cosc175 - lec1

15 5. Maintain and Document Maintenance – Changing and maintaining existing programs Most coding is actually maintenance Documentation – sometimes done by technical writers cosc175 - lec1

16 A Tempting Shortcut? DEBUG REVISE REVISE DEBUG DEBUG REVISE Shortcut?
CODE GOAL TEST THINKING CODE cosc175 - lec1

17 Programming Languages
Definition: languages with strict grammar rules, symbols, and words used to construct a computer program Machine Languages is not portable, runs only on specific type of computer is made up of binary-coded instructions (strings of 0s and 1s) is the language that can be directly used by the computer Assembly Language Mnemonic codes are used for the op. codes instead of binary, EXA: LDA N, SUB B assembly language program must be translated into machine language before it can be executed, ‘assembler’. High Level Languages portable similar to natural language Requires compiler – translates high-level language into machine code FORTRAN, Visual BASIC, COBOL, Pascal, Ada, C++, Java most are standardized by ISO/ANSI cosc175 - lec1

18 cosc175 - lec1

19 Assembly Language cosc175 - lec1

20 C++ 1972 : C created by Dennis Ritchie at Bell Labs
=> 90% of UNIX is then written in C 1983: C++ - Bjarne Stroustrup at Bell Labs 1998 : ISO/ANSI standardization of C++ general-purpose programming language - many uses Flexible - few restrictions high demand for C,C++ programmers high level/low level Portable - leader in portability programmer oriented-"written by a professional programmer for professional programmers" cosc175 - lec1

21 1. Edit: write and type the program (source code) in C++ , Save as myProg.cpp
2: Compile: translate the source code into machine language => myprog.obj syntax error – violation of the rules of the language.  3: Link = bring in other code from libraries, bind the modules together, etc => myProg.exe 4: Run = run the executable file  Logic errors (bug) – An error caused by a mistake in programming instructions.A logic error causes a program to operate wrongly or produce incorrect data, but not to stop working cosc175 - lec1

22 Structured Programming
Top-down Design– divide and conquer Modularity subprograms Stepwise refinement The Structure Theorem- Use 3 basic control structures to solve any problem Sequence Selection (if-then-else) Repetition (loop) cosc175 - lec1

23 SEQUENCE Display “Enter Name” Input name Display “Hello “ name
cosc175 - lec1

24 SELECTION (branch) IF Condition THEN Statement1 ELSE Statement2 True
. . . Statement2 False If (num > 0) Display “Positive” Else Display “Negative” cosc175 - lec1

25 LOOP (repetition) WHILE Condition DO Statement1 False . . . Condition
True Statement cosc175 - lec1

26 SUBPROGRAM (function)
. . . SUBPROGRAM1 SUBPROGRAM1 a meaningful collection of SEQUENCE, SELECTION, LOOP, SUBPROGRAM cosc175 - lec1

27 Computing Profession Ethics
copy software only with permission from the copyright holder give credit to another programmer by name whenever using his/her code use computer resources only with permission guard the privacy of confidential data use software engineering principles to develop software free from errors cosc175 - lec1

28 As proposed by the project sponsor.
                                                                       As proposed by the project sponsor. As specified in the project request. As designed by the senior analyst.                                                                        As produced by the programmers. As installed at the user's site. What the user wanted. cosc175 - lec1

29 Step 1:Analysis Define the Problem
IPO 1. Input: Determine what is given =>nouns, adjectives 2. Output: Determine what is required 3. Processing: Determine the transformations needed,actions needed to produce the required output =>verbs, adverbs cosc175 - lec1

30 variables Input and output data Nouns Naming convention No spaces
Meaningful names Usually begin with lowercase Examples: roomWidth, numPeople, studentName cosc175 - lec1

31 Example 1 Read three numbers, add them together and print the total.
cosc175 - lec1

32 1. Identify inputs Underline nouns
Read three numbers, add them together and print the total. Break up several values into separate variables cosc175 - lec1

33 1. Identify inputs fill Input column first
Read three numbers, add them together and print the total. Break up several values into separate variables cosc175 - lec1

34 2. Identify outputs output column next
Read three numbers, add them together and print the total. Break up several values into separate variables No verbs here cosc175 - lec1

35 3. Processing-Define processing steps by bolding verbs
Read three numbers, add them together and print the total. cosc175 - lec1

36 Each verb is a process step
Read three numbers, add them together and print the total. Hint: Usually follows: input, process, output cosc175 - lec1

37 Step 3: define list of actions
Read three numbers, add them together and print the total. Hint: Use verbs these steps usually involve the input and output defined in step 1 cosc175 - lec1

38 Example 2: Write a program to prompt the operator for the maximum and minimum temperature readings on a particular day, accept those readings as integers, and calculate and display on the screen the average temperature. cosc175 - lec1

39 Example 2: Write a program to prompt the operator for the maximum and minimum temperature readings on a particular day, accept those readings as integers, and calculate and display on the screen the average temperature. cosc175 - lec1

40 Example 2: Write a program to prompt the operator for the maximum and minimum temperature readings on a particular day, accept those readings as integers, and calculate and display on the screen the average temperature. cosc175 - lec1


Download ppt "Overview History Hardware Software Software Development Life Cycle"

Similar presentations


Ads by Google