HERY H AZWIR Computer Software. Computer Software Outline Software and Programming Languages ...
-
Upload
barry-skinner -
Category
Documents
-
view
238 -
download
0
Transcript of HERY H AZWIR Computer Software. Computer Software Outline Software and Programming Languages ...
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
Software
System Software Operating System (Windows, Linux, UNIX, etc) Utilities
Application Software Business Engineering Education Accounting Statistics Graphics, etc
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
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)
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
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
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
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
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
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
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
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
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)
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)
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
Software Design
Data Flow Diagram (Structured)Activity Diagram (Object oriented)Data Base designEntity-Relationship DiagramNormalization
Coding
Chose programming language based on design constraint
Writing, EditingCompiling, linkingExecutingDebugingTesting (unit testing, integration test)Documenting
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
Objectives and Functions
Convenience Making the computer easier to use
Efficiency Allowing better use of computer resources
Operating System Services
Program creationProgram executionAccess to I/O devicesControlled access to filesSystem accessError detection and responseAccounting
Types of Operating System
InteractiveBatchSingle program (Uni-programming)Multi-programming (Multi-tasking)
Early Systems
Late 1940s to mid 1950sNo Operating SystemPrograms interact directly with hardwareTwo main problems:
Scheduling Setup time
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
Job Control Language
Instructions to MonitorUsually denoted by $e.g.
$JOB $FTN ... Some Fortran instructions $LOAD $RUN ... Some data $END
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
Multi-programmed Batch Systems
I/O devices very slowWhen one program is waiting for I/O, another
can use the CPU
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
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)
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