{"product_id":"using-aspect-oriented-programming-for-trustworthy-software-development-9780470138175","title":"Using Aspect Oriented Programming for Trustworthy Software Development","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003eLearn 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.\u003cbr\u003e\u003cbr\u003e\u003cb\u003eTable of Contents\u003c\/b\u003e\u003cbr\u003e\u003cp\u003ePreface ix\u003c\/p\u003e \u003cp\u003e\u003cb\u003e1. Introduction 1\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e1.1 The Role of Aspect-Oriented Programming in Trustworthiness 1\u003c\/p\u003e \u003cp\u003e1.2 Historical Background and Personal Experience 3\u003c\/p\u003e \u003cp\u003e1.3 Organization of the Book 8\u003c\/p\u003e \u003cp\u003e\u003cb\u003e2. Trustworthy Computing, Software Engineering, and Computer Science 10\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e2.1 History of and Growing Need for TWC 10\u003c\/p\u003e \u003cp\u003e2.2 Microsoft’s TWC Initiative 13\u003c\/p\u003e \u003cp\u003e2.3 The Four Pillars of TWC 15\u003c\/p\u003e \u003cp\u003e2.3.1 Security 15\u003c\/p\u003e \u003cp\u003e2.3.2 Privacy 23\u003c\/p\u003e \u003cp\u003e2.3.3 Reliability 25\u003c\/p\u003e \u003cp\u003e2.3.4 Business Integrity 27\u003c\/p\u003e \u003cp\u003e2.4 Software Engineering Technologies and Tools for TWC 30\u003c\/p\u003e \u003cp\u003e2.5 TWC and .NET 31\u003c\/p\u003e \u003cp\u003e2.5.1 .NET Overview 31\u003c\/p\u003e \u003cp\u003e2.5.2 .NET Security 34\u003c\/p\u003e \u003cp\u003e2.5.3 .NET and Reliability 37\u003c\/p\u003e \u003cp\u003e2.5.4 .NET TWC Tools FxCop and Spec# 39\u003c\/p\u003e \u003cp\u003e2.6 TWC and Java 42\u003c\/p\u003e \u003cp\u003e2.6.1 Java Overview 42\u003c\/p\u003e \u003cp\u003e2.6.2 Java Security 44\u003c\/p\u003e \u003cp\u003e2.6.3 Java and Reliability 46\u003c\/p\u003e \u003cp\u003e2.6.4 Java TWC Tools 48\u003c\/p\u003e \u003cp\u003e2.7 Summary 49\u003c\/p\u003e \u003cp\u003e\u003cb\u003e3. Aspect-Oriented Programming and Aspect.NET 50\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e3.1 History of AOP 50\u003c\/p\u003e \u003cp\u003e3.2 AOP Basics 54\u003c\/p\u003e \u003cp\u003e3.3 AOP and Related Technologies and Tools 66\u003c\/p\u003e \u003cp\u003e3.3.1 AspectJ and AspectWerkz 66\u003c\/p\u003e \u003cp\u003e3.3.2 Other AOP Tools and Approaches to Separation of Concerns 70\u003c\/p\u003e \u003cp\u003e3.4. Pitfalls of AOP 73\u003c\/p\u003e \u003cp\u003e3.5 AOP for Java 76\u003c\/p\u003e \u003cp\u003e3.6 AOP for .NET 79\u003c\/p\u003e \u003cp\u003e3.7 Aspect.NET Principles and Architecture 85\u003c\/p\u003e \u003cp\u003e3.7.1 Motivation and Key Ideas 85\u003c\/p\u003e \u003cp\u003e3.7.2 Basic Concepts of AOP 88\u003c\/p\u003e \u003cp\u003e3.7.3 Example 91\u003c\/p\u003e \u003cp\u003e3.7.4 Representing Aspects by Custom Attributes 92\u003c\/p\u003e \u003cp\u003e3.7.5 Example in Terms of Custom Attributes 94\u003c\/p\u003e \u003cp\u003e3.7.6 Summary of Our Approach to AOP 95\u003c\/p\u003e \u003cp\u003e3.7.7 Aspect.NET Architectural Principles 97\u003c\/p\u003e \u003cp\u003e3.7.8 Syntax of AOP Metalanguage (Version 1.0) 99\u003c\/p\u003e \u003cp\u003e3.7.9 Another Example 101\u003c\/p\u003e \u003cp\u003e3.8 Features and Use of Aspect.NET 102\u003c\/p\u003e \u003cp\u003e3.8.1 Prerequisites for Using Aspect.NET 2.1 103\u003c\/p\u003e \u003cp\u003e3.8.2 Previous Releases of Aspect.NET and the Compatibility Mode 103\u003c\/p\u003e \u003cp\u003e3.8.3 Aspect.NET Architecture 104\u003c\/p\u003e \u003cp\u003e3.8.4 Case Study: Using the Aspect.NET Framework 106\u003c\/p\u003e \u003cp\u003e3.8.5 Aspect.NET Framework Options 113\u003c\/p\u003e \u003cp\u003e3.8.6 Aspect.NET.ML Metalanguage 114\u003c\/p\u003e \u003cp\u003e3.8.7 Samples Included in the Aspect.NET 2.1 Release 122\u003c\/p\u003e \u003cp\u003e3.8.8 Experience of Aspect.NET Use and User Feedback 123\u003c\/p\u003e \u003cp\u003e3.9 Summary\u003c\/p\u003e \u003cp\u003e3.9.1 AOP 123\u003c\/p\u003e \u003cp\u003e3.9.2 Aspect.NET 125\u003c\/p\u003e \u003cp\u003e\u003cb\u003e4. Principles and Application of AOP in TWC 128\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e4.1 AOP and TWC: Cooperation Rather Than Violation 128\u003c\/p\u003e \u003cp\u003e4.2 AOP for Security 132\u003c\/p\u003e \u003cp\u003e4.3 AOP for Error Handling 136\u003c\/p\u003e \u003cp\u003e4.4 AOP for Synchronization 142\u003c\/p\u003e \u003cp\u003e4.5 AOP for Trustworthy Multithreading- and Multicore-Based Applications 145\u003c\/p\u003e \u003cp\u003e4.6 AOP for Privacy 149\u003c\/p\u003e \u003cp\u003e4.7 AOP for Reliability 153\u003c\/p\u003e \u003cp\u003e4.7.1 Using AOP to Make Implementation Reliable 153\u003c\/p\u003e \u003cp\u003e4.7.2 Using AOP for Software Testing 157\u003c\/p\u003e \u003cp\u003e4.7.3 Using AOP to Support Formal Specification and Verification Methods 164\u003c\/p\u003e \u003cp\u003e4.8 AOP for Business Integrity 165\u003c\/p\u003e \u003cp\u003e4.9 AOP for Design by Contract 168\u003c\/p\u003e \u003cp\u003e4.10 Using AOP via Aspect.NET to Improve Productivity and Reliability 183\u003c\/p\u003e \u003cp\u003e4.10.1 Effort Estimation Using the COCOMO Model 184\u003c\/p\u003e \u003cp\u003e4.10.2 Assessment of Aspect.NET Using the ICED-T Model 187\u003c\/p\u003e \u003cp\u003e4.10.3 Assessment of Requirements of Aspect.NET Using the SQFD Model 190\u003c\/p\u003e \u003cp\u003e4.11 Application Efficiency and Performance Using AOP 193\u003c\/p\u003e \u003cp\u003e4.11.1 Performance Measurement 194\u003c\/p\u003e \u003cp\u003e4.11.2 Implementation Details and the Woven IL Code 197\u003c\/p\u003e \u003cp\u003e4.11.3 Another Performance Measurement Example 198\u003c\/p\u003e \u003cp\u003e4.12 AOP and Agile Programming Approaches 202\u003c\/p\u003e \u003cp\u003e4.13 Summary 206\u003c\/p\u003e \u003cp\u003e\u003cb\u003e5. Teaching TWC and AOP 208\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e5.1 The ERATO Teaching Paradigm and the SPBU.NET Project 209\u003c\/p\u003e \u003cp\u003e5.1.1 The ERATO Teaching Paradigm 209\u003c\/p\u003e \u003cp\u003e5.1.2 The SPBU.NET Project 212\u003c\/p\u003e \u003cp\u003e5.2 The T-ERATO Teaching Paradigm and the TrustSPBU.NET Project 215\u003c\/p\u003e \u003cp\u003e5.2.1 The T-ERATO Teaching Paradigm 215\u003c\/p\u003e \u003cp\u003e5.2.2 The TrustSPBU.NET Project 217\u003c\/p\u003e \u003cp\u003e5.3 Teaching Trustworthy Software Engineering, Including AOP 220\u003c\/p\u003e \u003cp\u003e5.3.1 Structure of the Secure Software Engineering Course 220\u003c\/p\u003e \u003cp\u003e5.4 Teaching Trustworthy .NET and C# Programming 238\u003c\/p\u003e \u003cp\u003e5.4.1 Structure of the Trustworthy .NET and C# Programming Course 239\u003c\/p\u003e \u003cp\u003e5.4.2 Structure of the .NET and C# Programming Seminar 249\u003c\/p\u003e \u003cp\u003e5.5 Teaching Trustworthy Java Technology 251\u003c\/p\u003e \u003cp\u003e5.5.1 Structure of the Java Course 252\u003c\/p\u003e \u003cp\u003e5.5.2 Structure of the Java Seminar 257\u003c\/p\u003e \u003cp\u003e5.6 Teaching Trustworthy Operating Systems and Networking 260\u003c\/p\u003e \u003cp\u003e5.6.1 Structure of the Trustworthy Operating Systems and Networking Course 262\u003c\/p\u003e \u003cp\u003e5.7 Teaching Trustworthy Compiler Development 263\u003c\/p\u003e \u003cp\u003e5.7.1 Structure of the Trustworthy Compiler Development Course 265\u003c\/p\u003e \u003cp\u003e5.7.2 Structure of the Compiler Development Seminar 266\u003c\/p\u003e \u003cp\u003e5.8 Summary 268\u003c\/p\u003e \u003cp\u003e\u003cb\u003e6. Conclusion 269\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e6.1 Summary of the Book 269\u003c\/p\u003e \u003cp\u003e6.2 Perspectives: Integration of TWC, AOP, Formal Methods, and Knowledge Management 271\u003c\/p\u003e \u003cp\u003e6.2.1 Application of Formal Methods to Trustworthy AOP 272\u003c\/p\u003e \u003cp\u003e6.2.2 Smart Knowledge-Based AOP 273\u003c\/p\u003e \u003cp\u003e6.2.3 AOP Specification and Design Support Tools 273\u003c\/p\u003e \u003cp\u003e6.2.4 Trustworthy Reverse Engineering and Refactoring Tools for AOP 274\u003c\/p\u003e \u003cp\u003e6.2.5 Aspect-Oriented Modeling on the Basis of Extended UML 275\u003c\/p\u003e \u003cp\u003e\u003cb\u003eAppendix: Examples of Aspect.NET Aspects 276\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eA.1 TestArgs Example 276\u003c\/p\u003e \u003cp\u003eA.2 RetTest Example 279\u003c\/p\u003e \u003cp\u003eA.3 RetTest2 Example 282\u003c\/p\u003e \u003cp\u003eA.4 QuickSort Example 284\u003c\/p\u003e \u003cp\u003eA.5 Matrix Example 295\u003c\/p\u003e \u003cp\u003eReferences 321\u003c\/p\u003e \u003cp\u003eIndex 329\u003c\/p\u003e","brand":"Wiley-Blackwell","offers":[{"title":"Default Title","offer_id":53515414765911,"sku":"9780470138175","price":105.26,"currency_code":"GBP","in_stock":true}],"url":"https:\/\/bookcurl.com\/products\/using-aspect-oriented-programming-for-trustworthy-software-development-9780470138175","provider":"Book Curl","version":"1.0","type":"link"}