190 likes | 204 Views
CS427. Topics in Software Engineering Ralph Johnson: johnson@cs.uiuc.edu Federico Balaguer: balaguer@uiuc.edu http://wiki.cs.uiuc.edu/cs427. Topics. Software architecture Architectural patterns Enterprise architectures. Software Architecture.
E N D
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 • presentations by me • Next thirteen weeks • 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 • 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