Computer Systems This Book Is About Writing Well-Designed Software

Total Page:16

File Type:pdf, Size:1020Kb

Computer Systems This Book Is About Writing Well-Designed Software 1 computer systems This book is about writing well-designed software. To understand software, we must first have a fundamental understanding of its role in a computer system. Hardware and software cooperate in a chapter computer system to accomplish objectives complex tasks. The nature of ◗ Describe the relationship between that cooperation and the purpose hardware and software. of various hardware components ◗ Define various types of software are important prerequisites to and how they are used. the study of software develop- ◗ Identify the core hardware compo- ment. Furthermore, computer nents of a computer and explain their purposes. networks have revolutionized the manner in which computers are ◗ Explain how the hardware compo- nents interact to execute programs used, and they now play a key and manage data. role in even basic software ◗ Describe how computers are con- development. This chapter nected together into networks to share information. explores a broad range of com- puting issues, laying the founda- ◗ Explain the impact and significance of the Internet and the World Wide tion for the study of software Web. development. ◗ Introduce the Java programming language. ◗ Describe the steps involved in pro- gram compilation and execution. ◗ Introduce graphics and their repre- sentations. 2 CHAPTER 1 computer systems 1.0 introduction We begin our exploration of computer systems with an overview of computer processing, defining some fundamental terminology and showing how the key pieces of a computer system interact. basic computer processing A computer system is made up of hardware and software. The hardware compo- nents of a computer system are the physical, tangible pieces that support the com- puting effort. They include chips, boxes, wires, keyboards, speakers, disks, cables, plugs, printers, mice, monitors, and so on. If you can physically A computer system consists of touch it and it can be considered part of a computer system, then it is hardware and software that key computer hardware. concept work in concert to help us solve problems. The hardware components of a computer are essentially useless without instructions to tell them what to do. A program is a series of instructions that the hardware executes one after another. Software consists of programs and the data those programs use. Software is the intangible counterpart to the physical hardware components. Together they form a tool that we can use to solve problems. The key hardware components in a computer system are: ◗ central processing unit (CPU) ◗ input/output (I/O) devices ◗ main memory ◗ secondary memory devices Each of these hardware components is described in detail in the next section. For now, let’s simply examine their basic roles. The central processing unit (CPU) is the device that executes the individual commands of a program. Input/output (I/O) devices, such as the keyboard, mouse, and monitor, allow a human being to interact with the computer. Programs and data are held in storage devices called memory, which fall into two categories: main memory and secondary memory. Main memory is the stor- age device that holds the software while it is being processed by the CPU. Secondary memory devices store software in a relatively permanent manner. The most important secondary memory device of a typical computer system is the hard disk that resides inside the main computer box. A floppy disk is similar to a hard disk, but it cannot store nearly as much information as a hard disk. Floppy 1.0 introduction 3 disks have the advantage of portability; they can be removed temporarily or moved from computer to computer as needed. Other portable secondary memory devices include zip disks and compact discs (CDs). Figure 1.1 shows how information moves among the basic hardware compo- nents of a computer. Suppose you have an executable program you wish to run. The program is stored on some secondary memory device, such as a hard disk.When you instruct the computer to execute your program, a copy of the program is brought in from secondary memory and stored in concept To execute a program, the key main memory. The CPU reads the individual program instructions computer first copies the pro- from main memory. The CPU then executes the instructions one at a gram from secondary memory time until the program ends. The data that the instructions use, such to main memory. The CPU then reads the program as two numbers that will be added together, are also stored in main instructions from main mem- memory. They are either brought in from secondary memory or read ory, executing them one at a from an input device such as the keyboard. During execution, the pro- time until the program ends. gram may display information to an output device such as a monitor. The process of executing a program is fundamental to the operation of a com- puter. All computer systems basically work in the same way. software categories Software can be classified into many categories using various criteria. At this point we will simply differentiate between system programs and application programs. The operating system is the core software of a computer. It performs two important functions. First, it provides a user interface that allows the user to Hard disk Keyboard Main CPU memory Floppy disk Monitor figure 1.1 A simplified view of a computer system 4 CHAPTER 1 computer systems interact with the machine. Second, the operating system manages The operating system provides a user interface and manages computer resources such as the CPU and main memory. It determines key concept computer resources. when programs are allowed to run, where they are loaded into mem- ory, and how hardware devices communicate. It is the operating sys- tem’s job to make the computer easy to use and to ensure that it runs efficiently. Several popular operating systems are in use today. Windows 98, Windows NT, Windows 2000, and Windows XP are several versions of the operating sys- tem developed by Microsoft for personal computers. Various versions of the Unix operating system are also quite popular, especially in larger computer systems. A version of Unix called Linux was developed as an open source project, which means that many people contributed to its development and its code is freely available. Because of that, Linux has become a particular favorite among some users. Mac OS is the operating system used for computing systems developed by Apple Computers. An application is a generic term for just about any software other than the operating system. Word processors, missile control systems, database managers, Web browsers, and games can all be considered application programs. Each application program has its own user interface that allows the user to interact with that particular program. The user interface for most modern operating systems and applications is a graphical user interface (GUI), which, as the name implies, make use of graphical screen elements. These elements include: ◗ windows, which are used to separate the screen into distinct work areas ◗ icons, which are small images that represent computer resources, such as a file ◗ pull-down menus, which provide the user with lists of options ◗ scroll bars, which allow the user to move up and down in a particular window ◗ buttons, which can be “pushed” with a mouse click to indicate a user selection The mouse is the primary input device used with GUIs; thus, GUIs are some- times called point-and-click interfaces. The screen shot in Fig. 1.2 shows an example of a GUI. The interface to an application or operating system is an important part of the software because it is the only part of the program with which the user directly interacts. To the user, the interface is the program. Chapter 9 discusses the cre- ation of graphical user interfaces. 1.0 introduction 5 figure 1.2 An example of a graphical user interface (GUI) (Palm Desktop™ courtesy of 3COM Corporation) concept The focus of this book is the development of high-quality applica- As far as the user is con- key tion programs. We explore how to design and write software that will cerned, the interface is the perform calculations, make decisions, and control graphics. We use the program. Java programming language throughout the text to demonstrate vari- ous computing concepts. digital computers Two fundamental techniques are used to store and manage information: analog and digital. Analog information is continuous, in direct proportion to the source of the information. For example, a mercury thermometer is an analog device for measuring temperature. The mercury rises in a tube in direct proportion to the temperature outside the tube. Another example of analog information is an elec- tronic signal used to represent the vibrations of a sound wave. The signal’s volt- age varies in direct proportion to the original sound wave. A stereo amplifier sends this kind of electronic signal to its speakers, which vibrate to reproduce the sound. We use the term analog because the signal is directly analogous to the information it represents. Figure 1.3 graphically depicts a sound wave captured by a microphone and represented as an electronic signal. 6 CHAPTER 1 computer systems Sound wave Analog signal of the sound wave figure 1.3 A sound wave and an electronic analog signal that represents the wave Digital technology breaks information into discrete pieces and represents those pieces as numbers. The music on a compact disc is stored digitally, as a series of numbers. Each number represents the voltage level of one specific instance of the recording. Many of these measurements are taken in a short period of time, per- haps 40,000 measurements every second. The number of measurements per sec- ond is called the sampling rate. If samples are taken often enough, the discrete voltage measurements can be used to generate a continuous analog signal that is “close enough” to the original.
Recommended publications
  • What Is Project Management Software?
    HOW TO SELECT & IMPLEMENT PROJECT MANAGEMENT SOFTWARE Considering a new PM solution? Don’t forget: Picking a product is only half the journey—getting your team to actually use the software is the ultimate goal. To help you reach your implementation destination, we’ve created this road map, and we’re guiding you through the process from tool selection to user adoption. Each stop along the path represents an important step in the process—skipping ahead will only jeopardize your chance of success! StartStart HereHere CHANGE This team’s They should meet MANAGEMENT responsibility? with teams and leaders to understand Establish an Organizational Identify the need workflows, goals and Change Management Team for change. pain points. BACK TO START If you haven’t established HINT: a change management team. A need for change might be a process that can be improved, a pain point that can be mitigated or a near-term goal you hope to achieve. STAKEHOLDER ANALYSIS Perform a Stakeholder Analysis Use these requirements 2 SPACES BACK to create a list of must-have capabilities. Identify end users and If you haven’t identified their requirements. the needs of your team. These will drive your search & selection process. SOFTWARE HINT: EVALUATION Create a Shortlist Identifying “must-have” vs. “nice-to-have” capabilities will help focus your search on products that are most valuable to your team. Read reviews to see how peers rate each tool for qualities such as: ease of use and support. Set up a vendor demo for each stakeholder group. Users can evaluate how the tool aligns with Keep the following existing workflows, meets Ease of Use considerations in mind immediate needs and when evaluating Timeline for drives near-term goals.
    [Show full text]
  • APR1400-Z-J-NR-14003-NP, Rev 0, "Software Program Manual."
    Non-Proprietary Software Program Manual APR1400-Z-J-NR-14003-NP, Rev.0 Software Program Manual Revision 0 Non-Proprietary November 2014 Copyright ⓒ 2014 Korea Electric Power Corporation & Korea Hydro & Nuclear Power Co., Ltd. All Rights Reserved KEPCO & KHNP Non-Proprietary Software Program Manual APR1400-Z-J-NR-14003-NP, Rev.0 REVISION HISTORY Revision Date Page Description November 0 All First Issue 2014 This document was prepared for the design certification application to the U.S. Nuclear Regulatory Commission and contains technological information that constitutes intellectual property. Copying, using, or distributing the information in this document in whole or in part is permitted only by the U.S. Nuclear Regulatory Commission and its contractors for the purpose of reviewing design certification application materials. Other uses are strictly prohibited without the written permission of Korea Electric Power Corporation and Korea Hydro & Nuclear Power Co., Ltd. KEPCO & KHNP ii Non-Proprietary Software Program Manual APR1400-Z-J-NR-14003-NP, Rev.0 ABSTRACT This technical report (TeR) provides the software engineering process for digital computer-based instrumentation and control (I&C) systems of the APR1400. This report describes the processes which ensure the reliability and design quality of the software throughout its entire life cycle. By implementing the processes in this report, the digital I&C system software achieves the following: Desired level of quality and reliability required for nuclear power plants (NPPs) Safety-related I&C functions for protecting and securing the safe operation of the NPPs Satisfactory conformance to nuclear codes and standards KEPCO & KHNP iii Non-Proprietary Software Program Manual APR1400-Z-J-NR-14003-NP, Rev.0 TABLE OF CONTENTS 1.0 INTRODUCTION .................................................................................................
    [Show full text]
  • Datasheet Fujitsu SPARC M10-4S
    Datasheet Fujitsu SPARC M10-4S Datasheet Fujitsu SPARC M10-4S Everything your mission critical enterprise application needs in stability, scalability and asset protection Only the best with Fujitsu SPARC Enterprise A SPARC of steel Based on robust SPARC architecture and running the Fujitsu SPARC M10-4S server is the nearest thing you leading Oracle Solaris 11, Fujitsu SPARC M10-4S can get to an open mainframe. Absolutely rock servers are ideal for customers needing highly solid, dependable and sophisticated, but with the scalable, reliable servers that increase their system total Solaris binary compatibility necessary to both utilization and performance through virtualization. protect your investments and enhance your business. The combined leverage of Fujitsu’s expertise in mission-critical computing technologies and Its rich virtualization eco-system of extended high-performance processor design, with Oracle’s partitioning and Solaris Containers coupled with expertise in open, scalable, partition-based network dynamic reconfiguration, means non-stop operation computing, provides the overall flexibility to meet and total resource utilization at no extra cost. any task. Benchmark leading performance with the world’s best applications and outstanding processor scalability just add to the capabilities of this most expandable of system platform. Page 1 of 6 www.fujitsu.com/sparc Datasheet Fujitsu SPARC M10-4S Features and benefits Main features Benefits Supreme performance The supreme performance in all commercial servers Highest performance
    [Show full text]
  • Oracle Solaris and Oracle SPARC Systems—Integrated and Optimized for Mission Critical Computing
    An Oracle White Paper September 2010 Oracle Solaris and Oracle SPARC Servers— Integrated and Optimized for Mission Critical Computing Oracle Solaris and Oracle SPARC Systems—Integrated and Optimized for Mission Critical Computing Executive Overview ............................................................................. 1 Introduction—Oracle Datacenter Integration ....................................... 1 Overview ............................................................................................. 3 The Oracle Solaris Ecosystem ........................................................ 3 SPARC Processors ......................................................................... 4 Architected for Reliability ..................................................................... 7 Oracle Solaris Predictive Self Healing ............................................ 7 Highly Reliable Memory Subsystems .............................................. 9 Oracle Solaris ZFS for Reliable Data ............................................ 10 Reliable Networking ...................................................................... 10 Oracle Solaris Cluster ................................................................... 11 Scalable Performance ....................................................................... 14 World Record Performance ........................................................... 16 Sun FlashFire Storage .................................................................. 19 Network Performance ..................................................................
    [Show full text]
  • Threading SIMD and MIMD in the Multicore Context the Ultrasparc T2
    Overview SIMD and MIMD in the Multicore Context Single Instruction Multiple Instruction ● (note: Tute 02 this Weds - handouts) ● Flynn’s Taxonomy Single Data SISD MISD ● multicore architecture concepts Multiple Data SIMD MIMD ● for SIMD, the control unit and processor state (registers) can be shared ■ hardware threading ■ SIMD vs MIMD in the multicore context ● however, SIMD is limited to data parallelism (through multiple ALUs) ■ ● T2: design features for multicore algorithms need a regular structure, e.g. dense linear algebra, graphics ■ SSE2, Altivec, Cell SPE (128-bit registers); e.g. 4×32-bit add ■ system on a chip Rx: x x x x ■ 3 2 1 0 execution: (in-order) pipeline, instruction latency + ■ thread scheduling Ry: y3 y2 y1 y0 ■ caches: associativity, coherence, prefetch = ■ memory system: crossbar, memory controller Rz: z3 z2 z1 z0 (zi = xi + yi) ■ intermission ■ design requires massive effort; requires support from a commodity environment ■ speculation; power savings ■ massive parallelism (e.g. nVidia GPGPU) but memory is still a bottleneck ■ OpenSPARC ● multicore (CMT) is MIMD; hardware threading can be regarded as MIMD ● T2 performance (why the T2 is designed as it is) ■ higher hardware costs also includes larger shared resources (caches, TLBs) ● the Rock processor (slides by Andrew Over; ref: Tremblay, IEEE Micro 2009 ) needed ⇒ less parallelism than for SIMD COMP8320 Lecture 2: Multicore Architecture and the T2 2011 ◭◭◭ • ◮◮◮ × 1 COMP8320 Lecture 2: Multicore Architecture and the T2 2011 ◭◭◭ • ◮◮◮ × 3 Hardware (Multi)threading The UltraSPARC T2: System on a Chip ● recall concurrent execution on a single CPU: switch between threads (or ● OpenSparc Slide Cast Ch 5: p79–81,89 processes) requires the saving (in memory) of thread state (register values) ● aggressively multicore: 8 cores, each with 8-way hardware threading (64 virtual ■ motivation: utilize CPU better when thread stalled for I/O (6300 Lect O1, p9–10) CPUs) ■ what are the costs? do the same for smaller stalls? (e.g.
    [Show full text]
  • Computer Architectures an Overview
    Computer Architectures An Overview PDF generated using the open source mwlib toolkit. See http://code.pediapress.com/ for more information. PDF generated at: Sat, 25 Feb 2012 22:35:32 UTC Contents Articles Microarchitecture 1 x86 7 PowerPC 23 IBM POWER 33 MIPS architecture 39 SPARC 57 ARM architecture 65 DEC Alpha 80 AlphaStation 92 AlphaServer 95 Very long instruction word 103 Instruction-level parallelism 107 Explicitly parallel instruction computing 108 References Article Sources and Contributors 111 Image Sources, Licenses and Contributors 113 Article Licenses License 114 Microarchitecture 1 Microarchitecture In computer engineering, microarchitecture (sometimes abbreviated to µarch or uarch), also called computer organization, is the way a given instruction set architecture (ISA) is implemented on a processor. A given ISA may be implemented with different microarchitectures.[1] Implementations might vary due to different goals of a given design or due to shifts in technology.[2] Computer architecture is the combination of microarchitecture and instruction set design. Relation to instruction set architecture The ISA is roughly the same as the programming model of a processor as seen by an assembly language programmer or compiler writer. The ISA includes the execution model, processor registers, address and data formats among other things. The Intel Core microarchitecture microarchitecture includes the constituent parts of the processor and how these interconnect and interoperate to implement the ISA. The microarchitecture of a machine is usually represented as (more or less detailed) diagrams that describe the interconnections of the various microarchitectural elements of the machine, which may be everything from single gates and registers, to complete arithmetic logic units (ALU)s and even larger elements.
    [Show full text]
  • Software: a Primer for Managers a Gallaugher.Com Chapter Provided Free to Faculty & Students for Non-Commercial Use © Copyright 1997-2009, John M
    Understanding Software: A Primer for Managers a gallaugher.com chapter provided free to faculty & students for non-commercial use © Copyright 1997-2009, John M. Gallaugher, Ph.D. – for more info see: http://www.gallaugher.com/chapters.html Last modified: March 8, 2009 (draft version: comments very much welcomed) Note: this is an earlier version of the chapter. All chapters updated after July 2009 are now hosted (and still free) at http://www.flatworldknowledge.com. For details see the ‘Courseware’ section of http://gallaugher.com INTRODUCTION We know computing hardware is getting faster and cheaper, creating all sorts of exciting and disruptive opportunities for the savvy manager. But what’s really going on inside the box? It’s software that makes the magic of computing happen. Without software, your PC would be a heap of silicon, wrapped in wires encased in plastic and metal. But it’s the instructions—the software code--that enable a computer to do something wonderful, driving the limitless possibilities of information technology. Software is everywhere. An inexpensive cell phone has about 1 million lines of code, while the average car contains nearly 100 million1. In this chapter we’ll take a peek inside the chips to understand what software is. There are a lot of terms associated with software: operating systems, applications, enterprise software, distributed systems, and more. We’ll define these terms up front, and put them in a managerial context . A follow‐up chapter, “Software in Flux”, will focus on changes impacting the software business, including open source software, software as a service (SaaS), and cloud computing.
    [Show full text]
  • IDC's Worldwide Semiannual IT Spending Guide by Industry and Company Size Taxonomy, 2018
    ANALYZE THE IDC FUTURE Taxonomy IDC's Worldwide Semiannual IT Spending Guide by Industry and Company Size Taxonomy, 2018 Stephen Minton Jessica Goepfert Angela Vacca Ivana Slaharova Roberto Membrila Naoko Iwamoto Ashutosh Bisht Nikhil Anand Jebin George IDC'S WORLDWIDE INDUSTRY AND COMPANY SIZE TAXONOMY FIGURE 1 IDC's Standard Industries, 2018 Manufacturing Distribution and Finance Infrastructure Public Sector Consumer and Resources Services I I I Discrete Telecommunica- Federalfcentral Banking Retail Consurner manufacturing bons government I I I I Process State,local Insurance Wholesale Utilities manufacturing government I I I I Securities and Resource Healthcare investment Transportation industries provider services I I I DUSTRIES Professional IN Construction Education services I Personal arid consumer services I Media Source: IDC, 2018 January 2018, IDC #US43526718 INDUSTRY AND COMPANY SIZE TAXONOMY CHANGES FOR 2018 There have been no major changes to the overall industry and company size taxonomy since the 2H16 version, but the taxonomy structure has been reorganized to align with other IDC research including the Worldwide Black Book and the latest versions of worldwide tracker products. These changes include the following: . Telecom services has been added as a new technology group and includes fixed voice, fixed data, mobile voice, and mobile data services. Where telecom services are included in a deliverable, a new taxonomy dimension called "spending group" is also now included to differentiate between IT spending and telecom spending. Telecom spending includes telecom services, as listed previously, and telecom equipment (telecom equipment is carrier-specific equipment including wireless infrastructure, purchased by telecom service providers for the delivery of public telecom services).
    [Show full text]
  • Appendix D – NTETC Software Sector
    NTEP Committee 2009 Final Report Appendix D – NTETC Software Sector Appendix D National Type Evaluation Technical Committee Software Sector May 20 - 21, 2008 – Reynoldsburg, Ohio Meeting Summary Agenda Items Carryover Items ........................................................................................................................................................ D2 1.a. NTETC Software Sector Mission ................................................................................................................. D2 1.b. NCWM/NTEP Policies – Issuing Certificates of Conformances (CC) for Software ................................... D2 1.c. Definitions for Software Based Devices ...................................................................................................... D3 1.d. Software Identification/Markings ................................................................................................................. D5 2. Identification of Certified Software.............................................................................................................. D7 3. Software Protection/Security ........................................................................................................................ D9 4. Software Maintenance and Reconfiguration .............................................................................................. D16 5. Verification in the Field, by the Weights and Measures Inspector ............................................................. D19 6. NTEP Application
    [Show full text]
  • CPA's Guide to Restaurant Management Strategies : Accounting, Cost Controls, and Analysis; Marsha Huber
    University of Mississippi eGrove American Institute of Certified Public Accountants Guides, Handbooks and Manuals (AICPA) Historical Collection 2000 CPA's guide to restaurant management strategies : accounting, cost controls, and analysis; Marsha Huber Follow this and additional works at: https://egrove.olemiss.edu/aicpa_guides Part of the Accounting Commons, and the Taxation Commons Recommended Citation Huber, Marsha, "CPA's guide to restaurant management strategies : accounting, cost controls, and analysis;" (2000). Guides, Handbooks and Manuals. 130. https://egrove.olemiss.edu/aicpa_guides/130 This Book is brought to you for free and open access by the American Institute of Certified Public Accountants (AICPA) Historical Collection at eGrove. It has been accepted for inclusion in Guides, Handbooks and Manuals by an authorized administrator of eGrove. For more information, please contact [email protected]. s G u i d e t o R e s t a u r a n t M a n a g e m e n t S A CPA's Guide to t r a t e g i e s : Restaurant A c c o u n t Management i n g , C o s t Strategies: C o n t r o l s , Accounting, Cost Controls, a n d A n a and Analysis l y s i s A I C P A Marsha Huber, CPA A m e r i c a n I n s t i t u t e A CPA's Guide to o f C e Restaurant r t i f i e d Management P u b l i c Strategies: A c c o u n Accounting, Cost Controls, t a n t s and Analysis Marsha Huber, CPA Notice to Readers A CPA’s Guide to Restaurant Management Strategies does not represent an official position of the American Institute of Certified Public Accountants, and it is distributed with the understanding that the author and publisher are not rendering legal, accounting, or other professional services in this publication.
    [Show full text]
  • DOE Federal Source Code Policy
    DOE Federal Source Code Policy DOE CODE is a software service platform and search tool that allows for scientific and business software to be provided to the U.S. Department of Energy (DOE). DOE CODE provides functionality for collaboration, archiving, and discovery of scientific and business software. DOE CODE replaces the Energy Science and Technology Software Center (ESTSC). The DOE Office of Scientific and Technical Information (OSTI) is charged with fulfilling the Department's responsibilities to collect, preserve, and disseminate scientific and technical information, including software, emanating from DOE R&D activities. In addition to OSTI's charge for scientific software, the Office of the Chief Information Officer (OCIO) and OSTI are partnering to leverage DOE CODE to maintain a comprehensive inventory of DOE-funded custom-developed business software. In accordance with Office of Management and Budget Memorandum M-16-21, Federal Source Code Policy: Achieving Efficiency, Transparency, and Innovation through Reusable and Open Source Software, DOE CODE will fulfill requirements to maintain an inventory of all DOE-funded custom-developed software and to report this inventory to the government-wide Code.gov website. When providing software and code to DOE CODE, users will first need to identify what type of software they are submitting - scientific or business software. Users who are unsure of the type of software are encouraged to please work with their site's Dissemination Authority. Note: throughout this policy, the terms "software"
    [Show full text]
  • Open Source Design Software Overview
    SEGD.org Open Source Design Software prepared by Chad Eby Herron School of Art + Design at IUPUI SEGD Academic Task Force SEGD Training Module Training SEGD Introduction to EGD Overview What is Open Source? Free and open source software (sometimes called FOSS) tools are developed “in the open” so that anyone may inspect an application’s source code—the underlying set of instructions that make the application work—that is hidden by design in proprietary tools. Not only is the source code visible, it is generally permissible to use, re- distribute and modify without restriction. This makes it free (as in freedom). As a side effect, many open source software tools are also free (as in beer), meaning image credit they are usable at no cost. Photo by Marc Mueller from Pexels Open Source Design Software Overview Why Use Open Source? An open source design software tool may be attractive to individuals and organizations due to the transparent nature of its development, the lack of restrictions on distribution and use, the suitability for a niche purpose too small for commercial viability, the low cost/no cost aspect or some combination of these factors. As good as open source tools may seem at first blush, there are some caveats. FOSS projects, especially in the early stages, may have sporadic development cycles and are sometimes abandoned entirely. Even in projects that are actively developed and well established, the documentation for the tool may lag well behind the latest released version. Finally, since some FOSS tools are passion projects of individuals or small teams, the software user interface may be quite eccentric.
    [Show full text]