1 architecture business cycle csse 477 software architecture steve chenoweth, rose-hulman institute...

22
1 Architecture Business Architecture Business Cycle Cycle CSSE 477 Software Architecture CSSE 477 Software Architecture Steve Chenoweth, Rose-Hulman Steve Chenoweth, Rose-Hulman Institute Institute Monday, Sep 5, 2011 Monday, Sep 5, 2011 SA Ch 1 SA Ch 1

Upload: barrie-atkins

Post on 29-Dec-2015

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 Architecture Business Cycle CSSE 477 Software Architecture Steve Chenoweth, Rose-Hulman Institute Monday, Sep 5, 2011 SA Ch 1

11

Architecture Business Architecture Business CycleCycle

CSSE 477 Software ArchitectureCSSE 477 Software ArchitectureSteve Chenoweth, Rose-Hulman InstituteSteve Chenoweth, Rose-Hulman Institute

Monday, Sep 5, 2011Monday, Sep 5, 2011

SA Ch 1SA Ch 1

Page 2: 1 Architecture Business Cycle CSSE 477 Software Architecture Steve Chenoweth, Rose-Hulman Institute Monday, Sep 5, 2011 SA Ch 1

22

TodayToday• Start the general topics in SAStart the general topics in SA

– Background for the specific skills you’ll buildBackground for the specific skills you’ll build

• Time to work on Project 1 in classTime to work on Project 1 in class– Add to your journal, a quantitative analysis of the Add to your journal, a quantitative analysis of the

opportunities to improve performance, opportunities to improve performance, – Like the example from Friday’s slides.Like the example from Friday’s slides.– Turn in, on Angel, by end of today (11:55 PM)Turn in, on Angel, by end of today (11:55 PM)– Just added - See the example journal and spreadsheet

from last year's class, in the same directory as this file, so you'll know what I am looking for! These are as-of the final turnin for this first project.

• Tonight – Vote for the grading scheme (on Angel Lessons, under “Your input, and surveys”)

Page 3: 1 Architecture Business Cycle CSSE 477 Software Architecture Steve Chenoweth, Rose-Hulman Institute Monday, Sep 5, 2011 SA Ch 1

33

OutlineOutline

• Vasa – first of many case historiesVasa – first of many case histories– We learn from others’ mistakes!We learn from others’ mistakes!– Critical thinking’s finest hour?Critical thinking’s finest hour?

• Architecture Business CycleArchitecture Business Cycle

• Advice and Rules of Thumb for Advice and Rules of Thumb for "Good" Architecture"Good" Architecture

Naval architecture is an interesting analogy to software architecture, as we’ll see…

Page 4: 1 Architecture Business Cycle CSSE 477 Software Architecture Steve Chenoweth, Rose-Hulman Institute Monday, Sep 5, 2011 SA Ch 1

44

History of the VasaHistory of the Vasa

• January 1625: Initial January 1625: Initial contractcontract

• Early 1626: Early 1626: Accelerated schedule Accelerated schedule as building commencedas building commenced

• Later 1626: Ship size Later 1626: Ship size increasedincreased

• 1627: Shipwright died 1627: Shipwright died

• August 1628: Maiden August 1628: Maiden voyagevoyage

Page 5: 1 Architecture Business Cycle CSSE 477 Software Architecture Steve Chenoweth, Rose-Hulman Institute Monday, Sep 5, 2011 SA Ch 1

55

Schedule PressureSchedule Pressure

• Original project was to take 4 Original project was to take 4 yearsyears

• Shorter schedule demanded by Shorter schedule demanded by King King

• Ship builders opted to extend Ship builders opted to extend small ship rather than start oversmall ship rather than start over

Gustav II Adolf

Page 6: 1 Architecture Business Cycle CSSE 477 Software Architecture Steve Chenoweth, Rose-Hulman Institute Monday, Sep 5, 2011 SA Ch 1

66

Changing RequirementsChanging Requirements

• King asked for larger size to King asked for larger size to accommodate more guns (Big war accommodate more guns (Big war with Poland, not always going so with Poland, not always going so well)well)

• Eventually asked for 2 decks of gunsEventually asked for 2 decks of guns

(The Polish-Swedish wars started in 1600, over whether Sigismund was the rightful king of Sweden. It began as an internal struggle in Sweden, which Sigismund lost, but he also was king of Poland!)

Sigismund

Page 7: 1 Architecture Business Cycle CSSE 477 Software Architecture Steve Chenoweth, Rose-Hulman Institute Monday, Sep 5, 2011 SA Ch 1

77

No Written SpecificationsNo Written Specifications

• Original ship was familiar to ship Original ship was familiar to ship buildersbuilders

• Scaling up was done without written Scaling up was done without written specificationsspecifications

Page 8: 1 Architecture Business Cycle CSSE 477 Software Architecture Steve Chenoweth, Rose-Hulman Institute Monday, Sep 5, 2011 SA Ch 1

88

No Written PlanNo Written Plan

• 3 "managers" worked without written 3 "managers" worked without written plansplans

• Shipwright died during projectShipwright died during project

• 400 people working in 5 different 400 people working in 5 different groups: largest project in Sweden at groups: largest project in Sweden at this timethis time

Page 9: 1 Architecture Business Cycle CSSE 477 Software Architecture Steve Chenoweth, Rose-Hulman Institute Monday, Sep 5, 2011 SA Ch 1

99

Missing ScienceMissing Science

• 17th century ship builders could only 17th century ship builders could only measure stability and heeling measure stability and heeling characteristics by trialcharacteristics by trial

• Center of gravity could not be Center of gravity could not be predicted accuratelypredicted accurately

Page 10: 1 Architecture Business Cycle CSSE 477 Software Architecture Steve Chenoweth, Rose-Hulman Institute Monday, Sep 5, 2011 SA Ch 1

1010

Cross-Section of VasaCross-Section of Vasa

Page 11: 1 Architecture Business Cycle CSSE 477 Software Architecture Steve Chenoweth, Rose-Hulman Institute Monday, Sep 5, 2011 SA Ch 1

1111

Failed Stability TestFailed Stability Test

• Lurch test conducted by 30 men Lurch test conducted by 30 men running back and forth on deckrunning back and forth on deck

• Test stopped when it became clear Test stopped when it became clear that ship would capsizethat ship would capsize

• Neither of the 2 remaining project Neither of the 2 remaining project managers attended the testmanagers attended the test

Page 12: 1 Architecture Business Cycle CSSE 477 Software Architecture Steve Chenoweth, Rose-Hulman Institute Monday, Sep 5, 2011 SA Ch 1

1212

Result - on Maiden Voyage :Result - on Maiden Voyage :

Page 13: 1 Architecture Business Cycle CSSE 477 Software Architecture Steve Chenoweth, Rose-Hulman Institute Monday, Sep 5, 2011 SA Ch 1

1313

StakeholdersStakeholders

• Developing Developing Organization Organization ManagementManagement

• MarketingMarketing

• End UserEnd User

• Maintainenace Maintainenace OrganizationOrganization

• CustomerCustomer

Page 14: 1 Architecture Business Cycle CSSE 477 Software Architecture Steve Chenoweth, Rose-Hulman Institute Monday, Sep 5, 2011 SA Ch 1

1414

Architecture Business CycleArchitecture Business Cycle

• StakeholdersStakeholders

• Developing Developing OrganizationOrganization

• Technical Technical EnvironmentEnvironment

• Architect's Architect's ExperienceExperience

Steve’s useful heuristic for “what it’s like” – It’s “technical leadership” :½ social activity, in the middle of everyone else, listening to & selling ideas½ creating great designs that lead to success

Page 15: 1 Architecture Business Cycle CSSE 477 Software Architecture Steve Chenoweth, Rose-Hulman Institute Monday, Sep 5, 2011 SA Ch 1

1515

Architecture Activities – Architecture Activities – §§ 1.21.2• Creating business caseCreating business case

• Understanding requirementsUnderstanding requirements

• Creating or selecting architectureCreating or selecting architecture

• Documenting and communicating Documenting and communicating architecturearchitecture

• Analyzing architectureAnalyzing architecture

• Implementing systemImplementing system

• Ensuring conformance of implementationEnsuring conformance of implementation

Page 16: 1 Architecture Business Cycle CSSE 477 Software Architecture Steve Chenoweth, Rose-Hulman Institute Monday, Sep 5, 2011 SA Ch 1

1616

Architecture Process Advice - Architecture Process Advice - §§ 1.3 (1/3)1.3 (1/3)

1.1. Architecture should be product of a Architecture should be product of a single architect or small group with single architect or small group with identified leaderidentified leader

University of Oregon’s TeachEngineering System Vision and Design team. From test.teachengineering.org/founding_partners.php .

Page 17: 1 Architecture Business Cycle CSSE 477 Software Architecture Steve Chenoweth, Rose-Hulman Institute Monday, Sep 5, 2011 SA Ch 1

1717

Architecture Process Advice - Architecture Process Advice - §§ 1.3 (1/3)1.3 (1/3)

2.2. Architect should have functional Architect should have functional requirements and a prioritized list requirements and a prioritized list of quality attributesof quality attributes

3.3. Architecture should be well-Architecture should be well-documented with at least one static documented with at least one static and one dynamic viewand one dynamic view

We’ll be doing this!

Page 18: 1 Architecture Business Cycle CSSE 477 Software Architecture Steve Chenoweth, Rose-Hulman Institute Monday, Sep 5, 2011 SA Ch 1

1818

Architecture Process Advice - Architecture Process Advice - §§ 1.3 (2/3)1.3 (2/3)

4.4. Architecture should be circulated to Architecture should be circulated to stakeholders, who are active in stakeholders, who are active in reviewreview

5.5. Architecture should be analyzed Architecture should be analyzed (quantitatively and qualitatively) (quantitatively and qualitatively) before it is too late.before it is too late.

In the building trades, an architect also consults with the clients and users: Curtis J. Moody, FAIA, Columbus, OH architect, reviewing building plans with school principal Monica Grant. From web site http://www.architecture week.com/cgi-bin/awimage? dir=2001/0718&article=culture_1-2.html&image= 11474_image_3.jpg.

Page 19: 1 Architecture Business Cycle CSSE 477 Software Architecture Steve Chenoweth, Rose-Hulman Institute Monday, Sep 5, 2011 SA Ch 1

1919

Architecture Process Advice - Architecture Process Advice - §§ 1.3 (3/3)1.3 (3/3)

6.6. System should be developed System should be developed incrementally from an initial incrementally from an initial skeleton that includes major skeleton that includes major communication pathscommunication paths

7.7. Architecture should result in a small Architecture should result in a small number of specific resource number of specific resource contention areascontention areas

We’ll continue doing this!

Page 20: 1 Architecture Business Cycle CSSE 477 Software Architecture Steve Chenoweth, Rose-Hulman Institute Monday, Sep 5, 2011 SA Ch 1

2020

"Good" Architecture Rules of "Good" Architecture Rules of Thumb - Thumb - §§ 1.3 (1/3) 1.3 (1/3)

1.1. Use information hiding to hide Use information hiding to hide computing infrastructurecomputing infrastructure

2.2. Each module should protect its secrets Each module should protect its secrets with a good interfacewith a good interface

3.3. Use well-known architecture tactics to Use well-known architecture tactics to achieve quality attributesachieve quality attributes

– E.g., for performance – Resource demand, E.g., for performance – Resource demand, management, or arbitration (see Friday)management, or arbitration (see Friday)

You did these!

Page 21: 1 Architecture Business Cycle CSSE 477 Software Architecture Steve Chenoweth, Rose-Hulman Institute Monday, Sep 5, 2011 SA Ch 1

2121

"Good" Architecture Rules of "Good" Architecture Rules of Thumb - Thumb - §§ 1.3 (2/3) 1.3 (2/3)

4.4. Minimize and isolate dependence Minimize and isolate dependence on a particular version of a on a particular version of a commercial product or tool.commercial product or tool.

5.5. Separate producer modules from Separate producer modules from consumer modules.consumer modules.

– MVC is a good example of that!MVC is a good example of that!

6.6. For parallel-processing, use well-For parallel-processing, use well-defined processes or tasks.defined processes or tasks.

Page 22: 1 Architecture Business Cycle CSSE 477 Software Architecture Steve Chenoweth, Rose-Hulman Institute Monday, Sep 5, 2011 SA Ch 1

2222

"Good" Architecture Rules of "Good" Architecture Rules of Thumb - Thumb - §§ 1.3 (3/3) 1.3 (3/3)

7.7. Assignment of tasks or processes to Assignment of tasks or processes to processors should be easily processors should be easily changeable (even at runtime)changeable (even at runtime)

8.8. Use a small number of simple Use a small number of simple interaction patterns interaction patterns