Computer Fundamentals
Lecture # 6:
Computer Software
Today’s Aim
Defining a Software
History of Software
Software Development Process
Types of Software
Different types of Software License
Attributes of a Good Software
History of Software
Concept of Programming Developed by Charles
Babbage
First Computer Program by Ada Baron
Alan Turing’s Theory, 1935
1958, Term Used by John W. Tukey
Symbolic Language, Programs, Routines,
Procedures, Rules
Controls functioning of Hardware
Directs Operations of Hardware
Needs to be loaded into computer storage
Consist of “Machine Language”
History of Software
1945, Von Neumann's “Stored-Program
Technique”
1949, “Short Code” :Machine Language
1950’s, Assembly Languages
1957, Math-Matic :High-Level Language
1957, FORTRAN :High-Level Language
Software Development Process
Concept and Feasibility
Domain Analysis:
Doing the Homework
Software Elements Analysis:
Reading the Customer Requirements
Specification:
Precise Description of the Software
Planning:
Time, Cost and Personnel Estimates
Software Architecture:
Issues Concerned with Software Production and Compatibility
Implementation:
Writing the Code
Testing
Documentation
Types of Software (User’s view-
point)
System Software
Application Software
Programming Software
System Software
Control the overall operation of the computer
OS
Interact directly with HW
Device drivers
Perform system management & maintenance
Utilities
Used to develop or maintain other programs
Language translators
System Software
Operating System
Manages Sharing of Resources
Process Management
Memory Management
File System Support
Networking
Security
Graphical User Interface
Hardware Management
Examples?
Role of the Operating System
System Software
Device Drivers
Work as Interface
Translates Instructions and Data from OS
and Application Software into Device
Specific Form
Necessary for Hardware Compatibility
System Software
Utilities
For providing a particular functions
Maintain and manage systems
Examples:
Anti-virus SW
Data compression SW
Disk optimization SW
Disk backup SW
System Software
Language Translators
Assembler
Converts Assembly Language into binary code
Compiler
Converts a high-level language into binary code
Interpreter
Converts and executes one instruction at a time
Application Software
Direct Interaction with User
Indirect Interaction with Hardware (through drivers)
Scientific/engineering/graphics SW
Matlab; AutoCAD; EWB; PSpice
Business SW
The billing system for the mobile phone company
Productivity SW
Word processors; Spreadsheets
Entertainment SW
Games
Educational SW
Electronic encyclopedias
Programming Software
Used by Programmers
Assists in Writing Programs
IDE; Integrated Development Environment
Language Translators also fall into the same
category
Types of SW (Production Point of View)
Shrink-Wrapped:
Retail Software
OEM (Original Equipment Manufacturers’) Software
Custom Built.
Other types:
Shareware
Crippleware / Trialware
Adware
Demoware
Spyware
Freeware
Public Domain Software
Software Licensing
Software Protection
Trade Secrets
Copyright
Patents
Trademarks
Allows Ownership to stay with the
Manufacturers
Types of Licensing
Proprietary
License for ‘Use only’ is Bought
Manufacturers retain Ownership
Counters Piracy
Examples : Shrink-Wrapped
Types:
Single-User
Multiple-User
Concurrent-User
Site
Types of Licensing
Freeware:
Downloaded from Internet
Manufacturer retains Ownership
User is Free to Use
Examples: Public Domain SW
Types:
Open-Source
Closed-Source
Types of Licensing
Shareware:
Downloaded from Internet, or Ordered on
Websites
Manufacturer retains Ownership
Payment made Upon Satisfactory Performance
Reasons
Types:
Trialware
Crippleware
Attributes of a Good Software
Maintainable
Reliable
Efficient
Appropriate and interactive Interface
Cost Effective
Objectives Achieved In Today’s Lecture
Defining Software
Types of Software
Attributes of Software
Software Licensing