Download - Synergy Sales Software Reuse With Cbd
®
IBM Software Group
© 2008 IBM Corporation
Best Practices for Component-based Asset ReuseWithSynergy and Change
IBM Software Group | Rational software
Why Software Reuse?
How is Software Reuse achieved
with Component-based Development?
Where do Synergy and Change help?
What are the Best Practices and
Patterns for CBD? (with customer
examples)
Conclusion and Q&A
Agenda
IBM Software Group | Rational software
Software Reuse - background• Reuse yields software Economies of Scale
• Goal is to increase the productivity, quality, and time-to-market in software development thanks to the deployment of both standard componentry and production automation
• Concept of Reuse is not new – approaches to achieving it keep evolving
IBM Software Group | Rational software
Source: Software Architecture in Practice – Len Bass, Paul Clements, Rick Kazman
Nu
mb
er
of
mo
bil
e p
ho
ne
mo
de
ls
time
0
5
10
15
20
25
30
35
Standard Development PracticesReusability driven Engineering
Nokia is able to produce 25-35
phone models per year
(instead of 4-6) because of
Reusability Engineering practices
IBM Software Group | Rational software
400%
200%
100%
Motorola observed 400% productivity improvements in a family of one-way
pagers
Motorola CBSE sphere
Source: Software Architecture in Practice – Len Bass, Paul Clements, Rick Kazman
IBM Software Group | Rational software
Reuse benefits in action . . . contd.
The US National Reconnaissance Office required 10% less development resources and reported 90% fewer defects with a family of Satellite Ground Control Systems
HP reported a time-to-market reduction by a factor of 7 and a productivity increase of a factor of 6 in a family of printers
Cummins - Reduced the time it takes to produce software for a Diesel engine from 12 months to about 2 weeks
IBM Software Group | Rational software
Understanding Reusability
IBM Software Group | Rational software
The evolution of Reuse: Component Based Development?
Component Based Development (CBD) provides a more powerful and easier-to-use level of reuse than earlier approaches
Began formally in 1968; became mainstream in the 1980s
Lets you manage complexity in a versatile fashion
Benefits are enormous, if done right: Lower cost
The components start to become more valuable over time
Agility in practice and responsiveness
Quality - risk mitigation, trust
Reduced time-to-market (reduced testing times, faster implementation, distributed development, etc)
Higher ROI through shorter delivery cycle times
More reliable software
Reduced maintenance costs
Guaranteed QOS
IBM Software Group | Rational software
Component-based Development scope Simplification
Removing one or more steps from an unnecessarily complicated process, or reducing unnecessary variety in the process.
Integration Joining two or more previously unconnected or uncoordinated processes into
a larger coordinated process
Transformation Creating a radically new process
Telelogic Synergy and Change can help you meet any of the above initiatives
IBM Software Group | Rational software
How does CBD relate to SOA?
Services: Intelligent assemblies of components hierarchies
Component Reuse
73% of CIOs see SOA as a business strategy for greater agility
47% use SOA for “strategic business transformation”
SOA-based applications will double in 2 years – how do you control Business Risk?
Source: IDC's Software Developer Network Survey, 2007
IBM Software Group | Rational software
CBD Challenges
Balancing long-term reference architecture needs vs short-term development progress
Managing system evolution - frequency and Impact : Requirements, Lifecycles, Regulations, Technologies, Tools, Languages and Methodologies
Arriving at Component Granularity for system[s] under development
Managing Versions, Upgrades, Configurations, Platforms, and Dependencies
Balancing Testing and Quality Assurance with complex Release and Maintenance cycles
Modeling real-world scenarios through the inherent abstract nature of domain
Designing for replacing proprietary components with Standard ones
Managing Organizational impediments – design-centered, economic and cultural
"Reusing other people's code would prove that I don't care about my work. I would no more reuse code than Ernest Hemingway would use other writer’s paragraphs”
Software Engineer, Apple Corp
IBM Software Group | Rational software
Telelogic Synergy – Pattern-based Configuration Management
Out of the box and customizable CM workflows Generalize best development practices
across the organization
Task Based CM Configuration consistency
Project understanding and visibility
Status reports and audits
Roll-back and re-work
Fully integrated with Telelogic Change Change Request Based CM
Insulated Development
Collaborative Development
Integration Testing System Testing
assigned or completed tasks for OWNER for release RELEASE
all completed tasks for release RELEASE
System Testing Baseline
Latest Baseline
Other Purposes are available
all system testing tasks for release RELEASE
Integration Testing Baseline
all completed tasks for release RELEASE for collaborative projects
IBM Software Group | Rational software
Leading Imaging and Printing Technology Conglomerate - Oce
Business ChallengeBusiness Challenge
Organizational transformation
Needed to evolve CBD approach and methodology in order to optimize cost and time-to-market capabilities.
Business Partner communication
Customer SuccessCustomer Success
Enhanced team communication and collaboration
Master Component Repository
Standard, automated patterns for linking partner ecosystem
More responsive organization
“Using Telelogic Synergy and Change,
implementing our vision of the software
reuse paradigm was much faster even
with very limited resources.”
Accelerated delivery of products
Reengineering Software Reuse and Componentization with Telelogic Synergy
Lower Total Cost of Ownership
Reduced risk of rework and project delays
IBM Software Group | Rational software
Synergy: Process definitions
14
IBM Software Group | Rational software
E.g. Built-in Processes and creating your own
See the URL for the manually created diagram.
Select purposes for the release.
Select which process rule should be used for the available purposes.
Note: You can have multiple process rules for each purpose.
15
IBM Software Group | Rational software
Telelogic Synergy - Effective CBD through SCCM support
Controlling exactly what component is published where
Finding all consumers of a given component
Customization of source components and integrating these changes into source component releases
Identification of published vs. internal components
Establishing Reuse mechanisms
Monitoring feature interaction and testing prior to production build
Managing the process of component sharing
IBM Software Group | Rational software
Component-based Patterns supportStability
Large number of consumers
SpeedCollaborative WorkLimited number of
consumersSynergy: Process Tailoring trainingDetailed Presentation available on the sales cornerBusiness Focused IT Focused
Requirements
Design
Develop
Test
Implement
DefineRequirements
LegacyAssets
ImplementComponents
Simulate
Build/ReviseApplication Components
Define UMLProcessModel
DefineBus. Process
Model
TestComponents
BPEL
BPMN XMI
Activity Diagrams
Classes,Shells,& Code
Reverse Engineer
IntegrationScripts
Compliance
RegressionScripts
Primary: Controlled Update
Primary: Incremental Update from published
baselines
Primary: Incremental Update
Variation: Incremental Update with active
development of subcomponents
IBM Software Group | Rational software
Example CBD Best Practices at customer sites
A large application composed of many components is developed iteratively and rapidly with all components on the same release cycle.
A large application integrating components having their own release cycle, and having dependencies with other evolving components.
Products development projects share components, each project may have the need to modify the components they consume.
A very large project divided in sub-projects that can impact any component of the software application and demonstrates management of parallel development streams and their continuous integration.
IBM Software Group | Rational software
Change Management and CBD
Enables breakdown of more complex work into smaller units of work and more control over the organizations development work flow.
A Change request is related to an application
The Change request can require modifying several components.
Each component can be maintained by a different team in a different location.
=> Use of Child CRs to control the change process at the component level
Synergy allows to control which CRs belong to a specific Build
CR 225
Parent
modifiable
in Application modifiable
in component 1
modifiable
in component 2
CR 226
Child
CR 227
Child
Location 2
Location 1
IBM Software Group | Rational software
Summary: How Synergy lets you meet CBD challenges
Best Practices for Developing Components and Software Reuse
Native support for a layered architectural approach to design and development thereby promoting true business alignment
A good architectural approach coupled with a promotional model for intra- and inter-component testing,
Metadata to identify characteristics of components as well as dependencies and relationships, including those with associated non-source artifacts
IBM Software Group | Rational software
Summary: How Synergy lets you meet CBD challenges
An end-to-end Task-based Change and Configuration Management system (TBCM) providing for higher component interaction thereby establishing a fast, reliable process between component consumers and developers.
Tasks properties allowing you to monitor and design asset relationships with extensible, customizable attributes, thus providing for greater definition, conflict resolution, dependency knowledge, functionality propagation, tailored workflow and change management
IBM Software Group | Rational software
Summary: How Synergy lets you meet CBD challenges
Business DomainDevelopment Domain
Enterprise & Embedded
Release MgmtRelease Mgmt
EA and BusinessEA and Business
ProcessProcess
ProductionProduction
Portfolio/ProductPortfolio/Product
ManagementManagement
MeasurementMeasurement
RequirementsRequirements
Analysis & Analysis & DesignDesign
TestTest
Telelogic Telelogic IntegrationsIntegrations
Telelogic Telelogic DashboardDashboard
System ArchitectSystem Architect
Focal PointFocal Point
DOORS Fastrak & DOORS Fastrak & DOORSDOORS
Telelogic Telelogic SynergySynergy
Tau &Tau &RhapsodyRhapsody
DOORS/T3 &DOORS/T3 &Quality CenterQuality CenterIntegrationsIntegrations
Telelogic Change &Telelogic Change &Telelogic SynergyTelelogic Synergy
Configuration & Configuration & Change MgmtChange Mgmt ImplementationImplementation
Tau, Rhapsody &Tau, Rhapsody &Eclipse & .Net Eclipse & .Net
IntegrationsIntegrations
In a broader sense, an asset maybe a software component, a design pattern, an architecture layer, a business process, a test algorithm, etc. Its development framework should therefore combine with Application Lifecycle Management disciplines such as Requirements Management, Enterprise Architecture, etc to provide a scalable and systematic approach to development, resulting in higher quality products and faster time-to-market.
IBM Software Group | Rational software
Optional Slides
IBM Software Group | Rational software
Example CBD Best Practices at customer sites
A large application composed of many components is developed iteratively and rapidly with all components on the same release cycle.
A large application integrating components having their own release cycle, and having dependencies with other evolving components.
Products development projects share components, each project may have the need to modify the components they consume.
A very large project divided in sub-projects that can impact any component of the software application and demonstrates management of parallel development streams and their continuous integration.
IBM Software Group | Rational software
Development of Families of Products using a Shared Component Repository
Context Often a component is owned by a specific team, which controls its evolutions and
implements the requirements of the components consumer. This approach lacks flexibility when organizations developing families of products need to be more reactive to customer requests.
A component can be modified by any product development team
IBM Software Group | Rational software
Shared Component RepositoryCollaborative Process
When should this approach be used?
The Organization is developing product families that share a common set of components,
There are independent projects that reuse and possibly require modifications on shared components,
It is not possible for a central team maintaining the shared components to cope with the change and adaptation requests,
There is a strong focus on project execution, shared components must not get in the way of delivering the projects,
The organization is open to new development techniques such as those established in the Open Source community, and accept coordination of shared components changes,
IBM Software Group | Rational software
Shared Component RepositoryCollaborative Process (2)
Principles: No dedicated team for the shared components,
No (permanent) component ownership,
Component Customers that find bugs, need new features, new components, become contributors to the Consumed Components,
When changes to a component are performed and verified they are published on the repository, so they become available for the other projects.
An Architecture Board composed of the architects from the various customers & contributors defines and updates the roadmap for the shared component: What is / What should / What will be in the repository
What is required for components / Who will use them
IBM Software Group | Rational software
Shared Component RepositoryCollaborative Process (3)
An Executive Board decides which project can modify a component and helps avoid unnecessary parallel modifications: Explicit separation between component interfaces and implementation
Permission to fix the implementation does not give the right to modify the interface
B V1.0 B V1.1
B xx Committer A
Consumer B
B V1.2
B yy
B V1.3
Consumer A
Committer B
IBM Software Group | Rational software
Delco Electronics Systems
Business Challenge: (Automotive)
Software quality is critical, standards drive development (Six Sigma, etc.)
Compressed product cycles
Component development and reuse
Customer Success:
World’s largest vehicle electronics and components company; supplies electronic systems and transportation component systems for mobile applications.
12 development sites with 200 to 300 different programs being developed simultaneously
SYNERGY’s task-based and project-oriented paradigm offers built-in support for component reuse, enabling Delphi to reduce development time and costs
“We’re trying to go to shrink-wrapped component reuse. We realize the strategic significance of being able to reuse components and reduce development time.”
Todd Alden, Senior Software Strategist, Software Process Group