Title: Introduction to Computer Software
1Introduction to Computer Software
James H. Harrison, Jr., M.D., Ph.D. Division of
Pathology Informatics Department of
Pathology University of Pittsburgh Medical
Center CLSI 5807-MT, 200 Lothrop St. Pittsburgh,
PA 15213 jhrsn_at_pitt.edu
2Outline
- Physical components of a computer -- Hardware
- How information is stored and processed
- Computer programs -- Software
- Operating systems and device drivers
- Application programs and data files
- Computer programming
- Viruses
- Software licensing
3Data Processing
- All information in a computer is represented as
binary numbers - Integers, decimal numbers, text
- Graphics and pictures, audio, video
- Program instructions
- Analog data must be digitized to be managed by a
computer - Audio and other continuous waveforms, electrical
signals, colors and brightness
4Binary Numbers
- A bit can represent one digit (0 or 1)
- Combinations of bits store larger numbers
- 1024 (1K) is represented with 11 bits as
10000000000 1027 would be 10000000011 - 8 bits is called a byte and can hold the numbers
0-255 - RAM is usually divided into consecutive bytes and
each byte has a unique numerical address - 1K is slightly over 1 thousand bytes, 1MB 1
million, 1 gigabyte 1 billion, 1 terabyte 1
trillion
5Digital Text
- Every typed character is represented by a number
(including spaces, tabs and carriage returns) - American Standard for Computer Information
Interchange (ASCII) and Unicode - ASCII
- ASCII is a 128-character set 8 bits (one byte)
represents one character. Unicode represents
characters with two bytes.
Hello there, Nerds!
72 101 108 108 111 32 116 104 101 114 101 44 13
78 101 114 115 33
6Software Architecture
- Device Drivers
- System Software
- Application Software
- Data files
DD
DD
DD
DD
System Software
Application Software
File
File
Main Memory (RAM)
CPU
Cache
System bus (16, 32, 64 bit)
Video Controller
Disk Controller
Serial Port Controller
Ethernet Port Controller
Other Controllers
Card Slots
7Software
- Device Drivers
- Manage controllers and their peripherals
- Video card driver software
- Operating System
- Overall machine control
- Provides user interface and services for
applications (e.g. file management) - Windows, MacOS, OS/2, MS-DOS, Unix, Linux, VMS,
Be - Application Programs
- Generic name for user programs
- Word, Excel, Photoshop, email clients, etc.
- Data Files
- Non-executable lists of data on disk, generally
written by applications - Word processing files, spreadsheets, databases
(can be app-specific)
8Operating Systems
- Provides the "personality" of the computer
- Command-line OS's
- MS-DOS, Unix, Linux, mainframe OSs
- GUI OS's
- Windows, Mac, Be, OS/2, others
- Event-driven (point and click)
- API for widgets common tasks (opening, saving
files, etc.) - Memory management
- Protected memory
- Virtual memory
- Multi-tasking
- Automatically switching the CPU between multiple
actions and/or programs running at once
9Application Programs
- Often written by third parties for specific
functions - Structure
- Monolithic -- install by copying
- Common on Mac
- Modular -- often use installation program
- Many separate files
- Common on Windows, also Mac
- Dynamically Linked Libraries (DLLs)
- May be located in application or system directory
- Allow sharing code and easy updating
- May lead to software incompatibilities
- Data files may be associated with the app by the
OS
10Data Files
- Binary files
- Intelligible only to the program that created
them unless standard format. - ASCII text
- Readable by any text editor (start editor first,
then use its open command to locate and open the
file). Used in most email. - RTF (Rich Text Format)
- Microsoft standard that mixes in formatting
instructions in ASCII along with the text.
Readable by most word processors. - SYLK
- Similar to above for spreadsheets.
- TIFF, GIF, JPEG
- Image file formats read by many image editors and
viewers.
11Computer Programming
- Computers run programs in machine language, which
is binary instructions specific for the
computer's CPU type. - Files containing program code are called
"executable files." In Windows, these files have
a .exe filename extension. - Programmers typically write "source code" using a
programming language that is compiled to machine
language prior to running the program.
12Programming Languages
- Low-level languages use instructions that are
relatively close to machine language instructions - Fast, small programs
- Efficient memory usage (if correctly debugged)
- Difficult to write and debug (time consuming)
- Not easily portable to other CPUs
- High-level languages use instructions that
represent large blocks of machine language code - Slower, larger programs that use more memory
- Easier to write and debug, more rapid development
- Easier to port to other hardware
13Programming Languages
TCL Python Perl Visual Basic Java,
C C C Assembly Machine Language
High Level
Good for beginners, quick jobs, and some
large-scale projects where rapid development is
key
Scripting Languages
System Languages
Low Level
14Computer Software Licenses
- Proprietary software
- Cost may be based on
- Number of machines running the software
- Number of processors running the software
- Total number of individual users
- Number of logged-in users
- Number of accesses/time
- Number of terminals connected
- Licensing may allow use only--no resale or
donation - Terms may not be available until after purchase
(shrink-wrapped license)
15Issues with Proprietary Software
- Incentive to add new features to products to
attract new customers - Resources may be directed away from elegant
design, debugging and support to create
checklists of features - Incentive to lock in current customers and make
switching to another vendor difficult - Leads to complex, interlocking single-vendor
packages - Part of what's behind the Microsoft antitrust
case - Software reliability
- Vendor longevity and product lifespan
16Non-Commercial Software
- Public domain software
- Freeware
- Shareware
- Open Source software
- Valuation of software
- Little intrinsic value as a static product
- Expectation of future performance is key
- Software development is a service industry
- No limitation on software distribution, including
source - Volunteer maintenance model
17Open Source Software Movement
- Software including source code can be freely
distributed - Notable successes Linux, BSD Unix, system
management and communication utilities, text
editing software, application servers, GNU
development tools - Some of the most reliable and bug-free software
in existance ("many eyes" gift culture) - A variety of licenses--some allow inclusion in
proprietary products and some don't - Successes with software of interest to
programmers not clear if application software
will be similar
18Open Source Positives
- Low initial software cost
- Incentive for high quality, appropriate features
and modular design - Locally extendable based on needs
- May be more maintainable over the long term
- Significant intellectual impact on the industry
over the past three years - But--requires local expertise and commitment to
maintenance could reveal key business processes
19Enterprise Information Systems
20Mainframe-terminal Applications
Mainframe Computer
- Highly reliable
- Relatively low maintenance for large systems
- Good security
- Inflexible
- Expensive (all in I.T. budget)
- User interface often limited
- All processing on central computer
User terminals
21Client-server Applications
- Inexpensive desktop/workstation hardware
- Distributed processing data on server,
processing on workstations - Communication via shared network
- Familiar graphical interface
- Flexible peripheral workstations
- Scaling may be expensive
- Substantially higher "peripheral" maintenance
- Often lower reliability
- Security can be problematic
Data Server
Data
TCP/IP
Client
Client
Client
Workstations
22Thin Client Applications
Data Server
Application Server
- Desktop/Workstation hardware
- Distributed processing
- "Just-in-time" software distribution
- Shared network
- Graphical interface
- Flexible workstations in some configurations
- Substantially lower peripheral maintenance
- Currently relatively slow performance
Web
Data
Java
TCP/IP
Java
Java
Java
Workstations with standard browsers (provide
application shell)
23Interface Number Problem
3
6
10
The number of interfaces required to connect
systems
Sum 1 2 3 4 (n-1)
24Interface Engine (Message Router)
5
25Three-tier Architecture
Presentation Layer Middleware Data Sources
Web browser Java VM Java applet Web
server Application server Interface engine
Business rules Database connectivity DB
managers Legacy systems
Network
Network
26Externalizing Functions to Create Services
Patient Demog
Patient Demog
Patient Demog
Patient Demog
Anatomic Path
Pharmacy
Hospital ADT
Lab
27Externalizing Functions to Create Services
Patient Demog
Person Information (MPI)
Anatomic Path
Pharmacy
Hospital ADT
Lab
Patient demographic information requested as
service from MPI
28Candidate Services for Externalization
- Person identification (MPI)
- Enterprise-wide vocabulary and coding schemes
- Notification
- Event scheduling
- Security (single logon)
- Decision-support/expert systems
29Transactional Systems(Databases to be discussed
in more detail later)
- Transactional systems
- Transaction an event that retrieves or updates
data - Commit if success, rollback if failure
- Structured for speed in managing small increments
of data - Typical design for production systems
- Reliable updating of multiple data files or
systems - Update transaction
- Result a new sodium value or final an AP report
- Lookup transaction
- Get AP report for John Doe on 6/23/2000
30Technical Layout of an Enterprise Architecture
Users
Middleware
Anatomic Path
Pharmacy
Hospital ADT
Lab
Repository
Warehouse
31Standards-based Application Servers with Shared
Data Repositories
Data Storage
- Separation of data from application logic
- Data integration
- Standard networking and communications protocols
- Standard terminology
- Single logon and patient identification
- Population queries
- Clinical decision support (rules alerts)
- Flexible notification
- Simpler client maintenance with mobile access
Data Repository
Data Warehouse
Knowledge Base
MPI
ADT
Scheduling
Order Entry
Lab
Radiol
Event Monitor
Notifier
Terminology Server
Application logic
PCs with "thin clients" Laptops and palmtops with
RF connections
32Summary
- Information processing and software architecture
- Binary numbers, ASCII, RTF, SYLK, TIFF, JPEG, GIF
- Device drivers, OS, application architecture,
data files - Programming in low level and high level languages
- Computer software licensing Open Source software
- Enterprise information systems mainframe, c/s,
tiered - Shared/externalized services
- Transactional systems
- Application servers and shared data repositories
33References
- Davies. Introduction to computer hardware and
software what the language teacher needs to
know. http//www.ict4lt.org/en/en_mod1-2.htm - Introduction to Computer Hardware and Software.
http//vishwa.tfe.gatech.edu/1040/barath/chapter1/
chapter1.htm - Lewis and Loftus. Java Software Solutions
Foundations of Program Design. http//rum.cs.yale.
edu/cs112/notes/html/chap01/sld001.htm - Perens. Open Sources Voices from the Open Source
Revolution. http//www.oreilly.com/catalog/opensou
rces/book/perens.html - Raymond. "The Cathedral and the Bazaar" and
"Homesteading the Noosphere", both at
http//www.tuxedo.org/esr/writings/ - Hripcsak, G. IAIMS Architecture. JAMIA 4S20-S30,
1997.