Siemens Corporate Research Princeton, NJ

Slides:



Advertisements
Similar presentations
Object-Oriented Application Frameworks Much of the cost and effort stems from the continuous re- discovery and re-invention of core concepts and components.
Advertisements

Building an Operational Enterprise Architecture and Service Oriented Architecture Best Practices Presented by: Ajay Budhraja Copyright 2006 Ajay Budhraja,
Enterprise Integration Architecture IPMA Professional Development Seminar June 29, 2006 Scott Came Director, Enterprise Architecture Program Washington.
© 2006 Carnegie Mellon University Establishing a Network Centric Capability: Implications for Acquisition and Engineering Dennis Smith Complex System Symposium.
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Essentials of Systems Analysis and Design Fourth Edition Joseph S. Valacich Joey F.
Azad Madni Professor Director, SAE Program Viterbi School of Engineering Platform-based Engineering: Rapid, Risk-mitigated Development.
Software Factory Assembling Applications with Models, Patterns, Frameworks and Tools Anna Liu Senior Architect Advisor Microsoft Australia.
Systems Integration & Consulting June Copyright ® 2009 Ayenda Agenda Introduction to Systems Integration System Integration Challenges and Opportunities.
Product Line Approaches in Software Engineering April 29, 2013 Sophia Wu.
Software Product Line Architectures (SPLA) Nipun Shah
Architecture and Software Product Lines A software architecture represents a significant investment of time and effort, usually by senior talent. So it.
Computer Systems & Architecture Lesson Software Product Lines.
SOA – Development Organization Yogish Pai. 2 IT organization are structured to meet the business needs LOB-IT Aligned to a particular business unit for.
SEI´S Software Product Line Tenets Linda M. Northrop Software Engineering Institute IEEE Software July/August 2002.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 09. Review Introduction to architectural styles Distributed architectures – Client Server Architecture – Multi-tier.
Software Engineering Principles Principles form the basis of methods, techniques, methodologies and tools Principles form the basis of methods, techniques,
Introducing Software Product Lines (SPL) Silvio Romero de Lemos Meira Eduardo Santana de Almeida
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Why Governance? SOA Governance allows to n Master complexity of IT n Support business process change.
Service Oriented Architecture (SOA) Dennis Schwarz November 21, 2008.
Software Product Line Material based on slides and chapter by Linda M. Northrop, SEI.
Service-Oriented Architecture: An Approach to Information Sharing Regional Information Sharing Conference San Diego, CA November 28, 2006 Scott Came SEARCH.
Independent Insight for Service Oriented Practice Summary: Service Reference Architecture and Planning David Sprott.
Basic Concepts Key Learning Points : The objectives of this chapter are as follows:  To provide an introduction to the basic Concepts of enterprise architectures,
C_ITIP211 LECTURER: E.DONDO. Unit 1 : The Systems Development Environment.
JBossWS beyond JAX-WS Heiko Braun Senior Software Engineer
Service Oriented Architecture (SOA) Prof. Wenwen Li School of Geographical Sciences and Urban Planning 5644 Coor Hall
Product Line Architecture. Systems Systems often come in families: basic, regular, professional, enterprise,… Can we share components? Is architecture.
Process 4 Hours.
EI Architecture Overview/Current Assessment/Technical Architecture
Continuous Delivery- Complete Guide
IS301 – Software Engineering V:
Lecture 3 Prescriptive Process Models
Chapter 1: Introduction to Systems Analysis and Design
CIM Modeling for E&U - (Short Version)
Fundamentals of Information Systems, Sixth Edition
BANKING INFORMATION SYSTEMS
Chapter 18 Maintaining Information Systems
CMMI Overview Quality Frameworks.
Software Life Cycle “What happens in the ‘life’ of software”
SOA (Service Oriented Architecture)
Software Factories - Today and Tomorrow
Component Based Software Engineering
An Introduction to Software Factories
Software Product Lines
Chapter 25: Architecture and Product Lines
7. Service-oriented Architecture (SOA)
CMMI – Staged Representation
Chapter 16 – Software Reuse
Tools of Software Development
Jens Haeusser Director, Strategy IT, UBC
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Chapter 2 The Origins of Software
Elements of Service-Oriented Architecture
Object-Oriented Systems Development Life Cycle (CH-3)
Software Architecture in Practice
Requirements Engineering for Product Lines
Service Oriented Architecture (SOA)
CHAPTER 10 METHODOLOGIES FOR CUSTOM SOFTWARE DEVELOPMENT
Capability Maturity Model
Chapter 1: Introduction to Systems Analysis and Design
Chapter 16 – Software Reuse
Capability Maturity Model
Introduction to SOA Part II: SOA in the enterprise
Chapter 1: Introduction to Systems Analysis and Design
ONAP Architecture Principle Review
Presentation transcript:

Siemens Corporate Research Princeton, NJ Synergies between Service-Oriented Architecture and Software Product Lines Siemens Corporate Research Princeton, NJ Christoph Wienands christoph.wienands@siemens.com

Contents Motivation Introduction to software product lines Comparing SOA and product lines Product line concepts of interest Software Engineering Technical Management Organizational Management Conclusion

Motivation Service-oriented architecture supports requirements of businesses processes and software users Fosters loose coupling, interoperability and protection of legacy investment Therefore, promotes business agility However: Services and applications are often built for specific needs and requirements Redundant development is done Limited systematic reuse  Techniques from software product lines can help addressing these issues SOA obviously fosters reusability e.g. at the service level. However, how reusable are these services really? Looking at product lines might give us an answer.

Contents Motivation Introduction to software product lines Comparing SOA and product lines Product line concepts of interest Software Engineering Technical Management Organizational Management Conclusion

Introduction to Software Product Lines A software product line is a set of software-intensive systems sharing a common, managed set of features that satisfy the specific needs of a particular market segment or mission and that are developed from a common set of core assets in a prescribed way. Paul Clements and Linda Northrop, 2002

Key Benefits of Software Product Lines Achieve productivity gains Improve time to market Exploit economies of scope through reuse of common assets Enhance the predictability of software development processes Improve software quality Focus on the unique aspects

Software Product Line Development process Core assets Product specification Product line architecture Assemble core assets Core Asset Development Product Development Product line scope Create extensions Feedback to core assets Domain analysis

Software Product Lines Concepts: Scope: What products/solutions can be built (without extensions) Commonality/Variability: Identifies the common and variable (optional) features of product line members Extensibility: Well-defined extension points allow to add customer-specific features outside of the scope

Contents Motivation Introduction to software product lines Comparing SOA and product lines Product line concepts of interest Software Engineering Technical Management Organizational Management Conclusion

Objectives Service-Oriented Architecture Mainly about loosely coupled services Focus on standardization of services and data types Services serve a business purpose and variability is managed by SOA policy  Goal is to enable assembly, orchestration and maintenance of enterprise solutions to quickly react to changing business requirements Software Product Lines Developed for generalized off-the-shelve products Focus on generalized components Adaptation and customization through configurable components and variability mechanisms  Goal is to harvest economies of scope through planned and systematic reuse There are clearly fundamental differences in the objectives of PLE/AFE and SOA. PLE/AFE methods have been developed to create more generalized COTS products that allow for configuration with the primary focus on design time reuse of highly generalized components. The prime objective is reuse for productivity and efficiency. In contrast SOA is primarily about loosely coupled shared services that serve a business purpose with variability managed using SOA policy. Further the search for variability in SOA is constrained, (in the CBDI thinking specifically) there is a strong focus on standardization of shared services in order to implement consistency of business policy and business process. SOA is focused on loose coupling of the service usage to enable rapid solution assembly and orchestration, not about the fundamental design of an application product. (John Butler)

How problems in today’s software development are addressed One-off development  Product Lines: Planned and systematic reuse  SOA: Possible reuse of services Monolithic systems and increasing system complexity  Product Lines: Reusable, composable components and a product line architecture common across all products  SOA: Pretty clear, that’s what SOA is replacing Working at low levels of abstraction  Both methodologies: Use of specialized domain-specific languages, editors and code generators Development process immaturity  Product Lines: Mandates a strict product line development process with organization-wide dedication Increasing demand for software and IT services  Product Lines: Allows for rapidly building customized product line members  SOA: Allows for quick adaptation to changes

Contents Motivation Introduction to software product lines Comparing SOA and product lines Product line concepts of interest Software Engineering Technical Management Organizational Management Conclusion

Product Line Concepts of Interest Software Engineering Reuse Variability Technical Management Feature-Oriented Domain Analysis Scoping Make / Buy / Mine / Commission Analysis Organizational Management Launching and institutionalizing Operations

Example 1: Technical Issues Solution originally incepted for one department or market “Same” (similar) solution requested for another market Some of the problems Different middleware and underlying “legacy” systems Differences in ontologies and data types Differences service logic, policies and processes

Software Engineering: Reuse in a Service-Oriented Architecture Identify areas with high potential for reuse, such as Enterprise services Basic services  Reuse of data, business logic and potentially business processes

Software Engineering: Reuse in a Service-Oriented Architecture Even more reuse potential within services Each service can be considered an individual application Can occur anywhere there is duplication and redundancy Compare to traditional monolithic application. With SOA now we have many independent but very similar applications.

Software Engineering: Variability in a Service-Oriented Architecture Assets with high reuse potential need to support a certain level of variability in order to be widely applicable Product lines provide techniques for discovering variation points, such as feature-oriented domain analysis Service-oriented architecture supports a large number of variability mechanisms, such as Patterns such as façades, adapters, mediators, dependency injection, etc. Rules and workflow engines Service discovery and service versioning Orchestration and message routing Extensible protocols and data types WS* extensions Installation wizards and configuration files

Technical Management: Feature-Oriented Domain Analysis and Scoping Used to develop generic and widely applicable products Modeling concepts are abstraction and refinement Scoping determines the supported common and variable features Documented through Feature Models:  Common feature  Variable feature A Feature set (m..n)

Technical Management: Make / Buy / Mine / Commission Analysis Any software comes from one of these four sources Uses techniques from decision analysis Reuse can recover higher cost for either option Evolution path and competitive advantages very important criteria Legacy Investment Cost Competitive Advantages Evolution Path In-house skills COTS Availability Vendor Stability Resources

Example 2: Organizational Issues Some of the problems: Existence of reusable assets unknown (or poorly documented) Existing services almost fit, but not quite exactly Missing policies and governance regarding reuse “Not developed here” syndrome No “reuse” champion or authority

Organizational Management: Launching and institutionalizing Just as with product lines, planned reuse in SOA needs to be embraced throughout an organization Perform pilot projects Determine reuse champion (individual or group) Work towards SOA governance (see next slide)  Raise general awareness and establish a culture of systematic reuse

Organizational Management: Operations: Development Cycle Model Plan Analyze Design Planning & Design Integrate & Deploy Reusability Analysis Core Asset Planning Test Development Scoping Refactoring Plan Implement Development Plan

Organizational Management: Operations: SOA Governance SOA governance means the creation, deployment, enforcement and verification of policies throughout the entire lifecycle of SOA artifacts. A SOA governance platform provides easy service discovery through a centralized service registry and management tools for planned reuse (on the service level), such as subscription requests, service level agreements, and consumer tracking. Ensures that services are developed, tested, integrated, deployed, and changed according to defined standards and policies  enhance reusability

Contents Motivation Introduction to software product lines Comparing SOA and product lines Product line concepts of interest Conclusion

Conclusion Service-oriented architecture is inherently predestined for systematic reuse as it comes with a large number of variability mechanisms and loosely coupling. Product line techniques help generalizing SOA development artifacts for broader applicability. SOA governance, together with supporting governance platform, will allow for implementing these efforts. Questions Contact: christoph.wienands@siemens.com

References The Standish Group, CHAOS Report (The Standish Group, 1994-2004) Software Engineering Institute (SEI) at Carnegie Mellon http://www.sei.cmu.edu/productlines/index.html Thomas Erl, Service Oriented Architecture (Prentice Hall, 2005) Krafzig, Banke, Slama, Enterprise SOA: Service-Oriented Architecture Best Practices (Prentice Hall, November 2004) John Butler, Applying Product Line Techniques to SOA, Part I and II (CDBI Journal, February and May 2006) Richard Veryard, Business Modeling for SOA Series (CDBI Journal, January and February 2006) Clements, Northrop, Software Product Lines – Practices and Patterns (Addison Wesley, 2003) Bass, Clements, Kazman, Software Architecture in Practice, 2nd Edition (Addison Wesley, 2003) Jan Bosch, Design and Use of Software Architecture – Adopting and evolving a product line approach (Addison Wesley, 1995) Schmidt, Stal, Rohnert, Buschmann, Pattern-Oriented Software Architecture Volume 2 – Patterns for Concurrent and Networked Objects (Wiley, 2000) Network World, SOA Governance: Preventing Rogue Services (August 2006) http://www.networkworld.com/supp/2006/ndc3/062606-ndc-soa-governance.html RosettaNet standards, http://www.rosettanet.org Czarnecki, Eisenecker, Generative Programming: Methods, Tools, and Applications (Addison Wesley, 2000)