Title: Software Fundamentals:
1Software Fundamentals
- Programs and Programming
- Software
2Programming Definitions
- Programs
- traditional programs
- macros, batch files
- Programming Languages
- Programming
- Program design
- Coding
- Debugging
- Documentation
- Maintenance
- Programmers
- Programming Environments
3Programming Languages
- Commonalities
- All have a syntax
- All have the same basic operations
- Input, Output
- Processing
- math, text
- Control operations
- if statements
- loops (ability to repeat instructions)
4Language Differences
- Purpose
- COBOL, FORTRAN, SNOBOL, LISP
- Power - two meanings
- degree of control over machine
- how much is accomplished by each statement
- Safety
- Portability
- Maintainability
- Readability/Modularity/Reuse
5History of Languages
- Gen 1 and 2 not important for you
- Gen 1 Machine Language
- All statements 0s,1s
- Gen 2 Assembly Language
- 0s,1s replaced w/ short codes
- Gen 3 Higher Level Languages
- each statement several low level statements
- Gen 4 4GLs
- each statement a program in 3GL
- Emphasis on what not how
6Example of a 3 GL Program
- Dim miles, fuel, mileage
- Input enter the miles traveled, miles
- Input enter the gallons of gas used, fuel
- Let mileage miles/fuel
- Lprint Miles Miles
- Lprint Gas Used fuel
- Lprint Mileage Milage
- End
7Example of a 4GL (SPSS)
- Type in a command directly and execute it
- FREQUENCIES VARIABLESpaysat growsat
/STATISTICSSTDDEV VARIANCE RANGE MEAN - Use a dialog box to specify what to do
Generates the same command above
8History of Programming
- Customized software
- programming is an art, spaghetti code
- Structured programming
- modules, documentation, COBOL
- Programmer Tools
- code generators
- reverse engineering
- programming environments
- Packaged software
- Packaged objects/modules
9Modular Programming
- Main.
- Perform Input-Wage-Hours.
- Perform Calculate-Pay.
- Perform Display-Pay.
- Stop Run.
- Input-Wage-Hours.
- Display What is the wage?
- Accept Wage.
- Display enter hours
- Accept Hours.
- Calculate-Pay.
Statement that calls module
Module Name
The next module
10Object-Oriented Software
- A new way to look at programming
11Object-Oriented Paradigm
- OO is a way of viewing the world
- we tend to group items (objects) into categories
(classes) - the objects in each category have similar
- properties
- behavior
- OO is a way of recording reality
- used to capture user requirements
- OO is a way of programming
12OO Concepts
- A class is ...
- A collection of similar objects
- The set of all .
- A definition
- Properties, behaviors they share
- An Instance of a Class
- a single object in the class
- A sub-class
- subset of objects in parent class
- used whenever not all objects in the class are
exactly the same - A message
- when one object talks to another
13Bank Accounts Object Class
- Properties
- Customer ID
- Balance
- Methods
- Deposit/Withdraw
- Print Statement
- Chg Address
Checking Accounts Object Class
Savings Accounts Object Class
- Properties
- Free checks
- Min Balance
- Methods
- Print Statement
- Chg Address
- Properties
- Interest rate
- Methods
- Calculate Interest
- Print Statement
- Change Address
Messages
14OO Example for Bank
- Object Class Accounts
- The set of all accounts
- All accounts have these properties
- ID number
- Balance
- All accounts have these methods (behaviors)
- Deposit, Withdraw (transactional)
- Print Statement (output)
- Change Address (chg property)
- Instance of the Accounts class
- 555-111, 2000.00 (ID , Balance amount)
- Sub-classes of the Accounts Class
- Savings Accounts Checking Accounts
- Messages
- Account class might receive a message from
- Customer instance (create an account for me)
- Account instance might send a message to
- Collections Officers class (this account is
overdrawn) - Printer instance (print this statement)
15Benefits of OO Programming
- Has both standardization and flexibility
- Inheritance gives stability
- A sub-class inherits everything from parent
- Both properties and methods
- Customization gives flexibility
- Unless method is private
- you can change it make it behave differently
- Unless a property is private
- you can drop it, change its format, size, etc.
- You can add new methods and properties
16Examples of Object Statements
- Excel
- Worksheets.Add
- Worksheet(1).Caption January
- Worksheet(January).Activate
- Word
- Selection.Font.Color wdColorRed
- Powerpoint
- ActivePresentation.SlideShowSettings.Run
- ActiveWindow.ViewType ppViewSlideSorter
17OO Programming Languages
- Statements in an OO language help
- create classes
- define properties (like fields in a record)
- define methods (behaviors)
- keep track of instances of a class (objects)
- create sub-classes
- When you use an OO program it might
- create instances
- initiate methods
- change properties
- send messages
18OO Programming Environments
- Programming Environment
- software used to write programs
- programming support tools
- libraries of object class definitions
- diagramming tools to show
- class relationships
- parent, sub
- Message interactions
- What objects talk to other objects
19Object Thinking Project
- Scenario
- Company owns a chain of ski shops and they need a
system to keep track of products and supplies on
hand. The system should allow the ski shop
managers to - Create new products or supplies, Place orders,
etc - Your Tasks
- Develop a hierarchy of classes for the system
that has at least one super-class and two
subclasses - For each class of objects specify
- some properties it might have
- some methods it might have
- Also, give me an example of a possible instance
20Classifying Software - Textbook
21Classifying Software - Dr. Mann
22Software Definitions
- Software vs. Programs
- Software Types
- Systems Software - control hardware
- Systems Management
- Operating systems, Utilities
- Performance Monitors
- Systems Development
- Middleware - interface 2 systems
- translation/conversion software
- one legacy system talks to another
- web devices talk to old legacy system
- Home-grown single programs vs. EAI
- Application Software - designed for users
23Operating Sys Commonalities
- CPU is nothing w/o firmware op sys
- firmware hardwired instructions
- disk op sys loaded from storage
- Op system tells CPU what to do
- Other activities handled by op system
- user interface
- storage interface (file mgt)
- resource management and scheduling
- Interface with other devices
- security
System Software - System Mgt
24Op Sys Differences
- Single user vs. multiuser
- Interfaces - look and feel
- User-friendliness
- Customizable
- Forgiving
- Supportive - good help
- Intelligence
- Openness/Scalability
- Security/Reliability
System Software - System Mgt
25Multi-User Operating Systems
- Networks of PCs
- client kernel vs. server op system
- Novell
- Windows NT, 2000
- Unix and Linux
- OS/2 -- like a mainframe on PC
- Host/Server Machines
- Each vendor has proprietary OS
- IBM -- MVS, VM
- DEC -- VAX on minicomputers
- Or Unix is used
System Software - System Mgt
26Windows Family Tree
Client OS
Network OS
16-bit
32-bit
System Software - System Mgt
27Utilities
- Disk Utilities
- Diagnose and repair files/disks, file viewer
- Compress data
- Optimize (defragment)
- Backup
- Virus checkers
- Uninstallers
- System Utilities
- monitor system, network
- manage memory
- screen savers
- Device Drivers
System Software - System Mgt
28Application Software
- General Purpose Software Packages
- useful in any organization
- Productivity, Groupware, Teamware
- Application-Specific Software
- inside Information Systems
- customized, off-the-shelf
- online or web-based
- application service providers
29Application-Specific Software
- Software in an Information Sys
- In TPS/MIS - Set of programs that
- get input
- process input
- output processed input
- store input
- create reports, handle inquiries
- In support systems
- User interface - I/O
- Manage repository
- Processing Modules
- ES Intelligence Engine
- DSS Analysis Functions
- KMS Categorizers, Search Agents
30User Interface Concepts
- What is it? -- Look and Feel
- Look visual style
- Feel way you navigate
- what you have to do to perform tasks
31Basic Interface Types
- Command Driven (DOS, hosts, servers)
- look text only
- navigation keyboard only
- hot keys menu bar of hot key choices
- function keys ESC, CTRL, ALT
- you type a text command
- copy a\my.fle c\my2.fle
- text menus -- you choose option
- Still found on multi-user hardware
- Graphical User Interface
- Look Windows metaphor icons
- navigation mouse oriented
- plus, modularity, standardization
32Advanced User Interfaces
- Graphic interface applications can use
- a standard window metaphor
- a social interface (ex creative writer)
- use metaphors from daily life (book, desk)
- hypermedia interface
- documents with links to other documents
- ability to backtrack
- wizards/agents -- little helper apps
- Speech recognition
33(No Transcript)
34Template/Style Sheets
- Definition document which has been pre-defined
for a task - Word processing templates
- pre-specified formats, pre-defined text
- fields to be filled in
- Spreadsheets
- have pre-defined headings, calculations set up
- Presentation templates
- backgrounds, layouts
- Template protection