Automated Software Design: Volume 1 | |
To All: This text was derived from my lectures in upper-division (3rd and 4th year) Undergraduate Software Design at the University of Texas at Austin. I wanted to record their spirit and visuality as both contribute to my presentations. This class and now this text fits a unique need in an undergraduate Computer Science curriculum. In reviewing undergraduate courses in Software Engineering (SE) at other schools, I haven't found a comparable course that covers the topics of Model Driven Engineering (MDE), Refactorings, Design Patterns (DPs) and Software Architectures, Software Product Lines (SPLs), Dataflow Program Design by Transformation (DxT), and an essential bit of Category Theory (CT), with illustrations from compilers and interpreters and databases in an integrated way. Further, there is novel material in every chapter of this tex. Yes, I've seen individual courses on domain-specific design (e.g., compiler design, operating system design), and courses covering Design Patterns or Foundations of Software Engineering, but rarely see MDE, SPLs, or anything like DxT mentioned. This is regrettable, as all of these paradigms are exemplars of future software development and are topics undergraduates should have familiarity before they graduate. Bluntly, programming and data structures is not software design, just like carpentry and plumbing is not architecture. They are substantially different. I once said to a class that the material of this text is difficult. It is not. It was difficult for me to integrate the countless isolated ideas and results unearthed by decades of software pioneers to make it look simple in a coherent whole. I hope it is simple for you. I had a satisfying career collecting and distilling this information for you. Enjoy! To Instructors: I have a complete set of lecture notes in the form of Powerpoint slides that you are welcome to use. The first versions of this text do not have exercises at the end of chapters. In later versions, I hope to add them. If you need the lecture notes and/or exercises, please contact me via email. ![]() batory@cs.utexas.edu November 2020 | ![]() Publically released November 2020 Click the above image to download zip file (PDF+videos) of current text. |