1 / 52

Well, Sort-of

Well, Sort-of. What is Software??. Various kinds of programs used to operate computers and related devices. How did it come about??. The first software program was actually written about 1833 by Ada Augusta Lovelace (Lord Byron’s Daughter).

henry
Télécharger la présentation

Well, Sort-of

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Well, Sort-of

  2. What is Software?? • Various kinds of programs used to operate computers and related devices How did it come about?? • The first software program was actually written about 1833 by Ada Augusta Lovelace (Lord Byron’s Daughter) • We can skip forward to computer programs, however

  3. R1 R2 R2 • Programming Languages • First Generation Languages (Machine Language) • Suppose that I wanted to add two numbers together, for example 2 + 3 • First, we would have to move the values into two registers in the CPU’s Internal Storage 2 3 • Next I would have the ALU to add the contents of the registers and store the result in Register 2 (maybe) 5 (Well, Kind of – It’s a little more involved)

  4. Programming Languages • First Generation Languages (Machine Language) • We Actually have to do a few things. • First we have to find the operating code, or op code (by number) to move the data (let’s assume the command is number 28) • Of course, we have know the identifying number for each of the registers (assume R1 = 12; R2 = 13) • Finally, we have to find the op code for addition (Assume it is 37). • The code I enter might be: 28 2 12; 28 3 13; (Well, Kind of – It’s a little more involved) 37 12 13 13;

  5. Programming Languages • First Generation Languages (Machine Language) • Let’s not forget that the computer is just a series of light-switches (binary). Therefore we need to convert our decimal values to binary: 2 = 000000000000010 (on 16-bits) 3 = 000000000000011 (on 16-bits) Therefore, We would enter the commands: 12 = 00001100 (on 8-bits) 13 = 00001101 (on 8-bits) 28 = 00011100 (on 8-bits) 37 = 00100101 (on 8-bits) 00011100 000000000000010 00001100; 00011100 000000000000011 00001101; 00100101 00001100 00001101 00001101;

  6. Programming Languages • Second Generation Languages (Assembly – c1948) • The advancement over machine level languages was that it was mnemonic (assisting or intended to assist the memory) • We did not need to know the specific register addresses • We did not need to know the op codes • For the previous example, the code we enter might be: MOV 2 R1; MOV 3 R2; ADD R1 R2 R2; • An Assembler would then transfer the commands into a machine level language

  7. Programming Languages • Third Generation Languages (mid - late 1950’s) • The advancement over assembly level languages was that programmersdid notneed to know either the op codes nor the registers used • Specific locations in RAM were referred to by a user defined name • The compiler or interpreter, as well as the operating system, kept track of the specific locations • For the previous example, the code we enter might be: X = 2 + 3 (FORTRAN) • The code would then be rewritten as either an assembly language code or directly to amachine level language

  8. Programming Languages • Third Generation Languages (mid – late1950’s) • In the above example ‘X’ is a specific location in RAM, although we don’t have to know where it is • It is usually referred to as a variable • Meaning that we can change the contents of the location as we wish • Although it can be a constant • Meaning that once we set its value, it can not be changed • Either way, the address is assigned by the operating system at run time and managed by the compiled program (i.e., the machine-level program)

  9. Programming Languages • Comparison of COBOL and FORTRAN (Hello World) • COBOL (COmmon Business-Oriented Language) • Intended to process large amounts of data as a batch • 001 IDENTIFICATION DIVISION. • 002 PROGRAM-ID. 'HELLO'. • 003 ENVIRONMENT DIVISION. • 004 CONFIGURATION SECTION. • 005 SOURCE-COMPUTER. IBM-360. • 006 OBJECT-COMPUTER. IBM-360. • 0065 SPECIAL-NAMES. • 0066 CONSOLE IS CNSL. • 007 DATA DIVISION. • 008 WORKING-STORAGE SECTION. • 009 77 HELLO-CONST PIC X(12) VALUE 'HELLO, WORLD'. • 075 PROCEDURE DIVISION. • 090 000-DISPLAY. • 100 DISPLAY HELLO-CONST UPON CNSL. • 110 STOP RUN. • Edsger Dijkstra, winner of the Turing Award remarked that "The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offense."

  10. Programming Languages • Comparison of COBOL and FORTRAN (Hello World) • FORTRAN (FORmula TRANslation) • Intended as a ‘Scientific Language’ PROGRAM MAIN PRINT *, 'HELLO WORLD' STOP END • It is one of the most popular languages in the area of high-performance computing and is the language used for programs that benchmark and rank the world's fastest supercomputers.

  11. Programming Languages • Third Generation Languages (mid 1950’s) • Third generation languages are Procedural in nature • If, for example, we want to find the average age of a class, we need to know the procedures involved • We need to add every persons age in a class together • We then need to divide the sum of every persons age by the number of people in the class • The result is the average age of the class • Third generation languages are also known as structured programming

  12. Programming Languages • Third Generation Languages (mid 1950’s) • Third generation languages are also referred to as ‘High-level Languages’ (so are 4th generation languages) • Third generation languages (as well as 4th generation languages) may be either interpreted or translated languages (although they are generally translated) What’s the difference??

  13. Programming Languages • Third Generation Languages (mid 1950’s) • Think of a person who works at the United Nations • As soon as these people get a phrase of what a person is talking about, they put it into the language which they are interpreting • At the end of the day, they might not even know what the speech was about (That is not their job)

  14. Programming Languages • Third Generation Languages (mid 1950’s) • Now think of someone whose job is to translate a book from one language to another • S/he will read the book many times • S/he will try and find the best way to say what the author was trying to say (That IS their job) What does this have to do with computers??

  15. Programming Languages • Third Generation Languages (mid 1950’s) • There are two classes of program languages • Those that are interpreted • BASIC started as an interpreted language • Those that are translated or compiled • The compiler makes a few ‘passes’ through the code • It first checks syntax • It next checks simple logic • It sets-up variable tables • The compiler creates a separate executable (.exe) or command file (.com) • These file are machine language files

  16. Programming Languages • Third Generation Languages (mid 1950’s) • Third generation languages are also referred to as ‘High-level Languages’ (so are 4th generation languages) • If, for example, we want to find the average age of a class, we need to know the procedures involved • We need to add every persons age in a class together • We then need to divide the sum of every persons age by the number of people in the class • The result is the average age of the class

  17. Programming Languages • Fourth Generation Languages (4GLs) • 4GLs are non-procedural languages • If, for example, we want to find the average age of a class, we need to enter the command Get Class Average (or something similar) • The procedures are built-into the commands • These end result is still the creation of machine language files

  18. Programming Languages • Fifth Generation Languages (5GLs) • Maybe --- Someday • The intention is have speech recognition Artificial Intelligence (AI) programs that allow speech recognition • Sounds a little like a Star Trek episode “Computer – Save the world”

  19. Programming Languages • Programming Tools • Help programmers identify and minimize errors while they program • Provide a computer-aided programming environment • Graphical Programming environments: Akin to toolbars and menus • Program Editors: Packages for source code creation which check key words, structures as the program is typed in • Debuggers: a computer program that is used to test and debug other programs.

  20. Programming Languages • Computer-Aided Software Engineering (CASE) • Allow program development through the use of system development models • e.g., Entity Relationship Diagrams • An ERD is a model for graphically showing the contents of a database table and its relationships to other tables • Once the model has been constructed, the CASE tool constructs the data dictionary and can create the DBMS code (in SQL or any other language)

  21. Programming Languages • Web Languages • Languages for building multi-media web applications • Hypertext Mark-up Languages (HTML) • Page description language that creates hypertext and hypertext linkages • Hyperlinks: allows control to be given to other parts of a document or to any document on the WWW • HTML can be created from various programs (Word, Frontpage) without formal training in HTML

  22. Programming Languages • Web Languages • eXtesible Markup Languages (XML) • Describes the contents of webpages by applying identifying tags (contextual labels) to the data in web documents • Its primary purpose is to facilitate the sharing of data across different information systems, particularly systems connected via the Internet • XML supports the automatic electronic exchange of business data between companies and their customers, vendors, suppliers and partners

  23. Programming Languages • Web Languages • Java • OOP language • Consists of small applets that can be connected and used on any operating system • Programmers are spared the burden of having to perform manual memory management. • Your On-line quizzes are Javascripts

  24. Programming Languages • Web Languages • Java • OOP language an object-oriented programming language that is simple, secure and platform independent • Consists of small applets that can be connected and used on any operating system • Programmers are spared the burden of having to perform manual memory management. • Your On-line quizzes are Javascripts

  25. Programming Languages • Object Oriented Programming (OOP) • Sometimes also referred to as 5GLs (???) • An object consists of data and procedures that can be performed on the data • C++ • Java • Visual Basic

  26. Types of Software End Users Applications Software General Purpose – Application Specific System Software System Mgt & Development Computer Hardware

  27. Types of Software

  28. Computer Software System Software System Management Programs System Development Programs • Types of Software These have already been covered Systems Management Programs

  29. System Software • Programs that manage the hardware, software, network, and data resources of computer systems Operating Systems • An integrated system of programs that manages the operations of the CPU, controls I/O, storage resources and provides various support services as the computer executes applications UNIX Windows/Vista Linux Mac OS X

  30. System Software Types: • Command-Driven • Menu-Driven Operating System Interfaces • GUI The part of the OS that allows communication with it to load programs, access files, and accomplish other tasks

  31. System Software Operating System Functions • Resource Management • Programs to manage the hardware and networking resources of a computer system, including its CPU, memory, secondary storage devices, telecommunications processors, and input/output peripherals • Memory management programs keep track of where data and programs are stored • Swapping of programs of programs between RAM and secondary storage • Swapping allows for virtual memory whereby programs can process more than RAM would normally allow

  32. System Software Operating System Functions • File Management • Programs to control the creation, deletion and access of data and programs • Keeping track of the physical location of files on secondary storage • Maintaining directories of information about the location and characteristics of files stored on secondary storage

  33. System Software Operating System Functions • Task Management • Managing the accomplishment of several programs • Your text applies that multitasking and multi-programming are the same (NOT): • Multitasking: performing many applications at what appears to be the same time (not possible if you have you have only 1 CPU) • Multiprocessing: performing many applications at the same time (assumes that you have more than 1 CPU – but be careful: 2 processors does not imply you can do twice the work of 1)

  34. System Software Operating System Functions • Utilities: Consider those available in XP:

  35. System Software Operating System Functions • Utilities: Consider those available in XP: • Security Monitors: Monitor and control computer usage, checking for unauthorized usage • Character Map: Preferred Character set • Disk Clean-up: Archiving/deleting infrequently used programs/data • Disk defragmenter: Putting fragmented files back together so they con be collected faster • Performance Monitors: Monitor and adjust the performance of computer systems to keep them running efficiently

  36. System Software Operating System Functions • Other Systems Software • Middleware: software that helps diverse software applications and networked computer systems exchange data and work together more efficiently • Web Servers • Enterprise Application Integration (EAI) • Application Servers: Software which provides an interface between an operating system and application programs of users

  37. Operating Systems (A quick Aside) • Linux • created by Linus Torvalds in 1991 • includes system utilities & libraries from the GNU Project • The founding goal of the GNU project was, in the words of its initial announcement, to develop "a sufficient body of free software [...] to get along without any software that is not free." • Open Source Hardware: • Free • Stable • Easily fixed if bugs appear

  38. Operating Systems • Linux Why did Linux become popular?? • Low-cost alternative in sagging economy • Fear of Microsoft gaining a stranglehold on corporate customers • Intel loosened its relationship with Microsoft • IBM made an effort to be Linux-compatible

  39. Operating Systems • Linux How is Linux doing?? • Linux runs almost 15% of all servers • Growing at 23% per year • Over 10% of IBM mainframe sales run Linux • Only 1% of PCs use Linux but 30% of CIOs were considering moving their companies’ PCs to Linux • By 2011, Linux was running 95% of all Supercomputers.

  40. Computer Software Application Software General Purpose Applications Application Specific Programs • Types of Software programs that perform common information processing jobs for end users Applications Software: perform information processing tasks for end users support specific applications of end users in business and other fields

  41. General-Purpose Application Software • Software Suites: Several programs bundled together • Cheaper than cost of all individual programs • Use similar GUIs (Icons, menus, etc) • Share similar tools (spell checkers, wizards, hot keys) • Problem: Bloatware

  42. General-Purpose Application Software • Integrated Packages: Provides some of the features of several programs in one software package • Omit some features found in software suites • Cheaper • Requires less storage • Web Browsers: Software interface used to point and click through the hyperlinked resources of the Internet • MS Explorer • Netscape navigator (defunct) • Mozilla Foxfire (freeware)

  43. General-Purpose Application Software • Electronic Mail: software used to send and receive electronic messages and file attachments via the Internet, intranets or extranets • MS Outlook, Yahoo!Mail, Gmail • Instant Messaging: software used to send and receive electronic messages instantly to facilitate real time communication and collaboration • AOL Instant Messenger • MSN Messenger • Yahoo! Messenger

  44. General-Purpose Application Software • Word Processing: software that supports the creation, editing, revision and printing of documents • Include features such as spellchecking, thesaurus, and grammar correction • Desktop Publication: software that supports the production of materials that look professionally published • Professional quality publications which integrate text and graphics

  45. General-Purpose Application Software • Electronic Spreadsheets: Software that supports the development of electronic worksheets consisting of rows and columns used for business analysis, planning and modeling • Presentation Graphics: Software that helps convert numeric data into graphics displays and prepare multimedia presentations including graphics, photos, animation, and video clips

  46. General-Purpose Application Software • Video Software: Software that supports the development of full video, usually along with text and audio • It usually includes the ability to import and export video, cut and paste sections of a video clip, add special effects and transitions • Personal Information Manager (PIM): Software for end user productivity and collaboration • Organizes data and retrieves information in a variety of forms (e.g., calendar) and allows distribution to others

  47. General-Purpose Application Software • Groupware: Software that helps workgroups and teams work together to accomplish group assignments • Also called collaborative software • Relies on the Internet, Intranets and Extranets on a global scale by virtual teams located anywhere in the world • MS Word and MS Excel keep track of who made changes to the documents • Lotus Notes • Microsoft Exchange • Microsoft’s SharePoint and IBM’s Webshare allow quick creation of websites to share information

  48. Software Implementation • Custom Software: software applications that are developed within an organization for use by that organization • Commercial Off-the-shelf (COTS) Software: software that is developed by a software developer with the intention of selling the software in multiple copies

  49. Software Implementation • The Buy (COTS) v. Build (Custom) Argument COTS Cheaper acquisition and deployment costs Thoroughly Tested Documentation included Over time, the number of applications have increased dramatically Build COTS software packages, even customized, are probably less suited to your firm’s specific needs and challenges You can readily make changes as necessary You can specify which modules to include You control the quality of documentation Bottom Line BUY if the system if a fundamental requirement of doing business BUILD if the system gives you a competitive advantage

  50. Software Implementation • Application Service Providers (ASP): companies that own, operate, and maintain application software and the computer system resources required to offer the use of the application software for a fee as a service over the Internet • Lower cost of initial investment • Lower cost of operating and maintaining software • Reduces the need for much of the IT Infrastructure and IT Personnel

More Related