Software Architecture - an Overview of the State-Of-The-Art

Total Page:16

File Type:pdf, Size:1020Kb

Software Architecture - an Overview of the State-Of-The-Art Research Report 8/98 Software Architecture - An Overview of the State-of-the-Art by Jan Bosch (Editor) Department of ISSN 1103-1581 Computer Science and Business Administration ISRN HK/R-RES98/8SE University of Karlskrona/Ronneby S-372 25 Ronneby Sweden Software Architecture - An Overview of the State-of-the-Art by Jan Bosch (Editor) ISSN 1103-1581 ISRN HK/R-RES98/8SE Copyright © 1998 the authors All rights reserved Printed by Psilander Grafiska, Karlskrona 1998 Table of Contents Introduction..........................................................................................................................3 Jan Bosch Architecture Description Software Architecture Notations..........................................................................................5 Anders Ive Using Formal Languages to Describe Software Architecture...........................................13 Patrik Persson Architecture Evaluation Evaluating Software Architectures: Techniques................................................................23 Magnus Broberg Evaluating Quality Attributes of Software Architectures..................................................35 Charlie Svahnberg Architecture Design The Role of Styles and Patterns in Software Architectures...............................................45 Daniel Einarson Software Architecture Design Methods.............................................................................55 PO Bengtsson Software Architecture Applications Software Product-Line Architecture..................................................................................63 Michael Mattsson DSSA: Object-Oriented Frameworks................................................................................71 Christer Lundberg Birds of Different Feather - An Essay on Components and Components.........................81 Erik Persson 1 Introduction Jan Bosch University of Karlskrona/Ronneby Department of Computer Science and Business Administration S-372 25 Ronneby, Sweden E-mail: [email protected] WWW: http://www.ide.hk-r.se/~bosch/ 1 Software Architecture mented, tests are performed to determine whether the requirements are fulfilled. If not, parts of the system are During recent years, the architecture of software systems redesigned. Since the system architects often are experi- has been treated more explicit than earlier and has become enced in building systems in the domain, experience helps recognised as a research topic. Software systems have them to decrease the required amount of system redesign. always had architectures, but most software engineers and Nevertheless, redesigns are often needed and tend to be researchers focused on different aspects, although excep- very costly. Computer science and software engineering tions exist, e.g. [Parnas 72]. In [Bass et al. 98], software research, on the other hand, has spent considerable effort on architecture is defined as follows: several of the quality requirements, e.g. the real-time sys- tems research community has put much focus on hard real- The software architecture of a program or time systems and the object-oriented research community computing system is the structure or struc- has studied software reuse. The problem is, we believe, that tures of the system, which comprise software each research community only studies a single quality sys- components, the externally visible properties tem requirement and, consequently, not addresses the com- of those components, and the relationships position of its solutions with the solutions proposed by among them. research communities studying different quality require- ments. However, real systems never have only a single qual- Often a parallel is made to building architecture, where the ity requirement to fulfil, but generally have to achieve architect has a similar task of defining an underlying struc- multiple of these requirements. For instance, most real-time ture and style for a building that has to fulfil the require- systems should be reusable and maintainable to achieve ments expressed by the various stakeholders. cost-effective operation and usage, whereas fault-tolerant systems also need to fulfil other requirements such as time- The reason for this increased focus on software architecture liness and maintainability. No pure real-time, fault-tolerant, is caused primarily of two issues. First, an explicit software high-performance or reusable computing systems exist, architecture provides an important meeting point for the even though most research literature tends to present sys- stakeholders of a software systems and allows them to iden- tems as being such archetypical entities. All realistic, prac- tify differences in interpretation and intention early in the tical computing systems have to fulfil multiple quality development process. Second, the ability of a system to ful- requirements. However, constructing such systems is hard fil its quality requirements, e.g. reliability, maintainability, because the quality requirements tend to be conflicting. etc., is heavily influenced by its architecture. The architec- Reusability and performance are generally considered to be ture chosen for the software system has associated upper contradicting, as well as fault-tolerance and real-time com- limits to many quality requirements. To give a simple exam- puting, to name a few. For a more extensive discussion, I ple, in an architectural design that we evaluated there was a refer the reader to [Bosch & Molin 97]. central entity in the system that played a role in most com- putations. This bottleneck entity caused theoretical and practical upper limits on the performance and reliability of the system. A redesign of the architecture removed the bot- 2 The Course tleneck and allowed for considerably better upper limits. Based on the above, it is safe to conclude that research in In software industry, our experience is that quality require- software architecture is an important topic in the domain of ments are generally dealt with by a rather informal process software engineering. Especially if one considers that archi- during architecture design. Once the system is imple- tectural design mistakes are generally very expensive to fix. 3 Again, the parallel to building architecture is obvious: if different path at similar concepts. In the CBSE community, changes are required to the fundamental structures of a the notion of component frameworks has now generally building, it basically means starting again from scratch. The been accepted as a necessary element in successful compo- industrial relevance of software architecture and the fact nent-based software development. Component frameworks, that it is an emerging topic in software engineering research however, explicitly define a software architecture of an called for doctoral course on the topic. application or a part of it. Due to this relation, the common- alities and differences between CBSE and approaches in the The domain of software architecture can be divided into software architecture community were investigated. two main categories, i.e. core technology and instantia- tions. Core technology defines, as the name implies, the necessary principles, techniques and methods has three sub- categories related to describing, evaluating and designing 3 The Report architectures. Architecture description can be approached The research report that you’re currently holding represents from two ends, i.e., notations used for communication part of the result of the course. Other parts, hopefully, between software engineers and with other stakeholders include the increased knowledge and deepened understand- and architecture description languages used for automated ing of the participating PhD students. Each student selected architecture evaluation and verification and code genera- one of the nine topics discussed above. The student was tion. Architecture evaluation can also be treated from two supposed to get acquainted with the selected topic by read- perspectives. First, one can take a technique perspective ing articles from the compendium and articles found and develop and study various techniques for architecture through active searching, and, based on the acquired knowl- evaluation. Second, the various quality requirements com- edge, prepare a two-hour lecture and lead a two-hour dis- munities, e.g., real-time, reuse, etc., have developed assess- cussion. Finally, each student has written an article ment and evaluation techniques and one can try to lift these presenting the state-of-the-art for the selected topic. During techniques to the architectural level. Finally, even architec- the final seminar, the students presented their article for a tural design can be addressed from two ends. First, consid- wider audience. erable effort have been spent on identifying and describing architectural styles and patterns. These structures support or The chapters in this research report, thus, provide an over- inhibit associated properties and during architectural view of the most prominent work in software architecture. design, the software engineer selects a style matching clos- Each of the papers has been carefully prepared to facilitate est with the requirements that the software system has to the reader to efficiently get an accurate overview and an fulfil. The second dimension in architectural design is understanding of the research issues. We hope you enjoy formed by methods. These architecture design methods reading the articles and find that they contain relevant con- provide
Recommended publications
  • Barry Boehm Software Engineering Paper
    1226 IEEE TRANSACTIONS ON COMPUTERS, VOL. C-25, NO. 12, DECEMBER 1976 Software Engineering BARRY W. BOEHM Abstract-This paper provides a definition of the term "software but also the associated documentation required to-develop, engineering" and a survey of the current state of the art and likely operate, and maintain the programs. By defining software future trends in the field. The survey covers the technology avail- able in the various phases of the software life cycle-requirements in this broader sense, we wish to emphasize the necessity engineering, design, coding, test, and maintenance-and in the of considering the generation oftimely documentation as overall area of software management and integrated technology- an integral portion of the software development process. management approaches. It is oriented primarily toward discussing We can then combine this with a definition of "engineer- the domain of applicability of techniques (where and when they ing" to produce the following definition. work), rather than how they work in detail. To cover the latter, an extensive set of 104 references is provided. Software Engineering: The practical application of scientific knowledge in the design and construction of Index Terms-Computer software, data systems, information computer programs and the associated documentation systems, research and development, software development, soft- required to develop, operate, and maintain them. ware engineering, software management. Three main points should be made about this definition. The first concerns the necessity of considering a broad I. INTRODUCTION enough interpretation of the word "design" to cover the r HE annual cost of software in the U.S. is extremely important activity of software requirements approximately 20 billion dollars.
    [Show full text]
  • Ergonomics, Design Universal and Fashion
    Work 41 (2012) 4733-4738 4733 DOI: 10.3233/WOR-2012-0761-4733 IOS Press Ergonomics, design universal and fashion Martins, S. B. Dr.ª and Martins, L. B.Dr.b a State University of Londrina, Department of Design, Rodovia Celso Garcia Cid Km. 380 Campus Universitário,86051-970, Londrina, PR, Brazil. [email protected] b Federal University of Pernambuco, Department of Design, Av. Prof. Moraes Rego, 1235, Cidade Universitária, 50670-901, Recife- PE, Brazil. [email protected] Abstract. People who lie beyond the "standard" model of users often come up against barriers when using fashion products, especially clothing, the design of which ought to give special attention to comfort, security and well-being. The principles of universal design seek to extend the design process for products manufactured in bulk so as to include people who, because of their personal characteristics or physical conditions, are at an extreme end of some dimension of performance, whether this is to do with sight, hearing, reach or manipulation. Ergonomics, a discipline anchored on scientific data, regards human beings as the central focus of its operations and, consequently, offers various forms of support to applying universal design in product development. In this context, this paper sets out a reflection on applying the seven principles of universal design to fashion products and clothing with a view to targeting such principles as recommendations that will guide the early stages of developing these products, and establish strategies for market expansion, thereby increasing the volume of production and reducing prices. Keywords: Ergonomics in fashion, universal design, people with disabilities 1.
    [Show full text]
  • A System Model for Managing Requirement Traceability Matrices Via Statistical Artifact Change Analysis Benjamin J
    A System Model for Managing Requirement Traceability Matrices via Statistical Artifact Change Analysis Benjamin J. Deaver and LiGuo Huang, Southern Methodist University, Dallas Introduction and Motivation Requirement Traceability Matrix – Gantt Open Source Software Project The Value of the Requirements Traceability Matrix The system Requirement Traceability Matrix (RTM) is primarily used for ensuring Our initial dataset for evaluation is taken from the Gantt Open Source PROCEDURE Kannenberg et al identify the underlying necessity of the Requirements Traceability Matrix and the underlying effect on that all requirements are fulfilled by the system artifact deliverables and the Software Project (http://www.ganttproject.biz). The initial trace data 1. Identify the taxonomy of change for a given domain (Systems Engineering, project management, process visibility, verification and validation, as well as project maintainability. Over time, the management of change to deliverables with respect to impact on other systems. In has been provided to us by Dr. Alexander Egyed at the Institute for SoS Engineering, Software Engineering). the systems engineering and system of systems (SoS) engineering landscapes, the Systems Engineering and Automation at Johannes Kepler University. Requirements Traceability Matrix provides significant insight in to the internal workings of the relationships between RTM is a tool that is useful at time of creation, but requires constant maintenance in Additional traces of requirements to code for subsequent Gantt versions 2. Identify and classify changes between static versions of the product. requirements and deliverable artifacts. a frequently changing landscape to maintain the original level of validity. The are being created using similar methods to the original collections 3. Generate Requirements Trace Matrixes for each static version of the product dynamic nature of systems and SoS engineering landscapes requires that a RTM be performed by Dr.
    [Show full text]
  • (Perry & Wolf 92) Software Architecture (Garlan & Shaw
    ICS 221, Winter 2001 Software Architecture Software Architecture (Perry & Wolf 92) “Architecture is concerned with the selection of architectural elements, their interactions, and the Software Architecture constraints on those elements and their interactions necessary to provide a framework in which to satisfy the requirements and serve as a basis for the design.” David S. Rosenblum ICS 221 “Design is concerned with the modularization and detailed interfaces of the design elements, their Winter 2001 algorithms and procedures, and the data types needed to support the architecture and to satisfy the requirements.” Software Architecture Software Architecture (Garlan & Shaw 93) (Shaw & Garlan 96) “Software architecture is a level of design that goes “The architecture of a software system defines beyond the algorithms and data structures of the that system in terms of computational computation; designing and specifying the overall components and interactions among those system structure emerges as a new kind of problem. Structural issues include gross organization and components. … In addition to specifying the global control structure; protocols for communication, structure and topology of the system, the synchronization, and data access; assignment of architecture shows the correspondence functionality to design elements; physical between the requirements and elements of distribution; composition of design elements; scaling the constructed system, thereby providing and performance; and selection among design some rationale for the design decisions.” alternatives.” Analogies with Differences Between Civil and Civil Architecture Software Architecture Civil Engineering and Civil Architecture “Software systems are like cathedrals—first we are concerned with the engineering and design of build them and then we pray.” civic structures (roads, buildings, bridges, etc.) — Sam Redwine ! Multiple views ! Civil: Artist renderings, elevations, floor plans, blueprints ! Physical vs.
    [Show full text]
  • Fashion Institute of Technology
    Toy Design BFA Degree Program School of Art and Design Applications accepted for fall only. NYSED: 89109 HEGIS 1099 The major in Toy Design prepares students for careers as children's product designers working with a variety of companies in the toy industry, from small specialty firms to major global corporations. Curriculum below is for the entering class of Fall 2017. Semester 5 Credits MAJOR AREA TY 326 - Toy Design I and Product Rendering 3 TY 327 - Drafting and Technical Drawing 3 TY 352 - The Toy Industry: Methods and Materials 3 RELATED AREA FA 301 - Anatomy for Toy Designers 1.5 LIBERAL ARTS SS 232 - Developmental Psychology 3 Semester 6 MAJOR AREA TY 313 - Soft Toy and Doll Design 3 TY 332 - Model Making and 3D Prototyping 3.5 TY 342 - Computer Graphics in Toy Design 2 RELATED AREA MK 301 - Marketing for the Toy Industry 3 LIBERAL ARTS HE 301 - Motor Learning: A Developmental Approach 3 HA 345 - History of Industrial Design choice - see Liberal Arts/Art History 3 Semester 7 MAJOR AREA A: TY 491 - Summer Internship: Toy Design** 4 B: TY 411 - Toy Design II and Product Update 2 TY 421 - Advanced Hard Toy: Design Engineering 5 TY 463 - Storybook Design and Licensed Product 3 TY 442 - Advanced Computer Graphics in Toy Design 2 LIBERAL ARTS MA 041 - Geometry and Probability Skills 1 MA 241 - Topics in Probability and Geometry 3 Semester 8 MAJOR AREA TY 414 - Games*** 1.5 TY 461 - Business Practices for the Toy Industry 2 TY 467 - Professional Portfolio 4.5 RELATED AREA PK 403 - Packaging for the Toy Designer 2 LIBERAL ARTS choice - see Liberal Arts/Art History* 3 choice - see Liberal Arts Electives 3 TOTAL CREDIT REQUIREMENTS MAJOR AREA 41.5 RELATED AREA 6.5 LIBERAL ARTS 19 Total Credits: 67 Fashion Institute of Technology 1 *Fall 2017 Requirements: See below Liberal Arts, Art History, and General Education: 19 credits • Art History Requirements: 6 credits.
    [Show full text]
  • Requirements Traceability Practices Guide
    CDC UNIFIED PROCESS PRACTICE GUIDE REQUIREMENTS TRACEABILITY Document Purpose The purpose of this document is to provide guidance on the project management practice of Requirements Traceability and to describe the practice overview, requirements, best practices, activities, and key terms related to these requirements. In addition, templates relevant to this practice are provided at the end of this guide. Practice Overview Requirements traceability is an activity that is one part of an overarching requirements management practice and extends from requirements definition through to implementation. Requirements tracing is used to ensure that each step of the product’s development process is correct, conforms to the needs of prior and next steps, and conforms to the defined requirements. Requirements tracing is a technique that helps to ensure that the project delivers what stakeholders expect. If applied correctly requirements tracing is a practice that can greatly increase the quality and reliability of a project’s final product while minimizing costly rework resulting from requirements errors. Requirements tracing defines the ability to describe and follow the life of a requirement, in both a forward and backward direction, ideally through each step of the entire product’s life cycle. This is done by documenting and tracking traceability relationships between requirements. A traceability relationship is a dependency relationship between project and/or product elements. Similar to the way a dynamic project schedule may react to a change in one task, a change to a requirement element may also have a rippling effect on other elements. A well documented traceability relationship clearly defines requirement dependencies and allows for analysis of how changes in requirements affect other requirements and the project as a whole.
    [Show full text]
  • Designing Software Architecture to Support Continuous Delivery and Devops: a Systematic Literature Review
    Designing Software Architecture to Support Continuous Delivery and DevOps: A Systematic Literature Review Robin Bolscher and Maya Daneva University of Twente, Drienerlolaan 5, Enschede, The Netherlands [email protected], [email protected] Keywords: Software Architecture, Continuous Delivery, Continuous Integration, DevOps, Deployability, Systematic Literature Review, Micro-services. Abstract: This paper presents a systematic literature review of software architecture approaches that support the implementation of Continuous Delivery (CD) and DevOps. Its goal is to provide an understanding of the state- of-the-art on the topic, which is informative for both researchers and practitioners. We found 17 characteristics of a software architecture that are beneficial for CD and DevOps adoption and identified ten potential software architecture obstacles in adopting CD and DevOps in the case of an existing software system. Moreover, our review indicated that micro-services are a dominant architectural style in this context. Our literature review has some implications: for researchers, it provides a map of the recent research efforts on software architecture in the CD and DevOps domain. For practitioners, it describes a set of software architecture principles that possibly can guide the process of creating or adapting software systems to fit in the CD and DevOps context. 1 INTRODUCTION designing new software architectures tailored for CD and DevOps practices. The practice of releasing software early and often has For clarity, before elaborating on the subject of been increasingly more adopted by software this SLR, we present the definitions of the concepts organizations (Fox et al., 2014) in order to stay that we will address: Software architecture of a competitive in the software market.
    [Show full text]
  • Non-Functional Requirements
    ® IBM Software Group Non-Functional Requirements Peter Eeles [email protected] IBM Software Group | Rational software Agenda Definitions Types of requirement Classifying requirements Capturing NFRs Summary IBM Software Group | Rational software Definitions Functional Requirement Functional requirements describe the behaviors (functions or services) of the system that support user goals, tasks or activities. [Malan] Non-Functional Requirement Non-functional requirements include constraints and qualities. [Malan] [System] qualities are properties or characteristics of the system that its stakeholders care about and hence will affect their degree of satisfaction with the system. [Malan] A constraint is a restriction on the degree of freedom we have in providing a solution. [Leffingwell] [Leffingwell] Managing Software Requirements – a Unified Approach, Dean Leffingwell and Don Widrig. [Malan] Defining Non-Functional Requirements, Ruth Malan and Dana Bredemeyer. IBM Software Group | Rational software Agenda Definitions Types of requirement Classifying requirements Capturing NFRs Summary IBM Software Group | Rational software Types of Requirement Use Cases Defines the behavior of the system from an external perspective System-Wide Requirements Legal and regulatory requirements, application standards, qualities that the system exhibits (such as usability, reliability, scalability, performance), operating system and environment requirements, compatibility requirements, and other design and implementation constraints Change
    [Show full text]
  • Software Engineering (SE) 1
    Software Engineering (SE) 1 SE 352 | OBJECT-ORIENTED ENTERPRISE APPLICATION DEVELOPMENT SOFTWARE ENGINEERING | 4 quarter hours (Undergraduate) (SE) This course focuses on applying object-oriented techniques in the design and development of software systems for enterprise applications. Topics SE 325 | INTRODUCTION TO SOFTWARE ENGINEERING | 4 quarter hours include component architecture, such as Java Beans and Enterprise (Undergraduate) Java Beans, GUI components, such as Swing, database connectivity and This course introduces students to the activities performed at each object repositories, server application integration using technologies stage of the development process so that they can understand the full such as servlets, Java Server Pages, JDBC and RMI, security and lifecycle context of specific tasks such as coding and testing. Topics will internationalization. PREREQUISITE(S): CSC 301. include software development processes, domain modeling, requirements CSC 301 is a prerequisite for this class. elicitation and specification, architectural design and analysis, product SE 356 | SOFTWARE DEVELOPMENT FOR MOBILE AND WIRELESS and process level metrics, configuration management, quality assurance SYSTEMS | 4 quarter hours activities including user acceptance testing and unit testing, project (Undergraduate) management skills such as risk analysis, effort estimation, project This course will focus on the unique aspects of developing software release planning, and software engineering ethics. applications for mobile and wireless systems, such as personal digital CSC 301 or CSC 393 is a prerequisite for this class. assistant (PDA) devices and mobile phones. Topics will include user SE 330 | OBJECT ORIENTED MODELING | 4 quarter hours interface design for small screens with restricted input modalities, data (Undergraduate) synchronization for mobile databases as well as wireless programming Object-oriented modeling techniques for analysis and design.
    [Show full text]
  • Composition of Software Architectures Christos Kloukinas
    Composition of Software Architectures Christos Kloukinas To cite this version: Christos Kloukinas. Composition of Software Architectures. Computer Science [cs]. Université Rennes 1, 2002. English. tel-00469412 HAL Id: tel-00469412 https://tel.archives-ouvertes.fr/tel-00469412 Submitted on 1 Apr 2010 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. Composition of Software Architectures - Ph.D. Thesis - - Presented in front of the University of Rennes I, France - - English Version - Christos Kloukinas Jury Members : Jean-Pierre Banâtre Jacky Estublier Cliff Jones Valérie Issarny Nicole Lévy Joseph Sifakis February 12, 2002 Résumé Les systèmes informatiques deviennent de plus en plus complexes et doivent offrir un nombre croissant de propriétés non fonctionnelles, comme la fiabi- lité, la disponibilité, la sécurité, etc.. De telles propriétés sont habituellement fournies au moyen d’un intergiciel qui se situe entre le matériel (et le sys- tème d’exploitation) et le niveau applicatif, masquant ainsi les spécificités du système sous-jacent et permettant à des applications d’être utilisées avec dif- férentes infrastructures. Cependant, à mesure que les exigences de propriétés non fonctionnelles augmentent, les architectes système se trouvent confron- tés au cas où aucun intergiciel disponible ne fournit toutes les propriétés non fonctionnelles visées.
    [Show full text]
  • Download Distributed Systems Free Ebook
    DISTRIBUTED SYSTEMS DOWNLOAD FREE BOOK Maarten van Steen, Andrew S Tanenbaum | 596 pages | 01 Feb 2017 | Createspace Independent Publishing Platform | 9781543057386 | English | United States Distributed Systems - The Complete Guide The hope is that together, the system can maximize resources and information while preventing failures, as if one system fails, it won't affect the availability of the service. Banker's algorithm Dijkstra's algorithm DJP algorithm Prim's algorithm Dijkstra-Scholten algorithm Dekker's algorithm generalization Smoothsort Shunting-yard algorithm Distributed Systems marking algorithm Concurrent algorithms Distributed Systems algorithms Deadlock prevention algorithms Mutual exclusion algorithms Self-stabilizing Distributed Systems. Learn to code for free. For the first time computers would be able to send messages to other systems with a local IP address. The messages passed between machines contain forms of data that the systems want to share like databases, objects, and Distributed Systems. Also known as distributed computing and distributed databases, a distributed system is a collection of independent components located on different machines that share messages with each other in order to achieve common goals. To prevent infinite loops, running the code requires some amount of Ether. As mentioned in many places, one of which this great articleyou cannot have consistency and availability without partition tolerance. Because it works in batches jobs a problem arises where if your job fails — Distributed Systems need to restart the whole thing. While in a voting system an attacker need only add nodes to the network which is Distributed Systems, as free access to the network is a design targetin a CPU power based scheme an attacker faces a physical limitation: getting access to more and more powerful hardware.
    [Show full text]
  • The Domain-Specific Software Architecture Program
    Special Report CMU/SEI-92-SR-009 The Domain-Specific Software Architecture Program LTC Erik Mettala and Marc H. Graham, eds. June 1992 Special Report CMU/SEI-92-SR-009 June 1992 The Domain Specific Software Architecture Program LTC Erik Mettala DARPA SISTO Marc H. Graham Technology Division, Special Projects Unlimited distribution subject to the copyright. Software Engineering Institute Carnegie Mellon University Pittsburgh, Pennsylvania 15213 This report was prepared for the SEI Joint Program Office HQ ESC/AXS 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 (signature on file) Thomas R. Miller, Lt Col, USAF SEI Joint Program Office This work is sponsored by the U.S. Department of Defense. Copyright © 1993 by Carnegie Mellon University. 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. Requests for permission to reproduce this document or to prepare derivative works of this document for external and commercial use should be addressed to the SEI Licensing Agent. NO WARRANTY THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN “AS-IS” BASIS. CARNEGIE MELLON UNIVERSITY MAKES NO WARRAN- TIES OF ANY KIND, EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR MERCHANTIBILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE OF THE MATERIAL.
    [Show full text]