1 / 42

Computer Software

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.

sela
Télécharger la présentation

Computer Software

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Computer Software Hery H Azwir

  2. 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

  3. Software • System Software • Operating System (Windows, Linux, UNIX, etc) • Utilities • Application Software • Business • Engineering • Education • Accounting • Statistics • Graphics, etc

  4. Layers and Views of a Computer System

  5. 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

  6. 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)

  7. 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

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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

  14. 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

  15. 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)

  16. 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)

  17. 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

  18. Software Design Data Flow Diagram (Structured) Activity Diagram (Object oriented) Data Base design Entity-Relationship Diagram Normalization

  19. Coding Chose programming language based ondesign constraint Writing, Editing Compiling, linking Executing Debuging Testing (unit testing, integration test) Documenting

  20. 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

  21. System Deployment Installation UAT

  22. Operating System • Example: • DOS • Windows • LINUX • MacOS • UNIX

  23. Objectives and Functions • Convenience • Making the computer easier to use • Efficiency • Allowing better use of computer resources

  24. Layers and Views of a Computer System

  25. Operating System Services • Program creation • Program execution • Access to I/O devices • Controlled access to files • System access • Error detection and response • Accounting

  26. O/S as a Resource Manager

  27. Types of Operating System • Interactive • Batch • Single program (Uni-programming) • Multi-programming (Multi-tasking)

  28. Early Systems • Late 1940s to mid 1950s • No Operating System • Programs interact directly with hardware • Two main problems: • Scheduling • Setup time

  29. 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

  30. Memory Layout for Resident Monitor

  31. Job Control Language • Instructions to Monitor • Usually denoted by $ • e.g. • $JOB • $FTN • ... Some Fortran instructions • $LOAD • $RUN • ... Some data • $END

  32. 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

  33. Multi-programmed Batch Systems • I/O devices very slow • When one program is waiting for I/O, another can use the CPU

  34. Single Program

  35. Multi-Programming with Two Programs

  36. Multi-Programming with Three Programs

  37. Utilization

  38. 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

  39. Scheduling • Key to multi-programming • Long term • Medium term • Short term • I/O

  40. 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)

  41. 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

  42. 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

More Related