Abstract: Aspect-oriented programming is motivated by the desire to design software with localized definitions of separate concerns of the system that must, because of the nature of our programming languages, be entangled in the code. This separation of concerns achieves modularity in the design, but it does so at the cost of complexity when combining the aspect definitions in the implementation. Aspect-oriented modularity grew out of limitations of conventional modular constructs of programming languages, which support modularization of functionality or of functionality jointly with data structure.Development of modern computation and information systems involves much more than moving from functional abstractions to code. As computing has become an integral part of our infrastructure, the software development task has changed as well. These changes challenge much of the conventional wisdom of software engineering, including assumptions about modularity.This talk will discuss the larger landscape of modularity in modern computing and information systems, including the motivations for introducing modularity, the sorts of information that can usefully be modularized, mechanisms that bridge from the modular abstractions to running code, generality/power tradeoffs, and examples that show this diversity.
Biography: Mary Shaw is the Alan J. Perlis Professor of Computer Science and a member of the Institute for Software Research, the Computer Science Department, and the Human Computer Interaction Institute at Carnegie Mellon University. She has been a member of this faculty since completing the Ph.D. degree at Carnegie-Mellon in 1972. From 2001 to 2006 she served as Co-Director of the Sloan Software Industry Center. From 1992 to 1999 she served as the Associate Dean for Professional Education. In 1997-98 she was a Fellow of the Center for Innovation in Learning. From 1984 to 1987 she served as Chief Scientist of CMU's Software Engineering Institute. She had previously earned a B.A (cum laude) from Rice University and worked in systems programming and research at the Research Analysis Corporation and Rice University. Her research interests in computer science lie primarily in the areas of software engineering and programming systems, particularly value-driven software design, support for everyday users, software architecture, programming languages, specifications, and abstraction techniques. Particular areas of interest and projects have included software architectures (Vitruvius, UniCon), reliable software development (everyday software, strong typing and modularity), evaluation techniques for software (predictive design evaluation, performance specification, compiler contraction, software metrics), program organization for quality human interfaces (Descartes), technology transition (SEI), abstraction techniques for advanced programming methodologies (abstract data types, generic definitions), programming language design (Alphard, Tartan), and analysis of algorithms (polynomial derivative evaluation).
André van der Hoek, University of California, Irvine
Friday, March 25th 03:20pm | Room: Caboclinhos
Abstract: Modularity is essential to software development. Without it, large
software systems simply could not be realized. Designers typically
strive to achieve a high degree of modularity by separating different
concerns over different modules, a process called
modularization. Modularity, however, is but one of the goals that the
designer has. Furthermore, design does not just take place when the
designer decides upon the structure of the code. Instead, design is a
multi-dimensional activity that permeates the software life cycle. In
this paper, we examine modularity as seen through the lens of design
as it takes place across the life cycle, particularly dissecting
typical activities in which designers engage to study how these
activities involve and relate to modularity. The result is an
affirmation that modularity is and always should be an integral part
of designers' work, but that our current techniques to achieve
modularity fall short in a number of critical ways. A research agenda
is laid out toward overcoming these shortcomings.
Biography:André van der Hoek is a professor in the Department of Informatics of
the Donald Bren School of Information and Computer Sciences and a faculty member of the Institute for Software Research, both at the
University of California, Irvine. He holds a joint B.S. and M.S.
degree in Business-Oriented Computer Science from the Erasmus
University Rotterdam, the Netherlands, and a Ph.D. degree in Computer
Science from the University of Colorado at Boulder. His research
focuses on understanding and advancing the role of design,
coordination, and education in software engineering. He has authored
and co-authored over 80 peer-reviewed journal and conference
publications, and in 2006 was a recipient of an ACM SIGSOFT
Distinguished Paper Award. He is a co-author of the 2005
Configuration Management Impact Report as well as the 2007 Futures of
Software Engineering Report on Software Design and Architecture. He
has served on numerous international program committees, is a member
of the editorial board of ACM Transactions on Software Engineering
and Methodology, and is program chair of the 2010 ACM SIGSOFT
International Symposium on the Foundations of Software Engineering.
In 2009, he was a recipient of the Premier Award for Excellence in
Engineering Education Courseware. He is the principal designer of the
B.S. in Informatics at UC Irvine and was honored, in 2005, as UC
Irvine Professor of the Year for his outstanding and innovative
Modularity, Agility, and Architecture's Paradox (Slides)
Kirk Knoernschild, Gartner, Inc
Friday, March 25th 08:30am | Room: Caboclinhos
Abstract: Attempt to architect more flexible software often results in the opposite - brittle software fraught with complexity. Something is missing. Complexity is the beast we must tame, and modularity is part of the answer. In this keynote, we′ll examine the challenges of traditional approaches to software architecture, probe the paradox of architecture, and explore the inextricable link between structural and temporal architectural decisions. From the highest level applications and services to the code that exists in the bowels of the system, we expose the advantages of a modular architecture. Come learn new ways that large software systems can be organized to increase flexibility, reusability, adaptability, maintainability, testability, and extensibility. Come discover the importance of modularity!
Biography: I am an industry analyst at Burton Group. For 15 years, I worked in the trenches on real software projects. I believe software development is an amazing profession. I take a keen interest in design, architecture, application development platforms, agile development, and the IT industry in general, especially as it relates to software development. I also enjoy experimenting with new technology, whether it be the the cool new framework or tethering my smartphone to my Mac via Bluetooth to get an internet connection.
In 2002, I wrote the book Java Design: Objects, UML, and Process, published by Addison-Wesley. I have also written numerous whitepapers and articles, including The Agile Developer column for The Agile Journal. I am also the founder of Extensible Java, a growing resource of component design pattern heuristics for Java that can easily be applied to most other platforms, including .Net. I created the open source utilities JarAnalyzer and AssAnalyzer which help teams manage the dependencies between Java .jar files and .Net assemblies, respectively. I have trained thousands of software professionals, teaching courses on UML, Java J2EE technology, object-oriented development, component based development, software architecture, and software process. I am trapped in a software developer′s body, and to this day I continue to enjoy hacking in a variety of languages, including Java, .Net, Ruby, and PHP.
Abstract: The aspects community has developed a rich set of language-based mechanisms for addressing issues of scattering and tangling of
concerns. In this talk, I sketch an alternative approach, where automatically collected data are analyzed to create models of
concerns, which in turn are used by tools in the development environment. Data includes not only traditional repository data such
as version and change logs, but also verbal data such as textual communication, meeting minutes, documentation, and even spoken
conversation. I will describe some preliminary work my colleagues and I have done to explore this direction.
Biography:James Herbsleb is a Professor in the School of Computer Science at Carnegie Mellon University. His research interests focus on collaboration and coordination in software and systems engineering projects. His research iterates over empirical studies, theory development, and design and deployment of technology. Before accepting a position at CMU, Herbsleb led the Bell Labs Collaboratory project, focused on understanding and solving issues in geographically-
distributed software development. He holds a PhD in psychology and a JD in law from the University of Nebraska, as well as a MS in computer
science from the University of Michigan, where he also completed a post-doctoral fellowship.
Abstract: Interfaces are key to defining modularity. A working definition of module is an entity that can be changed freely as long as its interface is preserved. What then is a good notion of interface? In this talk, we'll argue for a notion of modules and interfaces that is ultimately inspired by physical reality, and contrast it with the dreams embodied in the concepts of aspect orientation. Our notions have been realized in the Newspeak language, but the concepts apply to a variety of languages.
Biography:Gilad Bracha is the creator of the Newspeak programming language. He is currently a VP at SAP Labs in Palo Alto focusing on programming models for the cloud. Previously, he was a Distinguished Engineer at Cadence, and a Computational Theologist and Distinguished Engineer at Sun. He is co-author of the Java Language Specification, and a researcher in the area of object-oriented programming languages. Prior to joining Sun, he worked on Strongtalk, the Animorphic Smalltalk System. He received his B.Sc in Mathematics and Computer Science from Ben Gurion University in Israel and a Ph.D. in Computer Science from the University of Utah.