Title: MD240 Software
1MD240Software
2Agenda
- Overview of software topic areas
- Trends in each area
- Performance issues driving development of new
software software trends
3Building Blocks of Software
TREND Evolution from explicit representation of
computer components toward abstract
representation of computer components
4Basic Building Blocks for Storing Data in
Computer
- Binary Digit, or Bit
- Binary 1 or 0
- Byte
- 8 bits
- Nibble
- Half of a byte
- Chomp
- Three bytes
5Representing DataGrouping Bits Together
- Bits are associated together to create data
types and data structures - Each has its own length in bits that it needs for
storage - Historically, programmers had to know the size of
the thing they wanted to store on the computer - A floating point number might be stored as 16
bits on a Windows DOS system, but as 32 bits on a
Unix computer - This caused incompatibility of computer programs
between different computers (of different
operating systems)
6Representing DataGrouping Bits Together
- Basic data types
- Character
- Integer
- Floating point number
- Pointer (a computer address)
7Representing Data Characters and Symbols
- Coding Schemes (English/Arabic)
- ASCII (American National Standard Code for
Information Interchange) - EBCDIC (Extended Binary Coded Decimal Interchange
Code) - Uni-code
- 16-bit code that has the capacity of representing
more than 65,000 characters and symbols - Necessary to represent Chinese, Japanese, and
other large character sets
8Representing DataGrouping Data Types Together
- Compound data structures
- String of characters
- Ex This is a string
- Array of numbers or structures
- Ex 36, 3, 4, 7
- List/Linked List list items that point to next
item - ? ? ? ? ? ?
- Structure a programmer-defined group of basic
data structures - Ex firstname, lastname, height, age, favorite
color - Ex string , string , integer, integer,
enumeration
9Representing Data Pictures
- Raster (Bitmap) Pictures
- Pixel picture element
- a picture is stored as a grid of pixels
- also stores the color (or light level) of each
cell in the grid - picture granularity degrades if expanded
- many file formats (BMP, GIF, JPG)
- Vector Pictures (also PostScript/Encapsulated
PostScript) - made up of individual, scaleable objects
- uses equations to define objects in picture
- same picture resolution whether expanded/shrunk
- PostScript (.PS), PDF, scalable vector graphics
(.SVG) - Digital Video (MPG, AVI, HDTV, etc.)
- displays multiple frames (i.e. pictures) per
second
10Representing DataComputer File
- A special data structure
- When saved to hard drive, has several components
- File information
- Data records
- End-of-File character
11Representing DataAbstract Representation as
Objects
- In much of modern computing, EVERYTHING is
represented as an object - An object is a model of some thing from the real
world - Real Things
- people, places, events
- Abstract Things
- bank account
- Computer Interface Things
- button, checkbox, window
12Representing DataAbstract Representation as
Objects
- Objects have attributes (their characteristics)
and methods (things that they can do
behaviors) - A class is a template that defines the attributes
and methods for a type of object - An instance of an object is created by using a
special class method that allocates memory for
one of those objects - String myString new String( I am a string )
- File myFile new File( filename.txt)
- Programs interact with data (objects) through the
object methods - myString.makeuppercase()
- would return the following I AM A STRING
- myFile.sort()
- would sort the contents of the file
13Representing DataAbstract Representation as
Objects
- Why objects are important and useful
- Encapsulation
- Information Hiding Data about an object is
hidden inside of an object - In order to get data, one only must make a
request for data from the object - Benefits
- Dont need to know the structure of the data
- Keeps people from messing in the data if they
shouldnt be there - Inheritance
- Subclasses can inherit the characteristics of a
more general class - Benefits
- Programmers can re-use classes to make up new
classes, saving time and effort
14Types of Software
TREND Evolution from operating systems and
application software on single computers, to
distributed applications connecting multiple
computers
15Types of SoftwareSingle Computer View
- Kernel (of an operating system)
- The central program in an operating system it
resides in memory at all times, and provides the
most basic services - The part of the operating system closest to the
machine that may activate the hardware directly
or interface to another software layer that
drives the hardware - Systems Software
- An intermediary between computer hardware and
application programs - Oriented toward managing the hardware layer and
running applications - Application Software
- A set of computer instructions, written in a
programming language - Data processing activities that get things done
for the end user
16Types of SoftwareSingle Computer View
Application Software
Systems Software
CPU
Operating System
17Types of SoftwareMultiple Computer View
Web Services Software - or - Middleware - or
- Enterprise Application Integration Software
Application Software 1
Application Software 2
Systems Software 1
Systems Software 2
messages passed between computers
Hardware 1
Hardware 2
Messaging Protocols Communications
Protocols Network Operating System
18Systems Software
TREND Evolution from time-sharing, batch, and
command-line interactive, to personal
windows-based systems
TREND Evolution from bloated OSs to very small
OSs for hand-helds (PDAs, cell phones, etc.)
19Systems SoftwareHistory
DEC PDP-1
(1961)
(1967)
(1969)
PDP-10 TOPS-10 MACRO-10
Multics
(1970-78)
Unix PDP-11/VAX
(1975)
ITS
PC Enthusiasts
(1982)
(1969-1990)
Berkeley Unix
ATT Unix
SunOS
CP/M
DOS
Mac OS
386BSD
(1991)
OS/2
FreeBSD
Linux
NetBSD
OpenBSD
Mac OS9
Windows
Sun Solaris
Mac OSX
20 Systems Software
- System Control Responsibilities
- Processing tasks
- multiprogramming and multiprocessing
- time-sharing
- Managing memory and virtual memory (hard drive
cache) - Running virtual machines on top of the operating
system - ex VM/ESA operating environment
- ex Java bytecode interpreter
21Systems Support Programs
- System utility programs
- accomplish common tasks
- ex defragment hard drive
- MS Windows services
- Unix/Linux daemons
- System performance monitors
- monitor computer system performance and produce
reports containing detailed statistics concerning
the use of system resources - System security monitors
- monitor the use of a computer system to protect
it and its resources from unauthorized use,
fraud, or destruction
22Systems Software
- 3 Kinds of Operating Systems
- Single-User OS
- One user can access computer resources
- Ex DOS, MacOS, Window 95, OS/2
- Multi-User OS
- Multiple users connected at once used on host
systems - Ex Windows NT/2000, Unix, IBM AS/400
- Network OS
- Allows a network of computers to share resources,
used on a server system - Ex Novell NetWare, Windows NT, Sun Solaris
23Systems Software
- System Control Programs
- Operating systems
- job scheduling, resource data management
- ex DOS, VMS, MVS, MacOS, Unix/Linux, BeOS
- Graphical user interfaces
- Windows 3.0 ran on top of DOS
- many different GUIs were available in late
80s/early 90s - Graphic user interface (GUI) operating systems
- ex Windows 95, Mac OS, OS/2
24Pictures of Operating SystemsDOS
25Pictures of Operating SystemsMacintosh 6.2
26Pictures of Operating SystemsWindows 3.1
27Pictures of Operating SystemsOS/2
28Pictures of Operating SystemsBeOS
29Pictures of Operating SystemsMacintosh OSX
30Pictures of Operating SystemsLinux 5
31Pictures of Operating SystemsAtheOS
32Systems SoftwareThe Current State of the Desktop
- Computer Operating Systems
- UNIX flavors (POSIX compliant means complies
with UNIX reqs) - Closed Source BSD, HP-UX, AIX
- Open Source Linux, FreeBSD, OpenBSD, NetBSD
- Mixed MacOS X (functionality similar to Unix a
port of FreeBSD and Mach Kernel) - DOS
- MS-DOS, PC-DOS, IBM DOS
- Windows
- 1.0, 2.0, 3.0, 3.1, 3.1 for Workgroups
- 95, 98, 98SE, Millenium Edition
- NT, 2000 (Professional, Server, etc., etc., etc.)
- XP (functionality similar to Unix)
- MacOS
- 1.0, , 9
- BeOS
33Systems SoftwareOther Operating Systems
- Handhelds/Palmtops/PDA Operating Systems
- Palm
- Windows CE
- Cellular Phone Operating Systems
- Symbian OS (symbian.com)
- JBlend OS (jblend.com)
- JINOS Java virtual machine (veloxsoft.com)
34Systems SoftwareSymbian OS
35Application Software
TREND Evolution from independent applications to
integrated sets of applications
36Evolution of Application Functionality
- Applications used to function independently of
one another (up until late 1980s/early 1990s) - This created lots of busy work in the office
(costs to ISD) - Office workers were often printing out documents,
then cutting and pasting them together - Literally with scissors, Scotch tape and glue
- Office workers were often retyping data from one
application into another - Office workers were often transferring data by
saving it from one application to a Data
Interchange File (.dif), then opening the DIF
file in another program
37Application SoftwareWord Perfect 5 (1990)
38Evolution of Application Functionality
- ISSUE1 How can applications work together?
- Many applications now work as objects
- Object Linking and Embedding (OLE)
- link between applications, applications work
within other applications - OLE was one of the reasons for Microsoft to
create MS Office, since all of the applications
could now import objects from other applications - ISSUE 2 How can we easily share/access data?
- Open Data Base Connectivity (ODBC) provided a
standardized method for any application to access
and transfer data
39Evolution of Application FunctionalityObject
Linking and Embedding (OLE)
Word.exe
MSWord document
embedded Excel spreadsheet
Excel.exe
40Integrated Applications
- Microsoft Office
- Runs on MS Windows, Mac OS operating systems
- WordPerfect Office
- Runs on MS Windows, Linux operating systems
- Lotus SmartSuite
- Runs on MS Windows
- Sun StarOffice
- Runs on MS Windows, Solaris, Linux operating
systems - OpenOffice (openoffice.org) is the free open
source version of this - Gnome Office (gnome.org)
- Runs on Linux, being integrated together with
OpenOffice - KDE Office (koffice.org)
- Runs on Linux
41Types of Applications in Integrated Software
Packages
- Word processing
- Spreadsheet software
- Desktop publishing
- Database management systems (DBMSs)
- Graphics
- Multimedia
- Mathematical Formula editors
- Communications software
- Workgroup software
- Enterprise-wide integrated software
42Integrated ApplicationsOpenOffice
43Integrated ApplicationsOpenOffice
44Enterprise Software
TREND Evolution from local/functional
applications to enterprise-wide and
inter-organizational software applications
45Enterprise SoftwareData Warehouse/Analytical/Data
Mining
46Enterprise SoftwareDistributed (Heterogeneous)
Databases
47Enterprise SoftwareEnterprise Planning System
An order triggers a series of events throughout
the organization.