CS427 Topics in Software Engineering Ralph Johnson: johnson@cs.uiuc.edu Federico Balaguer: balaguer@uiuc.edu http://wiki.cs.uiuc.edu/cs427 CS427 - lecture 1
Topics Software architecture Architectural patterns Enterprise architectures CS427 - lecture 1
Software Architecture Software Architecture in Practice, by Len Bass, Paul Clements, and Rick Kazman Software Engineering Institute view on software architecture How architectures influence and are influenced by the organizations that create them and the systems they are part of. CS427 - lecture 1
Software Patterns Pattern-Oriented Software Architecture: A System of Patterns by Buschmann, Meunier, Rohnert, Sommerlad, Stal Architectural patterns, design patterns, and idioms Architectural patterns are similar to architectural styles in SAIP CS427 - lecture 1
Enterprise Architecture Patterns of Enterprise Application Architecture by Martin Fowler et. al. How to build large OO business systems 51 patterns Applicable to Java, .NET, Smalltalk, etc. CS427 - lecture 1
Enterprise Solution Patterns Using Microsoft .NET David Trowbridge, Gregor Holipe, James Newkirk, David Lavigne A lot like Patterns of Enterprise Application Architecture, but explaining how to apply to Microsoft platform https://www-courses.cs.uiuc.edu/~cs427/ MSFTPatternsV1.pdf CS427 - lecture 1
Schedule First week Next thirteen weeks presentations by me Half-hour presentations by students on each chapter you must read each chapter BEFORE the talk project and essays discussion CS427 - lecture 1
Schedule for presentations At least a week before presentations, the presenter will post a few questions At least a day before presentations, each person will e-mail answers to the presenter, no more than a page in length. Presenters can use this to determine what to talk about. Presenters grade answers CS427 - lecture 1
Example Questions SAIP 2: Compare and contrast software architecture with building architecture. SAIP3: What is an architectural question you have about the A-7E that the chapter did not answer? SAIP 4: Which qualities are most important? Which one is hardest to understand? CS427 - lecture 1
Features of good questions Answers can be short Answers don’t require graphics Must read chapter to answer questions Answers let presenter know which part of the chapter should be emphasized CS427 - lecture 1
Grades on Answers 3 - Outstanding answer 2 - Good answer, read the chapter and generally understood it 1 - Did you read the chapter? If so, you didn’t understand it very well Can miss 5 answers CS427 - lecture 1
Project Work in groups of 4-8 people. Build an electronic stock exchange using patterns in the class. J2EE, .NET, or Smalltalk Compare the resulting systems CS427 - lecture 1
Grade 25% - project 20% - presentation 15% - answers on chapters 20% - essays 10% - pattern 5% - course summary 5% - class participation CS427 - lecture 1
Patterns Things that repeat Architectural patterns styles like “three tier client/server” designs like “parser/lexer/symbol table/analysis/code generation” processes like “architect also implements” CS427 - lecture 1
Patterns Best practices: copy other people Techniques: enlarge your tool box Vocabulary: language for discussing architecture CS427 - lecture 1
Patterns Christopher Alexander - architecture theory Contributions The Timeless Way of Building A Pattern Language Contributions balance of forces problem/solution pattern language piecemeal growth CS427 - lecture 1
Design Patterns Design Patterns: Elements of Reusable Software by Gamma, Helms, Johnson, and Vlissides First book on patterns of software Low-level object-oriented patterns CS427 - lecture 1
Finding patterns Look at things Notice similarities Why does this similarity exist? What problem does this technique solve? CS427 - lecture 1
Assignment Go to class wiki (wiki.cs.uiuc.edu/cs427) and make a home page for yourself. Put your e-mail address on it. Add a link to it from the class list. Decide which chapter you would like to present. Start thinking about a project. CS427 - lecture 1