Laboratory Software Engineering and Technology Trends Christopher Giblin cgi@zurich.ibm.com
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 Transportation Elections, government Medical
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 HW and SW purchase often represents 30% of total costs Engineering still valid 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. J. Verner, W. Evanco
Eclipse is an open platform for tool integration. a state-of-the art IDE supporting extensible, multi-artifact development. an immensely successful agile, distributed, open source project. the core of IBM WebSphere Studio. an independent open eco-system around royalty-free technology.
Eclipse Plug-in Architecture Plug-in set of contributions smallest unit of Eclipse function Plug-in Big example: HTML editor Small example: Action to calculate the number of lines of a Java file. Plug-in Extension point named entity for collecting contributions Example: extension point to add additional preference pages Platform Extension - a contribution Example: specific HTML editor preference page Extension Extension point
Example of extending Eclipse: Business Process Modeling
Eclipse Board
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 Skilled modelers are the exception, not the rule
How do people use models? Code only Code Viz. M RTE M Modelcentric M Model only M C What s a Model? vizualize C The code is the model synchronize C Manage code and model generate C The model is the code Let s talk models -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 and reusability through architectural separation of concerns.
Business Process Engineering Customization Business Process Analysis Model Simulation As-Is/To-Be comparison iterative process of assisted transformation steps separation of concerns Legacy Integration Business Process Design Model Performance Monitoring BPEL/WSDL Generation
The Cycle of Business Performance closes Modelthe loop Monitor Key Performance Indicators Establish process modeling methodology Create the As-Is Process Create the To-Be Process Add corrective actions, automatic or manual Build business measures Feed the model for as-is cycle initiation Communicate and verify business process model Manage Transform Build the implementation model Model the user interfaces Monitor the Processes Monitor Integrate Build the object models IT and Business Perspective Model partner interfaces Integrate and connect implementations
Greater flexibility is required from business models and the supporting IT architectureflexible business Transformation Business process outsourcing Mergers, acquisitions & divestitures Composable processes (CBM) Component Business Modeling Requires Flexible IT On Demand operating environment Service-Oriented Architecture (SOA) Development Infrastructure Composable services (SOA) Software development Integration Infrastructure management
A component business map is a tabular overview of a business 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. 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. Control is about monitoring, managing exceptions and tactical decision making. Execute is about doing the work. Operational Levels Competency Direct Control Execute Business & Financial / Infrastructure Business Strategy Investment Strategy Investment/Capital Investment Operations Financial Reporting and Controls (GL) Columns are Business Competencies, defined as large business areas with characteristic skills and capabilities, for example, product development or supply chain. Business Acquisition & Retention Market and Promotion Planning Promotion Illustrations Sales Support New Business Processing (Application) Policy Administration & Services Operations And Planning Operations Controls Processing Policy Changes Billing Benefit Payments Claims Strategy Miscellaneous Payment Planning Claims Litigation Surrenders/ Maturities Payment Processing (Disbursements)
CBM is used successfully to manage the Line complexity of Business in business Line of Business Line of Business Sales & Distribution transformation Functions HR, IT Infrastructure, Finance, Procurement, etc. Territory Functions HR, IT Infrastructure, Finance, Procurement, etc. Territory Life Commercial Lines P&C Lines HR, IT Infrastructure, Finance, Procurement, etc. Functions Product House Policy & Claims Handling Assets & Liabilities HR, IT Infrastructure, Finance, Procurement, etc. Territory Dimension 1 Improve local shortcomings Dimension 2 Decompose the Value Chain Dimension 3 Empower lines of business Dimension 4 Consolidate horizontal functions Specific performanceimprovement projects Realise synergies along core insurance functions Realise synergies along lines of business Realise synergies along horizontal functions
Example path for change: Life & Transformational View Competency Pensions Business & CBM Operational Levels Direct Financial / Infrastructure Business Strategy Investment Strategy Manufacturing/ Product Development Product Planning Relationship Customer Relationship Strategy Business Acquisition & Retention Market and Promotion Planning Risk Reinsurance Strategy Risk, Compliance, Legal Policy Administration & Services Operations And Planning Benefit Payments Claims Strategy Miscellaneous Payment Planning Group Administration Group Strategy Control Execute Investment/Capital External Reporting Procurement/ Vendor AR / AP Investment Operations Financial Reporting and Controls (GL) Audit Human Resources Learning/ Knowledge Services Product Internal/External Product Development Internal/External Product Education Correspondence Customer Customer Information Profile Correspondence Handling Contact Servicing/ Service Centers Promotion Producer Portfolio Analysis Illustrations Sales Support New Business Processing (Application) Risk Compliance, Legal Monitoring Underwriting Underwriting Decisioning Regulatory and Compliance Reporting Operations Controls Processing Policy Changes Billing Claims Litigation Surrenders/ Maturities Payment Processing (Disbursements) Process Claim Fraud Investigation Account Enrollment & Eligibility Plan Sponsor Services Seek external provider / external utility Consolidate and/or create internal utility Integrate and redesign No action
SOMA combines business vision with modern and legacy assets Model-driven: Let the tools do the walking Top-down: Business-driven process, event and variation analysis Business services linked to business goals IT components aligned with services and orchestrated IT components implemented with best-of-breed technology Bottom-up: Leverage Legacy through understanding and transformation
Service-Oriented Architecture (SOA) A set of architectural principles that address characteristics such as modularity, encapsulation, loose coupling, separation of concerns, composable and single implementation. has several aspects 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 standards and protocols
A Service-Oriented Architecture is implemented using multiple tiers Presentation architecture Portlets Business process architecture Process choreography Service-oriented architecture Composite services Component-based architecture Enterprise components Integration architecture (Service Integration Bus) QoS management & monitoring CICS/COBOL Operational systems Object-oriented CRM, ERP Business intelligence
Enterprise Service Bus
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 Grady Booch
Thanks!
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. -W. Hursch, C. Lopes, Separation of Concerns, 1995
Good modularity XML parsing XML parsing in org.apache.tomcat red shows relevant lines of code nicely fits in one box Copyright 1998-2002 2006 IBM Corporation PARC
Problems like logging is not modularized 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 Copyright 1998-2002 2006 IBM Corporation PARC
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 is not tied to OOP.
AOP introduces the notion of weaving The supported technique of composing aspects with application code. Compile time weaving AspectJ Hyper/J Load-time weaving AspectWerkz Run-time weaving AspectWerkz JAC Lasagna
Extended Web Services Combine flows of services into business processes. Support cross-organizational processes. Transactional Sessions