<xmp> <body><!--'"</title></head>--> <script type="text/javascript"> //OwnerIQ var __oiq_pct = 50; if( __oiq_pct>=100 || Math.floor(Math.random()*100/(100-__oiq_pct)) > 0 ) { var _oiqq = _oiqq || []; _oiqq.push(['oiq_addPageBrand','Lycos']); _oiqq.push(['oiq_addPageCat','Internet > Websites']); _oiqq.push(['oiq_addPageLifecycle','Intend']); _oiqq.push(['oiq_doTag']); (function() { var oiq = document.createElement('script'); oiq.type = 'text/javascript'; oiq.async = true; oiq.src = document.location.protocol + '//px.owneriq.net/stas/s/lycosn.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(oiq, s); })(); } /////// Google Analytics var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-21402695-21']); _gaq.push(['_setDomainName', 'angelfire.com']); _gaq.push(['_setCustomVar', 1, 'member_name', 'in4/nir', 3]); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); ////// Lycos Initialization ///////////////////// var lycos_ad = Array(); var lycos_search_query = ""; var lycos_onload_timer; var cm_role = "live"; var cm_host = "angelfire.lycos.com"; var cm_taxid = "/memberembedded"; var angelfire_member_name = "in4/nir"; var angelfire_member_page = "in4/nir/ISO_12207_Standards.htm"; var angelfire_ratings_hash = "1732080877:49860f17340d81cb468d673cd202e3fc"; var lycos_ad_category = null; var lycos_ad_remote_addr = "209.202.244.9"; var lycos_ad_www_server = "www.angelfire.lycos.com"; var edit_site_url = "www.angelfire.lycos.com/landing/landing.tmpl?utm_source=house&utm_medium=landingpage&utm_campaign=toolbarlink"; </script> <script type="text/javascript" src="https://scripts.lycos.com/catman/init.js"></script> <script type='text/javascript'> var googletag = googletag || {}; googletag.cmd = googletag.cmd || []; (function() { var gads = document.createElement('script'); gads.async = true; gads.type = 'text/javascript'; var useSSL = 'https:' == document.location.protocol; gads.src = (useSSL ? 'https:' : 'http:') + '//www.googletagservices.com/tag/js/gpt.js'; var node = document.getElementsByTagName('script')[0]; node.parentNode.insertBefore(gads, node); })(); </script> <script type='text/javascript'> googletag.cmd.push(function() { googletag.defineSlot('/95963596/ANG_300x250_dfp', [300, 250], 'div-gpt-ad-1450207484070-0').addService(googletag.pubads()); googletag.enableServices(); }); </script> <script type='text/javascript'> googletag.cmd.push(function() { googletag.defineSlot('/95963596/ANG_above_728x90_dfp', [728, 90], 'div-gpt-ad-1450207484070-1').addService(googletag.pubads()); googletag.enableServices(); }); </script> <script type='text/javascript'> googletag.cmd.push(function() { googletag.defineSlot('/95963596/ANG_below_728X90_dfp', [728, 90], 'div-gpt-ad-1450207484070-2').addService(googletag.pubads()); googletag.enableServices(); }); </script> <script type="text/javascript"> (function(isV) { if (!isV) { return; } //this.lycos_search_query = lycos_get_search_referrer(); var adMgr = new AdManager(); var lycos_prod_set = adMgr.chooseProductSet(); var slots = ["leaderboard", "leaderboard2", "toolbar_image", "toolbar_text", "smallbox", "top_promo", "footer2","slider"]; var adCat = this.lycos_ad_category; adMgr.setForcedParam('page', (adCat && adCat.dmoz) ? adCat.dmoz : 'member'); if (this.lycos_search_query) { adMgr.setForcedParam("keyword", this.lycos_search_query); } else if (adCat && adCat.find_what) { adMgr.setForcedParam('keyword', adCat.find_what); } for (var s in slots) { var slot = slots[s]; if (adMgr.isSlotAvailable(slot)) { this.lycos_ad[slot] = adMgr.getSlot(slot); } } adMgr.renderHeader(); adMgr.renderFooter(); }((function() { var w = 0, h = 0, minimumThreshold = 300; if (top == self) { return true; } if (typeof(window.innerWidth) == 'number' ) { w = window.innerWidth; h = window.innerHeight; } else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) { w = document.documentElement.clientWidth; h = document.documentElement.clientHeight; } else if (document.body && (document.body.clientWidth || document.body.clientHeight)) { w = document.body.clientWidth; h = document.body.clientHeight; } return ((w > minimumThreshold) && (h > minimumThreshold)); }()))); window.onload = function() { var f = document.getElementById("lycosFooterAd"); var b = document.getElementsByTagName("body")[0]; b.appendChild(f); f.style.display = "block"; document.getElementById('lycosFooterAdiFrame').src = '/adm/ad/footerAd.iframe.html'; // Slider Injection (function() { var e = document.createElement('iframe'); e.style.border = '0'; e.style.margin = 0; e.style.display = 'block'; e.style.cssFloat = 'right'; e.style.height = '254px'; e.style.overflow = 'hidden'; e.style.padding = 0; e.style.width = '300px'; })(); // Bottom Ad Injection ( function() { var b = document.getElementsByTagName("body")[0]; var iif = document.createElement('iframe'); iif.style.border = '0'; iif.style.margin = 0; iif.style.display = 'block'; iif.style.cssFloat = 'right'; iif.style.height = '254px'; iif.style.overflow = 'hidden'; iif.style.padding = 0; iif.style.width = '300px'; iif.src = '/adm/ad/injectAd.iframe.html'; var cdiv = document.createElement('div'); cdiv.style = "width:300px;margin:10px auto;"; cdiv.appendChild( iif ); if( b ) { b.insertBefore(cdiv, b.lastChild); } })(); } </script> <style> #body .adCenterClass { margin:0 auto; display:block !important; overflow:hidden; width:100%; } #body .adCenterClass #ad_container { display:block !important; float:left; width:728px; } @media (min-width: 768px) { <!-- For 300px or less ads ONLY --> #body .adCenterClass #ad_container { width: calc(100% - 372px); } } @media (min-width: 1110px) { <!-- For 728px or less ads --> #body .adCenterClass #ad_container { width: calc(100% - 372px); } } </style> <div style="background:#abe6f6; border-bottom:1px solid #507a87; position:relative; z-index:9999999"> <div class="adCenterClass"> <a href="https://www.angelfire.lycos.com/" title="Angelfire.com: build your free website today!" style="display:block; float:left; width:186px; border:0"> <img src="/adm/ad/angelfire-freeAd.jpg" alt="Site hosted by Angelfire.com: Build your free website today!" style="display:block; border:0" /> </a> <div id="ad_container"> <script type="text/javascript">document.write(lycos_ad['leaderboard']);</script> </div> </div> </div> <!-- ///////////////////////////////////// --> <script type="text/javascript">document.write(lycos_ad['slider']);</script> <div id="lycosFooterAd" style="background:#abe6f6; border-top:1px solid #507a87; clear:both; display:none; position:relative; z-index:9999999"> <div class="adCenterClass" style="display:block!important; overflow:hidden; width:936px;"> <div id="aflinksholder" style="float:left; width:186px;"> <a href="https://www.angelfire.lycos.com/" title="Angelfire.com: build your free website today!" style="display:block; border:0"> <img src="/adm/ad/angelfire-freeAd2.jpg" alt="Site hosted by Angelfire.com: Build your free website today!" style="display:block; border:0" /> </a> </div> <iframe id="lycosFooterAdiFrame" style="border:0; display:block; float:left; height:96px; overflow:hidden; padding:0; width:750px"></iframe> </div> </div> <!--- UNDERDOGMEDIA EDGE_lycos.com JavaScript ADCODE START---> <script data-cfasync="false" language="javascript" async src="//udmserve.net/udm/img.fetch?sid=17754;tid=1;dt=6;"></script> <!--- UNDERDOGMEDIA EDGE_lycos.com JavaScript ADCODE END---> </xmp>

ISO 12207 and Related Software Life-Cycle Standards

by Jim Moore, The MITRE Corporation, moorej@acm.org

This note describes ISO 12207, a high-level standard addressing all processes of the software life cycle. It also traces the evolution of life-cycle standards, differentiates the efforts of IEEE, ISO, and other organizations, and discusses the significance of 12207 to international software acquisition.

The Institute of Electrical and Electronics Engineers (IEEE) is now voting on whether the U.S. should adopt International Organization for Standardization (ISO) 12207, which specifies software life-cycle processes. Because of the burgeoning of standards over the last few years, it is important that software engineers understand what 12207 provides and how it relates to other standards dealing with life-cycle processes.

Overview of ISO 12207

ISO 12207 offers a framework for software life-cycle processes from concept through retirement. It is especially suitable for acquisitions because it recognizes the distinct roles of acquirer and supplier. In fact, the standard is intended for two-party use where an agreement or contract defines the development, maintenance, or operation of a software system. It is not applicable to the purchase of commercial-off-the-shelf (COTS) software products.

In most cases, 12207 uses conventional standards language: "shall" to indicate mandatory provisions, "should" for recommendations, and "may" for permissible actions. Since the standard applies to both acquirer and supplier, one might expect it to place mandatory requirements upon both parties. Its language, however, makes a subtle distinction: those provisions that apply to the acquirer typically use the verb "will," denoting a "declaration of purpose or intent by one party," not a requirement.

ISO 12207 provides a structure of processes using mutually accepted terminology, rather than dictating a particular life-cycle model or software development method. Since it is a relatively high-level document, 12207 does not specify the details of how to perform the activities and tasks comprising the processes. Nor does it prescribe the name, format, or content of documentation. Therefore, organizations seeking to apply 12207 may want to use additional standards or procedures that specify those details.

The ISO is currently developing such guides and assessment procedures to complement 12207; the IEEE Software Engineering Standards Committee is also planning to reorganize its collection of standards to complement 12207.

ISO 12207 describes five "primary processes"-- acquisition, supply, development, maintenance, and operation. It divides the five processes into "activities," and the activities into "tasks," while placing requirements upon their execution. It also specifies eight "supporting processes"--documentation, configuration management, quality assurance, verification, validation, joint review, audit, and problem resolution--as well as four "organiza-tional processes"--management, infrastructure, improvement, and training.

The ISO standard intends for organizations to tailor these seventeen processes to fit the scope of their particular projects by deleting all inapplicable activities; and it defines 12207 compliance as the performance of those processes, activities, and tasks selected by tailoring.

The Evolution of Life-Cycle Standards

The Department of Defense is a pioneer in defining software development life cycles. In the last few years, the DoD undertook an effort to unify DoD-STD-2167A (used by the mission-critical community) and MIL-STD-7935 (used by the information systems community) to create one life-cycle standard--MIL-STD-498.

Just as 498 was nearing approval, however, the DoD shifted its acquisition policies toward more reliance on commercial standards. As a result, 498 was approved for an interim period of only two years. The IEEE and the Electronics Industry Association (EIA) then initiated a joint project to create a commercial replacement for 498. This effort produced one standard with two names: an IEEE Trial Use Standard 1498 and an EIA Interim Standard 640. Since both the IEEE and the EIA produced the standard, the American National Standards Institute (ANSI) designated the document as ANSI Joint Standard 016.

Meanwhile, ISO 12207 was also underway. Whereas J-016 defined only the development process, 12207 described four additional primary processes, as discussed above. Furthermore, in 1992, the IEEE had completed its own life-cycle process standard, 1074, providing detailed descriptions of development and maintenance activities as well as their connections. In principle, one could use 1074 to construct processes that would comply with the requirements of either J-016 or 12207. The challenge now is to "harmonize" or otherwise converge these three different documents. Two current efforts will accomplish this goal.

First, the IEEE is balloting on the U.S. Adoption of ISO 12207. A yes vote would provide a common basis of understanding for organizations who wish to acquire software across international boundaries. Some parties contend that 12207 is essential if the U.S. is to play a role in worldwide software acquisitions.

Second, the IEEE and the EIA are collaborating on another joint standard--the "U.S. Industrial Implementation" of 12207--which will be structured around the process framework of 12207 but add the "technical goodness" of J-016 to the development process. This standard will be useful for defense, commercial, and international acquisitions.

The new joint standard is scheduled for completion in December 1996. The results of this effort will then guide the planned revisions to 12207 and 1074, creating a harmonized pair of standards: the former specifying requirements for the software life cycle and the latter specifying how to construct a life-cycle model.