(面向方面编程的可靠应用程序开发)Using Aspect Oriented Programming for Trustworthy Software Developme
|
|
|
【推荐级别】
|
☆☆☆☆☆
查看网友评价 |
|
【下载次数】 |
41 次 |
|
【作者】 |
VLADIMIR O. SAFONOV
|
【出版社】 |
Wiley
|
|
【文件格式】 |
PDF
|
【ISBN】 |
978-0-470-13817-5
|
|
【资料语言】 |
英文
|
【文件大小】 |
3.48MB
|
|
【上传时间】 |
2008-08-16
|
【共享者】 |
booolean
查看他还共享了哪些书籍
|
|
|
资料说明:
|
Preface This book is devoted to the basic concepts and generic relationships of two new software engineering and computer science areas: trustworthy computing (TWC) and aspect - oriented programming (AOP). These two disciplines are now so popular, even “ fashionable, ” that many software students and experts are looking for more information about them. Both TWC and AOP and, in particular, their relationship, have not yet been described suf? ciently in the scienti? c literature up to now, and this gap needs to be ? lled. The reason for the current status lies in the fact that both AOP and TWC are still quite novel even though their foundations were laid long ago, and the worldwide software engineering community has not yet acquired enough experience in these areas. The book should be very helpful in this regard. The main principle behind the book is that AOP, used properly, can be bene? cial in trustworthy software development, due to the fact that the two are related generically. To analyze, demonstrate, and teach using AOP for TWC, I take typical TWC tasks, such as security checks, in and out conditions, and multithreaded safety and show how they can be implemented using AOP, since I believe that in terms of AOP, most TWC tasks are cross - cutting concerns and, consequently, can and should be implemented as aspects . In the text I describe my team ’ s latest results, analyzing my 30 years ’ experience in research, development, and university teaching in the areas of software engineering and computer science, and my 15 years ’ experience collaborating with leading global software companies: Microsoft Research, Sun Microsystems, and others. In particular, I describe the results of two research and educational projects supported by Microsoft Research: ? Aspect.NET [1 – 6] : an AOP framework for the Microsoft.NET platform based on Microsoft Phoenix [7] and Microsoft Visual Studio.NET 2005. Aspect.NET is based on our approach to AOP as well as our AOP frame- work. Aspect.NET already has a number of users in 16 countries, includ- ing the United States, Canada, and other countries in the Americas, Europe, Asia, and the C.I.S. We hope the book will contribute to extend- ing the Aspect.NET user community. ? TrustSPBU.NET [8] : a set of educational materials on advanced secure software engineering and trustworthy computing, Microsoft.NET and C#, compilers, software engineering and compiler development, and my related project, SPBU.NET [9] , used as the foundation for TrustSPBU. NET. The curriculum materials of these two projects, available on Micro- soft Developer ’ s Network Academic Alliance Curriculum Repository Web site, have already attracted the attention of both students and soft- ware experts. For all examples of trustworthy software design and code included in the book, I use our Aspect.NET framework. I consider the basics of Aspect.NET architecture, its advantages compared to other AOP tools, its functionality, and examples of trustworthy application development using Aspect.NET. The book is not limited to Microsoft technologies, although we do appreciate using such advanced toolkits as Visual Studio.NET and Phoenix. We consider general principles and other software technologies and tools applicable to using AOP for trustworthy software development, such as Java and AspectJ [10] , based on Java, currently the most widely used AOP instrument. Chapter 5 is devoted to teaching, but actually, the style used to present all the material in the book is based on the ERATO teaching paradigm [9] , on which I have based my university teaching for many years. ERATO is an acronym for experience, retrospective, analysis, theory, oncoming perspectives. Erato is the name of the muse of romantic poetry in ancient Greek mythology. The ERATO teaching paradigm can be summarized as follows: ? Experience: describing my long - term commercial and research software project experience in my courses. In particular, in 1992 – 2002 I led St. Petersburg Sun projects in the compiler development and Java technol- ogy areas. In 2002 I started working with Microsoft Research on the Aspect.NET project, in 2003 on the Phoenix compiler development tool, in 2004 on SPBU.NET, and in 2006 on TrustSPBU.NET educational projects. Such types of things are of deep interest to students since they can judge how closely coupled academic learning and teaching activity can be to advanced research and tools and working with leading compa- nies, so it helps to better illustrate concepts and principles to be taught. They can participate personally in our projects to get their own experience. ? Retrospective: considering the historical background of each topic being taught since its early origin, for deeper understanding of fundamental concepts by the students. For example, I consider the concepts of concur- rency and multithreading since Dijkstra ’ s 1960s pioneering work on sema- phores; generics since Liskov ’ s CLU language parametrized types in early 1970s (rather than since 2004 – 2005, when generics were implemented in Java 1.5 and C# 2.0). ? Analysis: making critical and comparative analysis of the most important related and mutually in? uenced concepts and technologies when teaching them. For example, I analyze the Microsoft.NET platform, compared to the competitive Java platform, and explain the fundamental reasons why .NET is more general and open - style. On the other hand, I show to stu- dents that .NET technologies have a backward in? uence on Java. I believe that in this way students can better understand the dialectic nature of software engineering. ? Theory: formulating and explaining the essence of theoretical de? nitions, justi? cations, known theorems, and issues relevant to the topic being taught. In particular, when teaching the concept of data type, I make a review of the techniques of formal speci? cations of abstract data types: Hoare ’ s theoretical papers on data types published in the 1960s and 1970s; papers by Scott on type theory; and pioneering papers on initial and ? nal algebra semantics of abstract data types by the ADJ group (1970s), resulting in algebraic data type speci? cation languages OBJ and SDL. ? Oncoming perspectives: explaining the vision of future progress in the topic being taught by a variety of software experts. The book is targeted primarily at undergraduate and graduate students who would like to study TWC and AOP, but it will also be useful for software managers, computer scientists, software engineers, and university teachers in the area, especially those working with and teaching Microsoft.NET. For readers who want to learn the basics of trustworthy computing and its applica- tion to modern software development platforms such as .NET and Java, Chapter 2 will be appropriate. Chapter 3 focuses on readers interested primar- ily in aspect - oriented programming and Aspect.NET. Those speci? cally inter- ested in applying AOP to develop trustworthy software are directed to Chapter 4 . Chapter 5 will be of most interest to those who wish to teach TWC and AOP and related areas of software engineering. For more information, the reader is directed to the book and to the Aspect. NET Web site: www.aspectdotnet.org . The site contains all the examples used in the book, other material selected from the book, the Aspect.NET framework with documentation, and data on other publications related to Aspect.NET. Please send your questions, remarks, suggestions, and proposals regarding Aspect.NET or my book directly to my e - mail address: v_o_safonov@mail.ru . ACKNOWLEDGMENTS First, I would like to thank my colleagues from Microsoft: Igor Agamirzian, Marco Combetto, Peter Drayton, Van Eden, Kang Su Gatlin, Alexander Gavr- ilov, Alexander Gil (who was my doctoral student), John Larcheveque, John Lefor, Mark Lewin, Vassily Lutsarev, Shahrokh Mortazavi, John Spencer, Andrey Terekhov, Damien Watkins, Yan Xu, Romualds Zdebskis, and many others. They have provided a lot of support to me and my team. Thanks also to my teachers from a variety of universities and companies whose ideas, papers, education, and attention have had a great in? uence on my work, results, professional views, and interests: Professors Alfred Aho (Columbia University), Igor Bratchikov, Boris Martynenko and Joseph Romanovsky (St. Petersburg University), Gregory Tseytin (St. Petersburg University, now with IBM), and Niklaus Wirth (ETH Z ü rich). Special thanks to Professor Gregor Kiczales, the inventor of AOP, for fruit- ful e - mail discussions that helped me to understand the essence of his approach more deeply. I would like to memorialize two people whose papers inspired my profes- sional work: corresponding member of the Russian Academy of Sciences Professor Svyatoslav Lavrov, my scienti? c advisor, the developer of the ? rst ALGOL compiler in the Soviet Union in the early 1960s, and the author of many books and projects well known in our country; and Professor Adolph Fouxman of Rostov University, the author of the vertical cut technology (1979), predecessor of aspect - oriented programming, and initiator of pioneer- ing projects on automated program synthesis, whose software engineering papers of 1970s look quite contemporary. Finally, I would like to thank deeply my Aspect.NET implementation team: my doctoral students Dmitry Grigoryev, the developer of the Aspect.NET weaver using Microsoft Phoenix [7] ; Mikhail Gratchev, the developer of the Aspect.NET framework and its integration in Visual Studio.NET 2005 and Aspect.NET installer; and Alexander Maslennikov, the developer of the Aspect.NET.ML metalanguage converter to C#. They have not only developed several releases of Aspect.NET but have also proposed and implemented a lot of their own bright ideas to improve and enhance Aspect.NET architecture and functionality. The results of their work should be considered an inherent part of my book. Also, thanks to my graduate students Oleg Romashin and Ruslan Mukhanov, who helped me to develop AspectRotor, a version of Aspect.NET for SSCLI (Rotor), and to Anna Kogay, who developed a number of useful aspect examples of using Aspect.NET for the design - by - contract technology used in the book. Last but not least, my thanks to all Aspect.NET users and supporters.
|
|
资料下载
|
打开下载链接
点此链接需花费积分5分。如何获取积分?
注册新会员
积分不够?请用手机短信充值
·请先登录 ,然后下载
·下载后,您的积分会减少5分
·48小时内重复下载该资料不另外扣分
·下载前,请先阅读下载声明
·管理员对书籍只进行了初步审核,如果您发现该书违反了分享规则,请向管理员投诉!
|
·本服务的所有资料文件是其作者提供和网友推荐收集整理的,如有侵犯版权敬请指出。
·所有资料文件的准确性、安全性和完整性未经验证,NetYi不承担用户因使用这些下载内容而造成的任何形式的损失或伤害。
|
|
|
| 客户服务 |

 |
电话:028-66868000 13568916094
下班时间请点击此处留言 |
| 注:客服服务时间为周一至周五09:00—17:30,周六周日休息。 |
|
|