SDA Reuse Strategies Brent Carlson VP of Technology LogicLibrary, Inc. June 8, 2004.
-
Upload
haley-jarvis -
Category
Documents
-
view
212 -
download
0
Transcript of 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
AgendaAgenda
Software development asset (SDA) concepts
SDAs in context
Organizational and tool strategies in reuse
SDA ConceptsSDA Concepts
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, …
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
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
SDAs in ContextSDAs in Context
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
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
* http://msdn.microsoft.com/architecture/patterns/
Technical Context: .NETTechnical Context: .NET
Technical Context: J2EETechnical Context: J2EE
* http://java.sun.com
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
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?
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
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.
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
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.”
SDA Reuse Organization SDA Reuse Organization and Tool Strategiesand Tool Strategies
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
SDA Reuse LifecycleSDA Reuse Lifecycle
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
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
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
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
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)