Muutke küpsiste eelistusi

E-raamat: Using Aspect Oriented Programming for Trustworthy Software Development [Wiley Online]

(Computer Science Department, St. Petersburg University (Russia))
Teised raamatud teemal:
  • Wiley Online
  • Hind: 141,68 €*
  • * hind, mis tagab piiramatu üheaegsete kasutajate arvuga ligipääsu piiramatuks ajaks
Teised raamatud teemal:
Learn how to successfully implement trustworthy computing tasks using aspect-oriented programming This landmark publication fills a gap in the literature by not only describing the basic concepts of trustworthy computing (TWC) and aspect-oriented programming (AOP), but also exploring their critical interrelationships. The author clearly demonstrates how typical TWC tasks such as security checks, in-and-out conditions, and multi-threaded safety can be implemented using AOP.

Following an introduction, the book covers:





Trustworthy computing, software engineering, and computer science



Aspect-oriented programming and Aspect.NET



Principles and case studies that apply AOP to TWC





Coverage includes Aspect.NET, the AOP framework developed by the author for the Microsoft.NET platform, currently used in seventeen countries. The author discusses the basics of Aspect.NET architecture, its advantages compared to other AOP tools, and its functionality. The book has extensive practical examples and case studies of trustworthy software design and code using the Aspect.NET framework. In addition, the book explores other software technologies and tools for using AOP for trustworthy software development, including Java and AspectJ.

This book also includes a valuable chapter dedicated to ERATO, the author's teaching method employed in this book, which has enabled thousands of students to quickly grasp and apply complex concepts in computing and software engineering, while the final chapter presents an overall perspective on the current state of AOP and TWC with a view toward the future.

Software engineers, architects, developers, programmers, and students should all turn to this book to learn this tested and proven method to create more secure, private, and reliable computing.
Preface ix
1. Introduction 1
1.1 The Role of Aspect-Oriented Programming in Trustworthiness
1
1.2 Historical Background and Personal Experience
3
1.3 Organization of the Book
8
2. Trustworthy Computing, Software Engineering, and Computer Science 10
2.1 History of and Growing Need for TWC
10
2.2 Microsoft's TWC Initiative
13
2.3 The Four Pillars of TWC
15
2.3.1 Security
15
2.3.2 Privacy
23
2.3.3 Reliability
25
2.3.4 Business Integrity
27
2.4 Software Engineering Technologies and Tools for TWC
30
2.5 TWC and .NET
31
2.5.1 .NET Overview
31
2.5.2 .NET Security
34
2.5.3 .NET and Reliability
37
2.5.4 .NET TWC Tools FxCop and Spec#
39
2.6 TWC and Java
42
2.6.1 Java Overview
42
2.6.2 Java Security
44
2.6.3 Java and Reliability
46
2.6.4 Java TWC Tools
48
2.7 Summary
49
3. Aspect-Oriented Programming and Aspect.NET 50
3.1 History of AOP
50
3.2 AOP Basics
54
3.3 AOP and Related Technologies and Tools
66
3.3.1 AspectJ and AspectWerkz
66
3.3.2 Other AOP Tools and Approaches to Separation of Concerns
70
3.4. Pitfalls of AOP
73
3.5 AOP for Java
76
3.6 AOP for .NET
79
3.7 Aspect.NET Principles and Architecture
85
3.7.1 Motivation and Key Ideas
85
3.7.2 Basic Concepts of AOP
88
3.7.3 Example
91
3.7.4 Representing Aspects by Custom Attributes
92
3.7.5 Example in Terms of Custom Attributes
94
3.7.6 Summary of Our Approach to AOP
95
3.7.7 Aspect.NET Architectural Principles
97
3.7.8 Syntax of AOP Metalanguage (Version 1.0)
99
3.7.9 Another Example
101
3.8 Features and Use of Aspect.NET
102
3.8.1 Prerequisites for Using Aspect.NET 2.1
103
3.8.2 Previous Releases of Aspect.NET and the Compatibility Mode
103
3.8.3 Aspect.NET Architecture
104
3.8.4 Case Study: Using the Aspect.NET Framework
106
3.8.5 Aspect.NET Framework Options
113
3.8.6 Aspect.NET.ML Metalanguage
114
3.8.7 Samples Included in the Aspect.NET 2.1 Release
122
3.8.8 Experience of Aspect.NET Use and User Feedback
123
3.9 Summary
3.9.1 AOP
123
3.9.2 Aspect.NET
125
4. Principles and Application of AOP in TWC 128
4.1 AOP and TWC: Cooperation Rather Than Violation
128
4.2 AOP for Security
132
4.3 AOP for Error Handling
136
4.4 AOP for Synchronization
142
4.5 AOP for Trustworthy Multithreading- and Multicore-Based Applications
145
4.6 AOP for Privacy
149
4.7 AOP for Reliability
153
4.7.1 Using AOP to Make Implementation Reliable
153
4.7.2 Using AOP for Software Testing
157
4.7.3 Using AOP to Support Formal Specification and Verification Methods
164
4.8 AOP for Business Integrity
165
4.9 AOP for Design by Contract
168
4.10 Using AOP via Aspect.NET to Improve Productivity and Reliability
183
4.10.1 Effort Estimation Using the COCOMO Model
184
4.10.2 Assessment of Aspect.NET Using the ICED-T Model
187
4.10.3 Assessment of Requirements of Aspect.NET Using the SQFD Model
190
4.11 Application Efficiency and Performance Using AOP
193
4.11.1 Performance Measurement
194
4.11.2 Implementation Details and the Woven IL Code
197
4.11.3 Another Performance Measurement Example
198
4.12 AOP and Agile Programming Approaches
202
4.13 Summary
206
5. Teaching TWC and AOP 208
5.1 The ERATO Teaching Paradigm and the SPBU.NET Project
209
5.1.1 The ERATO Teaching Paradigm
209
5.1.2 The SPBU.NET Project
212
5.2 The T-ERATO Teaching Paradigm and the TrustSPBU.NET Project
215
5.2.1 The T-ERATO Teaching Paradigm
215
5.2.2 The TrustSPBU.NET Project
217
5.3 Teaching Trustworthy Software Engineering, Including AOP
220
5.3.1 Structure of the Secure Software Engineering Course
220
5.4 Teaching Trustworthy .NET and C# Programming
238
5.4.1 Structure of the Trustworthy .NET and C# Programming Course
239
5.4.2 Structure of the .NET and C# Programming Seminar
249
5.5 Teaching Trustworthy Java Technology
251
5.5.1 Structure of the Java Course
252
5.5.2 Structure of the Java Seminar
257
5.6 Teaching Trustworthy Operating Systems and Networking
260
5.6.1 Structure of the Trustworthy Operating Systems and Networking Course
262
5.7 Teaching Trustworthy Compiler Development
263
5.7.1 Structure of the Trustworthy Compiler Development Course
265
5.7.2 Structure of the Compiler Development Seminar
266
5.8 Summary
268
6. Conclusion 269
6.1 Summary of the Book
269
6.2 Perspectives: Integration of TWC, AOP, Formal Methods, and Knowledge Management
271
6.2.1 Application of Formal Methods to Trustworthy AOP
272
6.2.2 Smart Knowledge-Based AOP
273
6.2.3 AOP Specification and Design Support Tools 1
273
6.2.4 Trustworthy Reverse Engineering and Refactoring Tools for AOP
274
6.2.5 Aspect-Oriented Modeling on the Basis of Extended UML
275
Appendix: Examples of Aspect.NET Aspects 276
A.1 TestArgs Example 1
276
A.2 RetTest Example 1
279
A.3 RetTest2 Example
282
A.4 QuickSort Example
284
A.5 Matrix Example
295
References 321
Index 329
VLADIMIR O. SAFONOV, PHD, has is Professor of the Computer Science Department at St. Petersburg University and the head of the university's Java Technology Laboratory. With some thirty years of experience leading major software projects, developing software, and teaching software technologies, Professor Safonov is one of the leading innovators in computer science and software engineering in Russia. He holds four U.S. software patents and four Russian software patents and has published five books and over eighty papers. He is also a Microsoft Research 2005/2006 RFP winner for TWC and Secure Software Development.