software basics
DESCRIPTION
TRANSCRIPT
Software BasicsIntroduction to Computer Science
2007-2008
4626. Introd to Computer Science
Aims
• Describing main sw categories and their relationship
• Explaining relationship between algorithms and programs
• Discussing factors that make apps useful
• Describing the role of operative systems
• Outlining the evolution of interfaces
4626. Introd to Computer Science
How the sw works?
algorithm
thinks thinks
Problem: natural language is ambiguous
thinks
4626. Introd to Computer Science
How the sw works?
thinks
writes
algorithm
thinks thinks
program… but
computers can’t
understand that
4626. Introd to Computer Science
How the sw works?
thinks
writesalgorithm
thinks thinks
program(source code)
executable(binary code)
generates
4626. Introd to Computer Science
Example
1. Ask the user for a number
2. Multiply it by 2
3. Show the result on the screen
Algorithm
4626. Introd to Computer Science
Example
#include <stdio.h>
void main(){
int num, double;
printf( “Enter a number: “ );scanf( “%d”, &num );double = num * 2;printf(“Twice %d is %d\n”, num, double );
}
Source code
4626. Introd to Computer Science
Example010110011101110000001000001111010001111011111000101111100010001001001111001001101011100001111001001101011000110111001001100111100010110011100010001011011011011010111010010100011111000011001000111000100011101111000101010010100100110011111110011100111000111110111110110100011100001110000100101111010011110110010011100001101110
Binary code
4626. Introd to Computer Science
Development software
Softwareclassification
Applicationsoftware
Systemsoftware
Softwareclassification
4626. Introd to Computer Science
Development software
• Assisting programmers to write software
• Typical tools
Text editor
Debugger
IDE
Compiler
4626. Introd to Computer Science
Application software
• Why do we use application sw?
• visual metaphors of the real world
• extend human capabilities
(pictures from tecnomarketer)
4626. Introd to Computer Science
Application software
• Examples: accounting, library cataloguing or restaurant management
• limited market (high cost)
• sometimes developed for just one customer
Vertical market
Specific software for a sector
4626. Introd to Computer Science
Application software• Common applications
• Used in many fields (home, office, education, administration….)
• Sold separately or in a package (suite)
Suites
Apps that “work well together”
4626. Introd to Computer Science
Application software
• Set of applications sold in a block
• Easy earning
• Limited functionality (but enough)
• Cheaper
Integrated packages
Share the same environment
4626. Introd to Computer Science
System software
• Manages communications between hw & sw
• Abstraction from hw details(virtual machine)
(source: FFP Basic http://iaf-bs.de)
4626. Introd to Computer Science
Device drivers
• Communicates computer and I/O devices
• Extends computer (open architecture)
• Brokers to access the device
• You can get them
• included in the OS
• provided with the device (install CD)
• owned by a third company (buy it)
4626. Introd to Computer Science
Operative systems
• brokers between users/programs & Hw
• isolations layer
• programs compatibility
• main tasks
• ease the use of the computer
• use the software efficiently
4626. Introd to Computer Science
OS functions
• communications with peripherals (I/O)
• process management (multitasking)
• memory management (protection & virtual mem)
• resource monitoring for accounting and safety
• file system management
• network communication coordination
4626. Introd to Computer Science
Utility programs
• System maintenance tools
• Executed apart from OS
• We can find them…
• incorporated into the OS (disk defrag)
• provided by others (antivirus)
4626. Introd to Computer Science
Additional considerations
• instructions about how to install them
• tutorials
• reference manuals
• help files
• on line help systems
• support services, FAQ
Documentation
4626. Introd to Computer Science
Additional considerationsUpgrading
4626. Introd to Computer Science
Additional considerations
• periodically, companies sell new versions
• reasons: improvements, bugs, adaptation to other SW (OS)
• versions identified by numbers(decimals for minor changes)
• right to free updates during a period
Upgrading
4626. Introd to Computer Science
Additional considerations
• constraints about computer and resources
• examples: CPU, memory, free HD space
• operative systems (Windows, MacOS, Linux)
• sometimes, version:Windows 95, 98, NT, Me, 2000, XP, Vista..
Compatibility
Hardware Software
4626. Introd to Computer Science
Additional considerations
• you don’t buy sw, you buy a license
• individual and corporative licenses
• main limitation: number of computers and right to copy (backup)
• EULA (End User License Agreement)
• license terms
• disclaimer terms (limited liability)
Licensing
4626. Introd to Computer Science
Additional considerations
• proprieraty
• shareware
• demo
• adware
Distribution
• freeware
• open source / free software
• semi free
• public domain
4626. Introd to Computer Science
User interface• character console:
command line (MSDOS)
• graphical user interface (GUI)
• visual concepts
• controls individual points on the screen
• Apple MacOS (1984)
• metaphors. desktop, folders, documents…
• active elements:
• icons
• buttons
• windows
• scrolling bars
4626. Introd to Computer Science
MS-DOS
4626. Introd to Computer Science
Windows 3.11
4626. Introd to Computer Science
Windows 95
4626. Introd to Computer Science
Windows XP
4626. Introd to Computer Science
Windows Vista
4626. Introd to Computer Science
Linux
4626. Introd to Computer Science
Mac OS X (Leopard)
4626. Introd to Computer Science
File system management
• specific folders for user’s documents
• search tools by name or content(Google Desktop)
• Specific tools for special files (iTunes)
4626. Introd to Computer Science
Multi-user OSUNIX
• preferred OS for mainframes & workstations
• versions: Solaris (Sun), HP-UX (HP), Aix (IBM) IRIX (Silicon Graphics)
Linux
• Unix versions for PCs
• Distributions: Ubuntu, Suse, RedHat…