Integrated Development Environment

Total Page:16

File Type:pdf, Size:1020Kb

Integrated Development Environment Development Tools Integrated Development Environment Transforming Ideas Into Realities … The typical product development life cycle is comprised of smaller cycles – each representing an iterative process toward designing and refining an embedded system application. MPLAB® Integrated Development Environment (IDE) is designed to assist in all these cycles with an integrated application. MPLAB IDE helps engineers correlate information from the conceptual design phase through coding, debugging, optimization and programming. ™ www.microchip.com/tools Integrated Development Environment Software Tools Microchip Technology has established a reputation for its Free Software Components of MPLAB IDE comprehensive set of world-class, low-cost, easy-to-use ■ MPLAB SIM – High-speed software simulator features application development tools. The MPLAB certified tools peripheral simulation, complex stimulus injection and register help system designers quickly design, debug and program logging. MPLAB SIM executes your code and can be exercised PIC® microcontrollers (MCUs) and dsPIC® Digital Signal with stimulus signals from files, from mouse clicks and Controllers (DSCs) for specific applications. To date, from easily set up waveforms. The contents of variables and Microchip has shipped over half a million development special function registers can be logged to a file for analysis. systems. ■ PROGRAMMER’S TEXT EDITOR – Color-coded context easily shows typos and incorrect assembler and C statements. Full MPLAB®IDE debugging is performed while in the editor window, including Design – Implementation – Test – Production setting breakpoints, displaying variable values with mouse MPLAB IDE is Microchip’s free, integrated toolset for the over and setting trace ranges. development of PIC microcontroller and dsPIC digital ■ FULL-FEATURED DEBUGGER – Watch windows show C signal controller embedded applications. MPLAB IDE runs structures and arrays, as well as all variables from C and as a 32-bit application on MS Windows®, is easy to use assembler source. Step-over, step-into, step-out and run to and includes a host of free software components for fast cursor allow quick inspection of code operations. application development and super-charged debugging. ■ VISUAL DEVICE INITIALIZER MPLAB IDE also serves as a single, unified graphical user (VDI) – Tedious initialization code interface for additional Microchip and third-party software/ that previously required digging hardware development tools. Moving between tools is through data books and doing easy, and upgrading from the free simulator to MPLAB calculations is eliminated with this In-Circuit Debugger (ICD) 2 or the MPLAB In-Circuit graphical tool. Emulator (ICE) is effortless, since MPLAB IDE has the ■ VERSION CONTROL SUPPORT – same user interface for all tools. For MS Source Safe, CVS, PVCS Download MPLAB IDE and use the MPLAB IDE Quick and Subversion. Start manual to discover how easy it is to create an ■ MACRO ASSEMBLER – For all current Microchip devices, application. Write code, build and assemble your project with linker and librarian for building reusable code with MPLAB’s wizards, then test your code with the built- libraries. These can be used for assembly language in simulator and debugger. Explore the capabilities of all programming and are also delivered with the Microchip C Microchip microcontrollers. When you are ready to test Compilers. your application, use MPLAB ICD 2 to program a device ■ GRAPHICAL PROJECT MANAGER – Source files can be and analyze your hardware, or choose the PICSTART® Plus instantly opened and edited, different optimizations can or MPLAB PM3 programmers to program your code. For be applied to different source files and all project files are the ultimate in analysis, rely upon the MPLAB REAL ICE ™ displayed in the project window. in-circuit emulator to help find the toughest bugs and fine tune your application. Powerful Project Manager handles multiple projects Set break/trace points and all file types with a click of the mouse Simply move your mouse over a variable to view or Color-keyed editor makes modify source code debug easier Fully customizable watch windows to view and modify registers and memory locations Status bar updates on single step or run MPLAB® Integrated Development Environment Software and Hardware Tools Microchip’s MPLAB® C Compilers Real-Time Debugging and Highly Optimized Code for Microchip Microcontrollers Universal Programming Microchip’s MPLAB C compilers are full-featured, ANSI- Microchip’s debuggers and programmers work seamlessly compliant high-performance tools that are tightly integrated from the MPLAB IDE desktop, providing high-value tools with MPLAB IDE. Source level debugging allows single- across a price range that can be suited to your development stepping through C source code and inspecting variables and studio. Microchip’s fast service and repair policy ensures structures at critical points in the code. Being integrated with that downtime will be minimal in the case of failure, and MPLAB IDE allows a single environment to write source code, the various support avenues yield quick answers to most debug with the free MPLAB SIM simulator, and full hardware questions. debugging with MPLAB ICD 2 and MPLAB REAL ICE. Code can be programmed into the target using the hardware debuggers MPLAB® ICD 2 Debugger/Programmer (DV164005) or with Microchip’s MPLAB PM3 device programmer. Compiler The MPLAB ICD 2 in-circuit debugger is a switches and linker customizations are done within the low-cost, all-in-one, real-time debugger/ MPLAB IDE to provide a full graphical front end to these programmer solution for selected PIC powerful compilers. Editing errors and breakpoints instantly microcontrollers. Programs can be downloaded, switch to the corresponding lines in source code. Watch executed in real time and examined in detail windows show data structures with defined data types, using the proprietary debug functions of MPLAB IDE. Watch including floating point. variables and breakpoints can be set from symbolic labels Microchip’s C Compilers cover all the PIC18 MCUs, the dsPIC in C or assembly source code. Single-stepping can be done DSCs, PIC24 MCUs and the PIC32 MCUs. through C source line, assembly code level, or from a mixed C source and generated assembly level listing. MPLAB Many third-party RTOS plug-ins are available and MPLAB IDE ICD 2 can also be used as a development programmer for provides debugging features for RTOS-enabled applications. supported devices. Microchip’s C Compilers are based upon open source GCC code (except for the PIC18 compiler), and source code is MPLAB® REAL ICE™ Emulator (DV244005) freely available. MPLAB REAL ICE in-circuit emulator system is Microchip’s next generation Features: high-speed emulator for Microchip Flash ■ ANSI-compliant, with standard math, memory, data MCU and DSC devices. It debugs and conversion and math libraries programs PIC MCUs and dsPIC DSC Flash ■ Generates relocatable object modules and libraries for microcontrollers with the easy-to-use but enhanced code reuse powerful graphical user interface of the MPLAB IDE, included with each kit. MPLAB REAL ICE features low-cost, full-speed ■ Optimized to generate as much as 30% less code than emulation, debugging and programming. High-speed USB other commercial compilers 2.0 communications allows high-speed uploads of trace and ■ Strong support for in-line assembly when total control is monitoring of variables in real time. absolutely necessary MPLAB® PM3 Device Programmer (DV007004) ■ Allows complete freedom to mix C and assembler The easy-to-use MPLAB PM3 device modules in a single project programmer operates with a PC or as a ■ Extensive libraries including Microchip peripheral libraries stand-alone unit, and programs the entire ■ Multiple optimization levels PIC microcontroller series as well as current dsPIC30F DSCs. Features include: ■ Full user control over data and code memory allocation Serialized Quick Turn Programming ■ Full interrupt support (SQTP SM) and alternate DOS command line interface for batch ■ Free upgrades control. MPLAB PM3 accepts PRO MATE® II socket modules via an adapter (sold separately), large easy-to-read display, ■ Support for DSP intrinsics (for dsPIC DSCs) field-upgradable firmware for quick new device support, and ■ Download free unrestricted use student editions and the Secure Digital (SD) and Multimedia Card (MMC). free MPLAB IDE at www.microchip.com Hardware Tools, Demonstration and Evaluation Boards Learning Technology and Quick Prototyping Explorer 16 Development Board (DM240001) PICDEM™ FS-USB Demonstration/Evaluation Board The Explorer 16 development board is a (DM163025) %XPLORERæ ææææææææ$EVELOPOMENTæ"OARD low-cost, efficient development board to The PICDEM FS-USB is a evaluate the features and performance demonstration and evaluation board of Microchip’s new PIC24 microcontroller for the PIC18F4550 family of Flash and dsPIC33 digital signal controller microcontrollers with full-speed USB families. Coupled with the MPLAB ICD 2 2.0 interface. The board contains a in-circuit debugger, real-time emulation and debug facilities PIC18F4550 microcontroller in a 44-pin TQFP package, speed evaluation and prototyping of application circuitry. The representing the superset of the entire family of devices. Explorer 16 features two interchangeable Plug-In Modules (PIMs), one each for the PIC24FJ128GA010 and the MPLAB Starter Kits dsPIC33FJ256GP710 DSC. MPLAB Starter Kits are a complete hardware and software solution
Recommended publications
  • KDE 2.0 Development, Which Is Directly Supported
    23 8911 CH18 10/16/00 1:44 PM Page 401 The KDevelop IDE: The CHAPTER Integrated Development Environment for KDE by Ralf Nolden 18 IN THIS CHAPTER • General Issues 402 • Creating KDE 2.0 Applications 409 • Getting Started with the KDE 2.0 API 413 • The Classbrowser and Your Project 416 • The File Viewers—The Windows to Your Project Files 419 • The KDevelop Debugger 421 • KDevelop 2.0—A Preview 425 23 8911 CH18 10/16/00 1:44 PM Page 402 Developer Tools and Support 402 PART IV Although developing applications under UNIX systems can be a lot of fun, until now the pro- grammer was lacking a comfortable environment that takes away the usual standard activities that have to be done over and over in the process of programming. The KDevelop IDE closes this gap and makes it a joy to work within a complete, integrated development environment, combining the use of the GNU standard development tools such as the g++ compiler and the gdb debugger with the advantages of a GUI-based environment that automates all standard actions and allows the developer to concentrate on the work of writing software instead of managing command-line tools. It also offers direct and quick access to source files and docu- mentation. KDevelop primarily aims to provide the best means to rapidly set up and write KDE software; it also supports extended features such as GUI designing and translation in con- junction with other tools available especially for KDE development. The KDevelop IDE itself is published under the GNU Public License (GPL), like KDE, and is therefore publicly avail- able at no cost—including its source code—and it may be used both for free and for commer- cial development.
    [Show full text]
  • Note on Using the CS+ Integrated Development Environment
    Tool News RENESAS TOOL NEWS on April 16, 2015: 150416/tn2 Note on Using the CS+ Integrated Development Environment When using the CS+ IDE, take note of the problem described in this note regarding the following point. Statements in source code which form a deeply-nested block 1. Products Concerned Products from the following list for which the version number of the CS+ common program is 3.00.00 to 3.01.00. - RX Family C/C++ Compiler Package (with IDE) - RL78 Family C Compiler Package (with IDE) - RH850 Family C Compiler Package (with IDE) - CS+ evaluation edition To check the version number of the product you have, refer to the following URL. https://www.renesas.com/cubesuite+_ver 2. Description CS+ might be terminated forcibly when a program is downloaded to a debugging tool or when an editor panel is opened after downloading a program. 3. Conditions Forced termination may occur when the source code for a project includes code that meets any of the following conditions. (a) { } blocks nested to a depth of 128 or more within a function. (b) 64 or more consecutive "else if" conditions are in sequence. (c) The total of double the number of consecutive "else if" conditions and the depth of the nesting of {} blocks at some point in the sequence of consecutive "else if" conditions is 128 or more. With conditions (b) and (c) above, the problem only arises when the C99 option is designated and the product is the RX family C/C++ compiler package (with IDE). 4. Workaround To avoid this problem, do any of the following.
    [Show full text]
  • Embrace and Extend Approach (Red Hat, Novell)
    Integrated Development Environments (IDEs) Technology Strategy Chad Heaton Alice Park Charles Zedlewski Table of Contents Market Segmentation.............................................................................................................. 4 When Does the IDE Market Tip? ........................................................................................... 6 Microsoft & IDEs ................................................................................................................... 7 Where is MSFT vulnerable?................................................................................................. 11 Eclipse & Making Money in Open Source........................................................................... 12 Eclipse and the Free Rider Problem ..................................................................................... 20 Making Money in an Eclipse World?................................................................................... 14 Eclipse vs. Microsoft: Handicapping the Current IDE Environment ................................... 16 Requirements for Eclipse success......................................................................................... 18 2 Overview of the Integrated Development Environment (IDE) Market An Integrated Development Environment (IDE) is a programming environment typically consisting of a code editor, a compiler, a debugger, and a graphical user interface (GUI) builder. The IDE may be a standalone application or may be included as part of one or more existing
    [Show full text]
  • E2 Studio Integrated Development Environment User's Manual: Getting
    User’s Manual e2 studio Integrated Development Environment User’s Manual: Getting Started Guide Target Device RX, RL78, RH850 and RZ Family Rev.4.00 May 2016 www.renesas.com Notice 1. Descriptions of circuits, software and other related information in this document are provided only to illustrate the operation of semiconductor products and application examples. You are fully responsible for the incorporation of these circuits, software, and information in the design of your equipment. Renesas Electronics assumes no responsibility for any losses incurred by you or third parties arising from the use of these circuits, software, or information. 2. Renesas Electronics has used reasonable care in preparing the information included in this document, but Renesas Electronics does not warrant that such information is error free. Renesas Electronics assumes no liability whatsoever for any damages incurred by you resulting from errors in or omissions from the information included herein. 3. Renesas Electronics does not assume any liability for infringement of patents, copyrights, or other intellectual property rights of third parties by or arising from the use of Renesas Electronics products or technical information described in this document. No license, express, implied or otherwise, is granted hereby under any patents, copyrights or other intellectual property rights of Renesas Electronics or others. 4. You should not alter, modify, copy, or otherwise misappropriate any Renesas Electronics product, whether in whole or in part. Renesas Electronics assumes no responsibility for any losses incurred by you or third parties arising from such alteration, modification, copy or otherwise misappropriation of Renesas Electronics product. 5. Renesas Electronics products are classified according to the following two quality grades: “Standard” and “High Quality”.
    [Show full text]
  • SAS® Debugging 101 Kirk Paul Lafler, Software Intelligence Corporation, Spring Valley, California
    PharmaSUG 2017 - Paper TT03 SAS® Debugging 101 Kirk Paul Lafler, Software Intelligence Corporation, Spring Valley, California Abstract SAS® users are almost always surprised to discover their programs contain bugs. In fact, when asked users will emphatically stand by their programs and logic by saying they are bug free. But, the vast number of experiences along with the realities of writing code says otherwise. Bugs in software can appear anywhere; whether accidentally built into the software by developers, or introduced by programmers when writing code. No matter where the origins of bugs occur, the one thing that all SAS users know is that debugging SAS program errors and warnings can be a daunting, and humbling, task. This presentation explores the world of SAS bugs, providing essential information about the types of bugs, how bugs are created, the symptoms of bugs, and how to locate bugs. Attendees learn how to apply effective techniques to better understand, identify, and repair bugs and enable program code to work as intended. Introduction From the very beginning of computing history, program code, or the instructions used to tell a computer how and when to do something, has been plagued with errors, or bugs. Even if your own program code is determined to be error-free, there is a high probability that the operating system and/or software being used, such as the SAS software, have embedded program errors in them. As a result, program code should be written to assume the unexpected and, as much as possible, be able to handle unforeseen events using acceptable strategies and programming methodologies.
    [Show full text]
  • The C Programming Language
    The C programming Language The C programming Language By Brian W. Kernighan and Dennis M. Ritchie. Published by Prentice-Hall in 1988 ISBN 0-13-110362-8 (paperback) ISBN 0-13-110370-9 Contents ● Preface ● Preface to the first edition ● Introduction 1. Chapter 1: A Tutorial Introduction 1. Getting Started 2. Variables and Arithmetic Expressions 3. The for statement 4. Symbolic Constants 5. Character Input and Output 1. File Copying 2. Character Counting 3. Line Counting 4. Word Counting 6. Arrays 7. Functions 8. Arguments - Call by Value 9. Character Arrays 10. External Variables and Scope 2. Chapter 2: Types, Operators and Expressions 1. Variable Names 2. Data Types and Sizes 3. Constants 4. Declarations http://freebooks.by.ru/view/CProgrammingLanguage/kandr.html (1 of 5) [9/6/2002 12:20:42 ] The C programming Language 5. Arithmetic Operators 6. Relational and Logical Operators 7. Type Conversions 8. Increment and Decrement Operators 9. Bitwise Operators 10. Assignment Operators and Expressions 11. Conditional Expressions 12. Precedence and Order of Evaluation 3. Chapter 3: Control Flow 1. Statements and Blocks 2. If-Else 3. Else-If 4. Switch 5. Loops - While and For 6. Loops - Do-While 7. Break and Continue 8. Goto and labels 4. Chapter 4: Functions and Program Structure 1. Basics of Functions 2. Functions Returning Non-integers 3. External Variables 4. Scope Rules 5. Header Files 6. Static Variables 7. Register Variables 8. Block Structure 9. Initialization 10. Recursion 11. The C Preprocessor 1. File Inclusion 2. Macro Substitution 3. Conditional Inclusion 5. Chapter 5: Pointers and Arrays 1.
    [Show full text]
  • FEI~I<Ts Ltistttute NEWS LETTER
    NEWS LETTER FEI~I<tS ltiSTtTUTE from l\Yron J. Brophy, President VOL. 1. NO.7 Big Rapids, !.Iichigan July 23, 1951 . BUlmmG ffiOOR,i1SS. Mon~ Progress Meeting was held at the site at 1 p.m. Wednesday, Jul¥ lB. Those present were: For the Institution" . President Brophy, It'. Pattullo" and Mr. DeMOSS; for the Building Division" Mr. J. ~-'angema.n, and 11:r. Arthur Decker, the project Superintendent; for the IJuskegon Construction Company, Mr. Smith and Mr. Mastenbrook; fC1!.' t...~e Distel Heating Company, ur. Holgate; and for the Electric Construction t.; Machiner"J COmpany, ur. Brabon and Mr. Knight,; and for the Architect, l!r'. Roger Allen. Mr. Allen reported that the color scheme for all rooms in the East Wing has been determined. Mr. lD:rnest King, from the architect1s office, conferred With l!r. pattullo Friday to discuss the preparation of similar color schemes for the Vlest Wing. Work on General C~struction is proceeding rapidq and all mechanical contractors are keeping up with the construction. All structural steel roof framing for the one-story sections will be in place by the middle of this 'week and will be ready to receiVe steel roof deck. ];!t'. Smith hB.f3 received word from the Detroit Steel Products Company (sub­ contractors for the steel deck) that this material Will be Shipped some­ time bet\"loon July 30th and August loth. The fin!ll poUring of cement sla.bin the classroom building was completed last l'leck. The stone Window Sills have been received and installation has started. The alllnlinum vlindow frames Bl'e now being in­ stalled and arc ready for the laying of the glass blockS.
    [Show full text]
  • 2.3.7 80X86 Floating Point
    Open Watcom C/C++ Compiler Options data segment. For example, the option "zt100" causes all data objects larger than 100 bytes in size to be implicitly declared as far and grouped in other data segments. The default data threshold value is 32767. Thus, by default, all objects greater than 32767 bytes in size are implicitly declared as far and will be placed in other data segments. If the "zt" option is specified without a size, the data threshold value is 256. The largest value that can be specified is 32767 (a larger value will result in 256 being selected). If the "zt" option is used to compile any module in a program, then you must compile all the other modules in the program with the same option (and value). Care must be exercised when declaring the size of objects in different modules. Consider the following declarations in two different C files. Suppose we define an array in one module as follows: extern int Array[100] = { 0 }; and, suppose we reference the same array in another module as follows: extern int Array[10]; Assuming that these modules were compiled with the option "zt100", we would have a problem. In the first module, the array would be placed in another segment since Array[100] is bigger than the data threshold. In the second module, the array would be placed in the default data segment since Array[10] is smaller than the data threshold. The extra code required to reference the object in another data segment would not be generated. Note that this problem can also occur even when the "zt" option is not used (i.e., for objects greater than 32767 bytes in size).
    [Show full text]
  • Agile Playbook V2.1—What’S New?
    AGILE P L AY B O OK TABLE OF CONTENTS INTRODUCTION ..........................................................................................................4 Who should use this playbook? ................................................................................6 How should you use this playbook? .........................................................................6 Agile Playbook v2.1—What’s new? ...........................................................................6 How and where can you contribute to this playbook?.............................................7 MEET YOUR GUIDES ...................................................................................................8 AN AGILE DELIVERY MODEL ....................................................................................10 GETTING STARTED.....................................................................................................12 THE PLAYS ...................................................................................................................14 Delivery ......................................................................................................................15 Play: Start with Scrum ...........................................................................................15 Play: Seeing success but need more fexibility? Move on to Scrumban ............17 Play: If you are ready to kick of the training wheels, try Kanban .......................18 Value ......................................................................................................................19
    [Show full text]
  • Opportunities and Open Problems for Static and Dynamic Program Analysis Mark Harman∗, Peter O’Hearn∗ ∗Facebook London and University College London, UK
    1 From Start-ups to Scale-ups: Opportunities and Open Problems for Static and Dynamic Program Analysis Mark Harman∗, Peter O’Hearn∗ ∗Facebook London and University College London, UK Abstract—This paper1 describes some of the challenges and research questions that target the most productive intersection opportunities when deploying static and dynamic analysis at we have yet witnessed: that between exciting, intellectually scale, drawing on the authors’ experience with the Infer and challenging science, and real-world deployment impact. Sapienz Technologies at Facebook, each of which started life as a research-led start-up that was subsequently deployed at scale, Many industrialists have perhaps tended to regard it unlikely impacting billions of people worldwide. that much academic work will prove relevant to their most The paper identifies open problems that have yet to receive pressing industrial concerns. On the other hand, it is not significant attention from the scientific community, yet which uncommon for academic and scientific researchers to believe have potential for profound real world impact, formulating these that most of the problems faced by industrialists are either as research questions that, we believe, are ripe for exploration and that would make excellent topics for research projects. boring, tedious or scientifically uninteresting. This sociological phenomenon has led to a great deal of miscommunication between the academic and industrial sectors. I. INTRODUCTION We hope that we can make a small contribution by focusing on the intersection of challenging and interesting scientific How do we transition research on static and dynamic problems with pressing industrial deployment needs. Our aim analysis techniques from the testing and verification research is to move the debate beyond relatively unhelpful observations communities to industrial practice? Many have asked this we have typically encountered in, for example, conference question, and others related to it.
    [Show full text]
  • Global SCRUM GATHERING® Berlin 2014
    Global SCRUM GATHERING Berlin 2014 SESSION DESCRIPTION TABLE OF CONTENTS SESSION TIMETABLE Monday, September 22nd – AM Sessions WELCOME & OPENING KEYNOTE - 9:00 – 10:30 Welcome Remarks ROOM Dave Sharrock & Marion Eickmann Opening Keynote Potsdam I/III Enabling the organization as a complex eco-system Dave Snowden AM BREAK – 10:30 – 11:00 90 MINUTE SESSIONS - 11:00 – 12:30 SESSION & SPEAKER TRACK LEVEL ROOM Managing Agility: Effectively Coaching Agile Teams Bring Down the Performing Tegel Andrea Tomasini, Bent Myllerup Wall Temenos – Build Trust in Yourself, Your Team, Successful Scrum Your Organization Practices: Berlin Norming Bellevue Christine Neidhardt, Olaf Lewitz Never Sleeps A Curious Mindset: basic coaching skills for Managing Agility: managers and other aliens Bring Down the Norming Charlottenburg II Deborah Hartmann Preuss, Steve Holyer Wall Building Creative Teams: Ideas, Motivation and Innovating beyond Retrospectives Core Scrum: The Performing Charlottenburg I Cara Turner Bohemian Bear Scrum Principles: Building Metaphors for Retrospectives Changing the Forming Tiergarted I/II Helen Meek, Mark Summers Status Quo Scrum Principles: My Agile Suitcase Changing the Forming Charlottenburg III Martin Heider Status Quo Game, Set, Match: Playing Games to accelerate Thinking Outside Agile Teams Forming Kopenick I/II the box Robert Misch Innovating beyond Let's Invent the Future of Agile! Core Scrum: The Performing Postdam III Nigel Baker Bohemian Bear Monday, September 22nd – PM Sessions LUNCH – 12:30 – 13:30 90 MINUTE SESSIONS - 13:30
    [Show full text]
  • Top Productivity Tips for Using Eclipse for Embedded C/C++ Developers
    Top Productivity Tips for Using Eclipse for Embedded C/C++ Developers Garry Bleasdale, QNX Software Systems, [email protected] Andy Gryc, QNX Software Systems, [email protected] Introduction This paper presents a selection of Eclipse IDE tips and tricks gathered from: the QNX® development community: our engineers, techies and trainers Foundry27, the QNX Community Portal for open development, where we have an Eclipse IDE forum Eclipse.org forums public web sites and blogs that offer Eclipse-related expertise The 27 tips described in this paper are the tips that we received from these sources and identified as most interesting and useful to developers. We present them here with the hope that they will help make you more productive when you use the Eclipse IDE. About Eclipse A modern embedded system may employ hundreds of software tasks, all of them sharing system resources and interacting in complex ways. This complexity can undermine reliability, for the simple reason that the more code a system contains, the greater the probability that coding errors will make their way into the field. (By some estimates, a million lines of code will ship with at least 1000 bugs, even if the code is methodically developed and tested.) Coding errors can also compromise security, since they often serve as entry points for malicious hackers. No amount of testing can fully eliminate these bugs and security holes, as no test suite can anticipate every scenario that a complex software system may encounter. Consequently, system designers and software developers must adopt a “mission-critical mindset” and employ software architectures that can contain software errors and recover from them quickly.
    [Show full text]