Scarica la presentazione - CAST Software: On Quality Blog

Transcription

Scarica la presentazione - CAST Software: On Quality Blog
New Standards for
Automating Source Code
Analysis of Structural Quality
Dr. Bill Curtis
Executive Director, CISQ
1
CISQ Founders and Sponsors
Co-founders
IT
Executives
OMG
Special
Interest
Group
CISQ
Develop standard,
automatable measures
for evaluating software
size and quality with an
ecosystem supporting
policy and deployment
2
Technical
experts
CISQ Sponsors
CISQ/OMG Standards Process
CISQ Work Groups
Automated
Function Points
Defined
Measures
Reliability
CISQ
Exec
Forum
Performance
Efficiency
OMG
ISO
Fasttrack
Security
Deployment
Workshops
Maintainability
3
Automated FP Specification
• OMG Supported Specification for
Automated Function Points
• Mirrors IFPUG counting guidelines,
but automatable
• Specification developed by
international team led by David
Herron of David Consulting Group
4
CISQ Measures and ISO 25010
•
•
•
•
ISO 25010 defines quality characteristics and sub-characteristics
ISO 25023 defines measure elements for each sub-characteristic
ISO 25023 does not define measures at the source code level
CISQ supplements ISO 25023 by defining code level measures
ISO/IEC 25010 Quality
Characteristic Hierarchy
CISQ defining automatable measures for characteristics highlighted in orange
5
CISQ Quality Measure Structure
Structure of ISO 25023 Measures
Structure of CISQ Security Measure
Software Quality Characteristics
Security
Quality Sub-Characteristics
Confidentiality, Authenticity,
Integrity, Accountability, etc.
Software Quality Attributes
Quality Measure Elements
Quality Rule Violations
•
•
•
•
•
•
ISO structure
Examples from CISQ measures
6
Cross-site scripting
SQL injection
Buffer overflow
OS command injection
Unvalidated array
Etc.
CWEs in CISQ Security Measure
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
CWE-22
CWE-78
CWE-79
CWE-89
CWE-120
CWE-129
CWE-134
CWE-252
CWE-327
CWE-396
CWE-397
CWE-434
CWE-456
CWE-606
CWE-667
CWE-672
CWE-681
CWE-706
CWE-772
CWE-789
CWE-798
CWE-835
Path Traversal Improper Input Neutralization
OS Command Injection Improper Input Neutralization
Cross-site Scripting Improper Input Neutralization
SQL Injection Improper Input Neutralization
Common
Buffer Copy without Checking Size of Input
Weakness
Array Index Improper Input Neutralization
Enumeration
Format String Improper Input Neutralization
Unchecked Return Parameter of Control Element Accessing Resource
Broken or Risky Cryptographic Algorithm Usage
Declaration of Catch for Generic Exception
Declaration of Throws for Generic Exception
File Upload Improper Input Neutralization
Storable and Member Data Element Missing Initialization
Unchecked Input for Loop Condition
Shared Resource Improper Locking
Expired or Released Resource Usage
Numeric Types Incorrect Conversion
Name or Reference Resolution Improper Input Neutralization Robert
Martin
Missing Release of Resource after Effective Lifetime
MITRE
Uncontrolled Memory Allocation
Hard-Coded Credentials Usage for Remote Authentication
Loop with Unreachable Exit Condition ('Infinite Loop')
7
Focus Shift in Diagnostic Metrics
Traditional
metrics
measure program elements such as
tokens, objects, or control structures
These elements correlate with
the potential for defects
These elements are defects
Violation
metrics
measure violations of good
architectural and coding practice
Violations can be analyzed as patterns
8
IT Quality Challenge  System Level
Architectural Compliance
1
Unit Level
Code style & layout
Expression complexity
Code documentation
Class or program design
Basic coding standards
Developer level
APIs
JSP
ASP.NET
Java
Java
Java
Web
Services
Java
Java
Java
2 Technology Level
Single language/technology layer
Intra-technology architecture
Intra-layer dependencies
Inter-program invocation
Security vulnerabilities
Development team level
Java
Hibernate
Messaging
Struts
.NET
Sprin
g
COBOL
EJB
Oracle
PL/SQ
L
T/SQL
3
SQL
Server
Integration quality
Architectural
compliance
Risk propagation
Application security
Resiliency checks
Transaction integrity
DB2
Sybase
System Level
IMS
Technology Stack
9
Function point,
Effort estimation
Data access control
SDK versioning
Calibration across
technologies
IT organization level
Architecturally Complex Defects
Architecturally
Complex Defect
A structural flaw involving interactions
among multiple components that
reside in different application layers
% of total
repair effort
% of total
app defects
Componentlevel violations
Architecturally
Complex Defects
48%
92
%
52%
20x as
many
fixes to
correct
8%
Architectural hotspots provide a
roadmap for remediating the worst
risk, rework, and cost drivers
80% of architecturally complex defects
touch an Architectural Hotspot—a badly
designed component causing problems
10
Data Layer
Logic Layer
UI Layer
Detecting Architectural Hotspots
Contributor to architecturally complex defect
Architectural hotspot
11
Structural Quality Measure Uses
Acquisition
Managers
IT Executives
FIN
HR
CRM
ERP
App / Project
Managers
Portfolio
insight
Deliverables
insight
Developers
Application
insight
Remedial
insight
12
Using CISQ Measures with Vendors
1. Set compliance targets
2. FEnforce a measurement process
3. Evaluate contract deliverables
4. Use rewards and penalties wisely
13
1  Set Quality Compliance Targets
Quality Characteristic Score
Quality Score Target by Release
3,9
3,7
3,5
3,3
3,1
Reliability
Performance
Security
Maintainability
2,9
2,7
2,5
14
2  Enforce a Measurement Process
Establish a
Baseline
Set thresholds
and targets
Monitor and
review results
Determine
remediation
Update SLAs
15
3  Evaluate Contract Deliverables
Use CISQ measures in contracts to
establish objective, measureable
agreements on quality priorities that
comply with industry standards
16
4  Use Rewards and Penalties Wisely
Partnership
Common goals
Negotiation
Rewards
Vendor
Profit goals
Contract terms
Penalties
Low maturity
Maturity
shift
17
New CISQ Measurement Specifications
Must account
for size of
maintenance
activities
Automated
Enhancement
Function
Points
Productivity
Estimation
Must add
future effort to
fix bugs into
productivity
Quality
Adjusted
Productivity
Effort
& Cost
Benchmarks
Value & ROI
Must estimate
the corrective
costs in cost
of ownership
Structural
Technical
Debt
Etc.
18
Join CISQ Free  www.it-cisq.org
19

Similar documents