+ All Categories
Home > Documents > 26 February Humpty Dumpty Presentations Software Architecture (cont)

26 February Humpty Dumpty Presentations Software Architecture (cont)

Date post: 12-Jan-2016
Category:
Upload: myra-lawrence
View: 213 times
Download: 0 times
Share this document with a friend
26
26 February Humpty Dumpty Presentations Software Architecture (cont)
Transcript
Page 1: 26 February Humpty Dumpty Presentations Software Architecture (cont)

26 February

Humpty DumptyPresentations

Software Architecture (cont)

Page 2: 26 February Humpty Dumpty Presentations Software Architecture (cont)

If Programmers Had to Build Planes

http://www.flixxy.com/if-programmers-had-to-build-planes.htm

Page 3: 26 February Humpty Dumpty Presentations Software Architecture (cont)

Humpty Dumpty

Considerations How far behind are the

other two parts? Need for testing with one-

of-a-kind hardware How closely related are the

parts? Don’t underestimate your

predecessor Use industry terminology Testing models

Suggestions Short checkpoints Inspections or reviews Tools, esp. testing Available software packages Common utilities Requirements review and

reprioritization Protecting teams Chief designer Formal vs. informal

channels

Page 4: 26 February Humpty Dumpty Presentations Software Architecture (cont)

Midterm Presentations:Purpose

You don’t understand something until you’ve taught it Clarification of your thought process and

understanding Sharpen your understanding of the

project Facilitate sharing

Learn from each other Practice presenting

Page 5: 26 February Humpty Dumpty Presentations Software Architecture (cont)

Midterm Presentations:Logistics March 4 and 6

Assignments now 10 minute presentations (excluding set

up) Copies of charts to be posted on

website Email me attachment or link

Full attendance is expected

Page 6: 26 February Humpty Dumpty Presentations Software Architecture (cont)

Presentations: The Basics

Speak loudly and clearly Stand up No chewing gum when speaking Speak, don’t read: you ARE the

experts Practice, practice, practice Set up and test demos and laptops

early – and again the day you present

Page 7: 26 February Humpty Dumpty Presentations Software Architecture (cont)

Presentations Hints

Cover all topics, but they don’t need equal time!

Focus on what’s special about your project

Don’t try to cover too much Keep it light (8 other presentations!) Give the audience something to look

at

Page 8: 26 February Humpty Dumpty Presentations Software Architecture (cont)

Death by PowerPoint

Google it and you can waste many hours

One that I like… http://www.slideshare.net/thecroaker/death-by-

powerpoint

Page 9: 26 February Humpty Dumpty Presentations Software Architecture (cont)

Presentations Grading

Content and style count Single grade for group Everyone does NOT need to

present

Page 10: 26 February Humpty Dumpty Presentations Software Architecture (cont)

Presentation Content Motivation

Introduction to the area and project Key domain problems to be addressed

“Use Cases” Who are the users What do they need to do

Design System design and further detail as needed Key technical problems to be addressed Technologies being used (and why)

Demo: what you present to your customer this week Any interesting “why”s

Page 11: 26 February Humpty Dumpty Presentations Software Architecture (cont)

Motivation

Tell the class about the problem Information about the group Similar websites or projects Things that you are building on How things are done today What are the problems being faced Why is the project being done

Page 12: 26 February Humpty Dumpty Presentations Software Architecture (cont)

Design

The first picture that you would draw for a new team member

Sharing with other teams Technologies Major problems (solved or open)

Page 13: 26 February Humpty Dumpty Presentations Software Architecture (cont)

Examples of Architecture Pictures

Game Engine

Sound

File I/O

Controller I/O

VisualInterface

Omega

CONTROL

Login

Monster

Combat

Breed

VerifyUser

Login

MODEL VIEW

Monster

Page 14: 26 February Humpty Dumpty Presentations Software Architecture (cont)

SOME WELL-KNOWN ARCHITECTURES

Page 15: 26 February Humpty Dumpty Presentations Software Architecture (cont)

The Architectures Model-View-Controller Data flow systems

Pipes and filters Batch sequential

Independent components Client-server Parallel communicating processes Event systems

Virtual machines Interpreters Rule-based systems

Repositories Databases Hypertext systems

Layered architectures

Page 16: 26 February Humpty Dumpty Presentations Software Architecture (cont)

Independent Components Components operating in parallel and communicating

occasionally Three types

Client-server Browser-web server most familiar example Separate systems with narrow interface Sometimes expanded to three tiers (why?) Façade pattern (single unified interface)

Parallel communicating processes Several processes executing at the same time Typically modeled with sequence diagrams Observer pattern (one-to-many dependencies)

Event systems Set of components waiting for input Example: word processor waiting for user input State transition diagrams State pattern (alter behavior depending on state)

Page 17: 26 February Humpty Dumpty Presentations Software Architecture (cont)

Parallel Communicating Processes

Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Customer:customer n

withdraw

Customer:customer n+1

Session:session k

Session:session m

deposit

create

Account:customer n+1 saving

Account:customer nchecking

create retrieve

retrieve

3 types of processes, 2 instances of each

Duration of process

processes

actions

sequence diagram

Page 18: 26 February Humpty Dumpty Presentations Software Architecture (cont)

Observer Design Pattern

Gamma et al

Sourcenotify()

Observerupdate()

ConcreteSubjectstate

ConcreteObserverobserverState

update()

Client of thissystem

1

2

3

1..nRequest others be notified

Notify all observers

Determines if change needed

Single source of data with a Single source of data with a number of clients that need to number of clients that need to be updatedbe updated

Page 19: 26 February Humpty Dumpty Presentations Software Architecture (cont)

Event Systems and State Transition Diagrams

Set of components waiting for input

Page 20: 26 February Humpty Dumpty Presentations Software Architecture (cont)

Virtual machines

Treats an application as a program written in a special language

Payoff is that the interpreter code is the basis for multiple applications

Two types Interpreters Rule-based systems

Page 21: 26 February Humpty Dumpty Presentations Software Architecture (cont)

Repository

A system built around data Two types

Databases Hypertext systems

Page 22: 26 February Humpty Dumpty Presentations Software Architecture (cont)

A Typical Repository System

Database

DBMS

GUI

Analysisprocess

1

Analysisprocess

n…...…...

Control

Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Page 23: 26 February Humpty Dumpty Presentations Software Architecture (cont)

Iterator pattern

void setToFirst(); points to first element

void increment(); causes the iterator to

point to its next element

C getcurrentElement(); return the

element pointed to by the iterator

boolean isDone(); true if all elements

processed

Page 24: 26 February Humpty Dumpty Presentations Software Architecture (cont)

Hypertext: Basis of the Web

Motivated by Vannevar Bush in 1945 “As We May Think” (Atlantic Monthly) Theoretical machine, "memex," to

enhance human memory by allowing the user to store and retrieve documents linked by associations

Invented by Ted Nelson in the 1960s Popularized with HTML (Tim Berners-

Lee)

Page 25: 26 February Humpty Dumpty Presentations Software Architecture (cont)

Ted Nelson "If computers are the wave of the

future, displays are the surfboards." Xanadu: 1974

"give you a screen in your home from which you can see into the world's hypertext libraries... offer high-performance computer graphics and text services at a price anyone can afford... allow you to send and receive written messages... [and] make you a part of a new electronic literature and art, where you can get all your questions answered...“

Computer Lib/Dream Machines

Page 26: 26 February Humpty Dumpty Presentations Software Architecture (cont)

Layered Architecture

Role-playing game layer

Characters LayoutRolePlayingGame

EncounterCharacters

EncounterEnvironment

Encounter Game

Application layer

3D engine layer

«uses»

«uses»

Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Coherent collection of software artifacts, typically a package of classes


Recommended