IBM Industry Solution Lab, March 31, 2006
Software Engineering and
Technology Trends
Christopher Giblin
[email protected]
Overall Trends
§
Internet
– Constant change in usage and application styles
§
Open Source vs. Proprietary Development
– Legal issues associated with sw. dev. Becoming more prominent.
§
Agile vs. “Heavy” Methodology
– Finding a balance between flexibility and process.
§
Software will be in “everything”
§
Ongoing increasing reliance on computer systems
Overall Trends, continued
§
Inter-organizational interactions– Internet is very much a business medium
§
Increasing system complexity§
Virtualization of hardware, software, human organizations.– Grid, Federated Identity
§
Information explosion– Structured and unstructured information
– Need for analytics, mining
§
Increasing amount of regulatory compliance– Sarbannes-Oxley
– Basel II
Overall Trends, continued
§
Security concerns: astronomical increase in your favorite metric:– CERT incidents
– Vulnerabilities, worms
– Investment in recovery and prevention of security incidents
Fundamentals of Software
Engineering still valid
§ HW and SW purchase often represents 30% of total costs
– 50-70% of costs are operational
§ “Optimistic estimation is still one of the … most common causes for runaway projects.”
– J. Verner, W. Evanco
§ Quality
– much of downtime due to software errors, increasing operational costs
– Requirements gathering
– Rigor in development, testing reduce errors
§ Architecture and standards
– Leverage know-how
– reliability, extensibility, adaptivity
§ Re-use can lowers costs
– Models and patterns
– Product lines
– Asset-based repositories
– More expensive to develop re-usable code …
§ “Post-mortem reviews are important for process improvement.”
Eclipse is …
§
an open platform for tool integration.§
a state-of-the art IDE supportingextensible, multi-artifact development.
§
an immensely successful agile,distributed, open source project.
§
the core of IBM WebSphere Studio.§
“an independent open eco-systemEclipse Plug-in Architecture
§
Plug-in – set of contributions– smallest unit of Eclipse function
– Big example: HTML editor
– Small example: Action to calculate the number of lines of a Java file.
§
Extension point – named entity for collecting contributions– Example: extension point to add additional preference pages
§
Extension - a contribution– Example: specific HTML editor preference page
Plug-in
Platform
Plug-in
Extension Extension pointExample of extending Eclipse:
Business Process Modeling
Models
§
Model Assisted Development
– Modeling as analysis tool
– Models as documentation (Source Driven Modeling J
– No sync between targets and models (source and model diverge).
§
Model Driven Development (MDD)
– strives to automate the generation of software artifacts through extensive use of models
How do people use models?
“Let’s talk
models”
M
Model
only
“What’s a
Model?”
C
Code only
“The code
is the
model”
M
C
Code Viz.
vizualize“Manage
code and
model”
M
C
RTE
synchronize“The model
is the code”
M
C
Model-centric
generate§
- Alan Brown
Model Driven Architecture (MDA)
§
An example of MDD.§
A vision and framework defined by the OMG for generating implementations from models.– Models abstract target software platform as high-level programming languages abstract target hardware platform.
– Successive transformations from PIM à PSM
§
“The three primary goals of MDA are portability, interoperability andreusability through architectural separation of concerns.”
Business Process Engineering
Business Process Analysis Model
Business Process Design Model
Performance Simulation As-Is/To-Be comparison BPEL/WSDL Generation Customization Monitoring Legacy Integration iterative process of assisted transformation steps separation of concerns
The Cycle of Business Performance
Management closes the loop
Integrate
Transform
Manage
Monitor
Model Establish process modeling methodology
Create the As-Is Process Create the To-Be Process Build business measures
Communicate and verify business process model
Build the implementation model Model the user interfaces Build the object models Monitor the Processes
Monitor Key Performance Indicators Add corrective actions, automatic or manual Feed the model for ‘as-is’ cycle initiation
business models and the supporting IT
architecture
Flexible business
Transformation
Business process outsourcing Mergers, acquisitions & divestitures
Flexible IT
On Demand operating environment Requires Composable services (SOA) Composable processes (CBM) Component Business Modeling
Development Infrastructure Management
Service-Oriented Architecture (SOA)
Software
development Integration
Infrastructure management
Business & Financial Management/ Infrastructure Business Acquisition & Retention Policy Administration & Services Business Strategy Direct Control Operations Management And Planning Market and Promotion Planning Benefit Payments Claims Management Strategy Miscellaneous Payment Planning Investment/Capital Management Operations Management Controls Promotion Management Claims Litigation Competency Operational Levels Investment Strategy A Business Component is a part of
an enterprise that has the potential to operate autonomously, for
example, as a separate company, or as part of another company.
It offers services to its environment.
Columns are Business
Competencies, defined as large business areas with characteristic skills and capabilities, for example, product development or supply chain.
An Operational Level characterizes the
scope of decision making. The three
levels used in CBM are direct, control and execute.
§Direct is about strategy, overall direction and policy.
A component business map is a
tabular overview of a business
CBM is used successfully to manage
the complexity in business
transformation
Dimension 4 Consolidate hori-zontal functions Realise synergies along horizontal functions Dimension 3 Empower lines of business Realise synergies along lines of business Dimension 2 Decompose the Value Chain Realise synergies along core insurancefunctions
HR, IT Infrastructure, Finance, Procurement, etc.
Line of Business Terri tory Fu nc tio ns
Policy & Claims Handling Policy & Claims Handling
Sales & Distribution Product House
Assets & Liabilities
HR, IT Infrastructure, Finance, Procurement, etc.
L if e C o m m e rc ia l L in e s P & C L in e s Dimension 1 Improve local shortcomings Specific performance-improvement projects HR, IT Infrastructure, Finance, Procurement, etc.
Line of Business Terri tory Fu nc tio ns HR, IT Infrastructure, Finance, Procurement, etc.
Line of Business Terri tory Fu nc tio ns
Pensions CBM
Business & Financial Management/ Infrastructure Manufacturing/ Product Development Relationship Management Business Acquisition& Retention Risk Management
Policy Administration & Services Group Administration Business Strategy Direct Execute Control Operations Management And Planning Group Strategy Customer Relationship Strategy Reinsurance Strategy Market and Promotion Planning Benefit Payments Claims Management Strategy Miscellaneous Payment Planning Investment/Capital Management Procurement/ Vendor Management Correspondence Handling Illustrations Underwriting Decisioning Product Development Internal/External Product Education Correspondence Management Customer Management Underwriting Management AR / AP Financial Reporting and Controls (GL) Audit Human Resources Sales Support New Business Processing (Application) Processing Policy Changes Surrenders/ Maturities Payment Processing (Disbursements) Process Claim Operations Management Controls Account Management Product Management Internal/External Product Planning Risk, Compliance, Legal Management Promotion Management Producer Portfolio Analysis Billing Claims Litigation Enrollment & Eligibility Plan Sponsor Services Competency Operational Levels Investment Operations Risk Compliance, Legal Monitoring External Reporting Investment Strategy Customer Information Profile
SOMA combines business vision
with modern and legacy assets
Top-down: Business-driven process, event and variation analysis
Bottom-up: Leverage Legacy through understanding and transformation Business services linked
to business goals
IT components aligned with services and
orchestrated
IT components implemented with best-of-breed technology Model-driven:
“Let the tools do the walking”
Service-Oriented Architecture (SOA)
has several aspects
§ A modularity, encapsulation, loose coupling, separation of concerns, set of architectural principles that address characteristics such ascomposable and single implementation.
§ An architectural style that requires a service provider, requestor and a
service description.
§ A programming model complete with standards, tools, methods and
technologies such as web services.
§ A set of business-aligned IT services that support an organization’s
business process goals and objectives … using interface-based service descriptions that decouple the provider and consumer through open
A Service-Oriented Architecture is
implemented using multiple tiers
Operational systems Service-oriented architecture Business process architecture Component-based architecture Presentation architecture Q o S m a n a g e m e n t & m o n it o ri n g In te g ra ti o n a rc h it e c tu re (S e rv ic e I n te g ra ti o n B u s ) Object-oriented CICS/COBOL CRM, ERP Business intelligence Business intelligence Process choreography Composite services Portlets Enterprise components
Outlook
§
Software everywhere§
Increasing interdependence of software and business§
Messaging gains in importance– Business and audit events
– M2M
– Aggregation
§
Increasing role of models§
Tons of data to transport, route and analyze§
Importance of reliability, automation§
"The fundamentals of software engineering never go out of style“Aspects and Separation of
Concerns
§
Separation of concerns
– pursuit of any engineering discipline
§
Reduce inter-dependencies
– Strive to identify and preserve orthogonal relationships
§
“By abstracting concerns out and separating them,
programming individual concerns becomes substantially less
complex, and code can be effectively reused.”
Good modularity
Problems like…
§ logging in org.apache.tomcat
–red shows lines of code that handle logging
–not in just one place
–not even in a small number of places
Aspect-oriented Programming
§
Introduces the
crosscutting
modularity
– crosscutting is inherent in complex systems.
– capture crosscutting explicitly.
– an aspect is a modularized cross-cutting concern.
§
AOP proposed by Gregor Kiczales et al, Xerox PARC, 1997
–
Patents filed …
–
Created AspectJ to explore ideas
AOP introduces the notion of
“weaving”
§
The supported technique ofcomposing aspects with application code.
§
Compile time weaving–AspectJ –Hyper/J