SlideShare a Scribd company logo
1 of 59
Download to read offline
Ivano Malavolta
Modern development paradigms
Roadmap
Software product-lines
Service-oriented architecture
Software product-lines
An Example
You are constructing software that supports a bank loan
office
There are 20 products in your product line
An existing module calculates customer interest payment
– Perfectly adequate for 19 of the products
– Needs 240 lines modification for Delaware
How to Manage the Modifications?
One strategy is to make another copy of the affected module
and insert the necessary changes
– Called “clone and own”
– Fast and easy
– Does not scale!
• Suppose each of the 20 products has 1000 modules
• Potentially huge number of distinct versions of the product to maintain
A better strategy is to introduce a “variation point” in the
module and manage the variation point with, e.g., a
configuration parameter
– Setting configuration parameter to “normal” will generate the 19
products as before
– Setting the configuration parameter to “Delaware” will generate the
new version specifically for Delaware
Product lines
A set of related products that have substantialcommonality
– In general, the commonality exists at the architecture level
One potential ‘silver bullet’ of software engineering
– Power through reuse of
• Engineering knowledge
• Existing product architectures, styles, patterns
• Pre-existing software components and connectors
B
A
B
Common
A
Common
A
Common
B
(a) (b) (c)
7
Traditional Software
Engineering
Business motivation for product lines
8
Traditional Software
Engineering
Business motivation for product lines
Product-line-based
engineering
Business motivation for product lines
The ROI of SPL
David M. Weiss and Chi Tau Robert Lai. 1999. Software Product-Line
Engineering: A Family-Based Software Development Process.
Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA.
SPL engineering
Conceptual framework of PLs
Image © Paolo Ciancarini
Assets
DEF: artifacts that are representable with software and either
compose a product or support the engineering process to
create a product
The system needs to be designed for being
– Reusable:
• is fully documented
• is verified independently with high confidence
– Usable:
• is adaptable and that is usable in a variety of situations
Design for reuse/use involves
– analysis to identify explicitly variations to anticipate adaptations
– design for adaptability, engineered a
priori to create assets for future developments
Examples of assets
• requirements
• design specifications
• design models
• source code
• build files
• test plans and test cases
• user documentation
• repair manuals and installation guides
• project budgets, schedules, and work plans
• product calibration and configuration files
• data models and parts lists
• …
A product-line architecture
Definition
A product-line architecture captures the architectures of
many related products simultaneously
Generally employs explicit variation points in the architecture
indicating where design decisions may diverge from product
to product
15
“Lite” “Demo” “Pro”
A lunar lander product line
Product component table
Helps us decide
whether creating
a product line is
viable or feasible
DataStore
DataStoreConnector
GameLogic
GameLogicConnector
Text-basedUI
UIPlug-insConnector
GraphicalUI
SystemClock
SystemClockConnector
DemoReminder
Lite X X X X X X
Demo X X X X X X X X X X
Pro X X X X X X
Group components into features
Not a mechanical
process
Attempt to identify
(mostly) orthogonal
features, or features
that would be
beneficial in different
products
DataStore
DataStoreConnector
GameLogic
GameLogicConnector
Text-basedUI
UIPlug-insConnector
GraphicalUI
SystemClock
SystemClockConnector
DemoReminder
Lite X X X X X X
Demo X X X X X X X X X X
Pro X X X X X X
Reconstitute products from features
Use technical and business
knowledge to identify which
combinations form feasible
or marketable products
that will be constructed
CoreElements
TextUI
GraphicalUI
TimeLimited
Lunar Lander Lite X X
Lunar Lander Demo X X X
Lunar Lander Pro X X
How to represent variability?
1. Integratedvariability modeling
– variability concepts are introduced into existing modelling
languages or document templates
2. Orthogonal variability modeling
– Ad-hoc models for variability representation
• called feature models
• separated from architecturalmodels
• reusable independently from the used ALs
• understandable by non-technical stakeholders
20
1 - Integrated variability modeling
Architectural models need to be diversified with information
about variation points and features
Not all ALs have good support for this
– Exceptions include
• Koala
• xADL 2.0
– These ALs have explicit support for capturing variation points
22
2 – Orthogonal variability modeling
The variability of the product line is treated as a first class product
line artifact à the feature model
Note that commonalities
are not represented here
Concepts
Variation point
– a variable item and thus defines “what can vary” (without saying
how it can vary)
Variant
– a concrete variation
– is related to a variation point
Variability constraints
– restrictions about the variability
– e.g.
• to define permissible combinations of variants in an application
• to define that the selection of one variant requires or
excludes the selection of another variant
Feature model in the automotive
domain
Exemplar of Automotive Architecture with Variability. Kacper Bak ,
Marko Novakovic , Leonardo Passos. Technical report.
Product-line selection is the process of extracting a single
product architecture (or smaller product line) from an
architectural model that contains explicit points of variation
ALs such as Koala and xADL 2.0 can do selection
automaticallywith tools
Uses: product lines for feature selection
Products in a product line don’t have to exclusively capture
alternatives
– They can also capture variation over time
Uses: product lines for evolution
Uses: product lines for evolution
Implementation issues
Important to partition implementations along variation-
point boundaries
Common
File1.java
File2.java
File3.java
File4.java
A
B
Common
File1.java
File2.java
File3.java
File4.java
A
B
(a) (b)Bad Good
Implementation issues 2
Keeping evolving architectures and version-controlled
source repositories (e.g., Git, SVN) in sync
Text-Based UI
Component
Graphical UI
Component
1.0
2.0
3.0 2.1
4.0 2.2
Text-based
Evolution
Graphical
Fork
UI.java
(as versioned in a software
configuration management system)
Example: SPL for robotics
L. Gherardi, “Variability modeling and resolution in component-based
robotics systems,” PhD Thesis, 2013.
Example: SPL for robotics
L. Gherardi, “Variability modeling and resolution in component-based
robotics systems,” PhD Thesis, 2013.
Service-oriented
architecture
Introduction to service orientation
Three individuals, each capable of providing a distinct
service
Introduction to service orientation
A company that employs these three people can compose
their capabilities to carry out its business
Services are collections of capabilities
Much like a human, an automated service can provide
multiple capabilities
Public capabilities are commonly expressedvia a published
service contract (much like a traditionalAPI)
Service composition
A service composition is a coordinated aggregate of services
The functional context of each service is agnostic to any
business process
à services can participate in multiple service compositions
à reusability + testability
Services inventory
Establishes a pool of services, many of which will be
deliberately designed to be reused within multiple service
compositions
SOA principles
1. Standardized service contract
2. Service loose coupling
3. Service abstraction
4. Service reusability
5. Service autonomy
6. Service statelessness
7. Service discoverability
8. Service composability
1 - Standardized service contract
Services within the same service inventory are in compliance with the
same contract design standards
“contract first” approach
2 - Service loose coupling
Service contracts are decoupled from their surrounding environment
The service contract be the sole means of accessing service logic and
resources
3 - Service abstraction
Service contracts contain only essential information
Information about services is limited to what is published in service contracts
Consumers may be unaware
that a service is composing others
4 - Service reusability
Services contain and express agnostic logic
Services can be positioned as reusable enterprise resources
5 - Service autonomy
Services exercise a high level of control over their underlying runtime
execution environment
Reducing shared access to
service resources and
increasing physical isolation
can raise a service's ability to
function autonomously
6 - Service statelessness
Services minimize resource consumption by deferring the management
of state information when necessary
State data management consumes system resources and can result in a
significant resource burden when multiple instances of services are
concurrently invoked
7 - Service discoverability
Services are supplemented
with communicative metadata
by which they can be effectively
discovered and interpreted
It enables a wide range of
project team members to
effectively carry out the
discovery process and not to
limit it to those with technical
expertise
8 - Service composability
Services can be repurposed to solve multiple problems
à services must address agnostic or cross-cutting concerns
Notice that capabilities
are composed within a
service composition,
not services
Summary
Service-oriented architecture
A means of developing distributed systemswhere the
components are stand-alone services
Services may execute on
different computers from
different service providers
Standard protocols have been
developed to support service
communication and
information exchange
Key standards
• SOAP
– A message exchange standard that supports service
communication
• WSDL (Web Service Definition Language)
– To define a service interface and its bindings
• WS-BPEL
– A standard for workflow languages used to define service
composition
Web service standards
Transport (HTTP, HTTPS, SMTP, ...)
Messaging (SOAP)
Service definition (UDDI, WSDL)
Process (WS-BPEL)
Support (WS-Security, WS-Addressing, ...)
XML technologies (XML, XSD, XSLT, ....)
Services as reusable components
• A service can be defined as:
– A loosely-coupled, reusable software component that
encapsulates discrete functionality which may be distributed and
programmatically accessed.
– A web service is a service that is accessed using standard Internet
and XML-based protocols
Services are independent
– Services do not have a ‘requires’ interface
– Services rely on message-based communication with messages
expressedin XML
SOA
VS
component-based systems
WSDL: Web Service Description
Language
The service interface can be defined in a service description
expressed in WSDL (Web Service Description Language)
• The WSDL specification defines
– what operations the service supports
– the format of the messages that are sent and received by the
service
– how the service is accessed
• the binding betweenthe abstract interface and the concrete set of
protocols
– where the service is located
• This is usually expressed as a URI (UniversalResource Identifier)
Organization of a WSDL specification
Intro
Abstract interface
Concrete
implementation
WSDL service definition
XML namespace declarations
Type declarations
Interface declarations
Message declarations
Binding declarations
Endpoint declarations
Part of a WSDL description for a web
service
Define some of the types used. Assume that the namespace prefixes ‘ws’
refers to the namespace URI for XML schemas and the namespace prefix
associated with this definition is weathns.
<types>
<xs: schema targetNameSpace = “http://.../weathns”
xmlns: weathns = “http://…/weathns” >
<xs:element name = “PlaceAndDate” type = “pdrec” />
<xs:element name = “MaxMinTemp” type = “mmtrec” />
<xs: element name = “InDataFault” type = “errmess” />
<xs: complexType name = “pdrec”
<xs: sequence>
<xs:element name = “town” type = “xs:string”/>
<xs:element name = “country” type = “xs:string”/>
<xs:element name = “day” type = “xs:date” />
</xs:complexType>
Definitions of MaxMinType and InDataFault here
</schema>
</types>
Part of a WSDL description for a web
service
Now define the interface and its operations. In this case, there is only a single
operation to return maximum and minimum temperatures.
<interface name = “weatherInfo” >
<operation name = “getMaxMinTemps” pattern = “wsdlns: in-out”>
<input messageLabel = “In” element = “weathns: PlaceAndDate” />
<output messageLabel = “Out” element = “weathns:MaxMinTemp” />
<outfault messageLabel = “Out” element = “weathns:InDataFault” />
</operation>
</interface>
What this lecture means to you?
• Software product lines exploit the commonalities of a family of
systems and systematicallyhandle their variations
• Commonality is a property shared by all applications of the family
– e.g., all mobile phones allow users to make calls
• Product line applications may differ in terms of features, functional
and quality requirements they fulfill
– e.g., some tablet computers may include mobile broadband connectivity,
others not
• Service-oriented software engineering is based on the notion that
programs can be constructed by composing independent services
which encapsulate reusable functionality
• Service interfaces can be defined in WSDL
– A WSDL specification includes a definition of the interface types and operations, the
binding protocol used by the service and the service location
References
Andreas Metzger and Klaus Pohl. 2014. Software
product line engineering and variability
management: achievements and challenges. In
Proceedings of the on Future of Software
Engineering (FOSE 2014). ACM, New York, NY,
USA, 70-84.
Contact
Ivano Malavolta |
Post-doc researcher
Gran Sasso Science Institute
iivanoo
ivano.malavolta@gssi.infn.it
www.ivanomalavolta.com

More Related Content

What's hot

10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural stylesMajong DevJfu
 
[2017/2018] AADL - Architecture Analysis and Design Language
[2017/2018] AADL - Architecture Analysis and Design Language[2017/2018] AADL - Architecture Analysis and Design Language
[2017/2018] AADL - Architecture Analysis and Design LanguageIvano Malavolta
 
[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLESIvano Malavolta
 
[2015/2016] Architectural languages
[2015/2016] Architectural languages[2015/2016] Architectural languages
[2015/2016] Architectural languagesIvano Malavolta
 
[2016/2017] AADL (Architecture Analysis and Design Language)
[2016/2017] AADL (Architecture Analysis and Design Language)[2016/2017] AADL (Architecture Analysis and Design Language)
[2016/2017] AADL (Architecture Analysis and Design Language)Ivano Malavolta
 
[2016/2017] Modern development paradigms
[2016/2017] Modern development paradigms [2016/2017] Modern development paradigms
[2016/2017] Modern development paradigms Ivano Malavolta
 
Aspect Oriented Development
Aspect Oriented DevelopmentAspect Oriented Development
Aspect Oriented Developmenttyrantbrian
 
Introduction to ARCHITECTURAL LANGUAGES
Introduction to ARCHITECTURAL LANGUAGESIntroduction to ARCHITECTURAL LANGUAGES
Introduction to ARCHITECTURAL LANGUAGESIvano Malavolta
 
IBM Rhapsody and MATLAB/Simulink
IBM Rhapsody and MATLAB/SimulinkIBM Rhapsody and MATLAB/Simulink
IBM Rhapsody and MATLAB/Simulinkgjuljo
 
MexADL - HADAS Presentation
MexADL - HADAS PresentationMexADL - HADAS Presentation
MexADL - HADAS Presentationjccastrejon
 
[2015/2016] Software development process
[2015/2016] Software development process[2015/2016] Software development process
[2015/2016] Software development processIvano Malavolta
 
Web2MexADL - CSMR Presentation
Web2MexADL - CSMR PresentationWeb2MexADL - CSMR Presentation
Web2MexADL - CSMR Presentationjccastrejon
 
Object Oriented, Design patterns and data modelling worshop
Object Oriented, Design patterns and data modelling worshopObject Oriented, Design patterns and data modelling worshop
Object Oriented, Design patterns and data modelling worshopMohammad Shawahneh
 
Component-Based and Model-Driven Engineering: what is the difference? A CBSE ...
Component-Based and Model-Driven Engineering: what is the difference? A CBSE ...Component-Based and Model-Driven Engineering: what is the difference? A CBSE ...
Component-Based and Model-Driven Engineering: what is the difference? A CBSE ...Ivica Crnkovic
 

What's hot (20)

10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles
 
[2017/2018] AADL - Architecture Analysis and Design Language
[2017/2018] AADL - Architecture Analysis and Design Language[2017/2018] AADL - Architecture Analysis and Design Language
[2017/2018] AADL - Architecture Analysis and Design Language
 
[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES
 
[2015/2016] Architectural languages
[2015/2016] Architectural languages[2015/2016] Architectural languages
[2015/2016] Architectural languages
 
MexADL
MexADLMexADL
MexADL
 
1
11
1
 
Software architecture
Software architectureSoftware architecture
Software architecture
 
[2016/2017] AADL (Architecture Analysis and Design Language)
[2016/2017] AADL (Architecture Analysis and Design Language)[2016/2017] AADL (Architecture Analysis and Design Language)
[2016/2017] AADL (Architecture Analysis and Design Language)
 
4+1 view model
4+1 view model4+1 view model
4+1 view model
 
[2016/2017] Modern development paradigms
[2016/2017] Modern development paradigms [2016/2017] Modern development paradigms
[2016/2017] Modern development paradigms
 
Aspect Oriented Development
Aspect Oriented DevelopmentAspect Oriented Development
Aspect Oriented Development
 
Software design
Software designSoftware design
Software design
 
Introduction to ARCHITECTURAL LANGUAGES
Introduction to ARCHITECTURAL LANGUAGESIntroduction to ARCHITECTURAL LANGUAGES
Introduction to ARCHITECTURAL LANGUAGES
 
IBM Rhapsody and MATLAB/Simulink
IBM Rhapsody and MATLAB/SimulinkIBM Rhapsody and MATLAB/Simulink
IBM Rhapsody and MATLAB/Simulink
 
MexADL - HADAS Presentation
MexADL - HADAS PresentationMexADL - HADAS Presentation
MexADL - HADAS Presentation
 
[2015/2016] Software development process
[2015/2016] Software development process[2015/2016] Software development process
[2015/2016] Software development process
 
Software Patterns
Software PatternsSoftware Patterns
Software Patterns
 
Web2MexADL - CSMR Presentation
Web2MexADL - CSMR PresentationWeb2MexADL - CSMR Presentation
Web2MexADL - CSMR Presentation
 
Object Oriented, Design patterns and data modelling worshop
Object Oriented, Design patterns and data modelling worshopObject Oriented, Design patterns and data modelling worshop
Object Oriented, Design patterns and data modelling worshop
 
Component-Based and Model-Driven Engineering: what is the difference? A CBSE ...
Component-Based and Model-Driven Engineering: what is the difference? A CBSE ...Component-Based and Model-Driven Engineering: what is the difference? A CBSE ...
Component-Based and Model-Driven Engineering: what is the difference? A CBSE ...
 

Viewers also liked

[2015/2016] Local data storage for web-based mobile apps
[2015/2016] Local data storage for web-based mobile apps[2015/2016] Local data storage for web-based mobile apps
[2015/2016] Local data storage for web-based mobile appsIvano Malavolta
 
Design patterns for mobile apps
Design patterns for mobile appsDesign patterns for mobile apps
Design patterns for mobile appsIvano Malavolta
 
UI design for mobile apps
UI design for mobile appsUI design for mobile apps
UI design for mobile appsIvano Malavolta
 
[2015/2016] HTML5 and CSS3 Refresher
[2015/2016] HTML5 and CSS3 Refresher[2015/2016] HTML5 and CSS3 Refresher
[2015/2016] HTML5 and CSS3 RefresherIvano Malavolta
 
Web-based Hybrid Mobile Apps: State of the Practice and Research opportunitie...
Web-based Hybrid Mobile Apps: State of the Practice and Research opportunitie...Web-based Hybrid Mobile Apps: State of the Practice and Research opportunitie...
Web-based Hybrid Mobile Apps: State of the Practice and Research opportunitie...Ivano Malavolta
 
[2015/2016] The REST architectural style
[2015/2016] The REST architectural style[2015/2016] The REST architectural style
[2015/2016] The REST architectural styleIvano Malavolta
 
[2015/2016] Apache Cordova APIs
[2015/2016] Apache Cordova APIs[2015/2016] Apache Cordova APIs
[2015/2016] Apache Cordova APIsIvano Malavolta
 
[2015/2016] Mobile thinking
[2015/2016] Mobile thinking[2015/2016] Mobile thinking
[2015/2016] Mobile thinkingIvano Malavolta
 
[2015/2016] Require JS and Handlebars JS
[2015/2016] Require JS and Handlebars JS[2015/2016] Require JS and Handlebars JS
[2015/2016] Require JS and Handlebars JSIvano Malavolta
 
[2015/2016] User experience design of mobil apps
[2015/2016] User experience design of mobil apps[2015/2016] User experience design of mobil apps
[2015/2016] User experience design of mobil appsIvano Malavolta
 
Design patterns for mobile apps
Design patterns for mobile appsDesign patterns for mobile apps
Design patterns for mobile appsIvano Malavolta
 
[2015/2016] User-centred design
[2015/2016] User-centred design[2015/2016] User-centred design
[2015/2016] User-centred designIvano Malavolta
 
[2015/2016] Geolocation and mapping
[2015/2016] Geolocation and mapping[2015/2016] Geolocation and mapping
[2015/2016] Geolocation and mappingIvano Malavolta
 
[2015/2016] Apache Cordova
[2015/2016] Apache Cordova[2015/2016] Apache Cordova
[2015/2016] Apache CordovaIvano Malavolta
 
SKA Systems Engineering: from PDR to Construction
SKA Systems Engineering: from PDR to ConstructionSKA Systems Engineering: from PDR to Construction
SKA Systems Engineering: from PDR to ConstructionJoint ALMA Observatory
 
The Mobile ecosystem, Context & Strategies
The Mobile ecosystem, Context & StrategiesThe Mobile ecosystem, Context & Strategies
The Mobile ecosystem, Context & StrategiesIvano Malavolta
 
Mobile geolocation and mapping
Mobile geolocation and mappingMobile geolocation and mapping
Mobile geolocation and mappingIvano Malavolta
 

Viewers also liked (20)

[2015/2016] Local data storage for web-based mobile apps
[2015/2016] Local data storage for web-based mobile apps[2015/2016] Local data storage for web-based mobile apps
[2015/2016] Local data storage for web-based mobile apps
 
Design patterns for mobile apps
Design patterns for mobile appsDesign patterns for mobile apps
Design patterns for mobile apps
 
UI design for mobile apps
UI design for mobile appsUI design for mobile apps
UI design for mobile apps
 
[2015/2016] HTML5 and CSS3 Refresher
[2015/2016] HTML5 and CSS3 Refresher[2015/2016] HTML5 and CSS3 Refresher
[2015/2016] HTML5 and CSS3 Refresher
 
Web-based Hybrid Mobile Apps: State of the Practice and Research opportunitie...
Web-based Hybrid Mobile Apps: State of the Practice and Research opportunitie...Web-based Hybrid Mobile Apps: State of the Practice and Research opportunitie...
Web-based Hybrid Mobile Apps: State of the Practice and Research opportunitie...
 
[2015/2016] The REST architectural style
[2015/2016] The REST architectural style[2015/2016] The REST architectural style
[2015/2016] The REST architectural style
 
[2015/2016] Apache Cordova APIs
[2015/2016] Apache Cordova APIs[2015/2016] Apache Cordova APIs
[2015/2016] Apache Cordova APIs
 
[2015/2016] Mobile thinking
[2015/2016] Mobile thinking[2015/2016] Mobile thinking
[2015/2016] Mobile thinking
 
[2015/2016] Backbone JS
[2015/2016] Backbone JS[2015/2016] Backbone JS
[2015/2016] Backbone JS
 
[2015/2016] Require JS and Handlebars JS
[2015/2016] Require JS and Handlebars JS[2015/2016] Require JS and Handlebars JS
[2015/2016] Require JS and Handlebars JS
 
[2015/2016] User experience design of mobil apps
[2015/2016] User experience design of mobil apps[2015/2016] User experience design of mobil apps
[2015/2016] User experience design of mobil apps
 
Design patterns for mobile apps
Design patterns for mobile appsDesign patterns for mobile apps
Design patterns for mobile apps
 
[2015/2016] User-centred design
[2015/2016] User-centred design[2015/2016] User-centred design
[2015/2016] User-centred design
 
[2015/2016] Geolocation and mapping
[2015/2016] Geolocation and mapping[2015/2016] Geolocation and mapping
[2015/2016] Geolocation and mapping
 
[2015/2016] Apache Cordova
[2015/2016] Apache Cordova[2015/2016] Apache Cordova
[2015/2016] Apache Cordova
 
SKA Systems Engineering: from PDR to Construction
SKA Systems Engineering: from PDR to ConstructionSKA Systems Engineering: from PDR to Construction
SKA Systems Engineering: from PDR to Construction
 
[2015/2016] JavaScript
[2015/2016] JavaScript[2015/2016] JavaScript
[2015/2016] JavaScript
 
The Mobile ecosystem, Context & Strategies
The Mobile ecosystem, Context & StrategiesThe Mobile ecosystem, Context & Strategies
The Mobile ecosystem, Context & Strategies
 
Mobile geolocation and mapping
Mobile geolocation and mappingMobile geolocation and mapping
Mobile geolocation and mapping
 
Backbone.js
Backbone.jsBackbone.js
Backbone.js
 

Similar to [2015/2016] Modern development paradigms

Modern development paradigms
Modern development paradigmsModern development paradigms
Modern development paradigmsIvano Malavolta
 
Software Product Lines by Dr. Indika Kumara
Software Product Lines by Dr. Indika KumaraSoftware Product Lines by Dr. Indika Kumara
Software Product Lines by Dr. Indika KumaraThejan Wijesinghe
 
PLA and the SC 2002-04-15
PLA and the SC 2002-04-15PLA and the SC 2002-04-15
PLA and the SC 2002-04-15Jay van Zyl
 
Promise and Challenge of Runtime Presentation(summary)
Promise and Challenge of Runtime Presentation(summary)Promise and Challenge of Runtime Presentation(summary)
Promise and Challenge of Runtime Presentation(summary)Joon ho Park
 
A Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere ToolsA Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere Toolsghodgkinson
 
Software development PROCESS
Software development PROCESSSoftware development PROCESS
Software development PROCESSIvano Malavolta
 
Design principles &amp; quality factors
Design principles &amp; quality factorsDesign principles &amp; quality factors
Design principles &amp; quality factorsAalia Barbe
 
Hia 1693-effective application-development_in_iib
Hia 1693-effective application-development_in_iibHia 1693-effective application-development_in_iib
Hia 1693-effective application-development_in_iibAndrew Coleman
 
SPM lecture2 Requirements Management and Identification
SPM lecture2 Requirements Management and IdentificationSPM lecture2 Requirements Management and Identification
SPM lecture2 Requirements Management and IdentificationGarm Lucassen
 
Middle ware Technologies
Middle ware TechnologiesMiddle ware Technologies
Middle ware Technologiesprakashk453625
 
Middleware Technologies
Middleware Technologies Middleware Technologies
Middleware Technologies prakashk453625
 
Software systems engineering PRINCIPLES
Software systems engineering PRINCIPLESSoftware systems engineering PRINCIPLES
Software systems engineering PRINCIPLESIvano Malavolta
 
2013 Perforce Collaboration Tour - MathWorks
2013 Perforce Collaboration Tour - MathWorks2013 Perforce Collaboration Tour - MathWorks
2013 Perforce Collaboration Tour - MathWorksPerforce
 
Fostering MBSE in Engineering Culture
Fostering MBSE in Engineering CultureFostering MBSE in Engineering Culture
Fostering MBSE in Engineering CultureObeo
 
Visure Solutions Sytems Engineering The Requirements Solution
Visure Solutions Sytems Engineering The Requirements SolutionVisure Solutions Sytems Engineering The Requirements Solution
Visure Solutions Sytems Engineering The Requirements SolutionVisure Solutions
 
The State of OpenStack Product Management
The State of OpenStack Product ManagementThe State of OpenStack Product Management
The State of OpenStack Product ManagementTesora
 
Software Engineering with Objects (M363) Final Revision By Kuwait10
Software Engineering with Objects (M363) Final Revision By Kuwait10Software Engineering with Objects (M363) Final Revision By Kuwait10
Software Engineering with Objects (M363) Final Revision By Kuwait10Kuwait10
 
Software variability management - 2017
Software variability management - 2017Software variability management - 2017
Software variability management - 2017XavierDevroey
 
SW Product Line Engineering
SW Product Line EngineeringSW Product Line Engineering
SW Product Line EngineeringKeshav Kumar
 

Similar to [2015/2016] Modern development paradigms (20)

Modern development paradigms
Modern development paradigmsModern development paradigms
Modern development paradigms
 
Software Product Lines by Dr. Indika Kumara
Software Product Lines by Dr. Indika KumaraSoftware Product Lines by Dr. Indika Kumara
Software Product Lines by Dr. Indika Kumara
 
PLA and the SC 2002-04-15
PLA and the SC 2002-04-15PLA and the SC 2002-04-15
PLA and the SC 2002-04-15
 
Promise and Challenge of Runtime Presentation(summary)
Promise and Challenge of Runtime Presentation(summary)Promise and Challenge of Runtime Presentation(summary)
Promise and Challenge of Runtime Presentation(summary)
 
A Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere ToolsA Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere Tools
 
Software development PROCESS
Software development PROCESSSoftware development PROCESS
Software development PROCESS
 
Design principles &amp; quality factors
Design principles &amp; quality factorsDesign principles &amp; quality factors
Design principles &amp; quality factors
 
Hia 1693-effective application-development_in_iib
Hia 1693-effective application-development_in_iibHia 1693-effective application-development_in_iib
Hia 1693-effective application-development_in_iib
 
SPM lecture2 Requirements Management and Identification
SPM lecture2 Requirements Management and IdentificationSPM lecture2 Requirements Management and Identification
SPM lecture2 Requirements Management and Identification
 
Middle ware Technologies
Middle ware TechnologiesMiddle ware Technologies
Middle ware Technologies
 
Middleware Technologies
Middleware Technologies Middleware Technologies
Middleware Technologies
 
Unit2 2
Unit2 2Unit2 2
Unit2 2
 
Software systems engineering PRINCIPLES
Software systems engineering PRINCIPLESSoftware systems engineering PRINCIPLES
Software systems engineering PRINCIPLES
 
2013 Perforce Collaboration Tour - MathWorks
2013 Perforce Collaboration Tour - MathWorks2013 Perforce Collaboration Tour - MathWorks
2013 Perforce Collaboration Tour - MathWorks
 
Fostering MBSE in Engineering Culture
Fostering MBSE in Engineering CultureFostering MBSE in Engineering Culture
Fostering MBSE in Engineering Culture
 
Visure Solutions Sytems Engineering The Requirements Solution
Visure Solutions Sytems Engineering The Requirements SolutionVisure Solutions Sytems Engineering The Requirements Solution
Visure Solutions Sytems Engineering The Requirements Solution
 
The State of OpenStack Product Management
The State of OpenStack Product ManagementThe State of OpenStack Product Management
The State of OpenStack Product Management
 
Software Engineering with Objects (M363) Final Revision By Kuwait10
Software Engineering with Objects (M363) Final Revision By Kuwait10Software Engineering with Objects (M363) Final Revision By Kuwait10
Software Engineering with Objects (M363) Final Revision By Kuwait10
 
Software variability management - 2017
Software variability management - 2017Software variability management - 2017
Software variability management - 2017
 
SW Product Line Engineering
SW Product Line EngineeringSW Product Line Engineering
SW Product Line Engineering
 

More from Ivano Malavolta

Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...
Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...
Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...Ivano Malavolta
 
The Green Lab - Research cocktail @Vrije Universiteit Amsterdam (October 2020)
The Green Lab - Research cocktail  @Vrije Universiteit Amsterdam (October 2020)The Green Lab - Research cocktail  @Vrije Universiteit Amsterdam (October 2020)
The Green Lab - Research cocktail @Vrije Universiteit Amsterdam (October 2020)Ivano Malavolta
 
Software sustainability and Green IT
Software sustainability and Green ITSoftware sustainability and Green IT
Software sustainability and Green ITIvano Malavolta
 
Navigation-aware and Personalized Prefetching of Network Requests in Android ...
Navigation-aware and Personalized Prefetching of Network Requests in Android ...Navigation-aware and Personalized Prefetching of Network Requests in Android ...
Navigation-aware and Personalized Prefetching of Network Requests in Android ...Ivano Malavolta
 
How Maintainability Issues of Android Apps Evolve [ICSME 2018]
How Maintainability Issues of Android Apps Evolve [ICSME 2018]How Maintainability Issues of Android Apps Evolve [ICSME 2018]
How Maintainability Issues of Android Apps Evolve [ICSME 2018]Ivano Malavolta
 
Collaborative Model-Driven Software Engineering: a Classification Framework a...
Collaborative Model-Driven Software Engineering: a Classification Framework a...Collaborative Model-Driven Software Engineering: a Classification Framework a...
Collaborative Model-Driven Software Engineering: a Classification Framework a...Ivano Malavolta
 
Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...
Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...
Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...Ivano Malavolta
 
Modeling objects interaction via UML sequence diagrams [Software Design] [Com...
Modeling objects interaction via UML sequence diagrams [Software Design] [Com...Modeling objects interaction via UML sequence diagrams [Software Design] [Com...
Modeling objects interaction via UML sequence diagrams [Software Design] [Com...Ivano Malavolta
 
Modeling behaviour via UML state machines [Software Design] [Computer Science...
Modeling behaviour via UML state machines [Software Design] [Computer Science...Modeling behaviour via UML state machines [Software Design] [Computer Science...
Modeling behaviour via UML state machines [Software Design] [Computer Science...Ivano Malavolta
 
Object-oriented design patterns in UML [Software Design] [Computer Science] [...
Object-oriented design patterns in UML [Software Design] [Computer Science] [...Object-oriented design patterns in UML [Software Design] [Computer Science] [...
Object-oriented design patterns in UML [Software Design] [Computer Science] [...Ivano Malavolta
 
Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...
Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...
Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...Ivano Malavolta
 
Requirements engineering with UML [Software Design] [Computer Science] [Vrije...
Requirements engineering with UML [Software Design] [Computer Science] [Vrije...Requirements engineering with UML [Software Design] [Computer Science] [Vrije...
Requirements engineering with UML [Software Design] [Computer Science] [Vrije...Ivano Malavolta
 
Modeling and abstraction, software development process [Software Design] [Com...
Modeling and abstraction, software development process [Software Design] [Com...Modeling and abstraction, software development process [Software Design] [Com...
Modeling and abstraction, software development process [Software Design] [Com...Ivano Malavolta
 
[2017/2018] Agile development
[2017/2018] Agile development[2017/2018] Agile development
[2017/2018] Agile developmentIvano Malavolta
 
Reconstructing microservice-based architectures
Reconstructing microservice-based architecturesReconstructing microservice-based architectures
Reconstructing microservice-based architecturesIvano Malavolta
 
[2017/2018] Architectural languages
[2017/2018] Architectural languages[2017/2018] Architectural languages
[2017/2018] Architectural languagesIvano Malavolta
 
[2017/2018] Introduction to Software Architecture
[2017/2018] Introduction to Software Architecture[2017/2018] Introduction to Software Architecture
[2017/2018] Introduction to Software ArchitectureIvano Malavolta
 
[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineering[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineeringIvano Malavolta
 
Mobile Apps quality - a tale about energy, performance, and users’ perception
Mobile Apps quality - a tale about energy, performance, and users’ perceptionMobile Apps quality - a tale about energy, performance, and users’ perception
Mobile Apps quality - a tale about energy, performance, and users’ perceptionIvano Malavolta
 

More from Ivano Malavolta (20)

Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...
Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...
Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...
 
The H2020 experience
The H2020 experienceThe H2020 experience
The H2020 experience
 
The Green Lab - Research cocktail @Vrije Universiteit Amsterdam (October 2020)
The Green Lab - Research cocktail  @Vrije Universiteit Amsterdam (October 2020)The Green Lab - Research cocktail  @Vrije Universiteit Amsterdam (October 2020)
The Green Lab - Research cocktail @Vrije Universiteit Amsterdam (October 2020)
 
Software sustainability and Green IT
Software sustainability and Green ITSoftware sustainability and Green IT
Software sustainability and Green IT
 
Navigation-aware and Personalized Prefetching of Network Requests in Android ...
Navigation-aware and Personalized Prefetching of Network Requests in Android ...Navigation-aware and Personalized Prefetching of Network Requests in Android ...
Navigation-aware and Personalized Prefetching of Network Requests in Android ...
 
How Maintainability Issues of Android Apps Evolve [ICSME 2018]
How Maintainability Issues of Android Apps Evolve [ICSME 2018]How Maintainability Issues of Android Apps Evolve [ICSME 2018]
How Maintainability Issues of Android Apps Evolve [ICSME 2018]
 
Collaborative Model-Driven Software Engineering: a Classification Framework a...
Collaborative Model-Driven Software Engineering: a Classification Framework a...Collaborative Model-Driven Software Engineering: a Classification Framework a...
Collaborative Model-Driven Software Engineering: a Classification Framework a...
 
Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...
Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...
Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...
 
Modeling objects interaction via UML sequence diagrams [Software Design] [Com...
Modeling objects interaction via UML sequence diagrams [Software Design] [Com...Modeling objects interaction via UML sequence diagrams [Software Design] [Com...
Modeling objects interaction via UML sequence diagrams [Software Design] [Com...
 
Modeling behaviour via UML state machines [Software Design] [Computer Science...
Modeling behaviour via UML state machines [Software Design] [Computer Science...Modeling behaviour via UML state machines [Software Design] [Computer Science...
Modeling behaviour via UML state machines [Software Design] [Computer Science...
 
Object-oriented design patterns in UML [Software Design] [Computer Science] [...
Object-oriented design patterns in UML [Software Design] [Computer Science] [...Object-oriented design patterns in UML [Software Design] [Computer Science] [...
Object-oriented design patterns in UML [Software Design] [Computer Science] [...
 
Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...
Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...
Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...
 
Requirements engineering with UML [Software Design] [Computer Science] [Vrije...
Requirements engineering with UML [Software Design] [Computer Science] [Vrije...Requirements engineering with UML [Software Design] [Computer Science] [Vrije...
Requirements engineering with UML [Software Design] [Computer Science] [Vrije...
 
Modeling and abstraction, software development process [Software Design] [Com...
Modeling and abstraction, software development process [Software Design] [Com...Modeling and abstraction, software development process [Software Design] [Com...
Modeling and abstraction, software development process [Software Design] [Com...
 
[2017/2018] Agile development
[2017/2018] Agile development[2017/2018] Agile development
[2017/2018] Agile development
 
Reconstructing microservice-based architectures
Reconstructing microservice-based architecturesReconstructing microservice-based architectures
Reconstructing microservice-based architectures
 
[2017/2018] Architectural languages
[2017/2018] Architectural languages[2017/2018] Architectural languages
[2017/2018] Architectural languages
 
[2017/2018] Introduction to Software Architecture
[2017/2018] Introduction to Software Architecture[2017/2018] Introduction to Software Architecture
[2017/2018] Introduction to Software Architecture
 
[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineering[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineering
 
Mobile Apps quality - a tale about energy, performance, and users’ perception
Mobile Apps quality - a tale about energy, performance, and users’ perceptionMobile Apps quality - a tale about energy, performance, and users’ perception
Mobile Apps quality - a tale about energy, performance, and users’ perception
 

Recently uploaded

Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 

Recently uploaded (20)

Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 

[2015/2016] Modern development paradigms

  • 4. An Example You are constructing software that supports a bank loan office There are 20 products in your product line An existing module calculates customer interest payment – Perfectly adequate for 19 of the products – Needs 240 lines modification for Delaware
  • 5. How to Manage the Modifications? One strategy is to make another copy of the affected module and insert the necessary changes – Called “clone and own” – Fast and easy – Does not scale! • Suppose each of the 20 products has 1000 modules • Potentially huge number of distinct versions of the product to maintain A better strategy is to introduce a “variation point” in the module and manage the variation point with, e.g., a configuration parameter – Setting configuration parameter to “normal” will generate the 19 products as before – Setting the configuration parameter to “Delaware” will generate the new version specifically for Delaware
  • 6. Product lines A set of related products that have substantialcommonality – In general, the commonality exists at the architecture level One potential ‘silver bullet’ of software engineering – Power through reuse of • Engineering knowledge • Existing product architectures, styles, patterns • Pre-existing software components and connectors B A B Common A Common A Common B (a) (b) (c)
  • 10. The ROI of SPL David M. Weiss and Chi Tau Robert Lai. 1999. Software Product-Line Engineering: A Family-Based Software Development Process. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA.
  • 12. Conceptual framework of PLs Image © Paolo Ciancarini
  • 13. Assets DEF: artifacts that are representable with software and either compose a product or support the engineering process to create a product The system needs to be designed for being – Reusable: • is fully documented • is verified independently with high confidence – Usable: • is adaptable and that is usable in a variety of situations Design for reuse/use involves – analysis to identify explicitly variations to anticipate adaptations – design for adaptability, engineered a priori to create assets for future developments
  • 14. Examples of assets • requirements • design specifications • design models • source code • build files • test plans and test cases • user documentation • repair manuals and installation guides • project budgets, schedules, and work plans • product calibration and configuration files • data models and parts lists • …
  • 15. A product-line architecture Definition A product-line architecture captures the architectures of many related products simultaneously Generally employs explicit variation points in the architecture indicating where design decisions may diverge from product to product 15
  • 16. “Lite” “Demo” “Pro” A lunar lander product line
  • 17. Product component table Helps us decide whether creating a product line is viable or feasible DataStore DataStoreConnector GameLogic GameLogicConnector Text-basedUI UIPlug-insConnector GraphicalUI SystemClock SystemClockConnector DemoReminder Lite X X X X X X Demo X X X X X X X X X X Pro X X X X X X
  • 18. Group components into features Not a mechanical process Attempt to identify (mostly) orthogonal features, or features that would be beneficial in different products DataStore DataStoreConnector GameLogic GameLogicConnector Text-basedUI UIPlug-insConnector GraphicalUI SystemClock SystemClockConnector DemoReminder Lite X X X X X X Demo X X X X X X X X X X Pro X X X X X X
  • 19. Reconstitute products from features Use technical and business knowledge to identify which combinations form feasible or marketable products that will be constructed CoreElements TextUI GraphicalUI TimeLimited Lunar Lander Lite X X Lunar Lander Demo X X X Lunar Lander Pro X X
  • 20. How to represent variability? 1. Integratedvariability modeling – variability concepts are introduced into existing modelling languages or document templates 2. Orthogonal variability modeling – Ad-hoc models for variability representation • called feature models • separated from architecturalmodels • reusable independently from the used ALs • understandable by non-technical stakeholders 20
  • 21. 1 - Integrated variability modeling Architectural models need to be diversified with information about variation points and features Not all ALs have good support for this – Exceptions include • Koala • xADL 2.0 – These ALs have explicit support for capturing variation points
  • 22. 22
  • 23. 2 – Orthogonal variability modeling The variability of the product line is treated as a first class product line artifact à the feature model Note that commonalities are not represented here
  • 24. Concepts Variation point – a variable item and thus defines “what can vary” (without saying how it can vary) Variant – a concrete variation – is related to a variation point Variability constraints – restrictions about the variability – e.g. • to define permissible combinations of variants in an application • to define that the selection of one variant requires or excludes the selection of another variant
  • 25. Feature model in the automotive domain Exemplar of Automotive Architecture with Variability. Kacper Bak , Marko Novakovic , Leonardo Passos. Technical report.
  • 26. Product-line selection is the process of extracting a single product architecture (or smaller product line) from an architectural model that contains explicit points of variation ALs such as Koala and xADL 2.0 can do selection automaticallywith tools Uses: product lines for feature selection
  • 27. Products in a product line don’t have to exclusively capture alternatives – They can also capture variation over time Uses: product lines for evolution
  • 28. Uses: product lines for evolution
  • 29. Implementation issues Important to partition implementations along variation- point boundaries Common File1.java File2.java File3.java File4.java A B Common File1.java File2.java File3.java File4.java A B (a) (b)Bad Good
  • 30. Implementation issues 2 Keeping evolving architectures and version-controlled source repositories (e.g., Git, SVN) in sync Text-Based UI Component Graphical UI Component 1.0 2.0 3.0 2.1 4.0 2.2 Text-based Evolution Graphical Fork UI.java (as versioned in a software configuration management system)
  • 31. Example: SPL for robotics L. Gherardi, “Variability modeling and resolution in component-based robotics systems,” PhD Thesis, 2013.
  • 32. Example: SPL for robotics L. Gherardi, “Variability modeling and resolution in component-based robotics systems,” PhD Thesis, 2013.
  • 34. Introduction to service orientation Three individuals, each capable of providing a distinct service
  • 35. Introduction to service orientation A company that employs these three people can compose their capabilities to carry out its business
  • 36. Services are collections of capabilities Much like a human, an automated service can provide multiple capabilities Public capabilities are commonly expressedvia a published service contract (much like a traditionalAPI)
  • 37. Service composition A service composition is a coordinated aggregate of services The functional context of each service is agnostic to any business process à services can participate in multiple service compositions à reusability + testability
  • 38. Services inventory Establishes a pool of services, many of which will be deliberately designed to be reused within multiple service compositions
  • 39. SOA principles 1. Standardized service contract 2. Service loose coupling 3. Service abstraction 4. Service reusability 5. Service autonomy 6. Service statelessness 7. Service discoverability 8. Service composability
  • 40. 1 - Standardized service contract Services within the same service inventory are in compliance with the same contract design standards “contract first” approach
  • 41. 2 - Service loose coupling Service contracts are decoupled from their surrounding environment The service contract be the sole means of accessing service logic and resources
  • 42. 3 - Service abstraction Service contracts contain only essential information Information about services is limited to what is published in service contracts Consumers may be unaware that a service is composing others
  • 43. 4 - Service reusability Services contain and express agnostic logic Services can be positioned as reusable enterprise resources
  • 44. 5 - Service autonomy Services exercise a high level of control over their underlying runtime execution environment Reducing shared access to service resources and increasing physical isolation can raise a service's ability to function autonomously
  • 45. 6 - Service statelessness Services minimize resource consumption by deferring the management of state information when necessary State data management consumes system resources and can result in a significant resource burden when multiple instances of services are concurrently invoked
  • 46. 7 - Service discoverability Services are supplemented with communicative metadata by which they can be effectively discovered and interpreted It enables a wide range of project team members to effectively carry out the discovery process and not to limit it to those with technical expertise
  • 47. 8 - Service composability Services can be repurposed to solve multiple problems à services must address agnostic or cross-cutting concerns Notice that capabilities are composed within a service composition, not services
  • 49. Service-oriented architecture A means of developing distributed systemswhere the components are stand-alone services Services may execute on different computers from different service providers Standard protocols have been developed to support service communication and information exchange
  • 50. Key standards • SOAP – A message exchange standard that supports service communication • WSDL (Web Service Definition Language) – To define a service interface and its bindings • WS-BPEL – A standard for workflow languages used to define service composition
  • 51. Web service standards Transport (HTTP, HTTPS, SMTP, ...) Messaging (SOAP) Service definition (UDDI, WSDL) Process (WS-BPEL) Support (WS-Security, WS-Addressing, ...) XML technologies (XML, XSD, XSLT, ....)
  • 52. Services as reusable components • A service can be defined as: – A loosely-coupled, reusable software component that encapsulates discrete functionality which may be distributed and programmatically accessed. – A web service is a service that is accessed using standard Internet and XML-based protocols Services are independent – Services do not have a ‘requires’ interface – Services rely on message-based communication with messages expressedin XML SOA VS component-based systems
  • 53. WSDL: Web Service Description Language The service interface can be defined in a service description expressed in WSDL (Web Service Description Language) • The WSDL specification defines – what operations the service supports – the format of the messages that are sent and received by the service – how the service is accessed • the binding betweenthe abstract interface and the concrete set of protocols – where the service is located • This is usually expressed as a URI (UniversalResource Identifier)
  • 54. Organization of a WSDL specification Intro Abstract interface Concrete implementation WSDL service definition XML namespace declarations Type declarations Interface declarations Message declarations Binding declarations Endpoint declarations
  • 55. Part of a WSDL description for a web service Define some of the types used. Assume that the namespace prefixes ‘ws’ refers to the namespace URI for XML schemas and the namespace prefix associated with this definition is weathns. <types> <xs: schema targetNameSpace = “http://.../weathns” xmlns: weathns = “http://…/weathns” > <xs:element name = “PlaceAndDate” type = “pdrec” /> <xs:element name = “MaxMinTemp” type = “mmtrec” /> <xs: element name = “InDataFault” type = “errmess” /> <xs: complexType name = “pdrec” <xs: sequence> <xs:element name = “town” type = “xs:string”/> <xs:element name = “country” type = “xs:string”/> <xs:element name = “day” type = “xs:date” /> </xs:complexType> Definitions of MaxMinType and InDataFault here </schema> </types>
  • 56. Part of a WSDL description for a web service Now define the interface and its operations. In this case, there is only a single operation to return maximum and minimum temperatures. <interface name = “weatherInfo” > <operation name = “getMaxMinTemps” pattern = “wsdlns: in-out”> <input messageLabel = “In” element = “weathns: PlaceAndDate” /> <output messageLabel = “Out” element = “weathns:MaxMinTemp” /> <outfault messageLabel = “Out” element = “weathns:InDataFault” /> </operation> </interface>
  • 57. What this lecture means to you? • Software product lines exploit the commonalities of a family of systems and systematicallyhandle their variations • Commonality is a property shared by all applications of the family – e.g., all mobile phones allow users to make calls • Product line applications may differ in terms of features, functional and quality requirements they fulfill – e.g., some tablet computers may include mobile broadband connectivity, others not • Service-oriented software engineering is based on the notion that programs can be constructed by composing independent services which encapsulate reusable functionality • Service interfaces can be defined in WSDL – A WSDL specification includes a definition of the interface types and operations, the binding protocol used by the service and the service location
  • 58. References Andreas Metzger and Klaus Pohl. 2014. Software product line engineering and variability management: achievements and challenges. In Proceedings of the on Future of Software Engineering (FOSE 2014). ACM, New York, NY, USA, 70-84.
  • 59. Contact Ivano Malavolta | Post-doc researcher Gran Sasso Science Institute iivanoo ivano.malavolta@gssi.infn.it www.ivanomalavolta.com