25
SDA Reuse Strategies SDA Reuse Strategies Brent Carlson Brent Carlson VP of Technology LogicLibrary, Inc. www.logiclibrary.com June 8, 2004

SDA Reuse Strategies Brent Carlson VP of Technology LogicLibrary, Inc. June 8, 2004

Embed Size (px)

Citation preview

Page 1: SDA Reuse Strategies Brent Carlson VP of Technology LogicLibrary, Inc.  June 8, 2004

SDA Reuse StrategiesSDA Reuse Strategies

Brent CarlsonBrent CarlsonVP of Technology

LogicLibrary, Inc.

www.logiclibrary.com

June 8, 2004

Page 2: SDA Reuse Strategies Brent Carlson VP of Technology LogicLibrary, Inc.  June 8, 2004

AgendaAgenda

Software development asset (SDA) concepts

SDAs in context

Organizational and tool strategies in reuse

Page 3: SDA Reuse Strategies Brent Carlson VP of Technology LogicLibrary, Inc.  June 8, 2004

SDA ConceptsSDA Concepts

Page 4: SDA Reuse Strategies Brent Carlson VP of Technology LogicLibrary, Inc.  June 8, 2004

What is an SDA?What is an SDA?

An SDA is “something of value to an IT organization,” including:– Knowledge assets

ArchitecturesBest practices and processesDesign patterns…

– Executable assets

Web servicesData viewsComponentsApplications…

SDAs are composed of metadata, such as:– Artifacts: work products, such as code, schemas, models, executable modules,

…– Classifiers: searchable and reportable values such as keywords, development

effort, owner, language, …– Relationships to other assets: dependencies, prerequisites,

other asset versions, …

Page 5: SDA Reuse Strategies Brent Carlson VP of Technology LogicLibrary, Inc.  June 8, 2004

SDA Development LifecycleSDA Development Lifecycle

Analysis + Design Coding Testing + QA Deployment

Use Cases

Requirements

TechnicalModels

SCM Systems

Test Cases

Business Process Models

Documentation

Best Practices

Design Patterns

Tracking System/Repository

Documentation and TrainingMaterials

Page 6: SDA Reuse Strategies Brent Carlson VP of Technology LogicLibrary, Inc.  June 8, 2004

CurrencyExchange

convert(valueToConvert : CurrencyValue, targetCurrency : String, targetDate : Date, overridingStrategy : ConversionStrategy) : CurrencyValuegetCurrencyCodes() : ListsetExchangeRate(exchangeRate : ExchangeRate, fromDate : Date, toDate : Date)getExchangeRates(sourceCurrencyCode : String, targetCurrencyCode : String) : ListclearExchangeRate(sourceCurrencyCode : String, targetCurrencyCode : String, dateToClear : Date) : ExchangeRateconfigureConversionStrategy(strategy : ConversionStrategy)

SessionBean(from ejb)

Value Object Types

CurrencyValue

currencyCode : Stringvalue : BigDecimal

(from Value Object Types)

ExchangeRate

sourceCurrencyCode : StringtargetCurrencyCode : StringexchangeRateValue : BigDecimal

(from Value Object Types)

DateRangeConflictException

ConversionStrategy

convert(valueToConvert : CurrencyValue, targetCurrency : String, targetDate : Date) : CurrencyValue

Exception(from lang)

IComponent

An Example SDA: CurrencyExchangeAn Example SDA: CurrencyExchange

Page 7: SDA Reuse Strategies Brent Carlson VP of Technology LogicLibrary, Inc.  June 8, 2004

SDAs in ContextSDAs in Context

Page 8: SDA Reuse Strategies Brent Carlson VP of Technology LogicLibrary, Inc.  June 8, 2004

SDA ContextsSDA Contexts

In order to be fully understood and managed, SDAs need to be placed into the following contexts:– Application architecture context– Technical architecture context– Business architecture context– Deployment architecture context

The first three contexts directly affect the software development lifecycle

Page 9: SDA Reuse Strategies Brent Carlson VP of Technology LogicLibrary, Inc.  June 8, 2004

General-purpose utilities, APIs, Abstract Data Types, System Service Components

“Domain-Independent”

Layer

Microprocessor Business

Components

FinancialBusiness

Components

InsuranceBusiness

Components

“Domain-Dependent”

Layer

Intel App#1

Components

Intel App#2

Components

Citicorp App#1

Components

Citicorp App#2

Components

Allstate App#1

Components

Allstate App#2

Components

“Application-Specific”

Layer

100%

up to 85%

15-20%

0%

Application

Application Context: Application Context: Three Classes of SDAsThree Classes of SDAs

Amount ofapplication

Page 10: SDA Reuse Strategies Brent Carlson VP of Technology LogicLibrary, Inc.  June 8, 2004

* http://msdn.microsoft.com/architecture/patterns/

Technical Context: .NETTechnical Context: .NET

Page 11: SDA Reuse Strategies Brent Carlson VP of Technology LogicLibrary, Inc.  June 8, 2004

Technical Context: J2EETechnical Context: J2EE

* http://java.sun.com

Page 12: SDA Reuse Strategies Brent Carlson VP of Technology LogicLibrary, Inc.  June 8, 2004

InsuranceBusiness

Components

General-purpose utilities, APIs, Abstract Data Types, System Service Components

I.T. Business

Components

FinancialBusiness

Components

App#1 App#2 App#1 App#2 App#1 App#2

Mapping SDAs to the .NET Technical ContextMapping SDAs to the .NET Technical Context

Page 13: SDA Reuse Strategies Brent Carlson VP of Technology LogicLibrary, Inc.  June 8, 2004

Business ContextBusiness Context Technical and application contexts are only part of

the story– It’s just as important to align your reusable asset

development work with your company’s business context

What is a business context?– The overarching business requirements driving

development projectsNew component/service development, application

integration, new/reworked application development

– In other words:What business processes really matter to our

company?And what business functions are demanded by

those business processes?

Page 14: SDA Reuse Strategies Brent Carlson VP of Technology LogicLibrary, Inc.  June 8, 2004

Our SDA’s Business Context: e-CommerceOur SDA’s Business Context: e-Commerce

Analytical System<<comp spec>>

Reporting

Prediction

Import

Quote

Shipping System<<comp spec>>

ShippingMethod Management

ShippingStatus

ShippingRequest

Order System<<comp spec>>

OrderMaintanance

SalesTaxCalculation

SalesTaxCalculator<<comp spec>>

Conversion

Currency Exchange System

<<comp spec>>

CurrencyMaintanance

Financial Accounting

<<comp spec>>

FinancialReportingSales Transaction

Payments

CreditCard Handler<<comp spec>>

Verification

Page 15: SDA Reuse Strategies Brent Carlson VP of Technology LogicLibrary, Inc.  June 8, 2004

UML as a Means to Express UML as a Means to Express Business ContextBusiness Context

Consider using UML to document your business context

Primary UML construct is class diagram laying out coarse-grained reference components/services

Other UML constructs to consider:– Use cases

Establish initial requirements for business function

Actors

Preconditions

Functional scenario / use case steps– Activity diagrams

Describe detailed process or subprocess flow underlying a use case

Specific activities can be mapped to functional capabilities to be implemented as Web services, components, etc.

Page 16: SDA Reuse Strategies Brent Carlson VP of Technology LogicLibrary, Inc.  June 8, 2004

Emerging Business Process Standards:Emerging Business Process Standards:A Business Context SourceA Business Context Source

Significant industry movement away from EDI towards standardized, XML-based business process and messaging definitions– Web services and service-oriented architectures (SOAs)

are accelerating this trend

Examples of business process standards:– RosettaNet: supply chain

– ACORD: insurance

– IFX: financial services

– ebXML: electronic business/trading

Page 17: SDA Reuse Strategies Brent Carlson VP of Technology LogicLibrary, Inc.  June 8, 2004

Emerging Business Process StandardsEmerging Business Process Standards

Advantages:

– Can learn from industry best practices and experienceXML-based message setsStandard data dictionariesReference business processes

– Packaged applications are adopting standards as they move towards Web service-oriented APIs

Besides, your business partners are probably already doing something here and will take you with them – whether you like it or not!

– Intel: “…13 percent of all our machine-to-machine, B2B transactions today are happening through the (RosettaNet) standard – roughly 30,000 transactions a month.”

Page 18: SDA Reuse Strategies Brent Carlson VP of Technology LogicLibrary, Inc.  June 8, 2004

SDA Reuse Organization SDA Reuse Organization and Tool Strategiesand Tool Strategies

Page 19: SDA Reuse Strategies Brent Carlson VP of Technology LogicLibrary, Inc.  June 8, 2004

SDA Reuse Organizational RolesSDA Reuse Organizational Roles

SDA reuse is supported by production/ distribution/consumption roles

– Production: Identification and preparation of existing and newly-defined candidate reusable SDAs

– Distribution: Publication of those SDAs into SDA library

– Consumption: Use of SDA library to discover appropriate reusable SDAs on a per-project basis

Page 20: SDA Reuse Strategies Brent Carlson VP of Technology LogicLibrary, Inc.  June 8, 2004

SDA Reuse LifecycleSDA Reuse Lifecycle

Page 21: SDA Reuse Strategies Brent Carlson VP of Technology LogicLibrary, Inc.  June 8, 2004

SDA Production Strategies SDA Production Strategies

Consider creating a virtual/matrixed SDA architectural review team– Team members:

Team leader dedicated to SDA reuse programMatrixed team members drawn from project teams

Lead designer/developer skills required10%-20% job responsibility

– Team objectives/responsibilities:Identify candidate reusable SDAs – “active discovery”Review proposed reusable SDAs – asset hardening

Adherence to architectureNecessary functionality implemented and supportedMandatory artifacts provided

Publish approved SDAs into SDA library for consumptionRecommend future resource allocation for key reusable SDAs

Expanded funding for key SDAsTransfer of key SDAs to common SDA support group

Page 22: SDA Reuse Strategies Brent Carlson VP of Technology LogicLibrary, Inc.  June 8, 2004

SDA Distribution StrategiesSDA Distribution Strategies

Distribution scalability typically requires use of an SDA library to distribute assets

– Asset metadata assembly and validationStandardized metadata definitionPer-asset-type metadata validation and enforcement

– Asset publicationNewly defined SDAsUpdated SDAsNew versions of existing SDAs

Page 23: SDA Reuse Strategies Brent Carlson VP of Technology LogicLibrary, Inc.  June 8, 2004

SDA Consumption StrategiesSDA Consumption Strategies

For best SDA traceability/manageability, consider named user consumption

Project-scoped interactions/tracking SDA acquisitionConfigurable approval signoffs based on organization’s process

Project and asset-specific collaborationDiscussion forumsPersistent searchesAsset notifications

In some situations, anonymous consumption can sufficeSuitable for lightweight/casual usersRead-only interaction with libraryRestricted tracking and collaboration activities

Page 24: SDA Reuse Strategies Brent Carlson VP of Technology LogicLibrary, Inc.  June 8, 2004

SummarySummary

To be effective, SDA reuse strategies need to: Define technical and business contexts

– Microsoft/J2EE have established two very useful technical contexts

– Only your business analysts can define your business context for you – listen to them!

– Consider using UML as an efficient means of communication

Align existing application inventory against prioritized business processes– Don’t “boil the ocean.” Pick the key systems that support

business needs as defined by prioritized business processes.

Manage the SDA production/distribution/consumption process lifecycle– Tools can help with delivering quality assets to consumers

and tracking where those assets are used

Page 25: SDA Reuse Strategies Brent Carlson VP of Technology LogicLibrary, Inc.  June 8, 2004

About the SpeakerAbout the Speaker

Vice President of Technology and Co-founder, LogicLibrary, Inc.

Named to InfoWorld’’s list of “CTOs to Watch in 2004”

17-year veteran of IBM– Lead architect on WebSphere Business Components Project– Held numerous leadership roles on the “IBM SanFrancisco

Project”

Co-author of two books:– Framework Process Patterns: Lessons Learned Developing

Application Frameworks (with James Carey)– SanFrancisco Design Patterns: Blueprints for Business

Software (with James Carey and Tim Graser)