书籍详情
面向对象软件开发原理:英文版
作者:(荷)Anton Eliens著
出版社:机械工业出版社
出版时间:2003-04-01
ISBN:9787111119074
定价:¥59.00
购买这本书可以去
内容简介
本书围绕软件开发周期的每一个阶段,从分析、设计到编程,介绍面向对象技术的优势和困难。把面向对象技术基本原理与软件工程实践联系起来是本书一次系统的尝试。 本书特点 大量的Java和C++的实例 ·对面向对象分析和设计策略的合理评估 ·包括面向对象语言设计和语义策略的合理评估 ·包括面向对象语言设计和语义的形式化基础、行为求精、模型、组件和软件体系结构等高级主题的讨论 ·面向对象技术在多媒信息系统和Web应用等方面的案例分析 ·光盘中的课件材精以幻灯片的方式组织起来,每张幻片讲解一个重要的要领或思想,并配以文字进行解释或评论。
作者简介
艾伦是荷兰阿姆斯特丹自由(Vrije)大学的教师,同时也是数学与计算机研究中心的研究人员。他的研究领域包括超媒体系统、分布式逻辑编程、面向对象软件工程,以及多媒体信息检索等。
目录
I Designing Object-Oriented Systems
1 Introduction
1.1 Themes and variations
1.1.1 Object terminology
1.1.2 Object computation
1.l.3 Design by Contract
1.2 Paradigms of programming
1.2.1 Procedural programming
1.2.2 Data abstraction
1.2.3 Object-oriented programming
1.3 The object-oriented software life-cycle
1.3.1 Analysis
1.3.2 Design
1.3.3 Implementation
1.4 Beyond object-orientation?
2 Idioms and patterns
2.l Polymorphism
2.l.l Inheritance and delegation in Java
2.l.2 Polymorphism in C++
2.l.3 Assertions in C++
2.l.4 Canonical class idioms
2.2 Idioms in hush
2.2.l The handle/body idiom
2.2_2 Virtual eelf-reference
2.2.3 Dynamic role-switching
2.2.4 The art of hush progamming
2.3 A catalogue of design patterns
2.3. l Creational patterns
2.3.2 Structural patterns
2.3.3 Behavioral patterns
2.4 Event-driven computation
2.4.l The Reactor pattern
2.4.2 Abstract event systems
3 Software engineering perspectives
3.1 Development methods
3.1.l Perspectives of modeling
3.1.2 Requirements engineering -Fusion
3.l.3 Methods for analysis and design - a comparative study
3.2 Identifying objects
3.2. l Modeling heuristics
3.2.2 Assigning responsibilities
3.2.3 Object roles and interaction
3.3 Contracts
3.3.1 Specifying contractnal obligations
3.3.2 Refining contracts
3.3.3 Runtime consistency checking
3.4 Towards a formal approach
4 Applicatiion development
4.l The drawtool application
4.2 Guidelines for design
4.2.l Individual class design
4.2.2 Inheritance and invaxiance
4.2.3 An objective sense of style
4.3 From specification to implementation
4.3.l Structural versus behavioral encapsulation
4.3.2 Model-based specification
4.3.3 Abstract systems and events
II Object-Oriented Languages and Systems
5 Object-oriented programming langnages
5.l The object paradigm
5.1.l A classification of object-oriented languages
5.l.2 Alternative object models
5.1.3 Object extensions of Lisp, C and Prolog
5.l.4 Script languages - integation with Java
5.2 Comparing Smalltalk, Eiffel, C++ and Java
5.2.l Criteria for comparison
5.2.2 Language characteristics
5.3 Design dimensions of object-oriented languages
5.3.1 Object-based versus object-oriented
5.3.2 Towards an orthogonal approach-type extensions
5.3.3 Multi-paradigm languages-logic
5.3.4 Active objects-synchronous Java/C++
5.4 Prototypes-delegation versus inheritance
5.4.l Alternative forms of sharing
5.4.2 Implementation techniques-Self
5.5 Meta-level architectures
8 Component technology
6.1 Objects versus components
6.l.l Definitions
6.l.2 The technoloy matrix
6.l.3 Component myths
6.2 Standards for interoperability
6.2.l Object linking and embedding-COM
6.2.2 Object Request Brokers - CORBA
6.2.3 Persistent objects -ODMG
6.3 The Java platform -technology innovation
6.4 An Internet-based workgroup application
6.5 Crush-extending hush with CORBA
7 Sotftware architecture
7. 1 Elements of architecture
7.2 Case study - multimedia feature detection
7.3 Crossing boundaries
7.3.l Embedded logic - crossing the paradigm boundary
7.3.2 Native objects - crossing the language boundary
7.3.3 Combining Java and C++
7.4 Architectural patterns and styles
7.4. l From technology to style
7.4.2 Case study - perspectives in visualization
7.5 Cross-platform development
III Foundations of Object-Oriented Modeling
8 Abstract data types
8.l Abstraction and types
8.l.l Abstraction in programming languages
8.1.2 A foundational perspective-types as constraints
8.1.3 Objectives of typed OOP
8.2 Algebraic specification
8.2.l Signatures - generators and observers
8.2.2 Equations - specifying constraints
8.2.3 Initial algebra semantics
8.2.4 Objects as algebras
8.3 Decomposition - modules versus objects
8.3.1 Abstract interfaces
8.3.2 Representation and implementation
8.3.3 Adding new generators
8.3.4 Adding new observers
8.4 Types versus classes
9 Polymorphism
9.1 Abstract inheritance
9.2 The subtype relation
9.2.l Types as sets
9.2.2 The subtype refinement relation
9.2.3 Objects as records
9.3 Flavors of polymorphism
9.4 Type abstraction
9.4.1 A simple type calculus
9.4.2 Intersection types
9.4.3 Bounded polymorphism
9.5 Existential types - hiding
9.6 Self-reference
10 Behavioral refinement
10.1 Types as behavior
10.2 Verifying behavioral properties
10.2.l State transformers
10.2.2 Assertion logic
10.3 On the notion of behavior
10.4 Objects as behavioral types
10.4.1 Abstraction and representation
10.4.2 The correspondence relation
10.5 Specifying behavioral compositions
IV Object-Oriented Application Frameworks
11 Business process redesign
11.1 Business objects - SanFrancisco framework
11.2 Business process modeling
11.2.l Logistics-based modeling
11.2.2 Business process simulation
ll.2.3 Example-requests for loans
ll.3 Object-oriented simulation
11.4 Visualization support
11.4.l So many users, so many perspectives
11.4.2 DIVA - distributed visualization architecture
11.5 Migrating from legacy applications
12 Web applications
12.l Objects and the Web
12.l.l Trends and technologies
12.l.2 The Object Web - CORBA/Java versus Microsoft
12.2 Programming the Web -a search for APls
12.2.l Models of computation
12.2.2 Intelligent agents
12.3 The DejaVU experience -jamming (on) the Web
12.4 Software architectures revisited
Appendices
A The language Smallkalk
B The language Eiffel
C The language C++
D The language Java
E The language DLP
F Unified Modeling Language
G Interface Definition Language - IDL
H Hello (CORBA) Universe
I Software development projects
J Answers to questions
References
Index
1 Introduction
1.1 Themes and variations
1.1.1 Object terminology
1.1.2 Object computation
1.l.3 Design by Contract
1.2 Paradigms of programming
1.2.1 Procedural programming
1.2.2 Data abstraction
1.2.3 Object-oriented programming
1.3 The object-oriented software life-cycle
1.3.1 Analysis
1.3.2 Design
1.3.3 Implementation
1.4 Beyond object-orientation?
2 Idioms and patterns
2.l Polymorphism
2.l.l Inheritance and delegation in Java
2.l.2 Polymorphism in C++
2.l.3 Assertions in C++
2.l.4 Canonical class idioms
2.2 Idioms in hush
2.2.l The handle/body idiom
2.2_2 Virtual eelf-reference
2.2.3 Dynamic role-switching
2.2.4 The art of hush progamming
2.3 A catalogue of design patterns
2.3. l Creational patterns
2.3.2 Structural patterns
2.3.3 Behavioral patterns
2.4 Event-driven computation
2.4.l The Reactor pattern
2.4.2 Abstract event systems
3 Software engineering perspectives
3.1 Development methods
3.1.l Perspectives of modeling
3.1.2 Requirements engineering -Fusion
3.l.3 Methods for analysis and design - a comparative study
3.2 Identifying objects
3.2. l Modeling heuristics
3.2.2 Assigning responsibilities
3.2.3 Object roles and interaction
3.3 Contracts
3.3.1 Specifying contractnal obligations
3.3.2 Refining contracts
3.3.3 Runtime consistency checking
3.4 Towards a formal approach
4 Applicatiion development
4.l The drawtool application
4.2 Guidelines for design
4.2.l Individual class design
4.2.2 Inheritance and invaxiance
4.2.3 An objective sense of style
4.3 From specification to implementation
4.3.l Structural versus behavioral encapsulation
4.3.2 Model-based specification
4.3.3 Abstract systems and events
II Object-Oriented Languages and Systems
5 Object-oriented programming langnages
5.l The object paradigm
5.1.l A classification of object-oriented languages
5.l.2 Alternative object models
5.1.3 Object extensions of Lisp, C and Prolog
5.l.4 Script languages - integation with Java
5.2 Comparing Smalltalk, Eiffel, C++ and Java
5.2.l Criteria for comparison
5.2.2 Language characteristics
5.3 Design dimensions of object-oriented languages
5.3.1 Object-based versus object-oriented
5.3.2 Towards an orthogonal approach-type extensions
5.3.3 Multi-paradigm languages-logic
5.3.4 Active objects-synchronous Java/C++
5.4 Prototypes-delegation versus inheritance
5.4.l Alternative forms of sharing
5.4.2 Implementation techniques-Self
5.5 Meta-level architectures
8 Component technology
6.1 Objects versus components
6.l.l Definitions
6.l.2 The technoloy matrix
6.l.3 Component myths
6.2 Standards for interoperability
6.2.l Object linking and embedding-COM
6.2.2 Object Request Brokers - CORBA
6.2.3 Persistent objects -ODMG
6.3 The Java platform -technology innovation
6.4 An Internet-based workgroup application
6.5 Crush-extending hush with CORBA
7 Sotftware architecture
7. 1 Elements of architecture
7.2 Case study - multimedia feature detection
7.3 Crossing boundaries
7.3.l Embedded logic - crossing the paradigm boundary
7.3.2 Native objects - crossing the language boundary
7.3.3 Combining Java and C++
7.4 Architectural patterns and styles
7.4. l From technology to style
7.4.2 Case study - perspectives in visualization
7.5 Cross-platform development
III Foundations of Object-Oriented Modeling
8 Abstract data types
8.l Abstraction and types
8.l.l Abstraction in programming languages
8.1.2 A foundational perspective-types as constraints
8.1.3 Objectives of typed OOP
8.2 Algebraic specification
8.2.l Signatures - generators and observers
8.2.2 Equations - specifying constraints
8.2.3 Initial algebra semantics
8.2.4 Objects as algebras
8.3 Decomposition - modules versus objects
8.3.1 Abstract interfaces
8.3.2 Representation and implementation
8.3.3 Adding new generators
8.3.4 Adding new observers
8.4 Types versus classes
9 Polymorphism
9.1 Abstract inheritance
9.2 The subtype relation
9.2.l Types as sets
9.2.2 The subtype refinement relation
9.2.3 Objects as records
9.3 Flavors of polymorphism
9.4 Type abstraction
9.4.1 A simple type calculus
9.4.2 Intersection types
9.4.3 Bounded polymorphism
9.5 Existential types - hiding
9.6 Self-reference
10 Behavioral refinement
10.1 Types as behavior
10.2 Verifying behavioral properties
10.2.l State transformers
10.2.2 Assertion logic
10.3 On the notion of behavior
10.4 Objects as behavioral types
10.4.1 Abstraction and representation
10.4.2 The correspondence relation
10.5 Specifying behavioral compositions
IV Object-Oriented Application Frameworks
11 Business process redesign
11.1 Business objects - SanFrancisco framework
11.2 Business process modeling
11.2.l Logistics-based modeling
11.2.2 Business process simulation
ll.2.3 Example-requests for loans
ll.3 Object-oriented simulation
11.4 Visualization support
11.4.l So many users, so many perspectives
11.4.2 DIVA - distributed visualization architecture
11.5 Migrating from legacy applications
12 Web applications
12.l Objects and the Web
12.l.l Trends and technologies
12.l.2 The Object Web - CORBA/Java versus Microsoft
12.2 Programming the Web -a search for APls
12.2.l Models of computation
12.2.2 Intelligent agents
12.3 The DejaVU experience -jamming (on) the Web
12.4 Software architectures revisited
Appendices
A The language Smallkalk
B The language Eiffel
C The language C++
D The language Java
E The language DLP
F Unified Modeling Language
G Interface Definition Language - IDL
H Hello (CORBA) Universe
I Software development projects
J Answers to questions
References
Index
猜您喜欢