FoSP talks are mini-tutorials that provide an overview of a topic that is at the frontier of software practice. The FoSP topics have been selected based on their interest to a wide range of participants. We are excited to have the following speakers provide an overview of three frontier topics that software researchers and practitioners grapple with on a daily basis.
Software components, if used properly, offer many software engineering benefits. Yet, they also pose many challenges starting from quality assurance and ranging to architectural embedding and composability. In addition, the recent movement towards services as well as the established world of objects cause many to wonder what purpose components might have. This talk offers an end-to-end overview of what components should do, where they should be used, and how this can be achieved.
Clemens Szyperski is a Software Architect with Microsoft - which he joined in 1999 - and affiliated with Microsoft Research, both in Redmond, WA. He is also an adjunct professor at the Queensland University of Technology in Brisbane, Australia. He received his PhD in computer science from the Swiss Federal Institute of Technology (ETH) in Zurich, Switzerland under Prof. Niklaus Wirth.
Clemens is the award-winning author of "Component Software - Beyond Object-Oriented Programming", which is to appear in its second edition by the end of this month. He is also the co-author of "Software Ecosystem - An Indispensable Industry and Technology", to appear later this year. In addition, he published several other books and many articles and frequently presents at international events.
Clemens has worked as an academic, researcher, and practitioner in the areas of programming languages, component technologies, software systems, and software architecture. He is a co-founder of Oberon microsystems in Zurich, specializing on component technology and software architecture. He served as a consultant to large corporations and serves as an assessor and reviewer for domestic, federal, and international funding agencies and for learned journals across the globe. He has been a member of program and organizing committees of numerous events, including many of the most prestigious conferences in his discipline areas.
Slides from this talk are available here.
Historically, the knowledge required to develop mission-critical software systems has largely existed in programming folklore, the heads of experienced researchers and developers, or buried deep within complex source code. Today's software modeling methods and tools help somewhat by capturing how a system is designed. They only automate limited portions of software development, however, and do not articulate why a system is designed in a particular way, which complicates software evolution and optimization.
Patterns, frameworks, and middleware are increasingly popular techniques for addressing the challenges outlined above. Patterns codify design expertise that provides time-proven solutions to commonly occurring software problems that arise in particular contexts. Frameworks provide (1) a reusable architecture -- based on patterns -- for a family of related applications and (2) an integrated set of collaborating components that implement concrete realizations of the architecture. Middleware is a class of software that leverages patterns and frameworks to increase systematic reuse significantly by bridging the gap between the end-to-end functional requirements of applications and the underlying operating systems and network protocol stacks.
The relationship between patterns, frameworks, and middleware is highly synergistic. For example, patterns help guide framework creation and use, thereby reducing development effort and training costs. In turn, frameworks can be used to develop middleware, whose interfaces then provide a simpler facade for the complex internal component structure of the frameworks. This paper describes the synergy between patterns, frameworks, and middleware and illustrates how they have been applied successfully in many production mission-critical software systems.
Dr. Douglas C. Schmidt is a Full Professor in the Electrical Engineering and Computer Science Department at Vanderbilt University. His research focuses on patterns, optimization techniques, and empirical analyses of object-oriented frameworks that facilitate the development of high-performance, real-time distributed object computing middleware on parallel platforms running over high-speed networks and embedded system interconnects. In addition to his academic research, Dr. Schmidt has over a fifteen years of experience developing object-oriented middleware, in particular ACE and TAO, which are widely-used open-source middleware frameworks that implement patterns for high-performance and real-time systems. Dr. Schmidt also serves as a program manager in the DARPA Information Explotation Office (IXO), where he leads the national effort on distributed object computing middleware research.
As more business activities are being automated and an increasing number of computers are being used to store vital and sensitive information the need for secure computer systems becomes more apparent. This need is even more apparent as the systems and applications are being distributed and access is via an insecure network. Secure systems and networks can be obtained only through systematic development; not be achieved through haphazard seat-of-the-pants methods.
The pervasive use of computer and network technologies in all walks of life has turned cybersecurity issues into national security issues. The Internet has become critical for governments, companies, financial institutions, and millions of everyday users. Networks of computers support a multitude of activities whose loss would all but cripple these organizations. Protecting these critical infrastructures is a difficult task.
This talk introduces some known threats to cybersecurity, categorizes the threats, and analyzes protection mechanisms and techniques for countering the threats. Approaches to prevent, detect, and respond to cyber attacks will also be discussed.
Richard A. Kemmerer is a Professor and past Chair of the Department of Computer Science at the University of California, Santa Barbara. He is a Fellow of the IEEE Computer Society, a Fellow of the Association for Computing Machinery, and past Editor-in-Chief of IEEE Transactions on Software Engineering. Dr. Kemmerer has chaired or served on many program committees and was the program co-chair of the 20th International Conference on Software Engineering (ICSE98). He has served as a member of the National Academy of Science's Committee on Computer Security in the DOE, the System Security Study Committee, the Committee for Review of the Oversight Mechanisms for Space Shuttle Flight Software Processes, the Committee on Maintaining Privacy and Security in Health Care Applications of the National Information Infrastructure, and the Committee on the Review of Programs for Command, Control, Communication, Computers, and Intelligence (C4I) in the Department of Defense. He has also served as a member of the National Computer Security Center's Formal Verification Working Group and was a member of the NIST's Computer and Telecommunications Security Council.
Dr. Kemmerer is also the past Chair of the IEEE Technical Committee on Security and Privacy and a past member of the Advisory Board for the ACM's Special Interest Group on Security, Audit, and Control. He has written numerous papers on the subjects of computer security, formal specification and verification, software testing, programming languages, and software complexity measures. He is the author of the book "Formal Specification and Verification of an Operating System Security Kernel" and a co-author of "Computers at Risk: Safe Computing in the Information Age." He has been a Principal Investigator on numerous government and private sector sponsored projects and leads the Reliable Software Group at UCSB. Under his direction the Reliable Software Group has addressed the need for better languages and tools for designing, building, validating, and securing software systems.
Betty H.C. Cheng
Michigan State University, USA