440 likes | 789 Views
Computer Software. Hery H Azwir. Computer Software Outline. Software and Programming Languages Software Programming Programming language development Software development program Software Engineering Operating System O/S types O/S functions Various O/S products. Software.
E N D
Computer Software Hery H Azwir
Computer Software Outline • Software and Programming Languages • Software • Programming • Programming language development • Software development program • Software Engineering • Operating 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 -> Editor Finish Program
Tools / Utilities • Editor • Write the text (source code) of the program by allowing the creation and modification of a source program file • Translator • 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 messages • Syntactic 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 statements • Optimization 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 memory • Debugger • To debug a program means to locate any software mistakes
Software Engineering Methodology • Business Process Analysis • System Requirements Specification • Software Requirements Specification • Software Design • Coding (Implementation) • Software Quality Assurance & Testing • Internal Testing (Integration, System, Stress, Load, etc) • User Acceptance Testing (UAT) • System Deployment • Documentation
Business Process Analysis • Analyzing business process • Explain 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 design Entity-Relationship Diagram Normalization
Coding Chose programming language based ondesign constraint Writing, Editing Compiling, linking Executing Debuging Testing (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
System Deployment Installation UAT
Operating System • Example: • DOS • Windows • LINUX • MacOS • UNIX
Objectives and Functions • Convenience • Making the computer easier to use • Efficiency • Allowing better use of computer resources
Operating System Services • Program creation • Program execution • Access to I/O devices • Controlled access to files • System access • Error detection and response • Accounting
Types of Operating System • Interactive • Batch • Single program (Uni-programming) • Multi-programming (Multi-tasking)
Early Systems • Late 1940s to mid 1950s • No Operating System • Programs interact directly with hardware • Two main problems: • Scheduling • Setup time
Simple Batch Systems • Resident Monitor program • Users submit jobs to operator • Operator batches jobs • Monitor controls sequence of events to process batch • When one job is finished, control returns to Monitor which reads next job • Monitor handles scheduling
Job Control Language • Instructions to Monitor • Usually 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 slow • When 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
Scheduling • Key to multi-programming • Long term • Medium term • Short term • I/O
Long Term Scheduling • Determines which programs are submitted for processing • i.e. controls the degree of multi-programming • Once 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-programming • If no virtual memory, memory management is also an issue
Short Term Scheduler • Dispatcher • Fine grained decisions of which job to execute next • i.e. which job actually gets to use the processor in the next time slot