基于重用的软件工程:技术、组织和控制(英文版)

基于重用的软件工程:技术、组织和控制(英文版)
作 者: Hafedh Mili
出版社: 电子工业出版社
丛编项: 软件工程丛书
版权说明: 本书为出版图书,暂不支持在线阅读,请支持正版图书
标 签: 暂缺
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《基于重用的软件工程:技术、组织和控制(英文版)》作者简介

内容简介

软件重用的理论研究和实践,在软件发达国家已经有了一定的历史。实践证明,软件重用是从根本上提高软件生产率、降低成本、提高质量的有效途径;同时也说明,软件重用需要在关键技术、管理、指标等很多方面引入注重实效的变革。本书讨论了基于重用的软件工程实践模型和其他有关的基础问题;全面介绍了基于重用的软件工程的当前状态和未来;比较全面地讨论了重用的关键技术、管理和组织问题;详细论述了这些理论知识在基于组件的软件开发生命周期和产品线工程中的运用问题。本书非常适合计划推进本单位软件重用实践的管理和技术人员阅读。相信本书对高校计算机应用专业研究生和高年级本科生也有很好的参考价值。

图书目录

PART1 INTRODUCTION

1 Software Reuse and Software Engineering

1.1 Concepts and Terms

1.1.1 A Definition of Software Reuse

1.1.2 Software Reuse:Potentials and Pitfalls

1.1.3 Exercises

1.2 Software Reuse Products

1.2.1 Reusable Assets

1.2.2 Reuse Libraries:Vertical versus Horizontal Sets

1.2.3 Exercises

1.3 Software Reuse Processes

1.3.1 Organizational Structures

1.3.2 Domain Engineering

1.3.3 Application Engineering

1.3.4 Corporate Oversight

1.3.5 Exercises

1.4 Software Reuse Paradigms

1.4.1 Paradigms for Software Retrieval

1.4.2 Paradigms for Software Adaptation

1.4.3 Paradigms for Software Composition

1.4.4 Exercises

1.5 Further Reading

2 State of the Art and the Practice

2.1 Software Reuse Management

2.1.1 State of the Art

2.1.2 State of the Practice

2.1.3 Perspectives

2.1.4 Exercises

2.2 Software Reuse Techniques

2.2.1 State of the Art

2.2.2 State of the Practice

2.2.3 Perspectives

2.2.4 Exercises

2.3 Software Reuse Initiatives

2.3.1 Software Reuse Libraries

2.3.2 Software Reuse methodologies

2.3.3 Software Reuse Standards

2.3.4 Exercises

2.4 Further Reading

3 Aspects of Software Reuse

3.1 Organizational Aspects

3.1.1 Managerial Intrastructure

3.1.2 Technological Infrastructure

3.1.3 Reuse Introduction

3.1.4 Exercises

3.2 Technical Aspects

3.2.1 Domain Engineering Aspects

3.2.2 Component Engineering Aspects

3.2.3 Application Engineering Aspects

3.2.4 Exercises

3.3 Economic Aspects

3.3.1 Software Reuse Metrics

3.3.2 Software Reuse Cost Estimation

3.3.3 Software Reuse Return on Investment

3.4 Further Reading

PART II ORGANIZATIONAL ASPECTS

4 Software Reuse Organizations

4.1 Software Reuse Team Structures

4.1.1 Characteristic Features

4.1.2 Software Reuse Team Strustures

4.1.3 Determining Factors

4.1.4 Exercises

4.2 Reuse Skills

4.2.1 Librarian

4.2.2 Reuse Manager

4.2.3 Domain Engineer

4.2.4 Application Engineer

4.2.5 Component Engineer

4.2.6 Exercises

4.3 Further Reading

5 Support Services

5.1 Configuration Management

5.2 Quality Assurance

5.3 Testing

5.4 Verification and Validation

5.4.1 Domain-Level Tasks

5.4.2 Correspondence Tasks

5.4.3 Communicating Results

5.5 Risk Management

5.6 Certification

5.7 Exercises

5.8 Further Reading

6 Institutionalizing Reuse

6.1 Organizational Readiness

6.2 Barriers to Reuse

6.2.1 Cultural

6.2.2 Managerial

6.2.3 Technological

6.2.4 Infrastructural

6.3 Overcoming the Barriers to Reuse

6.3.1 Executive Support

6.3.2 Training

6.3.3 Incentives

6.3.4 Incremental Approach

6.4 Exercises

6.5 Further Reading

PART III DOMAIN ENGINEERING:BUILDING FOR REUSE

7 Building Reusable Assets:An Overview

7.1 Reusability

7.1.1 Usability

7.1.2 Usefuless

7.2 Acquiring Reusable Assets

7.2.1 Build Versus Buy

7.2.2 Building Reusable Assets in House

7.2.3 Building Application Generators

7.3 Domain Engineering Lifecycles

7.3.1 Issues

7.3.2 A Sample of Domain Engineering Lifecycles

7.3.3 Summary

7.4 Summary and Discussion

8 Domain Analysis

8.1 Basic Concepts

8.1.1 A Domain

8.1.2 Domain Analysis

8.1.3 Domain Models

8.1.4 Exercises

8.2 Domain Scoping

8.2.1 Scoping Criteria

8.2.2 Over-and Underscoping

8.2.3 Exercises

8.3 Domain versus Application Requirements

8.4 Anatomy of a Domain Component

8.4.1 A Model for Component Families

8.4.2 Concerns in Designing Component Families

8.4.3 Exercises

8.5 Abstraction and Domain Analysis

8.5.1 Abstraction and Commonality Analysis

8.5.2 Abstraction Dimensions

8.5.3 Exercises

8.6 Domain Analysis Methods

8.6.1 Feature-Oriented Domain Analysis(FODA)

8.6.2 OrganizationDomain Modeling(ODM)

8.6.3 Joint Object-Oriented Domain Analysis(JODA)

8.6.4 Reuse Library Proess Model(RLPM)

8.6.5 DomainAnalysis and Design Process(DADP)

8.6.6 Domain-Specific Software Architecture(DSSA)

8.6.7 The SYNTHESIS Domain Analysis Method

8.6.8 Reuse Business Methodology

8.6.9 Comparison

8.6.10 Exercises

8.7 Domain Analysis Tools

8.7.1 KAPTUR,a Knowledge-Based Tool

8.7.2 Genesis,a Builder for Database Management Systems

8.7.3 Exercises

8.8 Further Reading

9 Programming Paradigms and Reusability

9.1 Usability Attributes

9.1.1 Reusability-Abstraction Boundaries

9.1.2 Abstraction and Composability

9.2 Representation and Modeling Paradigms

9.2.1 Declarative versus Procedural Representations

9.2.2 Object-Oriented Modeling

9.3 Abstraction and Composition in Development Paradigms

9.3.1 Declarative Representations:The Case of Logic Programming

9.3.2 Procedural(Functional)Programming

9.3.3 Object-Oriented Development

9.4 Toward Multiparadigm Development

PART IV OBJECT-ORIENTED DOMAIN ENGINEERING

10 A Pragmatic Introduction to Object Orientation

10.1 Introduction

10.1.1 Overview

10.1.2 The Financial Domain

10.2 The Tenets of Object-Oriented Programming

10.2.1 A Sample Program

10.2.2 Encapsulation and Information Hiding

10.2.3 Overloading and Genericity

10.2.4 Subtyping and Class Inheritance

10.2.5 Method Resolution,Late Binding,and Polymorphism

10.3 The Language Wars

10.4 Discussion

11 Abstraction and Parameterization Techniques in Object Orientation

11.1 Abstraction Techniques in Object-Oriented Modeling

11.1.1 An Ontology of Objects

11.1.2 Inheritance in Knowledge Representation

11.1.3 Inheritance in Object-Oriented Analysis

11.1.4 Metamodeling

11.1.5 Understanding Metamodeling

11.1.6 In Practice-a Summary

11.2 Abstraction Techniques in Object-Oriented Programming Languages

11.2.1 Abstract Classes

11.2.2 Generic Classes

11.3 Metaprogramming

11.3.1 Building an Interpreter

11.3.2 Computational Reflection and Metaclasses

11.3.3 Implementing Powertypes

11.4 Design Patterns

11.4.1 Structural Abstraction Patterns

11.4.2 Behavioral Abstraction Patterns

11.5 Conclusion

12 Composition Techniques in Object Orientation

12.1 Issues

12.1.1 Composability Requirements

12.1.2 Structural and Behavioral Composition

12.1.3 Abstraction and Granularity

12.1.4 Binding Time

12.2 Linguistic Approaches

12.2.1 Constraint and Logic-Based Programming

12.2.2 Functional Composition

12.2.3 Hybrid Object-Oriented and Decclarative Approaches

12.3 Modularization and Packaging Approaches

12.3.1 Aspect-Oriented Programming

12.3.2 Subject-Oriented Programming

12.3.3 View-Oriented Programming

12.3.4 Other Approaches

12.4 Design-Based Approaches

12.4.1 Event-Based Composition

12.4.2 Simulated Reflection

12.4.3 Composition Design Patterns

12.5 Summary and Discussion

13 Application Frameworks

13.1 What Is in a Framework

13.1.1 A First Definition

13.1.2 The Anatomy of a Framework

13.1.3 The Framework Reuse Lifecycle

13.2 Fulfilling the Framework Contract

13.2.1 Component Substitutability

13.2.2 Composition Issues

13.3 Building Frameworks

13.3.1 Frameworks as Products of Domain Engineering

13.3.2 Frameworks as Planned Byproducts of Application Development

13.4 The SWING Framework

13.4.1 Overview

13.4.2 The Event-Handling Framework

13.4.3 The Pluggable Look and Feel Framework

13.5 Conclusion

14 Architectural Frameworks

14.1 What Is and Architecture

14.1.1 Definition

14.1.2 Quality Attributes of Architectures

14.1.3 Architectural Styles and Connectors

14.2 Architecuture and Reuse

14.2.1 The Development Lifecycle of a Software Architecture

14.2.2 Dimensions of Reusability

14.2.3 Issues in Architectural Frameworks

14.3 CORBA

14.3.1 The Problem

14.3.2 The Core Architecture

14.3.3 Handling Method Calls

14.3.4 Implementing Application Objects

14.4 Java-Based Technologies

14.4.1 Java RMI

14.4.2 The EJB Architecture

14.5 The COM Family

14.6 Summary and Discussion

14.7 Further Reading

PART V APPLICATION ENGINEERING

15 Application Engineering

15.1 Application Engineering Paradigms

15.2 Application Engineering Lifecycles

15.3 Application Engineering Development Tasks and Heuristics

16 Component Storage and Retrieval

16.1 An Introductin to Software Libraries

16.1.1 Terminology for Storage and Retrieval

16.1.2 Assessment Criteria

16.1.3 Characterizing a Storage-Retrieval Method

16.1.4 Exercises

16.2 Classifying Software Assets for Storage and Retrieval

16.2.1 Obstacles to Software Assets Classification

16.2.2 Issues in Software Storage and Retrieval

16.2.3 Classifying Software Libraries

16.2.4 Exercises

16.3 Further Reading

17 Reusable Asset Integration

17.1 Asset Instantiation Paradigms

17.1.1 Component Selection

17.1.2 Component Generation

17.1.3 Component Specialization

17.2 Asset Composition Paradigms

17.2.1 Composability Scenarios

17.2.2 Composability Media

17.3 Issues in Integrating Components

17.3.1 Component Issues

17.3.2 Process Issues

17.3.3 Quality Issues

PART VI MANAGERIAL ASPECCTS OF SOFTWARE REUSE

18 Software Reuse Metrics

18.1 Software Engineering Metrics

18.1.1 Attributes and Metrics

18.1.2 Structural Metrics

18.1.3 Functional Metrics

18.1.4 Exercises

18.2 Component Engineering Metrics

18.2.1 Concept

18.2.2 Content

18.2.3 Context

18.2.4 Exercises

18.3 Application Engineering Metrics

18.3.1 Project-Level Functions

18.3.2 Exercises

18.4 Domain Engineering Metrics

18.4.1 Reuse Means:Software Library Metrics

18.4.2 Exercises

18.5 Organization Level Metrics

18.5.1 Reuse Impacts:Productivity Gains

18.5.2 Exercises

18.6 Further Reading

19 Software Reuse Cost Estimation

19.1 Software Engineering Economics:COCOMO

19.1.1 Basic COCOMO

19.1.2 Intermediate COCOMO

19.1.3 Detailed COCOMO

19.1.4 Exercises

19.2 Component Engineering Economics

19.2.1 Development for Reuse

19.2.2 Quality Gains

19.2.3 Productivity Gains

19.2.4 Time-to-Market Gains

19.2.5 Exercises

19.3 Application Engineering Economics

19.3.1 Development with Reuse

19.3.2 Productivity Gains

19.3.3 Quality Gains

19.3.4 Time-to-Market Gains

19.3.5 Exercises

19.4 Further Reading

20 Software Reuse Return on Investment

20.1 Modeling Investment Decisions

20.1.1 Investment Cost Factors

20.1.2 Economic Functions

20.1.3 Exercises

20.2 Software Reuse Investment Decisions

20.2.1 Component Engineering Investment Cycle

20.2.2 Application Engineering Investment Cycle

20.2.3 Domain Engineering Investment Cycle

20.2.4 Corporate Investment Cycle

20.2.5 Exercises

20.3 Further Reading

Part VII Software Reuse Technologies

21 Component-Based Software Engineering(CBSE)

21.1 Components

21.1.1 What Is a Component

21.1.2 The Anatomy of a Component

21.1.3 What Makes a Good Component

21.2 Component Models

21.2.1 What Is a Component Model

21.2.2 Things that Component Models Should Address

21.2.3 Example Component Models

21.3 Component-Based System Development(CBSD)

21.3.1 CBSD Process

21.3.2 Component Granularity

21.4 Issues in Developing with Components

21.4.1 Technical Issues

21.4.2 Business Issues

21.5 Further Reading

22 Product-Line Engineering(PLE)

22.1 PLE and Software Reuse

22.1.1 Exercises

22.2 PLE Lifecycle

22.2.1 Domian and Application Engineering Aspects

22.2.2 Attributes of a PLE Lifecycle

22.2.3 Success Factors

22.2.4 Exercises

22.3 Product-Line Architectures

22.3.1 Software Architectures and Product-Line Architectures

22.3.2 Conformance and Synchronization in PLAs

22.3.3 Evaluating Architectures

22.3.4 Exercises

22.4 PLE Approaches

22.4.1 The SYNTHESIS Approach

22.4.2 The Product-Line Practice

22.4.3 Product-Line Approaches

22.5 Further Reading

23 COTS Based Development

23.1 Commercial Off the Shelf Software

23.1.1 Definition and Background

23.1.2 COTS and CBSD

23.1.3 Exercises

23.2 A Lifecycle for COTS Based Development

23.2.1 COTS Selection

23.2.2 COTS Integration

23.2.3 Verification and Validation of COTS Based Systems

23.2.4 Maintenance of COTS Based Systems

23.2.5 Cost Estimation for COTS Development

23.2.6 Exercises

23.3 Developing COTS Certification Criteria

23.3.1 Certification Categories

23.3.2 COTS Certification Levels

23.3.3 COTS Worthiness

23.3.4 Domain Pervasiveness

23.3.5 Architecture Conformance

23.3.6 Application Adequacy

23.4 Further Reading

APPENDIXES

Appendix A Software Reuse Resources

A.1 Texbooks

A.2 Web Sites

A.3 Conference Series

A.4 Software Reuse Surveys

Appendix B Term Projects

B.1 Simulation of Waiting Queues

B.1.1 Domain Engineering

B.1.2 Application Engineering

B.2 Library Systems

B.2.1 Domain Engineering

B.2.2 Application Engineering

Bibliography

Index