220 likes | 231 Views
Learn how to allocate project resources efficiently across software phases for profitability and quality. Explore economic theory application and objective measurements in software development. Case study on an Eight Puzzle application.
E N D
Decision Making in the Software Life Cycle Using Microeconomic Models Mr. Peleg Yiftachel supervised by Prof. Dan Peled Dr. Eitan Farchi
Software Development Phases Requirements Specification System & Software Design Implementation & Unit Testing Integration & System Testing Operation & Maintenance
The Research Question • What is the most profitable allocation of project resources among the different software production phases • Requirements • Design • Implementation • Testing Wrong allocation of human resources across phases causes inefficiency !
Novelty of this project • Using economic theory to solve resource allocation problems in software development processes • Measure the production of software manufacturer by quality instead of quantity • Each software product has its own “quality units” • Use of objective and reliable measurements of factor allocation in an experimental setting • Does not rely on questionnaires
Using the Theory of the Firm • Firm Theory answers three questions • How to produce? • What will the product price be? • Answers are based on the concept of production function:Y=f(a,b,c,…) • We replace quantity with quality • In both the production function and the market demand How many quantity units to produce? How much to produce? quality
From theory to practice • Construct a production function for several specific software products • Evaluate empirically the relationship between resulting quality and factors allocation
A Case Study: The Eight Puzzle • Our “toy” product is an “Eight Puzzle” problem solver application • The quality of the application will be measured according to the time it takes to solve the problem
The field study • Collecting data on each product developed by a “firm” • Firms simulated by students in a software development competition • Rewards in competition tied to software quality: • Time it takes to solve an “Eight Puzzle” problem
Result Database What will the function be ?
The field study - Measurements • Automatically measuring of the time spent on each development phase • Determining the quality of the product using unified automatic test methods
“Econometric” • [demo] • The “Econometric” application follows developer's behavior: • Measures the time spent on each development phase • Writes it to a log file
Future work • Continue to develop our theoretical model • Generalization to the Spiral Model • Incorporating different market structures • Constructing demand function for SW products • Model the link between product quality and price • Considering alternative quality measures • Continue the experiments • Improve accuracy and reliability of measurements • Controlling for subjects heterogeneity • Additional field studies • Backgammon competition
A&Q The End
Agenda • The Research Question • Novelty of this project • From theory to practice • The field study • “Econometric”
“Econometric” application • The “Econometric” application follows developer's behavior • Measure the time spent on each development phase • Write it into a log file
Firm Theory & Software Life Cycle • Obtain production function for SW product • Production factors and Production units • production factors are be human resources allocated into each stage of the SW life cycle • production units are defined as quality units • Every SW product has it’s own quality units • The quality units are the linkage between the production side to the demand side
The Eight Puzzle application • The application get two inputs • The Start board configuration • The Goal board configuration • The application output is a solution to the problem • Sequence of legal moves starting with the Start board , and ending with the Goal board • The sequence has to be an optimal one (a shortest one) • The quality of the application will be measured according to the time it takes to solve the problem • Define t as the solution time
Composition of functions • The “real” production function is • Where • After the functions composition