SlideShare a Scribd company logo
1 of 78
Download to read offline
Modern development paradigms 
Ivano Malavolta
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 18 
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 substantial commonality 
– 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 
6
Business motivation for product lines 
Traditional Software 
Engineering 
7
Business motivation for product lines 
Traditional Software 
Engineering 
8
Business motivation for product lines 
Product-line-based 
engineering
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 
Reuse in general needs to be planned 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 
• …
Capturing product line architectures 
B 
A 
B 
Common 
A 
Common 
A 
Common 
B 
(a) (b) (c) 
• Common: features common to all products 
• A: features specific to product A 
• B: features specific to product B 
• Product A = Common + A 
• Product B = Common + B 15 
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
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 
16
A lunar lander product line 
“Lite” “Demo” “Pro”
Product component table 
Helps us decide 
whether creating 
a product line is 
viable or feasible 
Data Store 
Data Store Connector 
Game Logic 
Game Logic Connector 
Text-based UI 
UI Plug-ins Connector 
Graphical UI 
System Clock 
System Clock Connector 
Demo Reminder 
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 
Data Store 
Data Store Connector 
Game Logic 
Game Logic Connector 
Text-based UI 
UI Plug-ins Connector 
Graphical UI 
System Clock 
System Clock Connector 
Demo Reminder 
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 
Core Elements 
Text UI 
Graphical UI 
Time Limited 
Lunar Lander Lite X X 
Lunar Lander Demo X X X 
Lunar Lander Pro X X
How to represent variability? 
1. Integrated variability 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 architectural models 
• reusable independently from the used ALs 
• understandable by non-technical stakeholders 
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
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
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.
Uses: product lines for feature selection 
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 
automatically with tools
Uses: product lines for evolution 
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 ‘what-if’ analysis 
In addition to alternative products and different versions of 
the same product, product lines can capture different 
potential products 
– Selection can be used to quickly generate product architectures 
for potential products 
– These can be checked for certain properties or subjected to more 
rigorous analysis for feasibility or quality 
– Can also be used to generate new product ideas 
30
Implementation issues 
Important to partition implementations along variation-point 
boundaries 
File1.java 
Common 
File2.java 
File3.java 
File4.java 
A 
B 
File1.java 
Common 
File2.java 
File3.java 
File4.java 
A 
B 
Ba(ad) G(bo) od
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 
Text-based 
Evolution 
Graphical 
3.0 2.1 
4.0 2.2 
Fork 
UI.java 
(as versioned in a software 
configuration management system)
Unifying products with different 
heritage 
Often, the idea to create a product line emerges after several products 
have been implemented and commonality is noticed 
Strategies include 
– No product line 
• It may be more expensive to create a product line or there may 
not be enough commonality 
– One master product 
• One product architecture becomes the basis for the product 
line 
– Hybrid 
• A new product line architecture emerges out of many products 
• Seems ideal but can be hard in practice 
33
Product lines in their context 
Architectural Styles 
– Can be general or domain-specific 
– Provides general guidelines for diverse kinds of applications 
– Focus on –ility development 
Domain-specific software architectures 
– Domain specific 
– Includes elaborate domain model and specific reference 
architecture 
Product lines 
– Explicit set of related products with common aspects 
Style DSSA / Ref Arch Product Line
Example: lunar lander in Koala 
• No product line features yet 
interface IDataStore{ 
void setAltitude(int altitudeInMeters); 
int getAltitude(); 
void setBurnRate(int newBurnRate); 
int getBurnRate(); 
... 
}
Example: lunar lander PL in Koala 
• Switch construct routes 
calls to one of two 
potential data stores 
• ‘Diversity interface’ lets 
game logic component 
select callee from 
external config 
component 
• Same IDataStore 
interface ensures call 
compatibility
Example 2: SPL for robotics 
L. Gherardi, “Variability modeling and resolution in component-based 
robotics systems,” PhD Thesis, 2013.
Example 2: SPL for robotics 
L. Gherardi, “Variability modeling and resolution in component-based 
robotics systems,” PhD Thesis, 2013.
Open research challenges in 
variability modeling and analysis 
• Variability modelling 
– Understanding tradeoffs between expressiveness and analyzability 
– Interrelating variability with base models 
– Handling large-scale variability models 
• Variability analysis 
– Metrics for performance of solvers prediction 
– Large-scale, realistic variability models for empirical studies 
• Product management 
– Scope optimization 
– Artifact-interrelations in multi-level product lines
Open research challenges in domain 
engineering 
• Domain requirements engineering 
– Interrelation between scoping and requirements engineering 
– Interrelation between requirements engineering and other 
development activities 
– Impact of requirements changes 
• Domain design 
– Building resilient service-oriented product lines 
– Delayed design decision and variability 
– SPLE and cloud computing 
– Variability in quality attributes 
• Domain realization 
– Mapping of product line variability and software 
variability
Open research challenges in domain 
engineering 2 
• Quality assurance 
– Causes for failures 
– Inter-model verification 
– Empirical evidence 
– Empowering additional quality assurance techniques during 
domain engineering
Open research challenges in 
application engineering 
• Application requirements engineering 
– ︎Eliciting application-specific requirements 
– Handling application-specific deviations 
• Application design 
– ︎Documentation of application design alternatives 
– Impact of application-specific extensions 
• Application realization 
– Framing application-specific programming 
– Extended configuration mechanism 
– Product line development environments
Open research challenges in 
application engineering 
• Application quality assurance 
– Minimizing test redundancy 
– Correct variability bindings 
– Empowering additional quality assurance techniques 
– Empirical evidence 
• Variability management in non-product-line settings 
• Leveraging instantaneous feedback 
• Open world assumption 
– Exploration of autonomic computing principles 
– Reasoning in the presence of variability and uncertainty 
– Human-in-the-loop adaptations 
– Run-time quality assurance
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 expressed via a published 
service contract (much like a traditional API)
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
Basic example of service composition 
MASHUP 
When data and information from various sources integrated in order to 
provide new features and services on a single graphical interface 
Data 
Web 
services 
RSS 
feed 
Platform 
Mashup APIs 
application 
Single graphical interface
Basic example of service composition
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 systems where 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
Service-oriented architecture 
Service 
registry 
Service 
requestor 
Service 
provider 
Service 
Find Publish 
Bind (SOAP) 
(WSDL)
Benefits of SOA 
• Services can be provided locally or outsourced to external 
providers 
• Services are language-independent 
• Investment in legacy systems can be preserved 
• Inter-organisational computing is facilitated through 
simplified 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 
XML technologies (XML, XSD, XSLT, ....) 
Support (WS-Security, WS-Addressing, ...) 
Process (WS-BPEL) 
Service definition (UDDI, WSDL) 
Messaging (SOAP) 
Transport (HTTP, HTTPS, SMTP, ...)
RESTful web services 
Current web services standards have been criticized as 
‘heavyweight’ standards that are over-general and inefficient 
REST (REpresentational State Transfer) is an architectural style 
based on transferring representations of resources from a server 
to a client 
– This style underlies the web as a whole and is simpler than SOAP/WSDL 
for implementing web services 
– RESTFul services involve a lower overhead 
We will have a seminar on 
REST in the next weeks
Example: in-car information system 
1. Provides drivers with information on weather, road traffic conditions, 
local information etc. 
2. It is linked to car radio so that information is delivered as a signal on a 
specific radio channel 
3. The car is equipped with GPS receiver to discover its position and, 
based on that position, the system accesses a range of information 
services 
4. Information may be delivered in the driver’s specified language
Example: in-car information system 
User interface 
Locator 
Discovers car 
position 
Weather 
info 
Receives request 
from user 
Receiver 
Receives 
information stream 
from services 
Transmitter 
Facilities 
info 
Sends position and 
information request 
to services 
Radio 
Translates digital 
info stream to 
radio signal 
In-car software system 
Mobile Info Service 
Translator 
Road 
locator 
Traffic 
info 
Collates information 
Road traffic info 
command 
gps coord 
gps 
gps coord coord gps coord 
Language 
Info info 
stream 
Service discovery 
Finds available 
services
Advantage of SOA for this application 
It is not necessary to decide when the system is 
programmed or deployed what service provider should be 
used or what specific services should be accessed 
– As the car moves around, the in-car software uses the service 
discovery service to find the most appropriate information service 
and binds to that 
– Because of the use of a translation service, it can move across 
borders and therefore make local information available to people 
who don’t speak the local language
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 
SOA 
VS 
component-based systems 
Services are independent 
– Services do not have a ‘requires’ interface 
– Services rely on message-based communication with messages 
expressed in XML
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 between the abstract interface and the concrete set of 
protocols 
– where the service is located 
• This is usually expressed as a URI (Universal Resource Identifier)
Organization of a WSDL specification 
WSDL service definition 
Intro 
Abstract interface 
Concrete 
implementation 
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 systematically handle 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

Sightly - AEM6 UI Development using JS and JAVA
Sightly - AEM6 UI Development using JS and JAVASightly - AEM6 UI Development using JS and JAVA
Sightly - AEM6 UI Development using JS and JAVAYash Mody
 
WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...Fabio Franzini
 
2/15/2012 - Wrapping Your Head Around the SharePoint Beast
2/15/2012 - Wrapping Your Head Around the SharePoint Beast2/15/2012 - Wrapping Your Head Around the SharePoint Beast
2/15/2012 - Wrapping Your Head Around the SharePoint BeastMark Rackley
 
SPTechCon - Share point and jquery essentials
SPTechCon - Share point and jquery essentialsSPTechCon - Share point and jquery essentials
SPTechCon - Share point and jquery essentialsMark Rackley
 
The Magic Revealed: Four Real-World Examples of Using the Client Object Model...
The Magic Revealed: Four Real-World Examples of Using the Client Object Model...The Magic Revealed: Four Real-World Examples of Using the Client Object Model...
The Magic Revealed: Four Real-World Examples of Using the Client Object Model...SPTechCon
 
Workshop HTML5+PhoneGap by Ivano Malavolta
Workshop HTML5+PhoneGap by Ivano Malavolta Workshop HTML5+PhoneGap by Ivano Malavolta
Workshop HTML5+PhoneGap by Ivano Malavolta Commit University
 
[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
 
Codemotion 2013 - Designing complex applications using html5 and knockoutjs
Codemotion 2013 - Designing complex applications using html5 and knockoutjsCodemotion 2013 - Designing complex applications using html5 and knockoutjs
Codemotion 2013 - Designing complex applications using html5 and knockoutjsFabio Franzini
 
MVC & SQL_In_1_Hour
MVC & SQL_In_1_HourMVC & SQL_In_1_Hour
MVC & SQL_In_1_HourDilip Patel
 
Building search app with ElasticSearch
Building search app with ElasticSearchBuilding search app with ElasticSearch
Building search app with ElasticSearchLukas Vlcek
 
SharePoint Saturday St. Louis - SharePoint & jQuery
SharePoint Saturday St. Louis - SharePoint & jQuerySharePoint Saturday St. Louis - SharePoint & jQuery
SharePoint Saturday St. Louis - SharePoint & jQueryMark Rackley
 
Bringing HTML5 alive in SharePoint
Bringing HTML5 alive in SharePointBringing HTML5 alive in SharePoint
Bringing HTML5 alive in SharePointChad Schroeder
 
HTML5 & CSS3 refresher for mobile apps
HTML5 & CSS3 refresher for mobile appsHTML5 & CSS3 refresher for mobile apps
HTML5 & CSS3 refresher for mobile appsIvano Malavolta
 
RapidApp - YAPC::NA 2014
RapidApp - YAPC::NA 2014RapidApp - YAPC::NA 2014
RapidApp - YAPC::NA 2014Henry Van Styn
 
tTecniche di sviluppo mobile per share point 2013 e office 365
tTecniche di sviluppo mobile per share point 2013 e office 365 tTecniche di sviluppo mobile per share point 2013 e office 365
tTecniche di sviluppo mobile per share point 2013 e office 365 Fabio Franzini
 
Rapi::Blog talk - TPC 2017
Rapi::Blog talk - TPC 2017Rapi::Blog talk - TPC 2017
Rapi::Blog talk - TPC 2017Henry Van Styn
 
SPSDenver - SharePoint & jQuery - What I wish I would have known
SPSDenver - SharePoint & jQuery - What I wish I would have knownSPSDenver - SharePoint & jQuery - What I wish I would have known
SPSDenver - SharePoint & jQuery - What I wish I would have knownMark Rackley
 

What's hot (20)

Sightly - AEM6 UI Development using JS and JAVA
Sightly - AEM6 UI Development using JS and JAVASightly - AEM6 UI Development using JS and JAVA
Sightly - AEM6 UI Development using JS and JAVA
 
WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...
 
2/15/2012 - Wrapping Your Head Around the SharePoint Beast
2/15/2012 - Wrapping Your Head Around the SharePoint Beast2/15/2012 - Wrapping Your Head Around the SharePoint Beast
2/15/2012 - Wrapping Your Head Around the SharePoint Beast
 
SPTechCon - Share point and jquery essentials
SPTechCon - Share point and jquery essentialsSPTechCon - Share point and jquery essentials
SPTechCon - Share point and jquery essentials
 
Apache Cordova 4.x
Apache Cordova 4.xApache Cordova 4.x
Apache Cordova 4.x
 
The Magic Revealed: Four Real-World Examples of Using the Client Object Model...
The Magic Revealed: Four Real-World Examples of Using the Client Object Model...The Magic Revealed: Four Real-World Examples of Using the Client Object Model...
The Magic Revealed: Four Real-World Examples of Using the Client Object Model...
 
Workshop HTML5+PhoneGap by Ivano Malavolta
Workshop HTML5+PhoneGap by Ivano Malavolta Workshop HTML5+PhoneGap by Ivano Malavolta
Workshop HTML5+PhoneGap by Ivano Malavolta
 
[2015/2016] HTML5 and CSS3 Refresher
[2015/2016] HTML5 and CSS3 Refresher[2015/2016] HTML5 and CSS3 Refresher
[2015/2016] HTML5 and CSS3 Refresher
 
Codemotion 2013 - Designing complex applications using html5 and knockoutjs
Codemotion 2013 - Designing complex applications using html5 and knockoutjsCodemotion 2013 - Designing complex applications using html5 and knockoutjs
Codemotion 2013 - Designing complex applications using html5 and knockoutjs
 
MVC & SQL_In_1_Hour
MVC & SQL_In_1_HourMVC & SQL_In_1_Hour
MVC & SQL_In_1_Hour
 
Building search app with ElasticSearch
Building search app with ElasticSearchBuilding search app with ElasticSearch
Building search app with ElasticSearch
 
SharePoint Saturday St. Louis - SharePoint & jQuery
SharePoint Saturday St. Louis - SharePoint & jQuerySharePoint Saturday St. Louis - SharePoint & jQuery
SharePoint Saturday St. Louis - SharePoint & jQuery
 
EVOLVE'14 | Enhance | Gabriel Walt | Sightly Component Development
EVOLVE'14 | Enhance | Gabriel Walt | Sightly Component DevelopmentEVOLVE'14 | Enhance | Gabriel Walt | Sightly Component Development
EVOLVE'14 | Enhance | Gabriel Walt | Sightly Component Development
 
Bringing HTML5 alive in SharePoint
Bringing HTML5 alive in SharePointBringing HTML5 alive in SharePoint
Bringing HTML5 alive in SharePoint
 
HTML5 & CSS3 refresher for mobile apps
HTML5 & CSS3 refresher for mobile appsHTML5 & CSS3 refresher for mobile apps
HTML5 & CSS3 refresher for mobile apps
 
AEM - Client Libraries
AEM - Client LibrariesAEM - Client Libraries
AEM - Client Libraries
 
RapidApp - YAPC::NA 2014
RapidApp - YAPC::NA 2014RapidApp - YAPC::NA 2014
RapidApp - YAPC::NA 2014
 
tTecniche di sviluppo mobile per share point 2013 e office 365
tTecniche di sviluppo mobile per share point 2013 e office 365 tTecniche di sviluppo mobile per share point 2013 e office 365
tTecniche di sviluppo mobile per share point 2013 e office 365
 
Rapi::Blog talk - TPC 2017
Rapi::Blog talk - TPC 2017Rapi::Blog talk - TPC 2017
Rapi::Blog talk - TPC 2017
 
SPSDenver - SharePoint & jQuery - What I wish I would have known
SPSDenver - SharePoint & jQuery - What I wish I would have knownSPSDenver - SharePoint & jQuery - What I wish I would have known
SPSDenver - SharePoint & jQuery - What I wish I would have known
 

Similar to Modern development paradigms

[2015/2016] Modern development paradigms
[2015/2016] Modern development paradigms[2015/2016] Modern development paradigms
[2015/2016] Modern development paradigmsIvano Malavolta
 
[2016/2017] Modern development paradigms
[2016/2017] Modern development paradigms [2016/2017] Modern development paradigms
[2016/2017] Modern development paradigms Ivano 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
 
openCPQ - A React-Based Product-Configuration Toolkit
openCPQ - A React-Based Product-Configuration ToolkitopenCPQ - A React-Based Product-Configuration Toolkit
openCPQ - A React-Based Product-Configuration ToolkitTim Geisler
 
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
 
Software variability management - 2017
Software variability management - 2017Software variability management - 2017
Software variability management - 2017XavierDevroey
 
Software variability management - 2019
Software variability management - 2019Software variability management - 2019
Software variability management - 2019XavierDevroey
 
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
 
Lecture 4 software process model (2)
Lecture 4   software process model (2)Lecture 4   software process model (2)
Lecture 4 software process model (2)IIUI
 
SW Product Line Engineering
SW Product Line EngineeringSW Product Line Engineering
SW Product Line EngineeringKeshav Kumar
 
Building modular software with OSGi - Ulf Fildebrandt
Building modular software with OSGi - Ulf FildebrandtBuilding modular software with OSGi - Ulf Fildebrandt
Building modular software with OSGi - Ulf Fildebrandtmfrancis
 
HelloChapter6fgfg-Artifacts__of_theProcess.ppt
HelloChapter6fgfg-Artifacts__of_theProcess.pptHelloChapter6fgfg-Artifacts__of_theProcess.ppt
HelloChapter6fgfg-Artifacts__of_theProcess.ppt19526YuvaKumarIrigi
 
agile architecture - two hour presentation - two worked examples
agile architecture  - two hour presentation - two worked examplesagile architecture  - two hour presentation - two worked examples
agile architecture - two hour presentation - two worked examplesMark Collins-Cope
 
Using Model Driven Development to Easily Manage Variations in Software Define...
Using Model Driven Development to Easily Manage Variations in Software Define...Using Model Driven Development to Easily Manage Variations in Software Define...
Using Model Driven Development to Easily Manage Variations in Software Define...ADLINK Technology IoT
 
Plugin-based IVI Architectures with Qt
Plugin-based IVI Architectures with Qt Plugin-based IVI Architectures with Qt
Plugin-based IVI Architectures with Qt ICS
 
Building product suggestions for a BIM model based on rule sets and a semant...
Building product suggestions for a BIM model based on rule sets and a  semant...Building product suggestions for a BIM model based on rule sets and a  semant...
Building product suggestions for a BIM model based on rule sets and a semant...Gonçal Costa Jutglar
 
Next Generation Component Management - Altium Designer
Next Generation Component Management - Altium DesignerNext Generation Component Management - Altium Designer
Next Generation Component Management - Altium DesignerAltium
 
Software development PROCESS
Software development PROCESSSoftware development PROCESS
Software development PROCESSIvano Malavolta
 
Configuring in the Browser, Really!
Configuring in the Browser, Really!Configuring in the Browser, Really!
Configuring in the Browser, Really!Tim Geisler
 
Software Product Lines
Software Product LinesSoftware Product Lines
Software Product LinesJason Baragry
 

Similar to Modern development paradigms (20)

[2015/2016] Modern development paradigms
[2015/2016] Modern development paradigms[2015/2016] Modern development paradigms
[2015/2016] Modern development paradigms
 
[2016/2017] Modern development paradigms
[2016/2017] Modern development paradigms [2016/2017] Modern development paradigms
[2016/2017] 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
 
openCPQ - A React-Based Product-Configuration Toolkit
openCPQ - A React-Based Product-Configuration ToolkitopenCPQ - A React-Based Product-Configuration Toolkit
openCPQ - A React-Based Product-Configuration Toolkit
 
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)
 
Software variability management - 2017
Software variability management - 2017Software variability management - 2017
Software variability management - 2017
 
Software variability management - 2019
Software variability management - 2019Software variability management - 2019
Software variability management - 2019
 
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
 
Lecture 4 software process model (2)
Lecture 4   software process model (2)Lecture 4   software process model (2)
Lecture 4 software process model (2)
 
SW Product Line Engineering
SW Product Line EngineeringSW Product Line Engineering
SW Product Line Engineering
 
Building modular software with OSGi - Ulf Fildebrandt
Building modular software with OSGi - Ulf FildebrandtBuilding modular software with OSGi - Ulf Fildebrandt
Building modular software with OSGi - Ulf Fildebrandt
 
HelloChapter6fgfg-Artifacts__of_theProcess.ppt
HelloChapter6fgfg-Artifacts__of_theProcess.pptHelloChapter6fgfg-Artifacts__of_theProcess.ppt
HelloChapter6fgfg-Artifacts__of_theProcess.ppt
 
agile architecture - two hour presentation - two worked examples
agile architecture  - two hour presentation - two worked examplesagile architecture  - two hour presentation - two worked examples
agile architecture - two hour presentation - two worked examples
 
Using Model Driven Development to Easily Manage Variations in Software Define...
Using Model Driven Development to Easily Manage Variations in Software Define...Using Model Driven Development to Easily Manage Variations in Software Define...
Using Model Driven Development to Easily Manage Variations in Software Define...
 
Plugin-based IVI Architectures with Qt
Plugin-based IVI Architectures with Qt Plugin-based IVI Architectures with Qt
Plugin-based IVI Architectures with Qt
 
Building product suggestions for a BIM model based on rule sets and a semant...
Building product suggestions for a BIM model based on rule sets and a  semant...Building product suggestions for a BIM model based on rule sets and a  semant...
Building product suggestions for a BIM model based on rule sets and a semant...
 
Next Generation Component Management - Altium Designer
Next Generation Component Management - Altium DesignerNext Generation Component Management - Altium Designer
Next Generation Component Management - Altium Designer
 
Software development PROCESS
Software development PROCESSSoftware development PROCESS
Software development PROCESS
 
Configuring in the Browser, Really!
Configuring in the Browser, Really!Configuring in the Browser, Really!
Configuring in the Browser, Really!
 
Software Product Lines
Software Product LinesSoftware Product Lines
Software Product Lines
 

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] 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
 
[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
 

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] 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
 
[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
 

Recently uploaded

New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 

Recently uploaded (20)

New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 

Modern development paradigms

  • 2. Roadmap Software product-lines Service-oriented architecture
  • 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 18 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 substantial commonality – 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 6
  • 7. Business motivation for product lines Traditional Software Engineering 7
  • 8. Business motivation for product lines Traditional Software Engineering 8
  • 9. Business motivation for product lines Product-line-based engineering
  • 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 Reuse in general needs to be planned 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. Capturing product line architectures B A B Common A Common A Common B (a) (b) (c) • Common: features common to all products • A: features specific to product A • B: features specific to product B • Product A = Common + A • Product B = Common + B 15 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 16. 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 16
  • 17. A lunar lander product line “Lite” “Demo” “Pro”
  • 18. Product component table Helps us decide whether creating a product line is viable or feasible Data Store Data Store Connector Game Logic Game Logic Connector Text-based UI UI Plug-ins Connector Graphical UI System Clock System Clock Connector Demo Reminder 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. Group components into features Not a mechanical process Attempt to identify (mostly) orthogonal features, or features that would be beneficial in different products Data Store Data Store Connector Game Logic Game Logic Connector Text-based UI UI Plug-ins Connector Graphical UI System Clock System Clock Connector Demo Reminder 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
  • 20. Reconstitute products from features Use technical and business knowledge to identify which combinations form feasible or marketable products that will be constructed Core Elements Text UI Graphical UI Time Limited Lunar Lander Lite X X Lunar Lander Demo X X X Lunar Lander Pro X X
  • 21. How to represent variability? 1. Integrated variability 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 architectural models • reusable independently from the used ALs • understandable by non-technical stakeholders 21
  • 22. 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
  • 23. 23
  • 24. 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
  • 25. 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
  • 26. Feature model in the automotive domain Exemplar of Automotive Architecture with Variability. Kacper Bak , Marko Novakovic , Leonardo Passos. Technical report.
  • 27. Uses: product lines for feature selection 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 automatically with tools
  • 28. Uses: product lines for evolution Products in a product line don’t have to exclusively capture alternatives – They can also capture variation over time
  • 29. Uses: product lines for evolution
  • 30. Uses: product lines for ‘what-if’ analysis In addition to alternative products and different versions of the same product, product lines can capture different potential products – Selection can be used to quickly generate product architectures for potential products – These can be checked for certain properties or subjected to more rigorous analysis for feasibility or quality – Can also be used to generate new product ideas 30
  • 31. Implementation issues Important to partition implementations along variation-point boundaries File1.java Common File2.java File3.java File4.java A B File1.java Common File2.java File3.java File4.java A B Ba(ad) G(bo) od
  • 32. 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 Text-based Evolution Graphical 3.0 2.1 4.0 2.2 Fork UI.java (as versioned in a software configuration management system)
  • 33. Unifying products with different heritage Often, the idea to create a product line emerges after several products have been implemented and commonality is noticed Strategies include – No product line • It may be more expensive to create a product line or there may not be enough commonality – One master product • One product architecture becomes the basis for the product line – Hybrid • A new product line architecture emerges out of many products • Seems ideal but can be hard in practice 33
  • 34. Product lines in their context Architectural Styles – Can be general or domain-specific – Provides general guidelines for diverse kinds of applications – Focus on –ility development Domain-specific software architectures – Domain specific – Includes elaborate domain model and specific reference architecture Product lines – Explicit set of related products with common aspects Style DSSA / Ref Arch Product Line
  • 35. Example: lunar lander in Koala • No product line features yet interface IDataStore{ void setAltitude(int altitudeInMeters); int getAltitude(); void setBurnRate(int newBurnRate); int getBurnRate(); ... }
  • 36. Example: lunar lander PL in Koala • Switch construct routes calls to one of two potential data stores • ‘Diversity interface’ lets game logic component select callee from external config component • Same IDataStore interface ensures call compatibility
  • 37. Example 2: SPL for robotics L. Gherardi, “Variability modeling and resolution in component-based robotics systems,” PhD Thesis, 2013.
  • 38. Example 2: SPL for robotics L. Gherardi, “Variability modeling and resolution in component-based robotics systems,” PhD Thesis, 2013.
  • 39. Open research challenges in variability modeling and analysis • Variability modelling – Understanding tradeoffs between expressiveness and analyzability – Interrelating variability with base models – Handling large-scale variability models • Variability analysis – Metrics for performance of solvers prediction – Large-scale, realistic variability models for empirical studies • Product management – Scope optimization – Artifact-interrelations in multi-level product lines
  • 40. Open research challenges in domain engineering • Domain requirements engineering – Interrelation between scoping and requirements engineering – Interrelation between requirements engineering and other development activities – Impact of requirements changes • Domain design – Building resilient service-oriented product lines – Delayed design decision and variability – SPLE and cloud computing – Variability in quality attributes • Domain realization – Mapping of product line variability and software variability
  • 41. Open research challenges in domain engineering 2 • Quality assurance – Causes for failures – Inter-model verification – Empirical evidence – Empowering additional quality assurance techniques during domain engineering
  • 42. Open research challenges in application engineering • Application requirements engineering – ︎Eliciting application-specific requirements – Handling application-specific deviations • Application design – ︎Documentation of application design alternatives – Impact of application-specific extensions • Application realization – Framing application-specific programming – Extended configuration mechanism – Product line development environments
  • 43. Open research challenges in application engineering • Application quality assurance – Minimizing test redundancy – Correct variability bindings – Empowering additional quality assurance techniques – Empirical evidence • Variability management in non-product-line settings • Leveraging instantaneous feedback • Open world assumption – Exploration of autonomic computing principles – Reasoning in the presence of variability and uncertainty – Human-in-the-loop adaptations – Run-time quality assurance
  • 45. Introduction to service orientation Three individuals, each capable of providing a distinct service
  • 46. Introduction to service orientation A company that employs these three people can compose their capabilities to carry out its business
  • 47. Services are collections of capabilities Much like a human, an automated service can provide multiple capabilities Public capabilities are commonly expressed via a published service contract (much like a traditional API)
  • 48. 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
  • 49. Basic example of service composition MASHUP When data and information from various sources integrated in order to provide new features and services on a single graphical interface Data Web services RSS feed Platform Mashup APIs application Single graphical interface
  • 50. Basic example of service composition
  • 51. Services inventory Establishes a pool of services, many of which will be deliberately designed to be reused within multiple service compositions
  • 52. 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
  • 53. 1 - Standardized service contract Services within the same service inventory are in compliance with the same contract design standards “contract first” approach
  • 54. 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
  • 55. 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
  • 56. 4 - Service reusability Services contain and express agnostic logic Services can be positioned as reusable enterprise resources
  • 57. 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
  • 58. 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
  • 59. 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
  • 60. 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
  • 62. Service-oriented architecture A means of developing distributed systems where 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
  • 63. Service-oriented architecture Service registry Service requestor Service provider Service Find Publish Bind (SOAP) (WSDL)
  • 64. Benefits of SOA • Services can be provided locally or outsourced to external providers • Services are language-independent • Investment in legacy systems can be preserved • Inter-organisational computing is facilitated through simplified information exchange
  • 65. 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
  • 66. Web service standards XML technologies (XML, XSD, XSLT, ....) Support (WS-Security, WS-Addressing, ...) Process (WS-BPEL) Service definition (UDDI, WSDL) Messaging (SOAP) Transport (HTTP, HTTPS, SMTP, ...)
  • 67. RESTful web services Current web services standards have been criticized as ‘heavyweight’ standards that are over-general and inefficient REST (REpresentational State Transfer) is an architectural style based on transferring representations of resources from a server to a client – This style underlies the web as a whole and is simpler than SOAP/WSDL for implementing web services – RESTFul services involve a lower overhead We will have a seminar on REST in the next weeks
  • 68. Example: in-car information system 1. Provides drivers with information on weather, road traffic conditions, local information etc. 2. It is linked to car radio so that information is delivered as a signal on a specific radio channel 3. The car is equipped with GPS receiver to discover its position and, based on that position, the system accesses a range of information services 4. Information may be delivered in the driver’s specified language
  • 69. Example: in-car information system User interface Locator Discovers car position Weather info Receives request from user Receiver Receives information stream from services Transmitter Facilities info Sends position and information request to services Radio Translates digital info stream to radio signal In-car software system Mobile Info Service Translator Road locator Traffic info Collates information Road traffic info command gps coord gps gps coord coord gps coord Language Info info stream Service discovery Finds available services
  • 70. Advantage of SOA for this application It is not necessary to decide when the system is programmed or deployed what service provider should be used or what specific services should be accessed – As the car moves around, the in-car software uses the service discovery service to find the most appropriate information service and binds to that – Because of the use of a translation service, it can move across borders and therefore make local information available to people who don’t speak the local language
  • 71. 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 SOA VS component-based systems Services are independent – Services do not have a ‘requires’ interface – Services rely on message-based communication with messages expressed in XML
  • 72. 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 between the abstract interface and the concrete set of protocols – where the service is located • This is usually expressed as a URI (Universal Resource Identifier)
  • 73. Organization of a WSDL specification WSDL service definition Intro Abstract interface Concrete implementation XML namespace declarations Type declarations Interface declarations Message declarations Binding declarations Endpoint declarations
  • 74. 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>
  • 75. 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>
  • 76. What this lecture means to you? • Software product lines exploit the commonalities of a family of systems and systematically handle 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
  • 77. 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.
  • 78. Contact Ivano Malavolta | Post-doc researcher Gran Sasso Science Institute iivanoo ivano.malavolta@gssi.infn.it www.ivanomalavolta.com