CS427 - lecture 11 CS427 Topics in Software Engineering Ralph Johnson: [email protected] .
-
date post
22-Dec-2015 -
Category
Documents
-
view
217 -
download
0
Transcript of CS427 - lecture 11 CS427 Topics in Software Engineering Ralph Johnson: [email protected] .
CS427 - lecture 1 1
CS427
Topics in Software Engineering
Ralph Johnson: [email protected]
http://wiki.cs.uiuc.edu/cs427
CS427 - lecture 1 2
Topics
• Software architecture
• Architectural patterns
• Problem frames
CS427 - lecture 1 3
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 4
Software Architecture
• Large-Scale Software Architecture: A Practical Guide Using UML by Jeff Garland and Dick Anthony
• Not-yet-published book
• Alternative view of architecture, focusing on how to develop a system architecture
CS427 - lecture 1 5
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 6
Problem Frames
• Problem Frames: Analyzing and Structuring Software Development Problems by Michael Jackson
• Finding the patterns in problems
• Claim: different kinds of problems require different kinds of architectural style
CS427 - lecture 1 7
Schedule
• First week– presentations by me
• Next nine weeks– short presentations by students on each chapter– you must read each chapter BEFORE the talk– project and essays– discussion
CS427 - lecture 1 8
Schedule
May 29,30: intro to architecture
June 4: 4+1 Views, SAIP 3, LSSA 2
June 5: LSSA 3, LSSA 4
June 6: SAIP 4, SAIP 5
…
Two half-hour presentations each day.
CS427 - lecture 1 9
Schedule for presentations
• At least a week before presentations, the presenters will post a few questions
• At least two days before presentations, each person will post answers to the wiki, no more than a page in length.
• Presenters can use this to determine what to talk about.
• Presenters grade answers
CS427 - lecture 1 10
Example QuestionsSAIP 1-2,LSSA-1: How do the various
definitions of software architecture conflict with each other?
SAIP 3: Which of the architectural structures of section 2.5 are used here? What did you learn from studying them?
SAIP 4: Which qualities are most important? Which one is hardest to understand? Why?
CS427 - lecture 1 11
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 12
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 13
Project
• Work in pairs
• Build some web pages that relate architectural styles, architectural patterns, and problem frames to concrete systems.
CS427 - lecture 1 14
Project Examples
• Analyze an open-source system for patterns, how it solves a problem frame, or as a case study in the style of SAIP.– Last year: Python, Tomcat, Kannel, Linux– This year: Rotor, Squeak VM, Zebra
CS427 - lecture 1 15
Project Examples
• Describe the common architecture of a group of similar systems.– 2001: messaging systems, MTS vs. EJB– 2002: virtual machines
CS427 - lecture 1 16
Grade
• 25% - project
• 20% - presentation
• 20% - answers on chapters
• 15% - essays
• 10% - pattern
• 5% - course summary
• 5% - class participation
CS427 - lecture 1 17
Patterns
• Things that repeat
• Architectural patterns– styles like “three tier client/server”– designs like “parser/lexer/symbol
table/analysis/code generation”– concerns like “efficiency” and “flexibility”– processes like “architect also implements”
CS427 - lecture 1 18
Patterns
• Best practices: copy other people
• Techniques: enlarge your tool box
• Vocabulary: language for discussing architecture
CS427 - lecture 1 19
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 20
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 21
Finding patterns
• Look at things
• Notice similarities
• Why does this similarity exist? What problem does this technique solve?
CS427 - lecture 1 22
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.