Dependability of Software and Service as a Key Issue to realize

advertisement
Dependability of Software and Service
as a Key Issue to realize
Ubiquitous Networking Society
Yutaka Kasahara
Vice President
Software Business Promotion Unit, NEC
©Copyright NEC(2008) All rights reserved
1
Ubiquitous networking society
becomes close to reality
Page 2
©Copyright NEC(2008) All rights reserved
Progress toward a Ubiquitous NW Society
Increase in network traffic
Expansion of
e-business markets
• Rapid penetration of Broadband
environment
• Rapid growth of data traffic to/from
mobile terminals
・Net trading
• Laws on electronic
documents
• Privacy protection
• Japanese SOX act
- Internet securities
- Net auctions
・Expansion of mobile commerce
Individuals
Companies
Society
New information
sources
Diversification of
communications
• Rapid growth of blog and SNS
users
・Use of rich contents
New integrated services
• Coordination of communication and
financial business
- Mobile wallets
• The fusion of communications and
broadcasts
Page 3
Compliance
©Copyright NEC(2008) All rights reserved
•RFIDs
•GPS
•Digital home appliances
NEC’s activities toward Embedded solution domains
Provides embedded solutions with total power of Devices and Software in
domains such as Automobile, Cellular phone, Digital appliance.
Precision
Precision equipment
equipment
Automobile
Automobile
SIP
SIP
Application
IT & NW
fusional area Network
Middleware
Server
( Information system
integrated through
network )
OS
Total
power
Cellular phone
software platform
Infrastructures
for cellular phone
3G Infrastructure
Device & Software
fusional area
Chip, Embedded software
(In-vehicle, Home appliances)
Digital
Digital appliance
appliance
Device
LSI
(Digital appliance, etc.)
*Felica: Trade Mark of SONY
Page 4
©Copyright NEC(2008) All rights reserved
Computer board
Mobile
Mobile
Cellular phone
( with FeliCa, etc.)
Acceleration of New Collaboration
using Multi-functionality of embedded software
¾ New business models for collaboration among different
industries using ubiquitous terminals
¾ Provision of convenient services through collaboration
Retail stores
Train Stations
and Airports
(Cyber cash, Digital coupon)
Payment, ads
Electric ticket, Boarding pass
・更新情報・
・新着・クーポン
・使えるカード一覧・
ドラッグス
トア
レンタル店A
コンビニ
スーパー
百貨店
・所有クーポン一覧全てのカードを見る
・所有スタンプカード/回数券一覧
□設定情報
Online settlement
Rechargeable
using a credit card or
bank account debit
(Electric Money)
online shopping
Mobile Suica
(Mobile wallet)
*Suica: Trade Mark of JR EAST
Page 5
©Copyright NEC(2008) All rights reserved
Examples of embedded software(Japan)
Embedded software size becomes larger and larger, especially in automobile,
cell phone and digital appliances.
Automobile
Cellular Phone
Digital appliances
Environment, safety
& comfort
Value added features &
user friendliness
Entertainment &
security
Software Size※1
Software Size※2
Software(DVD) Size※3
5~8ML
5~10ML
1.8ML
5
X in 5
5X
5 years
years
1ML
2000
1ML
2006
※1:ref. The Nikkei Business Daily 14/6/2005 ,etc
Page 6
5
X in
5X
in 5
5 years
years
©Copyright NEC(2008) All rights reserved
2001
2006
※2:NEC‘s estimation
9
X in
9X
in 3
3 years
years
0.2ML
2002
2005E
※3:ref. Nikkei Electronics 10/11/2004
Embedded Software Market (Japan)
Embedded software market size is currently 35B US$ and continuously
growing with CAGR 14%
(B US$)
(Include in-house & outsource development)
32.7
35.1
27.3
24.1
C
2004
2005
ref. Research and study by METI, Japan
Page 7
©Copyright NEC(2008) All rights reserved
4%
1
R
AG
2006
2007
2008
Fiscal Year
Commoditization in product domains from a software viewpoint
Automobile and digital appliance domains, where embedded
software becomes huge, are in developing period in market
and technology
Product domains and Technical maturity
Cell phone
OA equipment
PC
Digital
appliance
Automobile
Products are value-added
by embedded software.
Robots for
consumer use
Early period
Developing period
Maturation period
Stabilized period
Source: Editing IPA-SEC material
Page 8
©Copyright NEC(2008) All rights reserved
Broader use of embedded software causes the
increase of system troubles
Quality problems caused by software become marked, mainly
due to rapid increase of embedded software size and complexity
< Cases of embedded software failures (Japan)> <Ratio of defects after shipment>
„Company A: Cell phone (May 2005)
Not displaying the incoming call history when pushing
termination key in succession. Unable to overwrite software
when users do a certain action during updating software.
„Company B: Automobile (Oct.2005)
Defect of engine ECU program stops the engine while
vehicle is moving (160 thousands cars)
Operations, Others
Maintenance 5.0%
3.7%
Product plan,
specification
Manufacturing
17.9%
12.7%
Hardware
16.9%
„Company C: HDD & DVD recorder (Jul.2006)
Display becomes blacked out while watching TV through the
tuner of the recorder.
Software
43.8%
„Company D: Automatic ticket gate (Oct.2007)
Automatic termination works when information of invalid IC
cards satisfies certain conditions. (Affects 2.6 million people)
Source: Nikkei Sangyo Newspaper 19 Nov. 2007
Nikkei computer 29 Oct. 2007, Web sites of some companies, etc.
Page 9
©Copyright NEC(2008) All rights reserved
Study result of cause-specific defects in
embedded product domain by METI (IPA)
Source: IPA FY2007 Study report of embedded software industries
Importance of Embedded Software
and it’s dependability
¾ Everyone can access information network environment
anytime and anywhere by using handy terminals, cell phone,
and other appliances in the society
¾ Role of embedded software becomes more and more important
- Software on those terminals and equipments becomes large in
size and involves many highly-sophisticated functions.
- Software bugs may cause serious troubles and accidents.
- Usability is also an important issue to make it usable for
everyone and to avoid human errors
¾ To realize real ubiquitous networking society, dependability and
human-centricity are key issues for embedded software design
and development.
Page 10
©Copyright NEC(2008) All rights reserved
Critical social infrastructures are
highly depending on ICT
Page 11
©Copyright NEC(2008) All rights reserved
Further progress of Critical Infrastructure
► IT and network establish new social infrastructure.
► They will accelerate real-time distributions of money, commerce,
commodity and information across countries, institutions and companies.
Physical
distribution
bases
Branches
Suppliers
Production
Production
Banking
Banking
Logistics
Logistics
Local
Government
Units
Sales
Sales
Real-time distributions of money,
commerce, commodity and information
Government
Government
Consumers
Consumers
Medical
Medical
Clinics
Marketing,
Marketing,Sales
Sales
Accounting,
Accounting,Personnel
Personnelaffairs,
affairs,
General
affairs
General affairs
Page 12
Support
Support
Companies
©Copyright NEC(2008) All rights reserved
Development
Development
Software on critical infrastructure requires
high level dependability
¾The importance of software is remarkably increasing in
constructing and operating critical infrastructures such as
utility systems, road/railroad system, telecommunication,
logistics, medical care and etc.
¾Total system quality and performance are highly depending on
those of software
¾In specific vertical domain such as aerospace, defense and
other areas affecting people’s lives, super high dependability
is required to the systems.
Page 13
©Copyright NEC(2008) All rights reserved
¾Some serious system troubles caused by software bugs and
human operation error are reported. Those troubles influence
so many people’s everyday lives, and the amount of societal
loss sometimes become so large.
Dependability including human operator aspect and social
aspect is a key factor to design and develop secure and
reliable systems
Page 14
©Copyright NEC(2008) All rights reserved
Changes in Software Businesses
based on changes in Technologies
Page 15
©Copyright NEC(2008) All rights reserved
Solution Services provided through Cloud computing
Desktop Cloud
Hardware Cloud
user community
(+marketplace)
vendor services
(SaaS Cloud + α)
Services Cloud
Partner services
(Hardware Cloud + α)
Solution Cloud
communication
Collaboration
Enterprise mashup
Enterprise mashup
Existing system
Cloud Computing
SOA
Web2.0
BI2.0
Gadget
Enterprise mashup
Digital cockpit
User
Partner
Enterprise IT
Access
Out of office
Page 16
©Copyright NEC(2008) All rights reserved
Access
Office
Access
Home
From Outsourcing to SaaS
- Proportion of common use increases
- Number of tenants per a certain capacity of infrastructure
increases
Conventional
Outsourcing
system
Giant
Specific data companies
Big
Big companies
companies
ASP
PaaS
Small
Small and
and medium
medium
companies
companies
(several
(severalhundreds
hundredsof)
of)
Small
and
medium
Small and medium
companies
companies
Each company
use common
infrastructure
Common
usage increase
and functions
Common
parts
Own IT infrastructure by
itself.
SaaS
…
Small
Smalland
andmedium
medium
companies
companies
…
Data center
Operation
outsourcin
g
SaaS providers
and Paas
providers are
separated.
PaaS: Platform as a Service
Page 17
©Copyright NEC(2008) All rights reserved
Dependability is also critical in creating services
・Services are realized and provided with combination of
service elements such as SOA and Mash-Up
-Dependability of each service elements and their interoperability are so critical to establish the dependability of
total services
-Service value is decided through the interaction between
service providers and receivers
•The following innovative technologies are so important
- Metrics for dependability of services including human
and social factors
- Technologies to build up services according to the
expected dependability
Page 18
©Copyright NEC(2008) All rights reserved
How to design and develop
dependable software
- Formal method is a direction to solve the issue -
Page 19
©Copyright NEC(2008) All rights reserved
Dependability, Formal methods
and CxC(Correctness by Construction)
Formal method is one of the core technologies to achieve dependability
Dependability
Safety
Reliability
Security
Availability
Integrity
Maintainability ・・・
・・・・・
Formal Methods
Requirement
Analysis
Architecture
Design
Primary technical factors
for CxC
MDA
Model Driven Architecture
Reengineering ・・・
CxC related systemized technologies
Page 20
©Copyright NEC(2008) All rights reserved
What is Formal methods ?
Collective term for techniques based on mathematics (logic,
set theory, algebra), which describe and verify system
and/or software rigorously and accurately.
Dependability
Formal methods
•Formal description
•Theorem proving
•Model checking
•Tools
Design methods
Mathematics
Domain knowledge
•No execution
•Target : model, program
•No test data
•Able to re-use design
Page 21
©Copyright NEC(2008) All rights reserved
Complementary
Contrasting
characteristics
Testing
•Equivalence partitioning
•Boundary-value analysis
•Decision table
•Cause-result graph
•Need execution
•Target : program
•Depends on test data
•Back to previous phase by Defects
•Hard to re-use design
Research trend of Formal methods
‹ From proving to error-finding ; Light-weight Formal Methods
¾ Emerged from the evolution of model checking
¾ Find inherent errors in design descriptions and programs by
automatic verification
Change towards practical use
Pursue automation with
sacrifice of expressiveness
Supposing full application
in all development phases
→ Not practical
Pursue expressiveness with
sacrifice of automation
Research
Systematic detection of defects
Trend
(Auto check)→ High automation rate
Model checking, program checker,...
Clear design specification by
rigorous language (Formal specification)
Domain model, Design assets,
Standard documents, ...
Guarantee no errors with mathematical proofs (Formal verification)
Trade off between expressiveness and automation
Strong relationship
Ultimate dream
Systematic development with verifying correctness (Correctness by Construction)
Page 22
©Copyright NEC(2008) All rights reserved
Source: Material of NEC
internal seminar by
Prof. Nakajima of NII
Source code Verification Tool for C: VARVEL
„ Statically detect typical run-time error for C from source code.
„ With bounded model checking, check variable values and paths exhaustively.
„ Currently in practical in-house use for commercial product software.
No test programs.
No test data.
List of results.
Trace for each error.
Trace working with
source code viewer.
Source
Sourcefiles
files
ininCC
VARVEL
VARVEL
Assumption
Assumption
Approximation
Approximation
Control flow
graph
Control flow
graph
Program
Program
analysis
analysis
Static analysis techniques
similarly used in compilers
Page 23
©Copyright NEC(2008) All rights reserved
Model
Model Checking
Checking
Exhaustive
search
Post
Postprocessing
processing
Counter
examples
(Execution) Path
to result in error.
Checker example: Invalid pointer dereferencing
„ Point out lines where dereferencing through invalid pointer occurs.
z Check lines with “*<pointer>” expressions.
z valid pointer = address of variable && address derived from valid pointer
through pointer arithmetic
No errors
Errors detected
int
int array[]={1,2,3,4,5};
array[]={1,2,3,4,5};
int*
int* p=array;
p=array; //Set
//Set variable
variable address
address
p=p+4;
//Pointer
p=p+4;
//Pointer arithmetic
arithmetic
*p=4;
//OK
*p=4;
//OK
Pointer arithmetic
is handled.
Dynamic memory management
is handled.
Page 24
©Copyright NEC(2008) All rights reserved
void
void setPointerNull(
setPointerNull( int**
int** pp
pp ){
){
*pp
*pp == NULL;
NULL;
}}
Inter-procedural analysis
void
void foo(){
foo(){
is supported.
int*
int* p;
p;
setPointerNull(
setPointerNull( &p
&p ););
*p
*p == 0;
0; //NG;
//NG; NULL
NULL pointer
pointer dereferencing
dereferencing
}}
int*
int* p=malloc(10);
p=malloc(10); //Dynamic
//Dynamic memory
memory
if(p)
if(p) free(p);
free(p);
*p=0;
*p=0; //NG;
//NG; Freed
Freed pointer
pointer dereferencing
dereferencing
Output GUI
„ Display verification results on Eclipse (Open source IDE).
z Selection of result list or trace changes editor and variable view.
z Highlight related trace-steps for specified variable on trace view.
Variable view
assignment
Trace view
referencing
Editor / Viewer (CDT)
Location corresponding to
selected result in result list, or
selected step in trace
selection of
step/variable
Result list view (shrunk now)
Page 25
©Copyright NEC(2008) All rights reserved
VARVEL: it’s effectiveness and future direction
„ Application of model checking to source code is useful.
z
Effective as typical bug detection tool
9
z
Able to detect bugs which skipped through review and testing.
After model-checking, developers can concentrate on functional
review and testing. (No review / testing for careless mistakes)
„ Plan to promote assertion programming with VARVEL.
z
Enhance accuracy, performance and scalability of typical bug
detection.
z Detect violations of assertion (pre/post-conditions, invariant, etc.).
„ NEC group uses VARVEL in-house and achieves quality
improvement of software products. Application of model
checking to source code is now at practical level.
Next challenge will be using formal methods for design.
Page 26
©Copyright NEC(2008) All rights reserved
Summary
¾To realize ubiquitous networking society, software and service
will become more and more important
¾The importance of dependability concept is described from
three viewpoints, i.e., embedded software, critical infrastructure,
and service creation and interoperability
¾Possibility of formal method was introduced as an example
to achieve dependable software development
Dependability of software and service including human and
social aspects is a key issues for software and service
innovation. More discussion and activities are required to
in this area.
Page 27
©Copyright NEC(2008) All rights reserved
Download