getting spammed for architecture arnon rotem-gal-oz biometrics line development manager rafael ltd....

Post on 28-Dec-2015

218 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Getting SPAMMED for architecture

Arnon Rotem-Gal-Oz

Biometrics Line Development Manager

Rafael LTD.

Haifa, Israel

arnon@rgoarchitects.com

Famous Last Words…

“It is a very humbling experience to make a multimillion-dollar mistake, but it is also very memorable….”

(Fred Brooks - “Mythical Man-Month” p.47)

We don’t want to get there

So, What is Software Architecture exactly?

Software architecture is the fundamental organization of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution

The architect doesn't talk, he acts.When this is done,the team says, "Amazing:we did it, all by ourselves!" (17)

The architect observes the worldbut trusts his inner vision.He allows things to come and go.His heart is open as the sky. (12)

Philippe Kruchten - http://www.bredemeyer.com/tao_by_Kruchten.htm

Explorer

Designer

Advocate

The role of the architect

Ron Jacobs

Yeah – but a better analogy is

At the end of the day it is the Architect who is ultimately

responsible for the quality of the system/product

OK, so how do we do that?

First, who are we working for?

The Usual Suspects

Customer End-User Project Manager Management Developers Maintainers Security Analysts

Project New comers Testers Customer’s IT group

Mapping Stakeholders

low Highlow

High

ConcernImportance(or Power)

Interest

Monitor(Minimum Effort)

Keep Informed

Keep Satisfied

ManageClosely

Based on Schekkerman - IEAD

Architecture Principles

Set the direction for the solution

Initial guidelines to consider for the solution

And there are always some constraints

Next, we have to think about the quality Attributes

Quality Attributes• Performance• Availability• Usability• Security

Maintainability Portability Reusability Testability

End User’s view

Developer’s view

Time To Market Cost and

Benefits Projected life

time Targeted Market Integration with

Legacy System Roll back

Schedule

BusinessCommunityview

A list of quality attributes exists inISO/IEC 9126-2001 Information Technology – Software Product Quality

Utility

Performance

Response

Under normal conditions - update of an entity in the persistent storage <0.5 Second

Latency

Under normal or stress conditions, critical alert generated by the system will be displayed in less than 1 seconds (for generation)

Data Loss

under all conditions, a message acknowledged by the system will not be lost

Availability

Hardware Issues

Under all conditions, when a server crash, the system will resume operation in less than 30 seconds

Usability

Compliance

The system should comply with maritime data standards (e.g. Mercator projection)

Operability

The system should handle user request without impeding the user's ability to continue controlling the system (e.g. initiate additional requests)

Security

Unauthorized users

under normal conditions and connectivity the system should alert an unauthorized login attempt (intrusion) within 1 minute

Adaptability

More Users

When additional users need access to the system, add new /more hardware (to support load) under 4 man weeks

Identify scenarios

and prioritize

them using Utility trees

Just remember that they actually look like this…

The secret to quality attribute analysis is the scenarios

Anatomy of a scenario

– Under normal operation, perform a database transaction

in under 100 milliseconds.

Context Stimulus

Response

Oh yeah – there’s also modeling and design…

RepositoryRepository

PCPC

UIEntityUIEntity

PCPC

PCPC

MapUIC+

MapUIC+

UICUIC

UICUIC

UIEntityUIEntity

UIEntityUIEntity

MAPMAP

BusIBUS

SomeService

IBUS

SomeService

MessageHandler

MessageHandler

Root U

ICR

oot U

IC

PCPC

MessageHandler

MessageHandler

MessageHandler

MessageHandler

UICUIC

CorrelatorCorrelator

Portal

sd Portal - Send Message

Portal Corrolator

ServiceMsg1

IBus MessageHandler MessageMapper

UIC Repository

ServiceMsg2

opt Needs new entity

loop All message handlers

1.0

1.1 Register

1.2 Send(ServiceMessage,Service)

2.0 message:=

2.1 handle(message)

2.2 entity:= Build(message)

2.3 insertEntity(entity)

2.4 RepositoryChanged

2.5 CorrelatedMessageRecieved

2.6 callback(cookie,EntitiesAffected)

Metacase –www.metacase.com

Pattern can save you the trouble of

reinventing the wheel

If you want the architecture to be effective it

has to be communicated

Two roads diverged in a yellow wood,And sorry I could not travel bothAnd be one traveler, long I stood

And looked down one as far as I couldTo where it bent in the undergrowth

(The road not taken, Robert Frost 1915)

When you present an architecture you should consider your

target audience

Compare this:id Serv ice View

UI

«Service»

COP

«Service»

Nav igation

«Service»

OwnSiteESB

«Service»

Alerts

With this

COP

Alerts

UI OwnSite

NavigationESB

Technology Mapping

v

Human Workflow

ECM DW OLTP

DALService Agents

Business RulesActivity

WorkflowAu

thor

izat

ion

Monitorin

gFaçade

Log &

Trace

Exception

Man

agement

Configuration

Au

then

tica

tion

Sign

ing

Rich UI Web UI

Logistics E-PublishFinance

K2

SQL 2005 SQL 2005

Generated C#

ILOG RulesC#

BizTalk 2004Tam

uz +

Win

200

3C

A U

nicenter

WCF

En

terprise Library

En

terprise Library

En

terprise Library

AzM

an

Sign

ing

Outlook + C# ASP.NET 2.0 on IIS 6.0

Documentum

WCF

SAP Logistics

Adobe Elements

SAP 4.6DFI

BizTalk 2004

Where are we at?

Architecture

Quality Attributes

Technology

Patterns & Anti-patterns

Principles

Community experience

Stakeholders

Architect

people

A “deliverable”

Produce

Key

Is an input

Constraints

OK then, so we are all set

The architecture has to be

Evaluated to make sure it is any good

Test Early

Total Risk ExposureRisk Exposure Reduction

TimeTime

Ris

kR

isk

Risk Reduction Period

Controlled risk management period

Total Risk Exposure

Sometimes we need to do more formal evaluations

ATAM flow – SEI - http://www.sei.cmu.edu/architecture/ata_method.html

Formal Evaluation Example LAAAM

• Assessment Matrix– Evaluate suitability of strategies against

scenariosValueCost

Strategies

Scenarios

Based on Jeromy Carriere

LAAAM – Example (1/2)

Strategy

Scenario Analysis Weight

A. Perform no rearchitecting. Maintain with minimal effort the existing ABC application architecture. Introduce no new dependencies on ABC components.

B. Incrementally wrap existing ABC application components in the model provided with .NET.

C. Completely port existing ABC applications to .NET.

D. Completely port existing ABC applications to J2EE, using existing enterprise frameworks.

1. A new application leverages the XYZ data store.

Value 1 Moderate Moderate-High

Moderate Moderate

Development Cost

1.5 High Low High High

Operations Cost

1 Low Low-Moderate

Low Low-Moderate

Assessment 3 6 3 2.5

Based on Jeromy Carriere

LAAAM – Example (2/2)

 Scenario Analysis Weight  A B C D

2. The XYZ application's presentation is customized by the user to determine layout and content.

Value 1 Low Moderate-High

High High

Development Cost

1.5 N/A Moderate Moderate-High

Moderate-High

Operations Cost

1 N/A Low-Moderate

Low Low-Moderate

Assessment 0 4.5 4.75 4.25

3. The peak transaction rate for the XYZ application increases by 10x (after scenario 2).

Value 1 Low Moderate-High

High High

Development Cost

1.5 High Low-Moderate

Moderate-High

High

Operations Cost

1 High Moderate Low Moderate

Assessment 0 4.75 4.75 3

Based on Jeromy Carriere

All we have to do now is to deploy the

architecture

StakeholdersPrinciplesAttributesModelingMappingEvaluationDeployment

It is “easy” in waterfall& incremental

Requirements

Architecture

Design

Code

Integration

Test

Requirements &

planning game

R,A,D,C,I,T (Time boxed)

R,A,D,C,I,T (Time boxed)

R,A,D,C,I,T (Time boxed)

R,A,D,C,I,T (Time boxed)

Final Test

Requirements

Architecture

Design, Code, Integrate, Tes

t

Design, Code, Integrate, Tes

t

Final

Integration

Final Test

Moving from Waterfall to Agilewaterfall

Incremental

Agile

based on Johanna Rothman

Building in small iterationscan be dangerous

Winchester Mystery House

Can you do Agile Architecture?

JEDUF vs. BDUF

Component A

Component B

Component C

Component D

Component F

Component H

Component I

Evolve the architecture

http://www.flickr.com/photos/hyperclouds/459716791/

Architect must implement?

StakeholdersPrinciplesAttributesModelingMappingEvaluationDeployment

top related