24
Lecture 4 - Thursday, September 23 2010. Material and some slide content from: - Emerson Murphy-Hill - Software Architecture: Foundations, Theory, and Practice - Essential Software Architecture Basics of SW Architecture Reid Holmes

Basics of SW Architecture - University of Waterloo · Lecture 4 - Thursday, September 23 2010. Material and some slide content from: - Emerson Murphy-Hill - Software Architecture:

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Basics of SW Architecture - University of Waterloo · Lecture 4 - Thursday, September 23 2010. Material and some slide content from: - Emerson Murphy-Hill - Software Architecture:

Lecture 4 - Thursday, September 23 2010.

Material and some slide content from:- Emerson Murphy-Hill- Software Architecture: Foundations, Theory, and Practice- Essential Software Architecture

Basics of SW ArchitectureReid Holmes

Page 2: Basics of SW Architecture - University of Waterloo · Lecture 4 - Thursday, September 23 2010. Material and some slide content from: - Emerson Murphy-Hill - Software Architecture:

REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE

Proposal Presentations‣ Finish the last two presentations.

‣ Select the most interesting idea.

‣ Select the most useful proposal.

Page 3: Basics of SW Architecture - University of Waterloo · Lecture 4 - Thursday, September 23 2010. Material and some slide content from: - Emerson Murphy-Hill - Software Architecture:

Event  Chimp  for  Facebook

Page 4: Basics of SW Architecture - University of Waterloo · Lecture 4 - Thursday, September 23 2010. Material and some slide content from: - Emerson Murphy-Hill - Software Architecture:

Queue  Up  Your  Event  Salutes

Page 5: Basics of SW Architecture - University of Waterloo · Lecture 4 - Thursday, September 23 2010. Material and some slide content from: - Emerson Murphy-Hill - Software Architecture:

GWT  +  Facebook

• U:liza:on  of  the  Facebook  API  for  birthdays,  etc.•  Keeps  you  in  touch  with  friends          with  very  personal  messages          defined  in  advance• Custom  codes  within  message• Hosted  on  Facebook  when  ready

Page 6: Basics of SW Architecture - University of Waterloo · Lecture 4 - Thursday, September 23 2010. Material and some slide content from: - Emerson Murphy-Hill - Software Architecture:

Event Manager

Calvin HungTaufiq Husain

Shuo TanJames Zhao

Page 7: Basics of SW Architecture - University of Waterloo · Lecture 4 - Thursday, September 23 2010. Material and some slide content from: - Emerson Murphy-Hill - Software Architecture:

What is it?

Page 8: Basics of SW Architecture - University of Waterloo · Lecture 4 - Thursday, September 23 2010. Material and some slide content from: - Emerson Murphy-Hill - Software Architecture:

What does it do?

• Automatic phone management oPrevents phone ringing in class/meetingsoAvoid miss calls due to silent phone rings

• Stores daily activities and events onto a calendar application

• Synchronize with existing calendarsoCentralized calendar with all events

Page 9: Basics of SW Architecture - University of Waterloo · Lecture 4 - Thursday, September 23 2010. Material and some slide content from: - Emerson Murphy-Hill - Software Architecture:

The End!

Any Questions?

Page 10: Basics of SW Architecture - University of Waterloo · Lecture 4 - Thursday, September 23 2010. Material and some slide content from: - Emerson Murphy-Hill - Software Architecture:

REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE

Proposal Voting‣ Huskies

‣ RendezVous

‣ Team Systems

‣ TriForce

‣ LTZ

‣ R4D

‣ Legendary Apps

‣ TimmyUs

‣ Event Chimp

‣ My Event Organizer

Score board

Return to location

Pre-enrolment system

Course planner

Campus / building map

Booking restaurant tables

Advisor appointment system

Who’s treatin’ today?

Don’t miss that special message

Coordinate phone with calendar

Page 11: Basics of SW Architecture - University of Waterloo · Lecture 4 - Thursday, September 23 2010. Material and some slide content from: - Emerson Murphy-Hill - Software Architecture:

REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE

So what?‣ What makes building systems so hard?

‣ Young field.

‣ High user expectations.

‣ Software cannot execute independently.

‣ Incidental difficulties [Brooks MMM].

‣ Problems that can be overcome. (e.g., ...)

‣ Essential difficulties [Brooks MMM].

‣ Those problems that cannot be easily overcome.

[TAILOR ET AL.]

Page 12: Basics of SW Architecture - University of Waterloo · Lecture 4 - Thursday, September 23 2010. Material and some slide content from: - Emerson Murphy-Hill - Software Architecture:

REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE

Essential Difficulties‣ Abstraction alone cannot help.

‣ Complexity

‣ ?

‣ Conformity

‣ System is dependent on its environment.

‣ Changeability

‣ ?

‣ Intangibility

‣ Not constrained by physical laws.

[TAILOR ET AL.]

Page 13: Basics of SW Architecture - University of Waterloo · Lecture 4 - Thursday, September 23 2010. Material and some slide content from: - Emerson Murphy-Hill - Software Architecture:

REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE

Attacks on Complexity‣ High-level languages.

‣ Development tools & environments.

‣ Component-based reuse.

‣ Development strategies.

‣ Incremental, evolutionary, spiral models.

‣ Emphasis on design.

‣ Design-centric approach taken from outset.

[TAILOR ET AL.]

Page 14: Basics of SW Architecture - University of Waterloo · Lecture 4 - Thursday, September 23 2010. Material and some slide content from: - Emerson Murphy-Hill - Software Architecture:

REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE

Architecture Analogies‣ We live in them.

‣ We know (approximately) how they are built.

‣ Requirements.

‣ Blueprints (design).

‣ Construction (implementation).

‣ Use in practice.

[TAILOR ET AL.]

Page 15: Basics of SW Architecture - University of Waterloo · Lecture 4 - Thursday, September 23 2010. Material and some slide content from: - Emerson Murphy-Hill - Software Architecture:

REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE

The architect‣ Distinctive role.

‣ Broadly trained.

‣ Requirements, design, implementation, & use.

‣ Has a keen sense of aesthetics.

‣ Strong understanding of the domain.

‣ What are these for buildings?

‣ What are these for software?

[TAILOR ET AL.]

Page 16: Basics of SW Architecture - University of Waterloo · Lecture 4 - Thursday, September 23 2010. Material and some slide content from: - Emerson Murphy-Hill - Software Architecture:

REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE

The architect

‣ How is building architecture different from software architecture?

‣ What common benefits can software gain from an architect that a building gets from its architect?

[TAILOR ET AL.]

Page 17: Basics of SW Architecture - University of Waterloo · Lecture 4 - Thursday, September 23 2010. Material and some slide content from: - Emerson Murphy-Hill - Software Architecture:

REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE

What is SW architecture?‣ Definition:

‣ Blueprint for construction and evolution.

‣ Encompasses:‣ Structure‣ Behaviour‣ Interaction‣ Non-functional properties

“The set of principal design decisions about

the system”

Page 18: Basics of SW Architecture - University of Waterloo · Lecture 4 - Thursday, September 23 2010. Material and some slide content from: - Emerson Murphy-Hill - Software Architecture:

REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE

Prescriptive vs descriptive‣ Prescriptive architecture dictates how the system

will be built a priori.

‣ (as-conceived)

‣ Descriptive architecture captures how the system was actually built after the fact.

‣ (as-implemented)

Page 19: Basics of SW Architecture - University of Waterloo · Lecture 4 - Thursday, September 23 2010. Material and some slide content from: - Emerson Murphy-Hill - Software Architecture:

REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE

Architectural degradation‣ Drift

‣ ?

‣ Erosion

‣ ?

‣ How can this happen?

Page 20: Basics of SW Architecture - University of Waterloo · Lecture 4 - Thursday, September 23 2010. Material and some slide content from: - Emerson Murphy-Hill - Software Architecture:

REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE

Architectural recovery‣ [ICSE 1999: Bowman, Holt, and Brewster]

‣ Conceptual architecture

‣ How developers think about the system.

‣ Focuses on meaningful relationships.

‣ Concrete architecture

‣ How the system was actually built.

‣ Necessary: the devil is in the details.

Page 21: Basics of SW Architecture - University of Waterloo · Lecture 4 - Thursday, September 23 2010. Material and some slide content from: - Emerson Murphy-Hill - Software Architecture:

REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE

Components‣ Elements that encapsulate processing and data at

an architectural level.

‣ Definition:

‣ Architectural entity that:

‣ encapsulates a subset of functionality.

‣ restricts access via explicit interface.

‣ has explicit environmental dependencies.

Page 22: Basics of SW Architecture - University of Waterloo · Lecture 4 - Thursday, September 23 2010. Material and some slide content from: - Emerson Murphy-Hill - Software Architecture:

REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE

Connectors‣ Definition:

‣ An architectural entity tasked with effecting and regulating interactions between components.

‣ Connectors are often more challenging than components in large heterogenous systems.

‣ Often consists of method calls, but be much more.

‣ Examples?

‣ Often provide application-independent interaction mechanisms.

Page 23: Basics of SW Architecture - University of Waterloo · Lecture 4 - Thursday, September 23 2010. Material and some slide content from: - Emerson Murphy-Hill - Software Architecture:

REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE

Topologies‣ Bind components and connectors together in a

specific way.

‣ Definition:

‣ An architectural configuration, or topology, is a set of specific associations between the components and the connectors of the system’s architecture.

‣ Differentiates a bag of components and connectors from an implementable system.

Page 24: Basics of SW Architecture - University of Waterloo · Lecture 4 - Thursday, September 23 2010. Material and some slide content from: - Emerson Murphy-Hill - Software Architecture:

REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE

Architectural styles‣ Some design choices are better than others.

‣ Experience can guide us towards beneficial sets of choices (patterns) that have positive properties.

‣ Such as?

‣ An architectural style is a named collection of architectural design decisions that:

‣ Are applicable to a given context.

‣ Constrain design decisions.

‣ Elicit beneficial qualities in resulting systems.