10/8: Software What is software? –Types of software System software: Operating systems Applications Creating software –Evolution of software development –OOP, Java Identifying software issues
What is Software? Detailed instructions to control computer operation Program: set of instructions to the computer Stored: program must be in primary storage System software: manages computer resources Application software: specific business application
Why Do We Use Software? Provides a way for us to use the hardware; Provides a bridge between the user & hardware. System Software Application Software
System Software Operating system –Schedules computer events –Allocates computer resources –Monitors events Language translators –Interpreters –Compilers Utility programs –Routine operations –Manages data
Multiprogramming: CPU Running more than one program at a time using the same CPU. Multitasking: multiprogramming on a single- user PC.
Virtual Storage: in RAM Method of handling several programs in primary storage Program divided into –Fixed length portions (pages) or –Variable length (segments) Current portions reside in primary storage Portions swapped out when done
Time Sharing: CPU Many users share large CPU Time in CPU divided into slices (ex: 2 ms) Each user has access to CPU during slice Since CPU is fast, can do much during time slice User’s job swapped out at end of slice
Multiprocessing: multiple CPUs Two or more parallel processors in system Program can be divided to be processed by multiple CPUs Can process large programs more rapidly
GUI: Graphical User Interface Operating system uses: Graphic icons (icons, buttons, bars, boxes) Mouse –To issue commands –To make selections
Operating Systems: Windows Windows 95, 98 –32-bit OS –GUI –Multitasking –Networking Windows NT, Me, 2000 –Bigger, more advances versions of 95 & 98 Windows CE –Pared-down for handheld computers, wireless communication devices
Operating Systems: Non-Windows Unix –For powerful Microcomputers to Minicomputers. –Multitasking, Multi-user Processing, Networking. –Portable to various Computer Platforms Linux –Free version of Unix Mac OS –For the Macintosh. Powerful graphics capabilities DOS Palm OS –For Palm-compatible handheld devices
Application Software –Word processors: MS Word –Desktop publishers: Adobe PageMaker –Spreadsheets: MS Excel –Data management software: MS Access, Oracle –Presentation Graphics: MS PowerPoint – software: Eudora –Web browsers: Netscape Navigator, Internet Explorer –Groupware: Lotus Notes
Creating Software: Programming Software must be created. Written in a programming language Source code: high-level language instructions Compiler: translates high-level code into machine language Object Code: Translated Instructions Ready for Computer.
Programming Languages: Generations 1 st generation. MACHINE LANGUAGE –Since 1940s. 2 nd generation. ASSEMBLY LANGUAGE: –mnemonics for numeric code –Since early ’50s. 3 rd generation. HIGH-LEVEL LANGUAGES –Since mid ‘50s. 4th. MODERN APPLICATION PACKAGES –Since late ‘70s.
High-level Languages FORTRAN (FORmula TRANslator): Scientific, Engineering applications COBOL (COmmon Business Oriented Language): Predominant for transaction processing BASIC (Beginners All-purpose Symbolic Instruction Code): General purpose PC language C and C++: Powerful PC Language for developing applications. Efficient execution; cross platform. C++ is object oriented
Fourth Generation Languages Can be employed by end users Nonprocedural Can develop applications quickly Natural languages
Object-Oriented Programming Program parts are modeled on real-world concepts Combines data & procedures into a single object Program sends message to object to perform embedded procedure Object’s data encapsulated from rest of system Creates reusable code Reduces time and cost of writing software
Object-Oriented Programming Visual programming –select and arrange objects rather than write code Class –all objects of a class have all features of that class Inheritance –specific class receives features of a more general class Override –subclass may override inherited method (e.g.: Printout of an HOURLY worker pay check may differ from that of a WEEKLY worker
OOP: JAVA Sun Microsystems’ object-oriented programming language Applet: tiny program to execute small function Applets downloaded from network Run on any computer & operating system Result saved on network, not on pc Only network version of software needs upgrade
Choosing the Right Software Appropriateness Efficiency Compatibility Support