11
1 03/14/22 03/14/22 05:31 05:31 Introduction to Software Introduction to Software Development Development What is a computer? What is a computer? A computer system contains: A computer system contains: Central Processing Unit (CPU): a circuit that can Central Processing Unit (CPU): a circuit that can retrieve and execute digitally-encoded instructions. retrieve and execute digitally-encoded instructions. Main Memory: volatile circuits that store: Main Memory: volatile circuits that store: The operating system The operating system The programs being executed The programs being executed The data used by the programs or operating system The data used by the programs or operating system Input/Output Devices: Input/Output Devices: Secondary Storage: permanent & removable disk drives, Secondary Storage: permanent & removable disk drives, tape drives, compact disk drives, pen drives tape drives, compact disk drives, pen drives Input: keyboards, mice Input: keyboards, mice Output: screens, printers Output: screens, printers Network Devices Network Devices System bus: the circuit that connects all the above System bus: the circuit that connects all the above parts together. parts together. A computer program consists of operations to be performed, the data A computer program consists of operations to be performed, the data these operations will use, and input/output statements. these operations will use, and input/output statements.

16/13/2015 3:30 AM6/13/2015 3:30 AM6/13/2015 3:30 AMIntroduction to Software Development What is a computer? A computer system contains: Central Processing

  • View
    249

  • Download
    2

Embed Size (px)

Citation preview

1104/18/2304/18/23 20:4820:48 Introduction to Software DevelopmentIntroduction to Software Development

What is a computer?What is a computer?

A computer system contains:A computer system contains: Central Processing Unit (CPU): a circuit that can retrieve and Central Processing Unit (CPU): a circuit that can retrieve and

execute digitally-encoded instructions.execute digitally-encoded instructions. Main Memory: volatile circuits that store:Main Memory: volatile circuits that store:

The operating systemThe operating systemThe programs being executedThe programs being executedThe data used by the programs or operating systemThe data used by the programs or operating system

Input/Output Devices:Input/Output Devices:Secondary Storage: permanent & removable disk drives, tape Secondary Storage: permanent & removable disk drives, tape drives, compact disk drives, pen drivesdrives, compact disk drives, pen drivesInput: keyboards, miceInput: keyboards, miceOutput: screens, printersOutput: screens, printersNetwork DevicesNetwork Devices

System bus: the circuit that connects all the above parts together.System bus: the circuit that connects all the above parts together. A computer program consists of operations to be performed, the A computer program consists of operations to be performed, the

data these operations will use, and input/output statements.data these operations will use, and input/output statements.

2204/18/2304/18/23 20:4820:48 Introduction to Software DevelopmentIntroduction to Software Development

What is computer programming?What is computer programming?

Computer programming is the process of Computer programming is the process of developing software.developing software.

Software is the collection of files containing the Software is the collection of files containing the digitally-encoded instructions for the CPU, plus digitally-encoded instructions for the CPU, plus any other data files needed for the software to any other data files needed for the software to execute.execute.

An algorithm is a set of instructions to solve a An algorithm is a set of instructions to solve a problem. It should be specific enough to encode problem. It should be specific enough to encode in a programming language. Algorithms are the in a programming language. Algorithms are the core of a computer program.core of a computer program.

3304/18/2304/18/23 20:4820:48 Introduction to Software DevelopmentIntroduction to Software Development

Waterfall ModelWaterfall Model

A model for developing softwareA model for developing softwareIt contains the following basic steps, and associated It contains the following basic steps, and associated documentation:documentation:

AnalysisAnalysis System DesignSystem Design Unit DesignUnit Design Unit CodingUnit Coding Unit TestingUnit Testing System TestingSystem Testing IntegrationIntegration MaintenanceMaintenance RetirementRetirement

This course concentrates on the unit This course concentrates on the unit design/coding/testing steps.design/coding/testing steps.

4404/18/2304/18/23 20:4820:48 Introduction to Software DevelopmentIntroduction to Software Development

Spiral ModelSpiral Model

A newer model of software developmentA newer model of software developmentSimilar to the waterfall modelSimilar to the waterfall model The analysis, design, coding, and testing steps are The analysis, design, coding, and testing steps are

used.used. But they are repeated over many times, with only a But they are repeated over many times, with only a

small amount of progress accomplished at each small amount of progress accomplished at each iteration.iteration.

Advantages:Advantages:The entire system does not need to be understood at one The entire system does not need to be understood at one time.time.If an error is introduced during development, it will be If an error is introduced during development, it will be discovered and corrected before much more work is discovered and corrected before much more work is completed and potentially wasted.completed and potentially wasted.

5504/18/2304/18/23 20:4820:48 Introduction to Software DevelopmentIntroduction to Software Development

MaintenanceMaintenance

This is the phase during which the system is This is the phase during which the system is actually being used.actually being used.It consists of the analysis through system testing It consists of the analysis through system testing steps being repeated many times, just on a steps being repeated many times, just on a smaller scale.smaller scale.This is because changes to the software system This is because changes to the software system will be required:will be required: As the organization the software serves changes or As the organization the software serves changes or

grows, there will be new requirements for the grows, there will be new requirements for the software, which will need to be implemented.software, which will need to be implemented.

No software system is perfect, and errors (bugs) will No software system is perfect, and errors (bugs) will need to be fixed.need to be fixed.

6604/18/2304/18/23 20:4820:48 Introduction to Software DevelopmentIntroduction to Software Development

Programming LanguagesProgramming Languages

Software can be developed directly in machine language, but it is Software can be developed directly in machine language, but it is very, very, very difficult and slow.very, very, very difficult and slow.

Software is usually developed by writing instructions in symbolic Software is usually developed by writing instructions in symbolic code and translating that code into machine language.code and translating that code into machine language.

Machine language is also called a low-level language, and symbolic Machine language is also called a low-level language, and symbolic languages are also called high-level languages because they are languages are also called high-level languages because they are closer to natural human languages.closer to natural human languages.

There are many different programming languages depending on the There are many different programming languages depending on the purpose of the language, the architecture it will execute on, and the purpose of the language, the architecture it will execute on, and the people developing the language.people developing the language.

7704/18/2304/18/23 20:4820:48 Introduction to Software DevelopmentIntroduction to Software Development

Development ToolsDevelopment Tools

Editors: similar to a word processor, it is used to create Editors: similar to a word processor, it is used to create symbolic code.symbolic code.Compilers: translate symbolic code to object code.Compilers: translate symbolic code to object code.Linkers: combine object code and libraries into Linkers: combine object code and libraries into executable files. Libraries are collections of useful executable files. Libraries are collections of useful functions. Libraries may come from the language functions. Libraries may come from the language compiler, the operating system, or from the application.compiler, the operating system, or from the application.Debuggers: allow a running executable to be observed, Debuggers: allow a running executable to be observed, to assist in removing bugs.to assist in removing bugs.Integrated Development Environments: A GUI system Integrated Development Environments: A GUI system that combines the above tools, making development that combines the above tools, making development easier and quicker.easier and quicker.

8804/18/2304/18/23 20:4820:48 Introduction to Software DevelopmentIntroduction to Software Development

ErrorsErrors

There are several types of errors that are encountered There are several types of errors that are encountered during software development:during software development:

Syntax errors: when a source code file is compiled, the compiler Syntax errors: when a source code file is compiled, the compiler does not understand the code because it is not logically does not understand the code because it is not logically formatted correctly for the language.formatted correctly for the language.

Logic errors: the source code can be translated to machine Logic errors: the source code can be translated to machine language, but the source code did not implement a correct language, but the source code did not implement a correct algorithm to solve the problem, so the program does not execute algorithm to solve the problem, so the program does not execute correctly.correctly.

Run-Time errors: (usually a logic error) sometimes when the Run-Time errors: (usually a logic error) sometimes when the program is executed, it encounters a situation where it cannot program is executed, it encounters a situation where it cannot continue execution, and the program stops with a system error continue execution, and the program stops with a system error message. Examples: division by zero, square root of a negative message. Examples: division by zero, square root of a negative number, over/underflow, file not found, I/O error.number, over/underflow, file not found, I/O error.

9904/18/2304/18/23 20:4820:48 Introduction to Software DevelopmentIntroduction to Software Development

Operating SystemOperating System

The software that controls the computer system.The software that controls the computer system.It is resident in main memory all the time.It is resident in main memory all the time.It provides:It provides: The user interface (either a command line or a GUI). The user interface (either a command line or a GUI).

This is how the computer system user directs the This is how the computer system user directs the computer to execute application programs or system computer to execute application programs or system utilities.utilities.

A file system.A file system. Access to input and output devices.Access to input and output devices. A memory system.A memory system. Security, networking, and other services.Security, networking, and other services.

101004/18/2304/18/23 20:4820:48 Introduction to Software DevelopmentIntroduction to Software Development

Standard Input/OutputStandard Input/Output

A simple model for doing computer system input A simple model for doing computer system input or output.or output.It has been around since early computer It has been around since early computer systems.systems.It consists of only:It consists of only: Keyboard: for input.Keyboard: for input. Screen: for output.Screen: for output.

It does not look pretty, but programs using it are It does not look pretty, but programs using it are easy to develop. A graphical user interface (GUI) easy to develop. A graphical user interface (GUI) looks much nicer, but the program is more looks much nicer, but the program is more difficult to develop.difficult to develop.

111104/18/2304/18/23 20:4820:48 Introduction to Software DevelopmentIntroduction to Software Development

Textbook ReadingTextbook Reading

Sections 1.2 – 1.6 cover these same Sections 1.2 – 1.6 cover these same concepts. Reviewing them may help clarify concepts. Reviewing them may help clarify the material.the material.