cs427 - lecture 11 cs427 topics in software engineering ralph johnson: [email protected]

22
CS427 - lecture 1 1 CS427 Topics in Software Engineering Ralph Johnson: [email protected] http://wiki.cs.uiuc.edu/ cs427

Post on 22-Dec-2015

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CS427 - lecture 11 CS427 Topics in Software Engineering Ralph Johnson: johnson@cs.uiuc.edu

CS427 - lecture 1 1

CS427

Topics in Software Engineering

Ralph Johnson: [email protected]

http://wiki.cs.uiuc.edu/cs427

Page 2: CS427 - lecture 11 CS427 Topics in Software Engineering Ralph Johnson: johnson@cs.uiuc.edu

CS427 - lecture 1 2

Topics

• Software architecture

• Architectural patterns

• Problem frames

Page 3: CS427 - lecture 11 CS427 Topics in Software Engineering Ralph Johnson: johnson@cs.uiuc.edu

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.

Page 4: CS427 - lecture 11 CS427 Topics in Software Engineering Ralph Johnson: johnson@cs.uiuc.edu

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

Page 5: CS427 - lecture 11 CS427 Topics in Software Engineering Ralph Johnson: johnson@cs.uiuc.edu

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

Page 6: CS427 - lecture 11 CS427 Topics in Software Engineering Ralph Johnson: johnson@cs.uiuc.edu

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

Page 7: CS427 - lecture 11 CS427 Topics in Software Engineering Ralph Johnson: johnson@cs.uiuc.edu

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

Page 8: CS427 - lecture 11 CS427 Topics in Software Engineering Ralph Johnson: johnson@cs.uiuc.edu

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.

Page 9: CS427 - lecture 11 CS427 Topics in Software Engineering Ralph Johnson: johnson@cs.uiuc.edu

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

Page 10: CS427 - lecture 11 CS427 Topics in Software Engineering Ralph Johnson: johnson@cs.uiuc.edu

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?

Page 11: CS427 - lecture 11 CS427 Topics in Software Engineering Ralph Johnson: johnson@cs.uiuc.edu

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

Page 12: CS427 - lecture 11 CS427 Topics in Software Engineering Ralph Johnson: johnson@cs.uiuc.edu

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

Page 13: CS427 - lecture 11 CS427 Topics in Software Engineering Ralph Johnson: johnson@cs.uiuc.edu

CS427 - lecture 1 13

Project

• Work in pairs

• Build some web pages that relate architectural styles, architectural patterns, and problem frames to concrete systems.

Page 14: CS427 - lecture 11 CS427 Topics in Software Engineering Ralph Johnson: johnson@cs.uiuc.edu

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

Page 15: CS427 - lecture 11 CS427 Topics in Software Engineering Ralph Johnson: johnson@cs.uiuc.edu

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

Page 16: CS427 - lecture 11 CS427 Topics in Software Engineering Ralph Johnson: johnson@cs.uiuc.edu

CS427 - lecture 1 16

Grade

• 25% - project

• 20% - presentation

• 20% - answers on chapters

• 15% - essays

• 10% - pattern

• 5% - course summary

• 5% - class participation

Page 17: CS427 - lecture 11 CS427 Topics in Software Engineering Ralph Johnson: johnson@cs.uiuc.edu

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”

Page 18: CS427 - lecture 11 CS427 Topics in Software Engineering Ralph Johnson: johnson@cs.uiuc.edu

CS427 - lecture 1 18

Patterns

• Best practices: copy other people

• Techniques: enlarge your tool box

• Vocabulary: language for discussing architecture

Page 19: CS427 - lecture 11 CS427 Topics in Software Engineering Ralph Johnson: johnson@cs.uiuc.edu

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

Page 20: CS427 - lecture 11 CS427 Topics in Software Engineering Ralph Johnson: johnson@cs.uiuc.edu

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

Page 21: CS427 - lecture 11 CS427 Topics in Software Engineering Ralph Johnson: johnson@cs.uiuc.edu

CS427 - lecture 1 21

Finding patterns

• Look at things

• Notice similarities

• Why does this similarity exist? What problem does this technique solve?

Page 22: CS427 - lecture 11 CS427 Topics in Software Engineering Ralph Johnson: johnson@cs.uiuc.edu

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.