13
The Reflector, March 2022
Computer Society and GBC/ACM - 7:00 PM, Thursday, March 24
How to Become a Great Software Designer Daniel Jackson, MIT
Register in advance for this webinar at https://ac- Laboratory (CSAIL). He was the lead designer of the m-org.zoom.us/webinar/register/1916456450473/ Alloy modeling language, author of “Software AbstracWN_BGsPxPCORhuXl-ktoW0Hng tions: Logic, Language, and Analysis” (MIT Press; second ed. 2012) and most recently of “Essence of SoftAfter registering, you will receive a confirmation ware” (https://essenceofsoftware.com). He was chair email containing information about joining the we- of the National Academies’ study Software for Dependbinar. able Systems: Sufficient Evidence? (2003-2007), and served on the study Electronic Vehicle Controls and Why are some apps so much better than Unintended Acceleration (2010-2012). He received the others, and some designers so much more 2016 ACM SIGSOFT Impact Paper Award for his resuccessful? For the last decade or so, I’ve search method for finding bugs in code and the 2017 been trying to answer this question. My ap- ACM SIGSOFT Outstanding Research Award for “founproach has been to study hundreds of pop- dational contributions to software modeling, the creation ular apps, identifying good and bad parts, of the modeling language Alloy, and the development of and then looking for a way to codify this a widely used tool supporting model verification” and knowledge so that anyone can use it to become a better is an ACM Fellow. He is also a photographer; his book designer. Portraits of Resilience (MIT Press, 2017) addresses the campus epidemic of depression and anxiety with a colIn this talk, I’ll explain what I came up with: (1) a way lection of portraits and stories. to structure the functionality of an app into “concepts” (which are essentially little behavioral protocols); (2) This joint meeting of the Boston Chapter of the IEEE a composition strategy that lets you put concepts to- Computer Society and GBC/ACM will be online only gether without coupling them; (3) criteria for good and due to the COVID-19 lockdown. bad concept design; and (4) the beginnings of a catalog of reusable concepts. Up-to-date information about this and other talks is available online at Most of the examples and ideas will be drawn from my https://ewh.ieee.org/r1/boston/computer/. recently published book, Essence of Software (https:// essenceofsoftware.com). You can sign up to receive updated status information about this talk and informational emails about future Daniel Jackson is Professor of Computer Science at talks at https://mailman.mit.edu/mailman/listinfo/ieeeMIT, a MacVicar teaching fellow, and Associate Direc- cs, our self-administered mailing list. tor of the Computer Science and Artificial Intelligence