Wideband Delphi is a reliable estimation techniques that is prepared based on team consensus. This presentation discusses the process and includes examples, which can be followed when preparing your own estimates.
As mentioned on the ISBSG workshop in El Segundo and the MAIN track in the IWSM in Assisi, the Basis of Estimate - Software Services is ready for review.
The document is intended to set a best practice for structuring an Estimate for Software Services.
You are invited to review it.
If interested you're allowed to forward the attached document to reviewers.
Comment by the reviewers can be mailed directly to me: Ton Dekkers ton.dekkers@nesma.nl
The due date for comments is set to Sunday, December 16 2012.
Next step will be incorporating the useful suggestions and preparing a version for the 3rd and final review within AACE.
Wideband Delphi is a reliable estimation techniques that is prepared based on team consensus. This presentation discusses the process and includes examples, which can be followed when preparing your own estimates.
As mentioned on the ISBSG workshop in El Segundo and the MAIN track in the IWSM in Assisi, the Basis of Estimate - Software Services is ready for review.
The document is intended to set a best practice for structuring an Estimate for Software Services.
You are invited to review it.
If interested you're allowed to forward the attached document to reviewers.
Comment by the reviewers can be mailed directly to me: Ton Dekkers ton.dekkers@nesma.nl
The due date for comments is set to Sunday, December 16 2012.
Next step will be incorporating the useful suggestions and preparing a version for the 3rd and final review within AACE.
Qualidade de Software em zOS usando IBM Debug Tool e RDzPaulo Batuta
Eu e meu Amigo Claudio fizemos esta apresentação sobre qualidade de software usando IBM Debug Tool e Rdz.Ela foi submetida e aprovada no 2013 World Congress in Computer Science em Las Vegas. O Claúdio foi lá apresentá-la. Foi na Terça passada!
State of the Machine Translation by Intento (November 2017)Konstantin Savenkov
Evaluation of 11 major Machine Translation (Google, Microsoft, IBM, SAP, Yandex, SDL, Systran, Baidu, GTCom, PROMT, DeepL) providers for 35 most popular language pairs: performance, quality, language coverage, API update frequency.
Similar to A benchmark based approach to determine language verbosity - Hans Kuijpers - Lodewijk Bergmans - SIG (20)
The Use of Functional Size in the Industry.pdfNesma
In this webinar, the emphasis is on the use of Functional Size in the Industry, and we focus on several use cases where functional size helps organizations to make impactful decisions based on objective metrics and data.
While traditional performance metrics often measure individual output or adherence to pre-defined plans, measuring performance in agile teams requires a different approach. Agile teams operate in iterative cycles, prioritizing adaptability and learning over rigid goals. So, why do organizations still measure their performance?
By using the right metrics in the right way, organizations can empower their agile teams to thrive and deliver exceptional results.
Software Cost Estimation webinar January 2024.pdfNesma
In this webinar you will learn why Software Cost Estimation is important, what is the Software Cost Estimation Body of Knowledge for Software and the ways you can become a professional certified software cost estimator SCEC!
The journey of UNISON Cost Engineering in the field of automotive software cost estimation started in 2018. The expectation is that in 2030 the cost of software will be 50% of the total production cost of a car. To help the OEM get a proper understanding of the software development cost they need to use some form of size measurement to compare, challenge and control the cost of software development by the software vendors.
The COSMIC battle between David and Goliath - Paul HusseinNesma
No more exhaustive and emotional discussions on price and deliverables. Predictable prices for projects and changes. No escalating maintenance costs. This can only be done by specifying exactly what you want and outsource it to the right service providers that have the required platform already in place.
Succesful Estimating - It's how you tell the story - Amritpal Singh AgarNesma
Estimating the Cost of something is a profession. But then you have to tell the story about the estimate to whoever needs to hear that story. The success of how you tell the story is determining the success of the cost estimate.
CEBoK for Software Past Present Future - Megan JonesNesma
The Cost Estimation Body of Knowledge for Software is in development for a number of years within ICEAA. First as a section of the general CEBoK, but it will be established as a separate CEBoK-S for Software, since software is becoming very prominent within the cost estimation community.
Agile Development and Agile Cost Estimation - A return to basic principles - ...Nesma
Is there a natural tension between agile development and traditional cost management or do we need to return to basic principles? Even when you are flexible, you still need to make a plan, build an estimate and measure what you have achieved.
Resolving Cost Management and Key Pitfalls of Agile Software Development - Da...Nesma
Agile software development does not always live up to the promises. Especially in the field of IT Cost Management. Without proper estimation and tracking the value cannot be made clear.
Project Succes is a Choice - Joop SchefferlieNesma
Project success is a choice. Don't stop thinking about the best way to do a project, agile or not. Select the best competencies to ensure that the project will be successful.
Deze presentatie beschrijft een praktische implementatie van het gebruik van Nesma functiepunten in Agile deliveries. Deze presentatie is gepresenteerd door Richard Sweer van Infinity tijdens de webinar Afrekenen met functiepunten. Voor meer info: www.nesma.org; conference@nesma.org.
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
Search and Society: Reimagining Information Access for Radical FuturesBhaskar Mitra
The field of Information retrieval (IR) is currently undergoing a transformative shift, at least partly due to the emerging applications of generative AI to information access. In this talk, we will deliberate on the sociotechnical implications of generative AI for information access. We will argue that there is both a critical necessity and an exciting opportunity for the IR community to re-center our research agendas on societal needs while dismantling the artificial separation between the work on fairness, accountability, transparency, and ethics in IR and the rest of IR research. Instead of adopting a reactionary strategy of trying to mitigate potential social harms from emerging technologies, the community should aim to proactively set the research agenda for the kinds of systems we should build inspired by diverse explicitly stated sociotechnical imaginaries. The sociotechnical imaginaries that underpin the design and development of information access technologies needs to be explicitly articulated, and we need to develop theories of change in context of these diverse perspectives. Our guiding future imaginaries must be informed by other academic fields, such as democratic theory and critical theory, and should be co-developed with social science scholars, legal scholars, civil rights and social justice activists, and artists, among others.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
Key Trends Shaping the Future of Infrastructure.pdf
A benchmark based approach to determine language verbosity - Hans Kuijpers - Lodewijk Bergmans - SIG
1. // SOFTWARE IMPROVEMENT GROUP// SOFTWARE IMPROVEMENT GROUP
A benchmark based approach to determine language verbosity
Hans Kuijpers & Lodewijk Bergmans
Software Improvement Group
PUBLIC 25 November 2020
2. // SOFTWARE IMPROVEMENT GROUP
//
Three different implementations of the same algorithm to determine prime numbers
INTRODUCTION
▪
▪ How can we compare the volume of these programs?
▪ How much effort has been spent on developing these?
▪ How much on design? On coding?
▪ Can we estimate the typical effort per Line of Code?
primes = sieve [ 2.. ]
where
sieve (p:x) = p : sieve [ n | n <- x, n `mod` p > 0 ]
def eratosthenes(n):
sieve = [ True for i in range(n+1) ]
def markOff(pv):
for i in range(pv+pv, n+1, pv):
sieve[i] = False
markOff(2)
for i in range(3, n+1):
if sieve[i]:
markOff(i)
return [ i for i in range(1, n+1) if sieve[i] ]
function Eratosthenes(element, top) {
var all = new Uint8Array(new ArrayBuffer(top));
var idx = 0;
var prime = 3;
var x, j;
element.innerHTML = "1 ";
while(prime <= top) {
var flag = true;
for(x = 0; x < top; x++) {
if(all[x] == prime) {
flag = false;
break;
}
}
if(flag) {
element.innerHTML += prime + " ";
j = prime;
while(j <= (top / prime)) {
all[idx++] = prime * j;
j += 1;
}
}
prime += 2;
}
element.innerHTML += "<br>";
return;
}
JavaScriptHaskell
Python
Algorithm: ‘Sieve Of Eratosthenes’, generates prime numbers
2
3. // SOFTWARE IMPROVEMENT GROUP// SOFTWARE IMPROVEMENT GROUP
1. Introduction Lodewijk, Hans and SIG
2. Motivation and Goal
3. Background: a look at SPR & language levels
4. The underlying concept & approach
5. Testing the approach
6. Application & conclusion
3
Table of Contents
4. // SOFTWARE IMPROVEMENT GROUP
// INTRODUCTION
Hans Kuijpers
8 years at SIG
Managing Consultant
Certified Scope Manager,
Professional Scrum Master I
FPA: Nesma, IFPUG, Cosmic,
Use Case Points
Who is Who
Lodewijk Bergmans
8 years at SIG
Sr. Researcher
Areas of expertise: software
metrics, measuring development
practices, software economics:
fact-based decision support for
software developers, architects
and management.
4
5. // SOFTWARE IMPROVEMENT GROUP// SOFTWARE IMPROVEMENT GROUP
The majority of software development work is not
visible, SIG can make this transparent:
Build quality drives TCO and functional quality of software
5
Software functionality
SIG capabilities
beyond ISO
6. // SOFTWARE IMPROVEMENT GROUP// SOFTWARE IMPROVEMENT GROUP
1. Introduction Lodewijk, Hans and SIG
2. Motivation and Goal
3. Background: a look at SPR & language levels
4. The underlying concept & approach
5. Testing the approach
6. Application & Conclusion
6
Table of Contents
7. // SOFTWARE IMPROVEMENT GROUP
// MOTIVATION AND GOAL
Motivation
▪ Important requirement: assess total volume of a system with multiple programming languages
▪ Must be able to aggregate parts of a system in different languages
▪ Must yield a comparable value among systems (e.g. for benchmarking)
▪ Previously, the ‘SPR table’ was used at SIG as a basis for translating LOC to volume (effort needed)
▪ i.e. ‘language (productivity) factors’
▪ In our maintainability model, this is used to compare/aggregate/weigh code in different languages ‘fairly’
▪ In the SIG Cost Estimation Model, this is used to translate coding efforts (creating/modifying) to financial costs (through
efforts in terms of person years (PY)
▪ But SPR now has several issues:
▪ Contains entries that are not intuitive
▪ Outdated (>10 years since last update):
▪ Languages and libraries have evolved
▪ Does not include new languages
7
8. // SOFTWARE IMPROVEMENT GROUP
// MOTIVATION AND GOAL
Goals & context
Goal: Create a new set of factors that can be used to:
1. Compare and aggregate the size of applications in different languages
2. Calculate the ‘average’ effort needed
▪ To write 1000 Lines of Code in a specific programming language (our ‘Volume’ measurement)
Considerations
▪ Comparing size of programs should be related to the technical effort1
involved in creating 1000 Lines of Code
▪ Approach must be applicable to all programming languages we encounter
▪ Use a fact- or measurement-based approach, e.g. using the SIG code warehouse or other data sources
▪ Preferably not depending on external parties
▪ Experience has shown that it is really difficult to find consistent, trustworthy, and comparable effort data from actual projects,
especially for new, rare and custom programming languages.
1
Technical effort is related to all the work a developer does; technical design, coding and testing.
8
9. // SOFTWARE IMPROVEMENT GROUP// SOFTWARE IMPROVEMENT GROUP
1. Introduction Lodewijk, Hans and SIG
2. Motivation and Goal
3. Background: a look at SPR & language levels
4. The underlying concept & approach
5. Testing the approach
6. Application & Conclusion
9
Table of Contents
10. // SOFTWARE IMPROVEMENT GROUP
//
Implementations of the same algorithm in different programming languages
BACKGROUND: A LOOK AT SPR & LANGUAGE LEVELS
Two ‘Eratosthenes’ code samples revisited:
▪ Haskell is a functional language, very much suited for
compact expression of algorithms:
▪ Python is a bit more generic OO language:
primes = sieve [ 2.. ]
where
sieve (p:x) = p : sieve [ n | n <- x, n `mod` p > 0 ]
Haskell
def eratosthenes(n):
sieve = [ True for i in range(n+1) ]
def markOff(pv):
for i in range(pv+pv, n+1, pv):
sieve[i] = False
markOff(2)
for i in range(3, n+1):
if sieve[i]:
markOff(i)
return [ i for i in range(1, n+1) if sieve[i] ]
Python
We observe that one language is more verbose than the other
▪ Or, in reverse: the other language is more expressive
The SPR table defines for each language its language level:
▪ This has an inverse relation to the number of source
statements to implement 1 Function Point
▪ In other words: how much/little code is needed to
express a certain amount of functionality
Note: this is a counter-
intuitive value
10
11. // SOFTWARE IMPROVEMENT GROUP// SOFTWARE IMPROVEMENT GROUP
1. Introduction Lodewijk, Hans and SIG
2. Motivation and Goal
3. Background: a look at SPR & language levels
4. The underlying concept & approach
5. Testing the approach
6. Application & Conclusion
11
Table of Contents
12. // SOFTWARE IMPROVEMENT GROUP// SOFTWARE IMPROVEMENT GROUP
//
Our premise: a program is the encoding of information in source code
CONCEPT & APPROACH
Domain
knowledge
requirements
Design idiom
& patterns
programming
language
information Source code
So programming is about distilling the necessary
information and expressing it using source code.
12
13. // SOFTWARE IMPROVEMENT GROUP
//
Our approach to measure verbosity/expressiveness
CONCEPT & APPROACH
We adopt a similar approach to SPR:
Measure how much/little code is needed to express a certain amount of information
▪ Advantage: this also applies to code that is not directly implementing functionality:
▪ Non-functionals such as performance, security, reliability.
▪ This can easily be 30% of the code [1]
▪ But also the code for structuring software (e.g. all declarations of methods, classes, interfaces, inheritance, ..)!
▪ How can we measure the amount of information? → the theory of Kolmogorov complexity
▪ “The amount of information in a document equals the size of the shortest possible program that can produce the
document”
▪ A practical approximation: take the length of the compressed document
▪ We use the term Information Point (IP) to designate a single unit of information
▪ Application: calculate the Compression Ratio (CR) of programs in a language: CR = code_size / compressed_size
▪ The average* compression ratio for a language indicates the average amount of code per unit of information (IP)
▪ We built a benchmark of average compression ratio’s based on large amount of scoped industrial systems analyzed by
SIG.
13
14. // SOFTWARE IMPROVEMENT GROUP// SOFTWARE IMPROVEMENT GROUP
1. Introduction Lodewijk, Hans and SIG
2. Motivation and Goal
3. Background: a look at SPR & language levels
4. The underlying concept & approach
5. Testing the approach
6. Application & Conclusion
14
Table of Contents
15. // SOFTWARE IMPROVEMENT GROUP
//
Compression ratios for subset of languages
more verbosemore expressive
TESTING THE APPROACH
15
16. // SOFTWARE IMPROVEMENT GROUP
// TESTING THE APPROACH
Preliminary validation: comparing with gearing factors, and Redmonk language ranking
Comparison to language gearing factors of SPR[2]
and QSM[3]
These are expressed as SS/FP: source statements per FP
We found NO significant correlations between CR and
SPR/QSM. SS/FP is not exactly the same as verbosity/CR:
▪ E.g. Reusing functionality from libraries provides extra
FPs but does need little coding effort
▪ The CR-based approach counts non-functional code
▪ SPR is 15+ years old; (usage of) languages evolved
Comparison to Redmonk ‘language ranking by expressiveness’[1]
Based on the typical size of commits for a language:
▪ Assumption is that 1 commit ~ 1 functionality/behavior
▪ We only tested against the ranking, not actual values
The correlation between Redmonk ranking and Compression
Ratios (CR) is strong (Spearman correlation =0.75)
In other words: our notion of language verbosity corresponds
closely to the redmonk notion of language expressiveness
[1] D. Berkholz, “Programming languages ranked by expressiveness”,
redmonk, 2013: https://redmonk.com/dberkholz/2013/03/25/
programming-languages-ranked-by-expressiveness/
[2] SPR, “SPR programming languages table, PLT2007c”, 2007
[3] QSM, “Function Point Languages Table, version 5.0”,
https://www.qsm.com/resources/function-point-languages-table
16
17. // SOFTWARE IMPROVEMENT GROUP// SOFTWARE IMPROVEMENT GROUP
1. Introduction Lodewijk, Hans and SIG
2. Motivation and Goal
3. Background: a look at SPR & language levels
4. The underlying concept & approach
5. Testing the approach
6. Application & Conclusion
17
Table of Contents
18. // SOFTWARE IMPROVEMENT GROUP
//
Volume normalization at system level
APPLICATION & CONCLUSION
For comparing and aggregating the volume of a system implemented with multiple languages
▪ Lines of Code is less representative of the amount of information and (intellectual) effort spent on the different parts
[This is a screenshot from the Sigrid® software assurance platform]
18
19. // SOFTWARE IMPROVEMENT GROUP
//
Volume normalization at portfolio level
APPLICATION & CONCLUSION
For comparing the volume of systems in a portfolio; some may be implemented in totally different technologies
▪ This overview shows the systems in a portfolio, annotated with the main language per system
[This is a screenshot from the Sigrid® software assurance platform]
19
20. // SOFTWARE IMPROVEMENT GROUP
//
Base for cost (effort) estimations
APPLICATION & CONCLUSION
Code-based effort estimation: effort is influenced by
▪ the amount of code (LOC)
▪ the type of language
Other (human) factors are encapsulated in the constants derived from benchmark data
Coding effort
constantCODING
* LOC
Relatively smaller for
highly expressive
languages: this depends
on code size → LOC
Technical development effort
These factors are derived using
SIG benchmark data such as effort
distribution, average system sizes,
and known effort numbers
Non-coding effort
constantNON-CODING
* IP
Depends -mostly- on
how much information to
process (requirements,
design, ..) → IP
LOC
CRLANGUAGE
IP =
20
21. // SOFTWARE IMPROVEMENT GROUP
//
Conclusion
APPLICATION & CONCLUSION
What did we achieve with compression ratio (CR) based volume normalization?
● CR is an objective measure of language verbosity
○ Applicable for all text-based languages, also for new, custom and domain specific languages
○ Based on a benchmark: how languages are used in practice
○ Can be largely automated (and calibrated periodically)
● CR allows comparing the size of source code in different languages in a consistent way
○ You don’t need FP countings, or access to the hour administration
■ But does require availability of source code
■ Does support ‘real-time’ observation of progress
○ The CR-based approach is representative for all the behavior a developer implements
■ Functional behavior is not considered separately
● CR can be used as the basis of a code-based estimation of development work
21
22. // SOFTWARE IMPROVEMENT GROUP
.com
GETTING SOFTWARE RIGHT FOR A HEALTHIER DIGITAL WORLD
// SOFTWARE IMPROVEMENT GROUP
Questions?
22