Grady Booch's research while affiliated with IBM and other places

Publications (213)

Conference Paper
Full-text available
This paper proposes a research direction to advance AI which draws inspiration from cognitive theories of human decision making. The premise is that if we gain insights about the causes of some human capabilities that are still lacking in AI (for instance, adaptability, generalizability, common sense, and causal reasoning), we may obtain similar ca...
Article
Presents letters to the editor for this issue of the publication.
Preprint
Full-text available
This paper proposes a research direction to advance AI which draws inspiration from cognitive theories of human decision making. The premise is that if we gain insights about the causes of some human capabilities that are still lacking in AI (for instance, adaptability, generalizability, common sense, and causal reasoning), we may obtain similar ca...
Article
Grady Booch, one of UML’s original authors, offers his perspective on the history of software engineering. This article is part of a theme issue on software engineering’s 50th anniversary. The Web Extra, a version of the article with an expanded bibliography, is at https://extras.computer.org/extra/mso2018050108s1.pdf.
Preprint
Full-text available
This paper describes a framework called MaestROB. It is designed to make the robots perform complex tasks with high precision by simple high-level instructions given by natural language or demonstration. To realize this, it handles a hierarchical structure by using the knowledge stored in the forms of ontology and rules for bridging among different...
Conference Paper
Full-text available
This paper describes a framework called Mae-stROB. It is designed to make the robots perform complex tasks with high precision by simple high-level instructions given by natural language or demonstration. To realize this, it handles a hierarchical structure by using the knowledge stored in the forms of ontology and rules for bridging among differen...
Article
The story of computing is the story of humanity. Civilization is filled with storytelling, which helps us understand our past, reconcile our present, and be intentional of our future. Similarly, as developers, we are the storytellers, using our software and our hardware as our brush and our canvas. The Web Extra at https://youtu.be/S06HKTobvVM is a...
Article
Computational humor is a technically intriguing problem. And, in the journey to understand the theories, mechanisms, and algorithms that discern and define funny, we learn something about ourselves and what it means to be human. The Web extra at https://youtu.be/jQV9Wj7TI8s is an audio podcast of author Grady Booch reading his column.
Article
How do you disrupt an industry? Question the fundamental, sacred assumptions on which that industry is founded, then journey along the path of the possible.
Article
The next generation of software-intensive systems will be taught instead of programmed. This poses considerable pragmatic challenges in how we develop, deliver, and evolve them. The Web extra at https://youtu.be/-tAxyi5Cma0 is an audio podcast of author Grady Booch reading his column.
Article
Different ages of humanity have required different modes of thinking. These modes aren't only reflections of the particular circumstances of life in each age; they're also projections of the forces that propel us to the next. The Web extra at https://youtu.be/0-kwid5kUAU is an audio podcast of Grady Booch's On Computing column, in which he discusse...
Article
We live in a world of unprecedented complexity and astonishing possibility. We should never forget our past, for those who came before us in computing enabled those possibilities. The Web extra at https://youtu.be/-ovLxiHmbr0 is an audio podcast of this column.
Article
Many fear the rise of superintelligent AIs. Such fears are at best unfounded and at worst misleading. The Web extra at https://youtu.be/geSb5Zp4qbM is an audio podcast of Grady Booch's On Computing column, in which he discusses why he rejects fears that machines with superintelligent computing powers will eventually spell the end of humanity.
Article
Grady Booch, an IBM fellow, shares his views on the development of computation since his birth during World War II. Colossus, Eniac, and all the inventions and ideas cascaded from that era) and grew up during the Cold War. From LEO (Lyons Electronic Office, perhaps the first commercial computer) to the IBM 360 (the dominant machine of business in t...
Article
Developing software-intensive systems is like many other things, but it's also like no other thing. For the general public, how software is made remains a mystery. The Web extra at https://youtu.be/yVYDwatEpQc is an audio podcast of Grady Booch's On Computing column, in which he discusses how developing software-intensive systems is like many other...
Article
Computing amplifies governments' actions but can also temper their behavior by enabling mechanisms for private communication and for open, transparent communication by a nation's people Similarly, governments can help focus the artifacts of computing on their citizens' health and happiness, and temper it as well. The Web extra at http://youtu.be/Gu...
Article
There was a time we could only dream of machines that served as companions, as helpmates, as servants. Now, we build them. As we slowly and inevitably and irreversibly surrender to these machines of our own creation, we must come to grips with a number of practical, ethical conundrums. The Web extra at http://youtu.be/17MsuJY4Xmo is an audio podcas...
Article
Parallels exist between the Industrial Revolution and our current computing revolution regarding risk, transparency, and responsibility. This article examines some of these parallels, the implications for society, and the individual developer's responsibility. The Web extra at http://youtu.be/9qfm9DDzLCc is an audio podcast of author Grady Booch re...
Article
Each generation remakes itself. In the context of the historical, economic, technological, and cultural forces around it, each generation must confront, adapt, and evolve--or die; this is the nature of humankind. Still, some common threads exist that shape that evolution--threads that define our very humanity. Even in the face of the tumultuous cha...
Article
There have been many periods in the unfolding of human history when we have asserted that it was possible to catalog all that was known or that could be known. Ignoring the pragmatic reality of trying to catalog an ever-expanding corpus, one must understand that such a task is further complicated by cultural and situational bias: what is important...
Article
From developer to architect, from business analyst to user, there are a number of big questions whose answers shape the systems with which we engage. As individuals, we each play many roles in our lives and as such there are some even bigger questions that haunt us in our journey: questions that transcend any specific role, questions that can't be...
Article
From the inside of a software-intensive system, there are many different styles of implementation, each with its own subtle characteristics. From the outside, it all looks the same: it's completely invisible. The Web extra at http://youtu.be/fWJEZ4vEEco is an audio podcast of author Grady Booch reading his On Computing column, in which he discusses...
Article
Storytelling involves weaving abstractions about fundamental truths regarding the world and the human experience to entertain and educate. When it comes to movies and television, producers and directors often make computer technology look like magic. It doesn't have to be that way. The Web extra at http://youtu.be/DqpL0q5LRlk is an audio podcast of...
Article
Every line of code represents a moral decision; every bit of data collected, analyzed, and visualized has moral implications. The Web extra at http://youtu.be/iY7mU1mtQ08 is an audio podcast of author Grady Booch reading his On Computing column, in which he discusses how every line of code represents a moral decision and how every bit of data colle...
Article
No matter your individual position on the matter, faith is a powerful element of the human experience. Therefore, it comes as no surprise that computing intersects with the story of belief in many ways. Here, we explore computing as a medium for faith, as a ritual space, and as a technology that itself raises certain metaphysical issues. The Web ex...
Article
There are three things that future generations may never experience: the smell of books, the sound of a computer, and the sanctuary of privacy. These human considerations are all unintended consequences of computing. The Web extra at http://youtu.be/Vkqkn0i5jgo is an audio podcast of author Grady Booch reading his On Computing column, in which he d...
Article
For those on the outside of the curtain of computing, there is much mystery behind the matter of software-intensive systems. To some, it looks like magic; to most, its inner workings are irrelevant in so far that it simply works. To those of us behind the curtain, however, we know that such systems are filled with chaos, regularity, and beauty. The...
Article
On the one hand, we seek to build software-intensive systems that are innovative, elegant, and supremely useful. On the other hand, computing technology as a thing unto itself is not the place of enduring value, and therefore, as computing fills the spaces of our world, it becomes boring. And that's a very good and desirable thing. The Web extra at...
Article
The subject of the computability of the mind introduces complex philosophical, ethical, and technical issues. That aside, this topic draws us in to the nature of algorithms. We are surrounded by algorithms; much of the history of computing is also the history of the advance of algorithms. For the public, algorithms are part of computing's self-made...
Article
Our present world is full of Dorothys, scarecrows, lions, tin men-and yes, humbugs-all on a quest of simply living. And yet, in our increasingly computing-haunted world, a curtain exists between the general public and computer technology. For the most part, the public is amazed by and warms itself by the glow that arises from behind that curtain bu...
Article
Computing was once a companion to conflict; computing is now an instrument of war; computing is becoming a theater of war. Along the way, conflict has shaped computing, and computing has changed the nature of warfare.
Article
Grady Booch, an IBM Fellow and one of the UML's original authors, believes that software professionals must help the society that so exquisitely depends on computing to understand the best use of technology. He suggests that a computer personnel, if asked to repair a computer, must repair them with grace and confidence. They must ask people to expl...
Article
Computing has transformed humanity in ways that we have only begun to metabolize. Computing amplifies what we celebrate most about being human, but it also has the capacity to magnify that which we mourn. Exploring the story of computing has value, for an educated populace is far more able to reconcile its past, reason about its present, and be int...
Article
There exists considerable literature on the public face of civil architecture: what it is, how we may judge it, how we are changed by it. We have lived in buildings and cities for millennia, so the nature of visible architecture is part of the fabric of our lives. We are now coming to live in structures made not of atoms, but of bits. Here we ponde...
Article
There comes a point of no return in the life of every successful software-intensive system, a point where you can no longer place a pile of your best developers at one end of a lever and expect them to move the world. Rather, you must come to realize that putting piles of developers at the end of even the longest lever is no longer the right tool t...
Article
The computer metaphor is dominant in most discussions of neuroscience, but the semantics attached to that metaphor are often quite naive. Herein, we examine the ontology of software-intensive systems, the nature of their structure and the application of the computer metaphor to the metaphysical questions of self and causation.
Article
All complex systems grow from smaller systems that work in the first place; all complex systems will fail, in one way or another. Between the small and the large, between the perfect and the flawed, there is some person or persons who had a vision for the shape of things to come. We call such people "architects".
Conference Paper
I entered the world of Ada at a most impressionable time in my career: I knew enough to be dangerous, but not so much that I was unwilling to try new things. Ada was full of new things that have informed much of what I do today. The role of abstraction, the meaning of beauty in design, the nature of delivering ultra-large software-intensive systems...
Article
There is complexity, and then there is organized complexity. Pure complexity is chaotic; organized complexity is full of patterns. Naming these patterns and respecting their intention is the essence of architecture.
Article
Security and privacy are interdependent concepts. Each impacts the other, but to say that they are alternatives is a false dichotomy. Both are issues of human concern; their policies and their risks may be made manifest in software-intensive systems. Architecting a system that attends to the needs of security and privacy is possible and desirable,...
Article
Making manifest, syndicating, and then governing a system's architecture facilitates understanding, reasoning about, and transforming that system with intention. This premise holds true for new systems as well as legacy ones, exploratory systems as well as production ones. Watson, IBM's reasoning system, is such a system-it is both new and explorat...
Article
When we grow a software-intensive system, we start with something that is deeply technical, something that is constrained by the laws of physics and the realities of information theory. We then shape it into something that is as invisible as it can be. This is, curiously, the polar opposite of what theoretical physicists do: they observe the fierce...
Article
The article is discussing architecture of software-intensive systems and its application in road traffic management.
Article
Developers, for the most part, don't draw diagrams because diagrams all too often don't offer any fundamental value that advances essential work. Yet, the problem remains that we must visualize ultra-large complex systems that have no directly observable physical manifestation. Here we explore how we might reconcile these two opposing realities.
Article
The architecture of a software-intensive system is best reasoned about through multiple, nearly independent views. Here we examine Kruchten's 4+1 model view in a new light.
Article
In this paper, oxymoron is discussed. An oxymoron is not a bovine of meager intelligence, nor is it a chemical compound with two covalently bound oxygen atoms. Rather, an oxymoron is a figure of speech that combines two seemingly contradictory terms and unites them in an apparent paradox. This paper focuses specifically on the oxymoron of agile sof...
Article
An architectural review serves several purposes: to gain confidence in the design, to reason about alternatives, to attend to architectural rot. The process of such a review involves the interplay of design decisions, scenarios, and forces on the system.
Article
All complex systems fail, by some measure of the word "fail," with consequences ranging from benign to catastrophic. This article examines the process of to triage in the face of a failing system. Software-intensive systems bring their own wickedness to the world because they have an essential complexity. They bring fundamental challenges to discre...
Article
Enterprise architecture and technical architecture are related yet different: whereas EA focuses on the architecture of a business that uses software-intensive systems, TA focuses on the architecture of the software-intensive systems that are used by a business to makes its mission manifest.
Article
This paper present the architecture of a software intensive system. An architecture is just a collective hunch, a shared hallucination, an assertion by a set of stakeholders about the nature of their observable world, be it a world that is or a world as they wish it to be. An architecture therefore serves as a means of anchoring an extended set of...
Conference Paper
Common sense (and common practice in other engineering disciplines) tells us that modeling is a Good Thing. There is undeniable value in having and using simple, standard, and expressive graphical notations to help one reason about complex artifacts. However, while software-intensive systems are among the most complex of artifacts, reality is that...
Article
The paper is an editorial that discusses the economics aspect of software industry. The author states that we are in a period of global economic funk, by virtually every measure that we can take. The good news is that we've been here before over the years and we've always seemed to get by. Software is still the most fungible and liquid of resources...
Conference Paper
A back-of-the-envelope calculation suggests that - very, very conservatively - the world produces well over 33 billion lines of new or modified code every year. Curiously, the moment that code springs into being and is made manifest in a running system, it become legacy. The relentless accretion of code over months, years, even decades quickly turn...
Article
The paper discusses the abundance of software products in the face of the economic scarcity. The author states that in the face of economic scarcity, the traditional response is to retreat, shrink, slash, and try not to panic. But there's another, more creative reaction to economic scarcity: to attack. While the velocity of money may have greatly d...
Article
Simple architectures have conceptual integrity and are better than more complex ones. Continuous architectural refactoring helps to converge a system to its practical and optimal simplicity.
Article
The metaphor of software development as building construction is an old one. Here is a fresh perspective, considering the life cycle of a software-intensive system as a river.
Article
Successful software-intensive systems are generally quite innovative, as evidenced by their success. Although their architectures will, over time, converge to a stable point, this does not mean that innovation stops. Rather, for any such system to remain vibrant and relevant, innovation much proceed simultaneously at many levels.
Article
Software-intensive systems, like bridges and societies, are subject to collapse. Collapse isn't necessarily inevitable, however, but avoiding it requires active, vigorous, and intentional intervention by the system's architects. Two patterns and one antipattern can help architects address the systemic issues that, left unattended, may lead to colla...
Conference Paper
Software systems are engineering artifacts of increasing complexity. Development of ultra large-scale systems, management of geographically distributed teams, integration of multiple products and large legacy migration are typical activities composing the current software process landscape.
Article
Over the past 25 years, we've made great advances in tooling, technologies, and techniques that make software design more concrete. But design still requires careful thought.
Article
Every new line of code quickly becomes legacy. When that legacy mounts, it forms a significantly massive pile of software, which cannot be ignored. This article discusses what we can do intentionally with such piles, from abandonment to evolution and many things in between.
Article
Edited by Peter G. Neumann (Risks Forum Moderator and Chairman of the ACM Committee on Computers and Public Policy), plus personal contributions by others, as indicated. Opinions expressed are individual rather than organizational, and all of the usual ...
Article
Without refactoring, complex software-intensive systems become increasingly irregular and thus increasingly chaotic over time. We can understand complex software systems only when they're nearly decomposable and hierarchic. One measure the author uses is lines of source code: the greater the SLOC, the more inertia to change the system will have, th...
Article
To set the context for the discussion that follows, there are some fundamentals worth repeating. The author talked about each of these to some degree in previous columns, so let me summarize here: 1) all architecture is design, but not all design is architecture. A system's architecture is defined by its significant design decisions, where in the a...
Article
As the code written today becomes part of tomorrow's inexorably growing pile of legacy, preserving these stories becomes increasingly important. It's costly to rely on informal storytelling to preserve and communicate important decisions; it's incredibly costly to try to recreate those decisions and their rationale when the storytellers themselves...
Article
The author poses the question:is there a moral dimension to developing software? Should software architects have a professional code of ethics? As Bjarne Stroustrup has pointed out, our civilization runs on software. We as a professional community have developed technology that has changed the way individuals live, businesses operate, communities i...
Article
This article deals with the comparison between building architecture and software architecture. In software, cost estimation is extremely immature, and more accurate estimates can be obtained only by each iteration.
Article
Architecture is an artifact that's governed throughout the software life cycle - from conception through development to deployment and finally evolution, then to adaptation, assimilation, replacement, or abandonment. Similarly, the architect, either as an individual, a role, or a team, lovingly crafts, grows, and governs that architecture as it eme...
Article
Virtually all well-structured music, music that pleases the ear and moves the spirit, is full of patterns. Music is a primal medium of expression, and while some musicians in every age push the envelope of contemporary practice, there have emerged over the centuries common patterns of song structure, motifs, and even scales to which our ears have b...
Article
The architecture of a software-intensive system is largely irrelevant to its end users. Far more important to these stakeholders is the system's behavior, exhibited by raw, naked, running code. Most interesting system tests should be based on the use cases that are identified incrementally over the system's life cycle, the same use cases that the s...
Article
Whenever the author conducts an architectural assessment for software development projects, he endeavors to speak truth to power: those with true power never fear the truth. Sam Guckenheimer has observed that in software code there is truth. Code represents the stark reality of a software development organization's labor. There is also truth to be...
Conference Paper
In so many ways, software-intensive systems touch the lives of every individual, corporation, institution, nation, and contemporary civilization. Nonetheless, the gap between the technological haves and have-nots is growing and the gap between academia and the industries that create these software-intensive systems continues to be much lamented. I...
Article
RESUMEN RESUMEN Software systems usually have the same basic architectural pattern as their earlier incarnations, manifesting in decreasingly refined forms as we move back in time. Similarly, when a new problem confronts us, we try many different approaches, but over time, for the same kind of problem, solutions tend to converge to the same, more...
Article
On behalf of the Computer History Museum and the ACM, Grady Booch recently interviewed John Backus, who led the IBM team that created Fortran in the 1950s. Backus went on to coinvent the Backus-Naur Form (which was first applied to the definition of ALGOL), then later pioneered important advances in functional programming. After a wide-ranging conv...
Article
RESUMEN RESUMEN Software development is ultimately an engineering activity, whose primary activity is to deliver executable artifacts in a manner that balances the forces on that system. The forces that swirl around a software- intensive system include not only its purely functional requirements but also a multitude of nonfunctional ones , such a...
Article
Every interesting software-intensive system has an architecture. While some of these architectures are intentional, most appear to be accidental. Philippe Kruchten has observed that "the life of a software architect is a long and rapid succession of suboptimal design decisions taken partly in the dark." The journey between vision and ultimate execu...
Article
For the past two years, the author has been working to create a handbook of software architecture (www.booch.com/architecture) and will continue to work on it for another two to three years. The handbook’s primary goal is to codify the architecture of 100 interesting software-intensive systems, presenting them in a manner that exposes their essenti...
Conference Paper
Classical science advances via the dance between quantitative observation and theoretical construction. It has been ten years since the first International Software Architecture Workshop, and since that time there has been a steady increase in the number of people who call themselves "software architect" and a similar growth in the value that organ...
Conference Paper
Structured Design has been described as a "traditional approach" and an "alternative technology" by the SEI's (Software Engineering Institute) software technology roadmap on their website [July 2005]. While website visitors are cautioned that structured design does not lend itself to object orientation the method has clearly influenced the evolutio...
Conference Paper
It is a sign of maturity for any given engineering discipline when we can name, study, and apply the patterns relevant to that domain. In civil engineering, chemical engineering, mechanical engineering, electrical engineering, and now even genomic engineering, there exist libraries of common patterns that have proven themselves useful in practice....
Article
Full-text available
[9] Mary-Claire van Leunen and Richard Lipton. How to have your abstract rejected. http://www.acm.org/sigplan/conferences/author-info/vanLeunenLipton.html. [10] Mark N. Wegman. What it’s like to be a POPL referee: How to write an extended

Citations

... Similar to ML, System 1 is good at sensing and reading, i.e., perceptual tasks. Conversely, System 2 is grounded on planning, logic, search, and explicit knowledge [9]. ...
... They initiated the Software Engineering and Method (SEMAT) with the aim of founding SE as an academic discipline to establish a general and widely accepted theoretical framework [8] Regarding the confusion aforementioned between CS and SE, CS focused more on the theory of science and digital systems with no emphasis on skills set for designing and creating software that meets users' needs/requirements [17]. CS is different from SE mainly because SE is perceived equally as an art and science of practically balancing costs, scheduling, complexity, identifying functionality, evaluating performance, as well as legal and ethical forces in software applications [18]. The software engineering curricula in the RIT hinged on seven main themes namely: Design solutions to customer problems, Software development process, Evolution and Maintenance of software system, Complexity Management, Software standards, Team-based development, and Professionalism in engineering practices [14]. ...
... In other works, as in the MaestROB framework (Munawar et al. 2018), the communication to the low-level robot controllers is done over the Intu middleware and corresponding ROS-Bridges. The communications structures are similar, as they are based on the publisher/subscriber concept. ...
... At the 2007 SIGCSE Symposium, the ACM Education Board organized a special session to explore the underlying causes [7]. In his keynote at the same conference, Grady Booch exhorted us to share the "passion, beauty, joy and awe" (PBJA) of computing [4]. This led to a series of room-packed sessions at the following three SIGCSE symposia to explore that idea from different perspectives [8,9,12]. ...
... Neste âmbito, o uso de técnicas de criatividade é um fator determinante para quem desenvolve software. Na opinião de Grady Booch [1], a natureza dos sistemas que construímos continua a mudar e, à medida que se cruzam coletivamente na nossa vida, devemos atender não apenas aos elementos técnicos do desenvolvimento de software, mas também às necessidades humanas. ...
... One of my current hypotheses (to a certain extent verified from various recent initiatives which have not yet taken the form of papers but can be traced in the news or in academic contexts), is that the hype is now entering the trough of Gartner's disillusionment (Linden & Fenn, 2003) and the most important thing to avoid is an upcoming third AI winter. Concerns about a third AI winter have been expressed by AI specialists such as Booch (2015) and now that a general realisation of the fragility of ultraintelligence/singularity/superintelligence types of arguments (for a concise review of the arguments see Eden, Steinhart, Pearce, & Moor, 2012; for their most recent instalment, Bostrom, 2014) has become relatively fashionable (as I often say in my talks "unhype is the new hype"), it is time to strategically intervene and promote justifiable (and yet opportunistic) agendas in AI. ...
... In general, these models are expected to be expressive, rigourous, intuitive, well-structured and possess the adequate level of abstraction (be sufficiently detailed and precise) [20]. Such models could complement the code [27], be extracted from it [16,25], from its binaries [26], from some intermediate representation or from other models [13,14], from the execution traces [22] or be created to synthesize the code from them [20]. ...
... 7) calls the many smart devices we collect around us "gossiping appliances" as they are constantly in conversation with each other about none other than 'us', their human cohabitors. The threat to privacy from pervasive technologies is one of constant debate (Austin, 2003;Vamosi, 2011;Acquisti and Gross, 2006;Berman and Bruening, 2001;Booch, 2015). There are valid points made in the argument for if the future of HCI is in advanced pervasive technologies such as IoT and ubiquitous computing, then at some stage privacy and security become assets of interest to multiple parties and therefore easily violated (Stajano, 2010, p. 287). ...
... Our work is based on the large body of work applied in traditional settings (i.e.: desktop/server computing platforms). However, it gets its inspiration from recent experimental ubiquitous computing systems developed, for example at PARC (Want 1995, Newman 2002), HP Labs (Cooltown), Georgia Tech (Aware Home, Abowd 2002) and Berkeley (Dey 2001, Mankoff 2003), among others. The Cooltown project (Cooltown, Kindberg et al. 2000, Caswell and Debaty 2000) has been adapting the existing web and wireless infrastructures to support nomadic users, creating a bridge between physical entities and electronic services. ...
... "Every line of code represents an ethical and moral decision; every bit of data collected, analyzed, and visualized has moral implications." Grady Booch [10] Over the last few years, the media has reported many examples of software-intensive systems that intentionally or unintentionally ignored or violated ethical and human values [1,17]. These systems have sometimes posed irreversible damages and challenges to endusers (e.g., loss of life), society (e.g., ignoring or being biased against a particular gender), and the software industry (e.g., damaging the software creator's reputation). ...