420 likes | 661 Views
Computer Hardware. Course: CIS 3003 Fundamental of Information Technology. Software. A series of instructions to be executed by hardware. Uses of Software. To control hardware Operating Systems Device Drivers BIOS. Complex functionalities Applications Web site Databases Mobile App.
E N D
Computer Hardware Course: CIS 3003 Fundamental of Information Technology
Software • A series of instructions to be executed by hardware.
Uses of Software To control hardware • Operating Systems • Device Drivers • BIOS Complex functionalities • Applications • Web site • Databases • Mobile App
Programming Languages Low-level programming languages: Machine Code, Assembly High-level languages C, C++, C#, Java JavaScript, VBScript HTML, XML • Low-level language is faster to execute due to ability to optimize according to the hardware design • High-level language is much easier to read and program and abstract the tedious details related to the hardware.
Machine Code • binary code to be executed directly by the machine • Often expressed in a hexadecimal format to make more readable to human. • Tied specifically to the instruction set used by processor or process family. Example: Store a constant to a register in an X86 processor. • Instruction binary code is 10110 • Identifier code for AL register is 000 • Suppose the value of the constant is 01100001 • The binary machine code for this instruction is 1011000001100001 • Hexadecimal representation of the code is B061
Assembly Languages • Tied specifically to the instruction set used by processor or process family. • Assembler converts assembly language to machine code. • Provides symbolic reference to data • Used in BIOS, device driver, embedded system. Example: Store a constant to a register in an X86 processor. • The binary machine code for this instruction is 1011000001100001 • The assembly language of the above instruction is MOV AL, 61h ; • 61h is hexadecimal value of the constant in previous slide.
High-level Languages Compiled Languages: source code is compiled to some lower level binary executable. • C, C++ Interpreted Languages: Source code is compiled into a byte code that can be executed in various operating system platforms with appropriate interpreter. • Java Scripting Languages: Source code is distributed and appropriate software interpreted the code. • JavaScript, VBScript Markup Languages: text annotation that describe text data or the format of the data. Text can be fed to any program that understands the annotation. • HTML, XML
Compiled Languages • Source code is compiled to machined code. • Executable cannot be run on different O/S. • Compiler checks for syntax error. Examples: C, C++ Source Code Windows Compiler Linux Compiler Windows executable Linux executable
Interpreted Languages Source Code • Source code is compiled to byte code. • Byte code then compiled by interpreter into machine code. • Compiler checks for syntax error. Examples: Java, .NET Compiler Byte Code Windows Interpreter Linux Interpreter Windows machine code Linux machine code
Compiled vs. Interpreted Compiled Advantage • Run faster; executable is already machine code. Disadvantage • Distribute and maintain several versions of executables for intended operating systems. Good for local run applications Interpreted Advantage • Programmer distributes one jar file. Disadvantage • Run slower since the byte code needs first to be compiled into binary code. Good for web applications such as Java Applet.
Script/Markup Languages Source Code • Script is a light weight and weak- typed interpreted language • No byte code; the source code or the text data delivered to end user. Examples: • JavaScript, VBScript • HTML, XML Internet Explorer Firefox User GUI User GUI
Types of Software System Software BIOS, operating system (O/S), device firmware, device drivers Application Software Word, Excel, Outlook, Open Office. Web Browser, Windows Live iTunes, Windows Media Player Enterprise software • System software provides Application software an interface to control computer hardware. • Application software allows computer user to perform task without worry about the details of hardware specification.
BIOS BIOS: Basic Input / Output System • Loads driver, operating system • Things included in BIOS • Boot order of multiple O/S and boot devices such as CD-ROM, hard drive, USB flash drive. • Device configuration • Loads O/S
Operating System • Manages directories, folders, and files • Manages memory • Manages hardware and software • Provides computer networking functions Example: Windows, DOS, Linux, Ubantu
Device Firmware • Programs that resides on the hardware itself. • Can be permanently stored on the device or loaded dynamically by the device driver. • Example devices with firmware: • Storage devices • Video and sound card • External printer, scanner, camera, usb drive. • ROM BIOS firmware on a PCB (motherboard). • Lexmark Flash Firmware ROM
O/S, driver, and firmware Application Example • In a C, a programmer calls fopen() that returns a function pointer. • O/S uses a device driver appropriate for the device that stores the file. • The device driver communicates with the firmware stores on the disk drive. • The firmware returns a pointer that points to the address of the file on the disk drive. O/S Device driver Device firmware Device
Productivity Applications • Allow users to quickly performs tasks and increase their productivity • Word software allows a report to be done quickly. • Spreadsheet allows a person to quickly analyze data such as sum and average and present numerical data in easy to read format. • Outlook automatically downloads emails and reminds a user of new emails.
Communication Applications • Browser allows an user to gain knowledge through World Wide Web. • Instant messaging software allow friends and family stay in touch even if they are on the other side of the globe. • VoIP software allows meeting to be taken place without attendees to be present in one physical location.
Multimedia Applications • iTunes and MP3 that plays music and stores songs on hard drives or portable flash drives. • Windows Media Player displays a group of pictures as a photo album. • Adobe flash provides interactive content to web page. Useful for online game development.
Enterprise Applications • Employee management software such as PeopleSoft manages employee and payroll • Salesforce manages sales team and assign inventory to individual sales person. • Inventory software tracks amount of an item is in stock and sends reminder for low inventory count items. • Customer management software stores contact and account information of customer.
Software Development Process • Waterfall • Iterative / Spiral • Agile • Open source
Water fall model • The waterfall model consists of several critical phases, each of which must be fully completed before the next stage can commence • During the definition phase, the software company interacts with the customer to clarify needs and constraints • Before actually writing code, the software development team must thoroughly understand the customer’s requirements and limitations
Customer Constraints • Examples of constraints on the customer’s side may include: • Economic limitations • Time constraints for software implementation • Maintenance costs for managing the product Information Technology in Theory
Customer Requirements • Requirements may include: • Detailed business-specific functions that the software will support • Information about who will use the product • Security criteria • Specifications for interacting with existing data stores Information Technology in Theory
Software Design • Once requirements are clearly defined, a design team works to create the software’s design architecture • Accounting for tools that would be most useful to ensure compatibility with the customer’s systems • Minimizing problems that the development teams are likely to face • Software programmers and engineers then start to write programs using the selected approach Information Technology in Theory
Software Testing • The software is tested to remove and fix any errors, or bugs • Testing may be implemented in two stages called alpha testing and beta testing • Alpha testing is normally conducted by the software development team • Then the software undergoes beta testing, and a beta version of the complete software is released to the customer • Customers report bugs to the developer Information Technology in Theory
Iterative • After initial planning phase, the development process is iterated through several stages including planning, requirement analysis, deployment, testing, evaluation.
Agile • Release frequent prototype versions allowing end users to modify requirements and communicates with the development teams through out the development process.
Open Source Software • Source code is openly available to the public • Anyone can view, copy, or change the software without having to pay licensing fees or royalties • The development of open source code is usually collaborative, with multiple parties and interests producing the code and improving it for mutual benefit. Information Technology in Theory
Open Source Software • Open Office: www.openoffice.org • Apache HTTP Server • Linux • Mozilla Firefox • MySQL
Summary • Discussed High-level and Low-level languages • Discussed the relationship among Application Software, Operating System, Device Firmware, and Device Driver. • Discussed various Application Software. • Discussed various methods of software development.