Top Banner
HERY H AZWIR Computer Software
42

HERY H AZWIR Computer Software. Computer Software Outline Software and Programming Languages Software Programming Programming language development.

Dec 29, 2015

Download

Documents

Barry Skinner
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: HERY H AZWIR Computer Software. Computer Software Outline Software and Programming Languages  Software  Programming  Programming language development.

HERY H AZWIR

Computer Software

Page 2: HERY H AZWIR Computer Software. Computer Software Outline Software and Programming Languages  Software  Programming  Programming language development.

Computer Software Outline

Software and Programming Languages Software Programming Programming language development Software development program

Software EngineeringOperating System

O/S types O/S functions Various O/S products

Page 3: HERY H AZWIR Computer Software. Computer Software Outline Software and Programming Languages  Software  Programming  Programming language development.

Software

System Software Operating System (Windows, Linux, UNIX, etc) Utilities

Application Software Business Engineering Education Accounting Statistics Graphics, etc

Page 4: HERY H AZWIR Computer Software. Computer Software Outline Software and Programming Languages  Software  Programming  Programming language development.

Layers and Views of a Computer System

Page 5: HERY H AZWIR Computer Software. Computer Software Outline Software and Programming Languages  Software  Programming  Programming language development.

Software Characteristics

Structured Arranged according to certain rules of logic in such a manner

that it describes the function(s) to be performed, the input(s) to the function(s) and the output(s) generated by the function(s)

Created and Maintained Transformation of human ideas into something that can operate

the hardware within the computer Once created the should be maintained during its life cycle Two types:

Nonexecutable Executable

Machine Processible It is intended to be processed by a machine It must be matched to the particular computer chosen to run it

Page 6: HERY H AZWIR Computer Software. Computer Software Outline Software and Programming Languages  Software  Programming  Programming language development.

Programming

Programming Language Type Low Level High Level

Tools / Utilities Editor Translator Object builder Linker & Loader Debugger

Translator Type Interpreter (one by one translation into machine code) Assembler (assembly language translate into machine code) Compiler (translate whole program into machine object code)

Page 7: HERY H AZWIR Computer Software. Computer Software Outline Software and Programming Languages  Software  Programming  Programming language development.

Programming Language

Low Level Assembly language: programmer can use mnemonic

instruction codes, labels, and symbolic names for data, to refer directly to their machine code equivalents

More efficient in memory space and run faster Very restricted set of syntactic rules

Page 8: HERY H AZWIR Computer Software. Computer Software Outline Software and Programming Languages  Software  Programming  Programming language development.

Programming Language

High level language To overcome difficulties in low level language To make programming easier and available to larger

technical and scientific community One instruction in the source program usually

generate a number of low level instructions to directly manipulate computer hardware

Middle level language Closer to low level language Programming are easier than assembly language Usually used by system programmers

Page 9: HERY H AZWIR Computer Software. Computer Software Outline Software and Programming Languages  Software  Programming  Programming language development.

Programming Language Example

Middle level C, C++, Ada. Modula

High level Scientific: FORTRAN, ALGOL, PASCAL Data Processing: COBOL, DBASE, Artificial Intelligence: LISP, PROLOG General Purpose: PL/1, BASIC

Page 10: HERY H AZWIR Computer Software. Computer Software Outline Software and Programming Languages  Software  Programming  Programming language development.

Simple Software Development Program

Problem -> Analyst -> Algorithm ->Create Program -> Editor -> Source Codes -

>Assemble / Compile -> Object Module ->Linker (library routine) -> Loader ->Program Execution -> Correction ->

Debugger -> EditorFinish Program

Page 11: HERY H AZWIR Computer Software. Computer Software Outline Software and Programming Languages  Software  Programming  Programming language development.

Tools / Utilities

Editor Write the text (source code) of the program by allowing the

creation and modification of a source program fileTranslator

Assembler : software that translates an assembly language program into the machine code which can be executed by a processor. (one step process)

Compiler: software that translate a particular high /middle level language application program into its low-level machine language equivalent. (one step process)

Interpreter: software which directly translates instructions from a high level language to machine code, as the high level source code being executed. (step by step) Run slower

Page 12: HERY H AZWIR Computer Software. Computer Software Outline Software and Programming Languages  Software  Programming  Programming language development.

Compiler Stages

Lexical analysis Removes redundant information, condenses statements,

display error messagesSyntactic analysis

Test correctness of the syntax of each line within the source program. Scans for errors in construction of the statements

Code generation If no errors detected then generate appropriate machine

code for each statement or group of statementsOptimization process

Increase the efficiensy of the object code

Page 13: HERY H AZWIR Computer Software. Computer Software Outline Software and Programming Languages  Software  Programming  Programming language development.

Tools / Utilities

Linker Responsible for connecting together all the different

programming modules that have been written, including any library routines.

Loader Responsible for transferring the object code from an

external medium to the microprocessor memoryDebugger

To debug a program means to locate any software mistakes

Page 14: HERY H AZWIR Computer Software. Computer Software Outline Software and Programming Languages  Software  Programming  Programming language development.

Software Engineering Methodology

Business Process AnalysisSystem Requirements SpecificationSoftware Requirements SpecificationSoftware DesignCoding (Implementation)Software Quality Assurance & Testing

Internal Testing (Integration, System, Stress, Load, etc) User Acceptance Testing (UAT)

System DeploymentDocumentation

Page 15: HERY H AZWIR Computer Software. Computer Software Outline Software and Programming Languages  Software  Programming  Programming language development.

Business Process Analysis

Analyzing business processExplain the business process using method

that can be understood by system analyst or system architect

Use any kind tools such as Flow chart Data Flow Diagram (DFD) Use – Case Diagram (UML) Activity Diagram (UML)

Page 16: HERY H AZWIR Computer Software. Computer Software Outline Software and Programming Languages  Software  Programming  Programming language development.

System Requirements Specification

Translate the explained business process into real system requirements Computer resource requirements Function and performance requirements Safety, security, privacy protection requirements Installation requirements Design constraints System environmental requirements Operation and maintenance requirements Other requirements (etc)

Page 17: HERY H AZWIR Computer Software. Computer Software Outline Software and Programming Languages  Software  Programming  Programming language development.

Software Requirements Specification

Translate the system requirements into more detail software requirements Functionality requirements Performance requirements Interface requirements Environmental requirements Security requirements Data definition dan database requirements Installation requirements Operation and execution requirements Maintenance requirements Design and implementation constaraints Documentation requirements etc

Page 18: HERY H AZWIR Computer Software. Computer Software Outline Software and Programming Languages  Software  Programming  Programming language development.

Software Design

Data Flow Diagram (Structured)Activity Diagram (Object oriented)Data Base designEntity-Relationship DiagramNormalization

Page 19: HERY H AZWIR Computer Software. Computer Software Outline Software and Programming Languages  Software  Programming  Programming language development.

Coding

Chose programming language based on design constraint

Writing, EditingCompiling, linkingExecutingDebugingTesting (unit testing, integration test)Documenting

Page 20: HERY H AZWIR Computer Software. Computer Software Outline Software and Programming Languages  Software  Programming  Programming language development.

Software Quality Assurance and Testing

Integration test, System test, Stress test, Load test, etc

Create: Test plan Test procedure Test scenario

Minimum: Functionality test Invalid data entry test (IDET)

User acceptance test (UAT)Documentation

Page 21: HERY H AZWIR Computer Software. Computer Software Outline Software and Programming Languages  Software  Programming  Programming language development.

System Deployment

InstallationUAT

Page 22: HERY H AZWIR Computer Software. Computer Software Outline Software and Programming Languages  Software  Programming  Programming language development.

Operating System

Example: DOS Windows LINUX MacOS UNIX

Page 23: HERY H AZWIR Computer Software. Computer Software Outline Software and Programming Languages  Software  Programming  Programming language development.

Objectives and Functions

Convenience Making the computer easier to use

Efficiency Allowing better use of computer resources

Page 24: HERY H AZWIR Computer Software. Computer Software Outline Software and Programming Languages  Software  Programming  Programming language development.

Layers and Views of a Computer System

Page 25: HERY H AZWIR Computer Software. Computer Software Outline Software and Programming Languages  Software  Programming  Programming language development.

Operating System Services

Program creationProgram executionAccess to I/O devicesControlled access to filesSystem accessError detection and responseAccounting

Page 26: HERY H AZWIR Computer Software. Computer Software Outline Software and Programming Languages  Software  Programming  Programming language development.

O/S as a Resource Manager

Page 27: HERY H AZWIR Computer Software. Computer Software Outline Software and Programming Languages  Software  Programming  Programming language development.

Types of Operating System

InteractiveBatchSingle program (Uni-programming)Multi-programming (Multi-tasking)

Page 28: HERY H AZWIR Computer Software. Computer Software Outline Software and Programming Languages  Software  Programming  Programming language development.

Early Systems

Late 1940s to mid 1950sNo Operating SystemPrograms interact directly with hardwareTwo main problems:

Scheduling Setup time

Page 29: HERY H AZWIR Computer Software. Computer Software Outline Software and Programming Languages  Software  Programming  Programming language development.

Simple Batch Systems

Resident Monitor programUsers submit jobs to operatorOperator batches jobsMonitor controls sequence of events to

process batchWhen one job is finished, control returns to

Monitor which reads next jobMonitor handles scheduling

Page 30: HERY H AZWIR Computer Software. Computer Software Outline Software and Programming Languages  Software  Programming  Programming language development.

Memory Layout for Resident Monitor

Page 31: HERY H AZWIR Computer Software. Computer Software Outline Software and Programming Languages  Software  Programming  Programming language development.

Job Control Language

Instructions to MonitorUsually denoted by $e.g.

$JOB $FTN ... Some Fortran instructions $LOAD $RUN ... Some data $END

Page 32: HERY H AZWIR Computer Software. Computer Software Outline Software and Programming Languages  Software  Programming  Programming language development.

Desirable Hardware Features

Memory protection To protect the Monitor

Timer To prevent a job monopolizing the system

Privileged instructions Only executed by Monitor e.g. I/O

Interrupts Allows for relinquishing and regaining control

Page 33: HERY H AZWIR Computer Software. Computer Software Outline Software and Programming Languages  Software  Programming  Programming language development.

Multi-programmed Batch Systems

I/O devices very slowWhen one program is waiting for I/O, another

can use the CPU

Page 34: HERY H AZWIR Computer Software. Computer Software Outline Software and Programming Languages  Software  Programming  Programming language development.

Single Program

Page 35: HERY H AZWIR Computer Software. Computer Software Outline Software and Programming Languages  Software  Programming  Programming language development.

Multi-Programming with Two Programs

Page 36: HERY H AZWIR Computer Software. Computer Software Outline Software and Programming Languages  Software  Programming  Programming language development.

Multi-Programming with Three Programs

Page 37: HERY H AZWIR Computer Software. Computer Software Outline Software and Programming Languages  Software  Programming  Programming language development.

Utilization

Page 38: HERY H AZWIR Computer Software. Computer Software Outline Software and Programming Languages  Software  Programming  Programming language development.

Time Sharing Systems

Allow users to interact directly with the computer i.e. Interactive

Multi-programming allows a number of users to interact with the computer

Page 39: HERY H AZWIR Computer Software. Computer Software Outline Software and Programming Languages  Software  Programming  Programming language development.

Scheduling

Key to multi-programmingLong termMedium termShort termI/O

Page 40: HERY H AZWIR Computer Software. Computer Software Outline Software and Programming Languages  Software  Programming  Programming language development.

Long Term Scheduling

Determines which programs are submitted for processing

i.e. controls the degree of multi-programmingOnce submitted, a job becomes a process for

the short term scheduler(or it becomes a swapped out job for the

medium term scheduler)

Page 41: HERY H AZWIR Computer Software. Computer Software Outline Software and Programming Languages  Software  Programming  Programming language development.

Medium Term Scheduling

Part of the swapping function (later…)Usually based on the need to manage multi-

programmingIf no virtual memory, memory management is

also an issue

Page 42: HERY H AZWIR Computer Software. Computer Software Outline Software and Programming Languages  Software  Programming  Programming language development.

Short Term Scheduler

DispatcherFine grained decisions of which job to

execute nexti.e. which job actually gets to use the

processor in the next time slot