MIT Professor Daniel Jackson, who is the Deputy Director of the Laboratory of Computer Science and Artificial Intelligence (CSAIL), examines the design and application of software using a concept-based approach in his new book, The Essence of Software. Credit: CSAIL
Sometimes, software is just like us. It can be bloated, slow and messy. Humans may see a doctor if these symptoms persist (perhaps not because of a mess), but we rarely push faulty software to go see its key time and time again.
The answer to why our software is corrupted is confined to a web of reliance on glittering hardware, limits of “code and repair” approach and improper design. MIT Professor Daniel Jackson, who is the Deputy Director of MIT’s Computer Science and Artificial Intelligence Laboratory (CSAIL), has examined existing constraints to create a new framework for improving the way our programs work. His theory of software design takes a focused approach to a person who sees the app as a collection of concepts that interact. “The Essence of Software,” Jackson’s new book, relies on his many years of software research, including Alloy design, open source language, and software modeling analysis.
Q: Bugs. Security flaws. Design defects. Has the software always been bad?
A: The software is actually better than it has ever been. Only the power and functionality of the software grew so fast that we could not always keep up. And there are some software products (Apple Keynote, for example) that are close to perfect – easy to use, flexible, with almost no bugs. My book offers an approach that will allow everyone to make such good software.
Q: In your new book, “The essence of the software, “You present a software design theory that demonstrates how a software system can be seen as a collection of interacting concepts.” How does this eliminate conventional wisdom?
A: First, conventional wisdom sees the user experience primarily in the user interface – its layout, colors, labels, etc. The concept design goes deeper, to address the basic mechanisms that the programmer builds and the user experiences.
Second, most apps have large areas of overlapping functionality, but existing approaches do not recognize this, and developers build the same pieces of functionality over and over again as if they were new, without taking advantage of the fact that they have been built many times. before. Just think of how many social media apps have embedded voting or comments or favorites, for example. Concepts allow you to identify these reuse opportunities and take advantage of the cumulative design wisdom.
Q: 2021 was one of the most difficult years for information breaches. Boeing 787s must be rebooted every 51 minutes to avoid “a number of potentially catastrophic failure scenarios.” Can your approach help with these types of security and safety issues?
A: A high rate of security and safety issues is due to a lack of clarity in the design. Concepts can help with that. More directly, concepts can ensure that users truly understand the effects of their actions, and we know that many disasters happen because users do the wrong thing. In the field of security, getting the user to do the wrong thing (such as granting access to someone who should not have access) is usually the easiest way to take over a system. So, if you can design an app to make it harder for users to do things they will regret, you can mitigate this problem.
Detect new malware for Android at source code level
This story was republished courtesy of MIT News (web.mit.edu/newsoffice/), A popular site covering MIT research, innovation and teaching news.
quotation: The book explores conceptual clarity and a new theory of software design (2021, December 1) Retrieved December 3, 2021 from https://techxplore.com/news/2021-12-explores-clarity-theory-software.html
This document is subject to copyright. Apart from any fair transaction for the purpose of research or private research, no part may be reproduced without written approval. The content is provided for informational purposes only.