Informatics 223
Applied Software Design Techniques
Spring 2017
André van der Hoek
http://www.ics.uci.edu/~andre
andre@ics.uci.edu
Office: Donald Bren Hall 5038
Phone: +1 949-824-6326
Location: DBH 1300
Day and time: Tuesday and Thursday, 9:30-10:50
223 Applied Software Design Techniques (4). Study of concepts, representations, techniques, and case studies
in structuring software systems, with an emphasis on design considerations. Topics include static and dynamic
system structure, data models, abstractions, naming, protocols and application programmer interfaces.
The class will be discussion-oriented. Papers must have been read beforehand, and discussion will be
seeded by questions, observations, and assertions from all students in the class. Course goals include:
- To know the theory of software design
- To become fluid in using a set of representative software design techniques
- To understand how to examine existing software designs
- To learn the practices of expert software designers
Each student will perform a case study by adopting one software system that they will use to illustrate
the techniques with concrete examples. Based on the case study, a few slides should be prepared weekly that
illustrate the findings in the example system.
Each student will engage in the design of several software systems (or parts thereof), putting the lessons learned
into practice.
All students enrolled in the course will earn a letter grade based upon: (a) class
attendance and participation, (b) questions, observations, and assertions that feed the
discussions in class, (c) case study slides, and (d) design work.
To send mail: 37240-s17@classes.uci.edu
To view the archive: https://eee.uci.edu/classmail/s17/37240/
Any student who feels he or she may need an accommodation based on the
impact of a disability should contact me privately to discuss his or her
specific needs. Also contact the Disability Services Center at
(949) 824-7494 as soon as possible to better ensure that such
accommodations are implemented in a timely fashion.
The documents below are included to ensure timely dissemination of scholarly
and technical work on a non-commercial basis and are for the sole use of
students enrolled in Informatics 223. Copyright and all rights therein are
maintained by the authors or by other copyright holders, notwithstanding that
they have offered their works here electronically. It is understood that all
persons copying this information will adhere to the terms and constraints
invoked by each author's copyright. These works may not be resposted without
the explicit permission of the copyright holder.
Week
|
Date
|
Topic
|
Papers to Read
|
1
|
April 4
|
Welcome and introduction (slides)
|
|
|
April 6
|
Models & UML (slides)
|
Seidewitz: What Models Mean
Engels & Groenewegen: Object-Oriented Modeling: A Roadmap
Bell: Death by UML Fever
Petre: UML in Practice
Fowler: UML Distilled: A Brief Guide to the Standard Object Modeling Language (third edition) (book, if you are not familiar with UML)
|
|
2
|
April 11
|
Models & UML (slides)
|
|
April 13
|
Architecture
|
Taylor & van der Hoek: Software Design and Architecture: The Once and Future Focus of Sofware Engineering
Perry & Wolf: Foundations for the Study of Software Architecture
Behnamghadar, Le, Garcia, Link, Shahbazian & Medvidovic: A Large-Scale Study of Architectural Evolution in Open-Source Software Systems
Medvidovic, Dashofy & Taylor: Moving Architectural Description from under the Technology Lamppost
|
3
|
April 18
|
Architecture (slides)
|
|
|
April 20
|
Patterns
|
Lea: Christopher Alexander: An Introduction for Object-Oriented Designers
Gamma, Helm, Johnson, Vlissides: Design Patterns: Elements of Reusable Object-Oriented Software (book)
Garlan, Allen, Ockerbloom: Exploiting Style in Architectural Design Environments
|
4
|
April 25
|
Patterns (slides)
|
|
|
April 27
|
Data Models
|
Conklin: Hypertext: An Introduction and Survey
Capriero & Gelernter: Linda in Context
Ferrante, Ottenstein & Warrren: The Program Dependence Graph and Its Use in Optimization
|
5
|
May 2
|
No class (André at UT Austin)
|
|
|
May 4
|
No class (André at UT Austin)
|
|
6
|
May 9
|
Data Models (slides)
|
|
|
May 11
|
Naming
|
Berners-Lee, Fielding & Masinter: Uniform Resource Identifiers (URI): Generic Syntax
Carzaniga, Rosenblum & Wolf: Design and Evaluation of a Wide-Area Event Notification Service
Musen: Domain Ontologies in Software Engineering: Use of Protégé with the EON Architecture
Happel & Seedorf: Applications of Ontologies in Software Engineering
|
7
|
May 16
|
Naming
|
|
|
May 18
|
APIs
|
Parnas: On the Criteria To Be Used in Decomposing Systems into Modules
van der Hoek, Carzaniga, Heimbigner & Wolf: A Testbed for Configuration Management Policy Programming
Kiczales, Lamping, Mendhekar, Maeda, Lopes, Loingtier & Irwin: Aspect-Oriented Programming
|
8
|
May 23
|
No class (André at ICSE)
|
|
|
May 25
|
No class (André at ICSE)
|
|
9
|
May 30
|
APIs (slides)
|
|
|
June 1
|
Algorithms & Protocols
|
Jones, Harrold & Stasko: Visualization of Test Information to Assist Fault Localization
Meng, Kim, McKinley: LASE: Locating and Applying Systematic Edits by Learning from Examples
Gudgin, Hadley, Mendelsohn, Moreau, Nielsen, Karmarkar & Lafon: Simple Object Access Protocol (SOAP) 1.2
Whitehead & Goland: WebDAV: A Network Protocol for Remote Collaborative Authoring on the Web
|
10
|
June 6
|
Algorithms & Protocols (slides)
|
|
|
June 8
|
Final discussion
|
|
Finals week
|
June 15, 08:00-10:00, DBH 1200
|
No final
|
|
|