Software Engineering, Pages 2-13, Mon- Ware Process, Pages 76 - 85, Dec

Total Page:16

File Type:pdf, Size:1020Kb

Software Engineering, Pages 2-13, Mon- Ware Process, Pages 76 - 85, Dec Software Processes Are Software Too, Revisited: An Invited Talk on the Most Influential Paper of ICSE 9 * Leon J. Osterweil University of Massachusetts Dept. of Computer Science Amherst, MA 01003 USA +1 413 545 2186 ljo@cs. umass.edu ABSTRACT led to a considerable body of investigation. The sug- The ICSE 9 paper, "Software Processes are Software gestion was immediately controversial, and continues to Too," suggests that software processes are themselves a be argued. Subsequently I discuss why I believe this form of software and that there are considerable benefits discussion indicates a pattern of behavior typical of tra- that will derive from basing a discipline of software pro- ditional scientific inquiry, and therefore seems to me to cess development on the more traditional discipline of do credit to the software engineering community. application software development. This paper attempts But what of the (in)famous assertion itself? What does to clarify some misconceptions about this original ICSE it really mean, and is it really valid? The assertion grew 9 suggestion and summarizes some research carried out out of ruminations about the importance of orderly and over the past ten years that seems to confirm the origi- systematic processes as the basis for assuring the quality nal suggestion. The paper then goes on to map out some of products and improving productivity in developing future research directions that seem indicated. The pa- them. Applying the discipline of orderly process to soft- per closes with some ruminations about the significance ware was not original with me. Lehman [13] and others of the controversy that has continued to surround this [18] had suggested this long before. But I was trou- work. bled because I had started to see the development of a Introduction whole new discipline and technology around the idea of "Software Processes are Software Too." How many software process, and to notice the emergence of many times I have heard that phrase quoted back to me in notions and tools that seemed eerily familiar. I was the past ten years! And how many times it has been starting to see the creation of a software process universe (sometimes amusingly) misquoted too. Often I have parallel to the universe of notions and tools surrounding been flattered to have had the ICSE9 paper [15] and its application software development. The more I looked, catchy title referred to as being "classic" and "seminal". the more similarities I saw. Processes and applications But often I have also been asked, "what does that really are both executed, they both address requirements that mean?" The idea is, alas, still misunderstood and mis- need to be understood, both benefit from being mod- construed in some quarters. But amazingly, and grat- elled by a variety of sorts of models, both must evolve ifyingly, the phrase is still used, and the discussion of guided by measurement, and so forth. Thus it seemed the idea still continues, even after ten years. important to suggest that software process technology might not need to be invented from scratch (or rein- The suggestion that software, and the processes that vented), but that much of it might be borrowed from deal with it, might somehow be conceptually similar re- application software technology. mains a powerfully appealing one that seems to have I have often been reminded that application software 'This work was supported in part by the Air Force Materiel technology is still badly underdeveloped and that using Command, Rome Laboratory, and the Defense Advanced Re- it as a model for software process technology might be of search Projects Agency under Contract F30602-94-C-0137. dubious value. This, however, overlooks clear evidence Permission to make digitallhard copies of all or put of this material for that, while we have not mastered application software personal or classroom use is granted without fee provided that the copies are not made or distrihuted for profit or commercial advanLige, the copy- technology, we have, nevertheless, created a powerful right notice, the title ofthe publication and itq date appear, and notice is assortment of tools, principles, and techniques in this given that copyright is by permission ofthe ACM, Inc. To copy otherwise, domain. Thus, there is much to be gained from using to republish, to post on servers or to redistrihute to lists, requires specific permission and/or fee obvious parallels to hasten the maturation of software ICSE 97 Boston MA USA Copyright 1997 ACM 0-89791-914-9197105..$3.50 5 40 process technology. It seemed important to suggest that Parallels Between Software Processes and Appli- the community should look to the more traditional and cation Software better-developed disciplines of application development Much work seems to demonstrate the existence of sig- to see what might be borrowed or adapted. It seemed nificant parallels between software processes and appli- clear that there were strong similarities, but likely that cation software, although not all of this work was in- there were differences as well. Investigation of the ex- tended to do so. This section briefly surveys what has tent of each seemed to be in order. The ICSE 9 talk been learned. invited community investigation of how processes and Process application software are the same and how they differ, Modelling There has been a great deal of study of how well var- so that relevant findings, approaches, and tools of one ious application software modelling formalisms model could be of use to the other. It has been gratifying to software processes. For example, Petri Nets [1],[5], Fi- see that this invitation has been taken up and that these nite State Machines &6],1111, and dataflow diagrams [19] explorations are still ongoing. have been used to model software processes. These ac- Conversely it has been disappointing to see the way in tivities have clearly demonstrated that application soft- which the suggestion has continued to be misconstrued ware modelling approaches can be strong aids in con- in some quarters. Subsequent sections will deal with ceptualizing processes, in helping people to communi- these misconceptions in more detail, but the following cate about processes and collaborate in their execution, brief summary seems in order here. and in raising intuition about processes. Software is not simply code. Neither are software pro- As with application soft,ware modelling, different types cesses. Application software generally contains code. of process models are good for different things. Petri This suggests that software processes might also con- Net models, for example, are quite useful in elucidat- tain code. Coding software processes thus seems to be ing parallelism and concurrency, but are less useful in an interesting possibility. Research has borne this out. modelling artifacts. Petri Nets process models seem to have very similar properties. They help to identify par- Programming is not the same as coding, it entails the allelism in processes, but have generally required aug- many diverse steps of software development. Software mentation in order to effectively elucidate the flow of process programming should, likewise, not simply be software artifacts through processes. Other similar ex- coding, but seemed to entail the many non-coding steps amples could readily be pointed out. usually associated with application development. Pro- cess modelling, testing, and evolution research seems to In general, models, by their nature, abstract away de- have borne that out. tails in order to focus on specific narrow issues, which are thereby made correspondingly clearer and more There are many examples of application code that are vivid. Thus, Petri Net models depict parallelism clearly not inordinately prescriptive, authoritarian, or intoler- in part because depictions of other less relevant details able to humans (eg. operating systems). Thus, there are specifically omitted. Thus, any particular model should be no presumption that process code must be should be expected to be useful in some contexts, but overly prescriptive, authoritarian, or intolerable either. less helpful in others. To support understanding of var- Process programs need not treat humans like robots- ious aspects of a software product different models are unless that is the intention of the process programmer. generally needed. Thus, a number of modelling systems Process modelling and coding languages demonstrate (eg. [6]) support the development and coordination of this. multiple models of application software. Experience in Finally, good software code is written at all levels of de- the software process domain has been similar. State- tail. Code contains fine scale details, but they emerge at mate was used as a process modelling tool [ll],and its lower levels, after high level code addresses larger issues. support for multiple models was useful precisely because Similarly process code contains details that are nested the different models supported understanding and rea- below higher abstract levels. Process code, like app1ica.- soning from a variety of aspects. In the application soft- tion code, can demonstrate that precise implementation ware domain there is a growing understanding of which of broader notions in terms of lower level engineering de- modelling tools and formalisms best elucidating which tails. Contemporary process coding languages demon- issues. We expect similar understandings to emerge in strate this too. the software process domain. The following section summarizes some research that But, as with application software modelling, it has also suggests continued and broadened research into these become clear in process modelling that there are rea- issues. sons why models, even multiple models, are sometimes inadequate. The very lack of certain types of details 541 in models means that models inevitably lack specifics stronger, broader semantics and greater detail are essen- that can be very important. In addition, many mod- tial. In reasoning, for example, about the presence or elling formalisms (eg. graphical models) are based upon absence of deadlocks and race conditions in processes weak and shallow semantics.
Recommended publications
  • Manuscript Instructions/Template
    INCOSE Working Group Addresses System and Software Interfaces Sarah Sheard, Ph.D. Rita Creel CMU Software Engineering Institute CMU Software Engineering Institute (412) 268-7612 (703) 247-1378 [email protected] [email protected] John Cadigan Joseph Marvin Prime Solutions Group, Inc. Prime Solutions Group, Inc. (623) 853-0829 (623) 853-0829 [email protected] [email protected] Leung Chim Michael E. Pafford Defence Science & Technology Group Johns Hopkins University +61 (0) 8 7389 7908 (301) 935-5280 [email protected] [email protected] Copyright © 2018 by the authors. Published and used by INCOSE with permission. Abstract. In the 21st century, when any sophisticated system has significant software content, it is increasingly critical to articulate and improve the interface between systems engineering and software engineering, i.e., the relationships between systems and software engineering technical and management processes, products, tools, and outcomes. Although systems engineers and software engineers perform similar activities and use similar processes, their primary responsibilities and concerns differ. Systems engineers focus on the global aspects of a system. Their responsibilities span the lifecycle and involve ensuring the various elements of a system—e.g., hardware, software, firmware, engineering environments, and operational environments—work together to deliver capability. Software engineers also have responsibilities that span the lifecycle, but their focus is on activities to ensure the software satisfies software-relevant system requirements and constraints. Software engineers must maintain sufficient knowledge of the non-software elements of the systems that will execute their software, as well as the systems their software must interface with.
    [Show full text]
  • Watts S. Humphrey (1927-2010)
    1 Watts S. Humppyhrey (1927-2010) Five lessons I learned from an inspiring leader Daniel M. Roy September 2011 PSP, TSP, Personal Software Process and Team Software Process are service marks of CMU CMM and Capability Maturity Model are registered in the U.S. patent and trademark office Myers-Briggs Type Indicator and MBTI are registered trademarks trademarks of Consulting Psychologists Press, Inc. Copyright © 2011 STPP, Inc. (Software Technology, Process & People) 2 My Watts connection Project leader at SEI 1990-1995 Cer tified th e F rench t ransl ati on of CMM material in 1993 Took the first PSP class at CMU from Watts in the winter of 1994 Copyright © 2011 STPP, Inc. (Software Technology, Process & People) 3 From CMM to PSP “My first class was a blessing in a way that I hdhad not expecte d. Three peop le from th e SEI were taking the course: Dan Roy, Julia MllMullaney (h(then Ju lia G a le) , and dJ Jim O ver. Subsequently, they all decided to work with me iiiihPSPilin transitioning the PSP intro general practice. They have been doing so ever si”ince.” Three process perspectives, WSH, 2001 Copyright © 2011 STPP, Inc. (Software Technology, Process & People) 4 My Watts connection Project leader at SEI 1990-1995 Cer tified th e F rench t ransl ati on of CMM material in 1993 Took the first PSP class at CMU from Watts in the winter of 1994 STPP created in May 1995 on his advice Invited Watts to Paris in October1995 Became SEI transition partner in 1997 Copyright © 2011 STPP, Inc.
    [Show full text]
  • Balancing Agility and Discipline a Guide for the Perplexed
    Balancing Agility and Discipline A Guide for the Perplexed Written by Barry Boehm & Richard Turner August 2003 Presented by Ben Underwood for EECS810 Fall 2015 Balancing Agility and Discipline, A Guide for the Perplexed: Boehm & Turner 1 Presentation Outline What to Expect • Meet the Authors • Discipline, Agility, and Perplexity • Contrasts and Home Grounds • A Day in the Life • Expanding the Home Grounds: Two Case Studies • Using Risk to Balance Agility and Discipline • Conclusions • Q & A Balancing Agility and Discipline, A Guide for the Perplexed: Boehm & Turner 2 Meet the Authors Barry Boehm • Born 1935 • Educated in Mathematics at Harvard and UCLA • Worked in Programming and Information Sciences in private industry and government • General Dynamics, Rand Corporation, TRW, and DARPA • Currently at the University of Southern California • Professor of Software Engineering • Founding Director of USC’s Center for Systems and Software Engineering Balancing Agility and Discipline, A Guide for the Perplexed: Boehm & Turner 3 Meet the Authors Richard Turner • Born 1954 • Educated in Mathematics, Computer Science, and Engineering Management • Worked in Computer Science, Technology, and Research in private industry and government • FAA, Systems Engineering Research Center, Software Engineering Institute, George Washington University, and more • One of the core authors of CMMI • Currently at Stevens Institute of Technology • Professor in the School of Systems and Enterprises Balancing Agility and Discipline, A Guide for the Perplexed: Boehm &
    [Show full text]
  • Software Defect Reduction Top 10 List
    SOFTWARE MANANGEMENT TWO Current software projects spend about Software 40 to 50 percent of their effort on avoid- able rework. Such rework consists of effort spent fixing software difficulties that could Defect Reduction have been discovered earlier and fixed less expensively or avoided altogether. By implication, then, some effort must con- sist of “unavoidable rework,” an obser- Top 10 List vation that has gained increasing credibility with the growing realization Barry Boehm, University of Southern California that better user-interactive systems result from emergent processes. In such Victor R. Basili, University of Maryland processes, the requirements emerge from prototyping and other multistakeholder- shared learning activities, a departure from traditional reductionist processes that stipulate requirements in advance, ecently, a National Science insight has been a major driver in focus- then reduce them to practice via design Foundation grant enabled us to ing industrial software practice on thor- and coding. Emergent processes indicate establish the Center for Empiri- ough requirements analysis and design, that changes to a system’s definition that R cally Based Software Engineer- on early verification and validation, and make it more cost-effective should not be ing. CeBASE seeks to transform on up-front prototyping and simulation discouraged by classifying them as avoid- software engineering as much as pos- to avoid costly downstream fixes.” able defects. sible from a fad-based practice to an engineering-based practice through deri- vation, organization, and dissemination Software’s complexity and of empirical data on software develop- accelerated development ment and evolution phenomenology. The phrase “as much as possible” reflects the schedules make avoiding defects fact that software development must remain a people-intensive and continu- difficult.
    [Show full text]
  • CITS5502 – Capability Maturity
    CITS5502 – Capability maturity Unit coordinator: Arran Stewart 1 / 52 Sources Pressman 9th ed, Ch 26 2 / 52 Why try to improve processes? In competitive markets, there is pressure to deliver software faster and cheaper, which meets customer needs Organisations may look to process improvement to improve software quality, reduce costs, or speed up their processes It’s clear that the processes used to develop software do have a bearing on the quality of the software produced; therefore people reason that improving the processes can improve the software. 3 / 52 Major approaches to Software Process Improvement (SPI) Process maturity models Focuses on project management, introducing good software engineering practice Defines levels of process maturity These reflect the extent to which good practices have been adopted into processes Primary goals: improved product quality and process predictability. Agile Focuses on iterative development and reduction of overheads Goals include rapid delivery of functionality and responsiveness to changing customer requirements. 4 / 52 CMM We’ll look at one maturity model–based approach, the CMM (Capability Maturity Model), and its successor, CMMI (Capability Maturity Model Integration) 5 / 52 CMM background – statistical quality control US engineer W.E. Deming worked with Japanese manufacturing industries after WWII to help improve quality. The idea of statistical quality control is due to Deming and others: “reduce product defects by analyzing and modifying the process so that the chances of introducting defects are reduced and defect detection is improved” Once defects have been reduced, standardise the process and start again 6 / 52 1980s at Software Engineering Institute (SEI) at Carnegie Mellon University: Humphreys founded the Software Process Program, aimed at understanding and managing the Software Process.
    [Show full text]
  • Watts Humphrey
    SPECIAL TRIBUTE Watts Humphrey The Father of Software Quality (1927-2010) Carnegie Mellon Software Engineering Institute 4 CrossTalk—July/August 2011 SPECIAL TRIBUTE When Watts Humphrey arrived at the SEI in 1986, he The Beginnings of PSP and TSP made what he called an, “outrageous commitment to Jim Over, who now leads the TSP initiative at SEI, said Hum- change the world of software engineering.” phrey had begun his work in bringing discipline to the individual By all accounts, he succeeded. Known as the “Father software engineer–the basis for the PSP–long before his ap- of Software Quality,” Humphrey dedicated his career to pointment as an SEI Fellow. Humphrey first tested his theories on a process that he addressing problems in software development including developed for managing his personal checking account. Next, he schedule delays, cost increases, performance problems, and tested them on the personal software development process by defects. In 2005, Humphrey received the National Medal of writing more than 60 small programs in Pascal and C++, Over Technology, the highest honor awarded by the President of explained. Humphrey then began working with organizations to the United States to America’s leading innovators. pilot this new personal process for software engineers. “He was a wonderful leader and a wonderful man. He Not long after, Humphrey published his first PSP book, “A set forth an energizing goal and an inspiring mission that Discipline for Software Engineering,” and developed a course for we all wanted to be a part of,” said Anita Carleton, direc- software engineers. Over, who enrolled in the first PSP course tor of SEI’s Software Engineering Process Management offered at Carnegie Mellon, said it changed his career.
    [Show full text]
  • Software Engineering Introduction
    Software Engineering Introduction - Himasri Lekkala - CSCE Graduate student Software Engineering Application of engineering methodologies to design, develop and maintain a software within budget, on schedule and with high quality. Why Software Engineering? 1 2 3 4 5 Helps in utilizing Delivers the Makes possible Increases Customer the budget product on to handle large reliability of a satisfaction effectively schedule projects software Little Bug, Big Bang • Took 10 years and $7 billion to produce Ariane 5, a giant rocket. • Exploded in less than a minute after its launch due to a small bug in the software. Software Development Life Cycle (SDLC) Software Requirement Specification 1. Requirement (SRS) analysis Software has to be updated as 6. 2. Maintenance Design Design Document Specification needed. (DDS) SDLC At first, software is released 5. 3. in limited segment for User Deployment Development Coding Acceptance Test (UAT) 4. Testing Tests for bugs & ensures if all the requirements in SRS are met UML Diagrams (Unified Modeling Language) Class diagram Object diagram SDLC Models • Waterfall Model • Incremental Model • Spiral Model • Agile Model • Chaos Model • Scrum Model • V-Model • Sawtooth Model Waterfall Model Requirement Software Requirement Specification (SRS) Analysis Design Design Document Specification (DDS) Implementation Build code in small programs called units & perform unit testing Testing Integration of units and software testing Deployment & Maintenance Release into market and check for patches 11 Waterfall Model - Application 1 2 3 4 Requirements are Ample resources Technology is Suitable for short very well with required understood and is term projects. documented, clear expertise are not dynamic. and fixed. available to support the product.
    [Show full text]
  • Watts Humphrey Awards 2018 Brought to You by CSPIN
    Watts Humphrey Awards 2018 Brought to you by CSPIN Present your practice November 12, 2018 | Monday 1.30 PM - 6.15 PM What is Watts Humphrey Awards? Watts Humphrey Awards is a Prestigious recognition from SPIN Chennai initiated to honor the software engineering Guru Dr. Watts Humphrey. Teams from various organizations across industries will be invited to nominate their practice / case study. Jury will evaluate the submissions (offline) and shortlisted teams will be invited to present their story and showcase their practices on the day of the awards in front of the Grand Jury. The team that best exemplify, articulate and demonstrate the practices on the theme will be awarded with Grand Plaque, Certificates, Cash awards and Presentation slot at SPICON 2019 (Intl Conference). Motivated by the success of the award we launched in the past years, we are making it bigger, better and more grandeur this time. Check out http://spinchennai.org/events/event/watts-humphrey-awards-2018/ for more details. Introduction The business world is moving from treating IT as a utility that improves internal operations to using rapid software and technology powered innovation cycles as a competitive advantage. This has far reaching consequences. The traditional program and project management models we have used for software development are unsuited to rapid innovation cycles. Software development requires a different way of running. Agile and Automation are leading the way forward. With the advent of Agile & Automation, an enormous amount of demand from people working in enterprises who wanted to adopt Lean startup, Design thinking, DevOps frameworks and practices. A large number of companies have achieved measurable benefit from using Agile & Automation techniques; resulting in delivery of higher-quality products to market faster, increased customer satisfaction, and higher returns on investment.
    [Show full text]
  • Devops Comes to Database Developers and Dbas
    DevOps Comes to Database Developers and DBAs — It’s About Time Written by Daniel Norwood, Director of Product Marketing, Dell Software, and Robert Reeves, CTO, Datical Introduction Now your organization can apply automation to your database development lifecycle, breaking down silos Application teams have tools for managing their between development and operations teams and bringing development lifecycle — from source code control and you into the DevOps fold. With the right tools, database automated testing to continuous integration and automated developers and DBAs can finally keep up with the increasing deployment. But as a database developer or DBA, you’ve pace of application releases while protecting precious lacked the proper tooling to help you keep pace with the rest business data. of your organization. This white paper will explore the importance of bringing agile You face increasing pressure to deliver database changes and DevOps to database development and the obstacles faster, while you’re also responsible for ensuring that organizations face along the way. It describes what to look databases are always available and applications run at peak for when selecting tools to bring the database into the world performance. The conventional wisdom dictates that you of DevOps. Finally, it demonstrates how the right tools can have to choose between speed and quality, that you can’t go bring automation to database development and the value of faster and reduce risk at the same time. DevOps to the entire organization. Wrong. Background: Agile and DevOps … and DevOps solves the release bottleneck … Agile development is at the core of DevOps and the faster pace of As development teams became more application releases.
    [Show full text]
  • Software Development Processes: from the Waterfall to the Unified
    Software development processes: from the waterfall to the Unified Process Paul Jackson School of Informatics University of Edinburgh The Waterfall Model Image from Wikipedia 2 / 17 Pros, cons and history of the waterfall + better than no process at all { makes clear that requirements must be analysed, software must be tested, etc. − inflexible and unrealistic { in practice, you cannot follow it: e.g., verification will show up problems with requirements capture. − slow and expensive { in an attempt to avoid problems later, end up \gold plating" early phases, e.g., designing something elaborate enough to support the requirements you suspect you've missed, so that functionality for them can be added in coding without revisiting Requirements. Introduced by Winston W. Royce in a 1970 paper as an obviously flawed idea! 3 / 17 Domains of use for waterfall-like models embedded systems : Software must work with specific hardware: Can't change software functionality later. safety critical systems : Safety and security analysis of whole system is needed up front before implementation some very large systems : Allows for independent development of subsystems 4 / 17 Spiral model Barry Boehm. 1988. Cumulative cost 1.Determine Progress 2. Identify and objectives resolve risks Review Requirements Operational plan Prototype 1 Prototype 2 prototype Concept of Concept of operation requirements Detailed Requirements Draft design Development Verification Code plan & Validation Integration Test plan Verification & Validation Test Implementation 4. Plan the Release next iteration 3. Development and Test 5 / 17 Spiral model Successive loops involve more advanced activities: - checking feasibility, - gathering requirements, - design development, - integration and test . Phases of single loop: 1.
    [Show full text]
  • Dr. Barry Boehm
    Barry W. Boehm, TRW Professor of Software Engineering and Director, Center for Software Engineering, University of Southern California Barry Boehm received his B.A. degree from Harvard in 1957, and his M.S. and Ph.D. degrees from UCLA in 1961 and 1964, all in Mathematics. Between 1989 and 1992, he served within the U.S. Department of Defense (DoD) as Director of the DARPA Information Science and Technology Office, and as Director of the DDR&E Software and Computer Technology Office. He worked at TRW from 1973 to 1989, culminating as Chief Scientist of the Defense Systems Group, and at the Rand Corporation from 1959 to 1973, culminating as Head of the Information Sciences Department. He was a Programmer-Analyst at General Dynamics between 1955 and 1959. His current research interests include software process modeling, software requirements engineering, software architectures, software metrics and cost models, software engineering environments, and knowledge-based software engineering. His contributions to the field include the Constructive Cost Model (COCOMO), the Spiral Model of the software process, the Theory W (win- win) approach to software management and requirements determination, and two advanced software engineering environments: the TRW Software Productivity System and Quantum Leap Environment. He has served on the board of several scientific journals, including the IEEE Transactions on Software Engineering, IEEE Computer, IEEE Software, ACM Computing Reviews, Automated Software Engineering, Software Process, and Information and Software Technology. He has served as Chair of the AIAA Technical Committee on Computer Systems, Chair of the IEEE Technical Committee on Software Engineering, and as a member of the Governing Board of the IEEE Computer Society.
    [Show full text]
  • The Team Software Processsm (TSPSM)
    The Team Software ProcessSM (TSPSM) Watts S. Humphrey November 2000 TECHNICAL REPORT CMU/SEI-2000-TR-023 ESC-TR-2000-023 Pittsburgh, PA 15213-3890 The Team Software ProcessSM (TSPSM) CMU/SEI-2000-TR-023 ESC-TR-2000-023 Watts S. Humphrey November 2000 Team Software Process Initiative Unlimited distribution subject to the copyright. This report was prepared for the SEI Joint Program Office HQ ESC/DIB 5 Eglin Street Hanscom AFB, MA 01731-2116 The ideas and findings in this report should not be construed as an official DoD position. It is published in the interest of scientific and technical information exchange. FOR THE COMMANDER Joanne E. Spriggs Contracting Office Representative This work is sponsored by the U.S. Department of Defense. The Software Engineering Institute is a federally funded research and development center sponsored by the U.S. Department of Defense. Copyright 2000 by Carnegie Mellon University. NO WARRANTY THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN "AS-IS" BASIS. CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT. Use of any trademarks in this report is not intended in any way to infringe on the rights of the trademark holder. Internal use. Permission to reproduce this document and to prepare derivative works from this document for internal use is granted, provided the copyright and "No Warranty" statements are included with all reproductions and derivative works.
    [Show full text]