1 / 50

Chapter 5 Software

Chapter 5 Software. Information Technology in Theory By Pelin Aksoy and Laura DeNardis. Objectives. Learn what exactly constitutes software Gain familiarity with the various types of programming languages Distinguish between different types of operating systems. Objectives (continued).

abigail
Download Presentation

Chapter 5 Software

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. Chapter 5Software Information Technology in Theory By Pelin Aksoy and Laura DeNardis

  2. Objectives • Learn what exactly constitutes software • Gain familiarity with the various types of programming languages • Distinguish between different types of operating systems Information Technology in Theory

  3. Objectives (continued) • Understand the difference between system software and application software • Learn about the software development process • Understand the concept of open source software and related issues Information Technology in Theory

  4. What is Software? • A series of data and instructions written by programmers (or sometimes automatically generated) using a programming language, to perform a certain task Information Technology in Theory

  5. Software versus Hardware • Hardware: a tangible device that physically performs particular tasks • Software does not physically perform these tasks itself • Software provides a series of instructions to the hardware to perform a task • Software enables the hardware to serve many functions, or in other terms, to be programmed Information Technology in Theory

  6. Programming Languages • Low-level programming language • Short, targeted operations • For example, assembly language • Used for highly specialized programming, such as manipulating the contents of the microprocessor and directly controlling the functions of the ALU • Programmers who write in assembly language are familiar with the details of the microprocessor • Each type has a different architecture and requires different instructions for decoding and execution Information Technology in Theory

  7. Assembly Language • Programmers who write in assembly language are familiar with the details of the microprocessor • Each type has a different architecture and requires different instructions for decoding and execution Information Technology in Theory

  8. Device Driver • Assembly language programming is commonly used to create device driversand to create instructions stored on the BIOS chip on the motherboard • A device driver is software that provides an interface between peripheral components, such as printers and mice, and a computer’s other hardware components • The computer’s BIOS chip supplies the vital steps that the computer must follow as it is switched on Information Technology in Theory

  9. Machine Language • The instructions and data that correspond to the software and reside in RAM are in the form of ones and zeros, or machine language • When programmers write in any assembly language or high-level language, their programs are eventually converted to machine language so they can be interpreted and executed by the microprocessor • Utility programs are used to make these conversions • For example, a program written in assembly language is converted to machine language by a program called an assembler Information Technology in Theory

  10. High-Level Programming Languages • Words used to compose instructions in most high-level languages are closer to sentences used regularly in the English language • For example, Java or C++ • High-level language instructions do not deal with the details of microprocessor architecture • It is easier to program using a high-level programming language, such as Java, rather than using assembly language Information Technology in Theory

  11. Compiler • A program written in a high-level language such as C++ may be converted to a low-level machine language using a program called a compiler • A decompiler can perform the reverse operation Information Technology in Theory

  12. Source Code • After a programmer writes a program, it is referred to as the source code, which can be converted to a form that is executable by the computer • This form is also called object code • Object code basically consists of a string of ones and zeros, which is eventually what the CPU decodes and executes Information Technology in Theory

  13. Another Taxonomy of Programming Languages • First-generation languages (1GL) • Second-generation languages (2GL) • Third-generation languages (3GL) • Fourth-generation languages (4GL) • Fifth-generation languages (5GL) Information Technology in Theory

  14. Another Taxonomy of Programming Languages (continued) • First-generation languages (1GL) • Almost always refer to machine language • Second-generation languages (2GL) • Refer to types of assembly language • 3GLs, 4GLs, and 5GLs have syntaxes that are progressively easier for people to understand and generally have more sophisticated instructions Information Technology in Theory

  15. Evolution of Programming Languages Information Technology in Theory

  16. Java • Developed by Sun Microsystems • Java programs can basically be executed on any operating system or machine • Java programs are first compiled into a form called Java bytecode, which is very close to machine language instructions • After compiling, the Java bytecode is interpreted and executed Information Technology in Theory

  17. Java Code Information Technology in Theory

  18. Scripting Languages • Some programming languages, including JavaScript, are classified as scripting languages • Script programs can be stored without being compiled into machine language • Scripts are short programs that other applications interpret and execute • Examples include JavaScript and VBScript Information Technology in Theory

  19. Markup Languages • Markup languages compose and format Web pages • Hypertext Markup Language (HTML) • Extensible Markup Language (XML) • A markup language can be used to encapsulate text, images, and audio within special codes called tags to display the contents of your Web page in a browser using specific formats Information Technology in Theory

  20. Markup Languages (continued) Information Technology in Theory

  21. Types of Software • Other than programming languages, types of software can be categorized into system software and application software • System software • Operating systems • Compilers, assemblers, and device drivers • Application software • Electronic commerce, gaming, word processing, Web browsers, and image editing Information Technology in Theory

  22. Operating System • Provides a user-friendly interface to the computer • Manages directories, folders, and files • Manages memory • Manages hardware and software • Provides computer networking functions Information Technology in Theory

  23. Operating System Timeline Information Technology in Theory

  24. Linux • Linux is an operating system developed by Linus Torvalds when he was a student • Open source code • Source code available for anyone to view and modify • Linux can be downloaded for free • Frequently used on servers and desktops Information Technology in Theory

  25. Application Programs • Enterprise applications • Productivity and Office applications • Communications and information-sharing software • Entertainment and media development software • Other applications Information Technology in Theory

  26. Enterprise Software • Large applications that assist in business functions • Enables interactions with customers, business partners, and suppliers • Helps manage internal business processes Information Technology in Theory

  27. Examples of Enterprise Software • Salesforce automation • Financial management • Supply chain management • Customer relationship management • Industry-specific applications • Point-of-sale software in retail • Route management software in transportation • Patient management in health care Information Technology in Theory

  28. Database Management System (DBMS) • Many large enterprise applications rely on an underlying DBMS • Enterprise applications usually require enormous stores of data describing inventory items, customers, financial records, and other business transactions • Databases: structured collections of records that a computer can access Information Technology in Theory

  29. Database Management System (DBMS) (continued) • A DBMS manages the organization of these records and queries them in response to requests from users or other software programs • The records stored in databases are organized in a schema: a specification for how records are arranged in the database and how they are linked in relationship to other records Information Technology in Theory

  30. Productivity and Office Applications • Create and view documents, generate Web pages, prepare presentations, create spreadsheets, and organize data to increase productivity. • Microsoft Office Suite (Word, PowerPoint, Excel, Access) • OpenOffice • Adobe Acrobat • Adobe Photoshop • Macromedia Dreamweaver Information Technology in Theory

  31. Communications and Information-Sharing Software • Electronic mail software, text messaging, and programs that enable voice over the Internet • Other applications, such as Web browsers and FTP access software, enable users to access and share information. • Applications that provide these functions include Google Talk, Microsoft Outlook, Yahoo Messenger, MSN Messenger, Internet Explorer, Mozilla Firefox, WS_FTP, and Skype Information Technology in Theory

  32. Entertainment and Media Development Software • Creation, sharing, dissemination, and accessing of entertainment and media • Media editing software lets users produce digital images, video, music, and graphic designs • Other applications enable users to download and listen to digital music and watch video clips • Entertainment software includes iTunes, LimeWire, RealOne, QuickTime, and Windows Media Player Information Technology in Theory

  33. The Software Development Process • Most people use commercial, off-the-shelf software such as Microsoft Excel, but many software projects require customized development to meet unique needs • Organizations that need such software work either with in-house developers or third-party developers and consultants to define their requirements and constraints • For example, a hospital might require a customized billing application to manage its billing process Information Technology in Theory

  34. Waterfall Model • The waterfall model consists of several critical phases, each of which must be fully completed before the next stage can commence • During the definition phase, the software company interacts with the customer to clarify needs and constraints • Before actually writing code, the software development team must thoroughly understand the customer’s requirements and limitations Information Technology in Theory

  35. Customer Constraints • Examples of constraints on the customer’s side may include: • Economic limitations • Time constraints for software implementation • Maintenance costs for managing the product Information Technology in Theory

  36. Customer Requirements • Requirements may include: • Detailed business-specific functions that the software will support • Information about who will use the product • Security criteria • Specifications for interacting with existing data stores Information Technology in Theory

  37. Software Design • Once requirements are clearly defined, a design team works to create the software’s design architecture • Accounting for tools that would be most useful to ensure compatibility with the customer’s systems • Minimizing problems that the development teams are likely to face • Software programmers and engineers then start to write programs using the selected approach Information Technology in Theory

  38. Software Testing • The software is tested to remove and fix any errors, or bugs • Testing may be implemented in two stages called alpha testing and beta testing • Alpha testing is normally conducted by the software development team • Then the software undergoes beta testing, and a beta version of the complete software is released to the customer • Customers report bugs to the developer Information Technology in Theory

  39. Waterfall Model Information Technology in Theory

  40. Spiral Model • Heavily concerned with risk • Tries to minimize risk during every stage • The development team tries to find alternatives to reduce risk before proceeding with the next phase Information Technology in Theory

  41. Iterative Model • Relies on breaking down the project into smaller segments • Develops each segment in a limited amount of time • Segments may not necessarily be completed in a specific order • Results are combined to fine-tune the end product Information Technology in Theory

  42. Open Source Software • Source code is openly available to the public • Anyone can view, copy, or change the software without having to pay licensing fees or royalties • The development of open source code is usually collaborative, with multiple parties and interests producing the code and improving it for mutual benefit Information Technology in Theory

  43. Open Source Example: OpenOffice • A software suite of office applications, including word-processing, spreadsheet, presentation, database, and graphics software • Can be downloaded for free at www.openoffice.org Information Technology in Theory

  44. Open Source Example: Apache HTTP Server • A popular Web server application that is freely available to anyone who wants to establish a Web server Information Technology in Theory

  45. Open Source Example: Linux • A prominent example of an open source operating system • Primarily used for servers • Some people use Linux as their primary operating system Information Technology in Theory

  46. Open Source Example: Mozilla Firefox • A popular open source Web browser that is freely available to download from the Internet • Probably the most downloaded open source application Information Technology in Theory

  47. Open Source Example: MySQL • A popular open source database used for managing large amounts of data Information Technology in Theory

  48. Summary • Software is the code that systematically instructs hardware to perform certain tasks • Software developers use programming languages to create software; these languages can be classified as low-level languages, such as machine code and assembly language, and high-level languages, such as Java and C++, that are syntactically easier for a person to understand • The software industry sometimes describes programming languages in historical generations ranging from first-generation languages (1GLs) to higher-level languages, such as 5GLs Information Technology in Theory

  49. Summary (continued) • Programs may be compiled, interpreted, or translated • Software is traditionally classified as system software, such as operating systems, or application software, such as Microsoft Office • Operating systems are responsible for a variety of functions, including providing an interface to the computer; managing directories, folders, and files; managing memory; managing hardware and software; and providing computer networking functions Information Technology in Theory

  50. Summary (continued) • The software development process involves several stages, including definition, design, programming, testing, releasing, training, and maintenance and support • Open source software’s source code is openly available to the public; anyone can view, copy, or change the software Information Technology in Theory

More Related