Cover image for Using Aspect-Oriented Programming for Trustworthy Software Development.
Using Aspect-Oriented Programming for Trustworthy Software Development.
Title:
Using Aspect-Oriented Programming for Trustworthy Software Development.
Author:
Safonov, Vladimir O.
ISBN:
9780470283103
Personal Author:
Edition:
1st ed.
Physical Description:
1 online resource (352 pages)
Series:
Quantitative Software Engineering Series ; v.5

Quantitative Software Engineering Series
Contents:
Using Aspect-Oriented Programming for Trustworthy Software Development -- Contents -- Preface -- ACKNOWLEDGMENTS -- 1. Introduction -- 1.1 The Role of Aspect-Oriented Programming in Trustworthiness -- 1.2 Historical Background and Personal Experience -- 1.3 Organization of the Book -- 2. Trustworthy Computing, Software Engineering, and Computer Science -- 2.1 History of and Growing Need for TWC -- 2.2 Microsoft's TWC Initiative -- 2.3 The Four Pillars of TWC -- 2.3.1 Security -- 2.3.2 Privacy -- 2.3.3 Reliability -- 2.3.4 Business Integrity -- 2.4 Software Engineering Technologies and Tools for TWC -- 2.5 TWC and .NET -- 2.5.1 .NET Overview -- 2.5.2 .NET Security -- 2.5.3 .NET and Reliability -- 2.5.4 .NET TWC Tools FxCop and Spec# -- 2.6 TWC and Java -- 2.6.1 Java Overview -- 2.6.2 Java Security -- 2.6.3 Java and Reliability -- 2.6.4 Java TWC Tools -- 2.7 Summary -- 3. Aspect-Oriented Programming and Aspect.NET -- 3.1 History of AOP -- 3.2 AOP Basics -- 3.3 AOP and Related Technologies and Tools -- 3.3.1 AspectJ and AspectWerkz -- 3.3.2 Other AOP Tools and Approaches to Separation of Concerns -- 3.4. Pitfalls of AOP -- 3.5 AOP for Java -- 3.6 AOP for .NET -- 3.7 Aspect.NET Principles and Architecture -- 3.7.1 Motivation and Key Ideas -- 3.7.2 Basic Concepts of AOP -- 3.7.3 Example -- 3.7.4 Representing Aspects by Custom Attributes -- 3.7.5 Example in Terms of Custom Attributes -- 3.7.6 Summary of Our Approach to AOP -- 3.7.7 Aspect.NET Architectural Principles -- 3.7.8 Syntax of AOP Metalanguage (Version 1.0) -- 3.7.9 Another Example -- 3.8 Features and Use of Aspect.NET -- 3.8.1 Prerequisites for Using Aspect.NET 2.1 -- 3.8.2 Previous Releases of Aspect.NET and the Compatibility Mode -- 3.8.3 Aspect.NET Architecture -- 3.8.4 Case Study: Using the Aspect.NET Framework -- 3.8.5 Aspect.NET Framework Options -- 3.8.6 Aspect.NET.ML Metalanguage.

3.8.7 Samples Included in the Aspect.NET 2.1 Release -- 3.8.8 Experience of Aspect.NET Use and User Feedback -- 3.9 Summary -- 3.9.1 AOP -- 3.9.2 Aspect.NET -- 4. Principles and Application of AOP in TWC -- 4.1 AOP and TWC: Cooperation Rather Than Violation -- 4.2 AOP for Security -- 4.3 AOP for Error Handling -- 4.4 AOP for Synchronization -- 4.5 AOP for Trustworthy Multithreading- and Multicore-Based Applications -- 4.6 AOP for Privacy -- 4.7 AOP for Reliability -- 4.7.1 Using AOP to Make Implementation Reliable -- 4.7.2 Using AOP for Software Testing -- 4.7.3 Using AOP to Support Formal Specification and Verification Methods -- 4.8 AOP for Business Integrity -- 4.9 AOP for Design by Contract -- 4.10 Using AOP via Aspect.NET to Improve Productivity and Reliability -- 4.10.1 Effort Estimation Using the COCOMO Model -- 4.10.2 Assessment of Aspect.NET Using the ICED-T Model -- 4.10.3 Assessment of Requirements of Aspect.NET Using the SQFD Model -- 4.11 Application Efficiency and Performance Using AOP -- 4.11.1 Performance Measurement -- 4.11.2 Implementation Details and the Woven IL Code -- 4.11.3 Another Performance Measurement Example -- 4.12 AOP and Agile Programming Approaches -- 4.13 Summary -- 5. Teaching TWC and AOP -- 5.1 The ERATO Teaching Paradigm and the SPBU.NET Project -- 5.1.1 The ERATO Teaching Paradigm -- 5.1.2 The SPBU.NET Project -- 5.2 The T-ERATO Teaching Paradigm and the TrustSPBU.NET Project -- 5.2.1 The T-ERATO Teaching Paradigm -- 5.2.2 The TrustSPBU.NET Project -- 5.3 Teaching Trustworthy Software Engineering, Including AOP -- 5.3.1 Structure of the Secure Software Engineering Course -- 5.4 Teaching Trustworthy .NET and C# Programming -- 5.4.1 Structure of the Trustworthy .NET and C# Programming Course -- 5.4.2 Structure of the .NET and C# Programming Seminar -- 5.5 Teaching Trustworthy Java Technology.

5.5.1 Structure of the Java Course -- 5.5.2 Structure of the Java Seminar -- 5.6 Teaching Trustworthy Operating Systems and Networking -- 5.6.1 Structure of the Trustworthy Operating Systems and Networking Course -- 5.7 Teaching Trustworthy Compiler Development -- 5.7.1 Structure of the Trustworthy Compiler Development Course -- 5.7.2 Structure of the Compiler Development Seminar -- 5.8 Summary -- 6. Conclusion -- 6.1 Summary of the Book -- 6.2 Perspectives: Integration of TWC, AOP, Formal Methods, and Knowledge Management -- 6.2.1 Application of Formal Methods to Trustworthy AOP -- 6.2.2 Smart Knowledge-Based AOP -- 6.2.3 AOP Specification and Design Support Tools -- 6.2.4 Trustworthy Reverse Engineering and Refactoring Tools for AOP -- 6.2.5 Aspect-Oriented Modeling on the Basis of Extended UML -- Appendix: Examples of Aspect.NET Aspects -- A.1 TestArgs Example -- A.2 RetTest Example -- A.3 RetTest2 Example -- A.4 QuickSort Example -- A.5 Matrix Example -- References -- Index.
Abstract:
Vladimir O. Safonov, PhD, 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.
Local Note:
Electronic reproduction. Ann Arbor, Michigan : ProQuest Ebook Central, 2017. Available via World Wide Web. Access may be limited to ProQuest Ebook Central affiliated libraries.
Electronic Access:
Click to View
Holds: Copies: