hmws – at your service josé luiz fiadeiro professor of software science and engineering
TRANSCRIPT
HMWS – At your Service
José Luiz FiadeiroProfessor of Software Science and Engineering
HMWS – At your Service
2A case of “complexity”
in-the-headmnemonics
result-driven
symbolic information
elementary control flow
“One man and his problem…”(and his program, and his machine)The Science of Algorithms and Complexitynot so much Engineering but more of Craftsmanship (one of a kind)a case for virtuosi
HMWS – At your Service
3A case of “complexity”
in-the-head in-the-small
mnemonics I/O specs
result-driven algorithms
symbolic information
data structures and types
elementary control flow
execute once termination
The need for commercialisation…“One man and his problem…”(and his program, but their machine)The Science of Program Analysis and ConstructionCommerce, but not yet Engineering
HMWS – At your Service
410 years ago, the “software crisis”
The challenge of complexity is not only large but also growing. […]. To keep up with such demand, programmers will have to change the way that they work. "You can't build skyscrapers using carpenters," Curtis quips.
[…] Musket makers did not get more productive until Eli Whitney figured out how to manufacture interchangeable parts that could be assembled by any skilled workman. In like manner, software parts can, if properly standardized, be reused at many different scales.
[…]In April, NIST announced that it was creating an Advanced Technology Program to help engender a market for component-based software.
HMWS – At your Service
5A case of “complexity”
in-the-head in-the-small in-the-large
mnemonics I/O specs complex specs
result-driven algorithms system modules
symbolic information
data structures and types
databases, persistence
elementary control flow
execute once termination
continuous execution
“One man and his problem…”(but their programs)The Science of Software Specification and DesignEngineering
HMWS – At your Service
6The case for new mathematics
Algebraic techniques for structuring specifications“Putting Theories together to Make Specifications”The theory of InstitutionsThe role of Category Theory
Temporal logics for continuous/reactive execution
My first years in Computing Science…
HMWS – At your Service
7The case for objects/components
Builds on a powerful methodological metaphor – clientship
Inheritance hierarchies for reuse
Software construction becomes like child’s play
HMWS – At your Service
8Yet, in 2003 the crisis was going on
Computing has certainly got faster, smarter and cheaper, but it has also become much more complex.
Ever since the orderly days of the mainframe, which allowed tight control of IT, computer systems have become ever more distributed, more heterogeneous and harder to manage. […]
In the late 1990s, the internet and the emergence of e-commerce “broke IT’s back”. Integrating incompatible systems, in particular, has become a big headache. A measure of this increasing complexity is the rapid growth in the IT services industry. […]
HMWS – At your Service
9and the “silver bullet” became…
Computing is becoming a utility and software a service. This will profoundly change the economics of the IT industry. […]
For software truly to become a service, something else has to happen: there has to be a wide deployment of web services. […]
applications will no longer be a big chunk of software that runs on a computer but a combination of web services
The Economist, May 10, 2003
HMWS – At your Service
10But…
Is it Science?
Is it Engineering?
Or is it just “hype”?
Society is clearly concerned…
So is the economy…
What is it about?
HMWS – At your Service
11Web services are…
“self-contained, modular applications that can be described, published, located, and invoked over a network, generally the Web”
Web Services architecture overview
– the next stage of evolution for e-business
IBM www-developerswork
“Sexed-up” components?
HMWS – At your Service
12What is it about?
A personal experience…
HMWS – At your Service
13Too many products
How to choose a mortgage?
The mortgage is just a component of a larger “system”: what about the insurance policies that protect the lender? what about complementing repayment with a savings scheme? what about…
How to choose the right mortgage?How to choose the mortgage that is right for me?
This system is dynamic: interest rates will change; my status will change; will I have to go all over the search process again? How many times?
Is this what I want?
HMWS – At your Service
14From products to services
Abstracts away the identity of the component(s) out of which the service is provided;
Provides an explicit representation of the role under which the service was procured, and which led to the choice of specific components;
The choice of the configuration of components that provides the required service is performed by experts in a more restricted domain;
Service providers have to abide to rules that ensure certain levels of quality
HMWS – At your Service
15Yet a case of “complexity”?
in-the-head in-the-small in-the-large
mnemonics I/O specs complex specs
result-driven algorithms system modules
symbolic information
data structures and types
databases, persistence
elementary control flow
execute once termination
continuous execution
“One man and his problem…”(but their programs)The Science of Software Specification and DesignEngineering
“One man and his problem…”(but their programs)“One man and everybody’s problems…”
HMWS – At your Service
16A case of “complexity”
in-the-head in-the-small in-the-large in-the-world
mnemonics I/O specs complex specs evolving
result-driven algorithms system modules sub-systems & interactions
symbolic information
data structures and types
databases, persistence
separation data computation
elementary control flow
execute once termination
continuous execution
distribution & coordination
HMWS – At your Service
17Same complexity?
“Physiological” complexityderives from the need to account for problems/situations that are “complicated” in the sense that they offer great difficulty in understanding, solving, or explainingthere is nothing necessarily wrong or faulty in them; they are just the unavoidable result of a necessary combination of parts or factors
“Social” complexityderives from the number and “open” nature of interactions that involve “autonomic” parts of a system;it is almost impossible to predict what properties can emerge and how they will evolve as a result of the interactions in place or the dynamics of the population itself.
HMWS – At your Service
18Same Science & Engineering?
“Physiological” complexityserver-to-server, static, linear interaction based on identitiescompile or design time integrationcontracts of usage
“Social” complexitydynamic, mobile and unpredictable interactions based on properties“late” or “just-in-time” integrationquality and trust
HMWS – At your Service
19The age of “interactions”
A truly great challenge!
Requires “new” Engineering methods and techniques
Interactions as first-class entities
Interaction-centric architectures
Requires “new” Scientific basisGeneral Systems Theory
one more chance for Category Theory…
HMWS – At your Service
20What we propose
A confluence of contributions from
Coordination Languages and ModelsSeparation between “computation” and “coordination”
Software ArchitecturesConnectors as first-class citizens
Parallel Program DesignSuperposition
Reconfigurable Distributed SystemsDynamic (run-time) reconfiguration
HMWS – At your Service
21Categorical semantics of superposition
progprog Regulator Regulatorinin r1r1:: intint
r2r2:: intintdodo regreg:: r1≥r2r1≥r2
progprog Account Accountoutout num, num, balbal:: intintinin nn:: intintdodo dep: dep: bal:=bal+n bal:=bal+n[][] witwit:: bal:=bal–n bal:=bal–n
progprog Channel Channelinin aa,,bb:: intintdodo cc
progprog Simple-account Simple-accountoutout num, num, balbal:: intint inin nn:: intintdodo dep: dep:bal:=bal+n bal:=bal+n [] [] witwit::bal≥nbal≥nbal:=bal–nbal:=bal–n
HMWS – At your Service
22Architecture-centric approach
A Y Y AB
B
C
Computation
Coordination
A
Y
X
Compositionality wrt refinement
Y’
Y’
€
⊆
€
⊆ B’
B’
XC
C
wrt evolution
Distribution
G
F
F
G
F
HMWS – At your Service
23Interactions@
IST-2001-32747Architectures for
Mobility
Coordination and Architectures in Category Theory
Evolving Embedded Systems
Services, Policies, Resources and Interactions for Domain and Platform Co-evolution
SPRINTERRELEASE
Scientific Network on Software Evolution
COTS € thefor
Making Component-based Development cost-effective for SMEs
HMWS – At your Service
José Luiz FiadeiroProfessor of Software Science and Engineering
and Sociology?