%%-*- text -*- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % This is a PROMISE Software Engineering Repository data set made publicly % available in order to encourage repeatable, verifiable, refutable, and/or % improvable predictive models of software engineering. % % If you publish material based on PROMISE data sets then, please % follow the acknowledgment guidelines posted on the PROMISE repository % web page http://promise.site.uottawa.ca/SERepository . %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 1. Title/Topic: reuse/predicting successful reuse @relation reuse % 2. Sources: % % M. Morisio and M. Ezran, and C. Tully, % Success and failure factors in software reuse, % IEEE Transactions on Software Engineering, volume 28, % 4, 2002, pages 340--357 % % -- Donor: Tim Menzies (tim@barmag.net) % % -- Date: December 2 2004 % 3. Past usage: % % 1. M. Morisio and M. Ezran, and C. Tully, % Success and failure factors in software reuse, % IEEE Transactions on Software Engineering, volume 28, % 4, 2002, pages 340--357 % -- Results: % -- Data mining was used to confirm that results of % an analysis of surverys of software managers % regarding factors that predict for successful reuse. % % 2. More Success and Failure Factors in Software Reuse, % "T. Menzies and J.S. Di Stefano", IEEE Transactions on Software % Engineering, 2003, May (http://menzies.us/pdf/02sereuse.pdf) % -- Results: % -- Raised doubts about some of the Morisio and Ezran % conclusions. %4. Relevaant information % This data set represents an interesting SE problem: how to make % sense of software development when very little data (only 23 instances) % is availabe for generalization % 5. Number of instances: 24 % 6. Number of attributes: 29 % % Here are the "high-level control variables" i.e. key high-level % management decisions about a reuse program. % %Attribute Value # Notes %------------------------------ -------------- ------ ----------------------------------- %Project id 1 .. infinity %------------------------------ -------------- ------ ----------------------------------- %Top management ommitment yes 20 top management reuse committed % no 4 %------------------------------ -------------- ------ ----------------------------------- %Key reuse roles introduced yes 19 >=1 reuse role % no 4 no reuse roles were introduced %------------------------------ -------------- ------ ----------------------------------- %Reuse process introduced yes 15 >=1 reuse process was introduced % no 8 no reuse process was introduced %------------------------------ -------------- ------ ----------------------------------- %Nonreuse process modified yes 16 >=1 nonreuse processes modified % no 7 no nonreuse processes modified %------------------------------ -------------- ------ ----------------------------------- %Human factors yes 16 human factors handled; e.g. via awareness, % training, and motivation programs % no 8 %------------------------------ -------------- ------ ----------------------------------- %Repository yes 23 assets in repository tool % no 0 % % Note that all 23 projects seen in this data set used a repository; % i.e. this data set could never be used to refute claims that a % repository is useless. Nevertheless, like Morisio et.al., we % believe that reuse products have to be kept in some sort of % repository to enable reuse. % % Here are the "state variables"; i.e. attributes over which a % company has no control. % %Attribute Value # Notes %------------------------------ -------------- ------ ----------------------------------- %Project id 1 .. infinity %------------------------------ -------------- ------ ----------------------------------- %Software staff L 6 >201 people on the project. % M 9 51 .. 200 people on the project. % S 9 1 .. 50 people on the project. %------------------------------ -------------- ------ ----------------------------------- %Overall Staff X 10 >501 people. % L 7 201 .. 500 people. % M 5 51 .. 200 people. % S 2 1 .. 50 people. %------------------------------ -------------- ------ ----------------------------------- %Production Type product-family 20 projects related; evolve over time % isolated 4 projects have little in common %------------------------------ -------------- ------ ----------------------------------- %Software and product product 17 software is embedded in a product % alone 4 software is standalone product % process 2 software embedded in a process %------------------------------ -------------- ------ ----------------------------------- %SP maturity high 6 CMM level 3 or higher % medium 13 ISO 9001 certification or CMM level 2 % low 5 not high or medium %------------------------------ -------------- ------ ----------------------------------- %Application domain TLC 7 telecommunications % FMS 4 flight management systems % ATC 1 air traffic control % TS 1 train simulation % TTC 7 train traffic control % Bank 1 bank % Book-keeping 1 book-keeping % Measurement 1 management, control of measurements % Space 1 aerospace applications % Manufacturing 3 manufacturing % SE-Tools 2 software tools %------------------------------ -------------- ------ ----------------------------------- %Type of software Embedded-RT 6 embedded, real-time % Non-Embedded-RT 2 non-embedded, real-time % Technical 12 non-embedded, non-real-time, small DBMS, % important control part % Business 4 non-embedded, non-real-time, important % DBMS, limited control part %------------------------------ -------------- ------ ----------------------------------- %Size of baseline L 8 100 ... 500 KLOC; >100$ person months % M 13 10 ... 100 KLOC; 10 .. 100$ person months % S 2 <10 KLOC; <10 person months %------------------------------ -------------- ------ ----------------------------------- %Development approach OO 15 object oriented % proc 8 procedural %------------------------------ -------------- ------ ----------------------------------- %Staff experience high 7 >5 years average % medium 15 2 .. 4 years average % low 1 <=1 year average % % Here are the "low-level conrol variables"; i.e. specific approaches % to the implementation of reuse. % %Attribute Value # Notes %------------------------------ -------------- ------ ----------------------------------- %Project id 1 .. infinity %------------------------------ -------------- ------ ----------------------------------- %Reuse approach loose 12 assets loosely coupled % tight 11 assets coupled, used in groups %------------------------------ -------------- ------ ----------------------------------- %Domain Analysis yes 9 domain analysis was performed % no 14 %------------------------------ -------------- ------ ----------------------------------- %Origin ex-novo 4 assets are developed from scratch % reeng 15 assets via reengineering old work % as-is 4 old products used without change %------------------------------ -------------- ------ ----------------------------------- %Independent team yes 2 independent team makes assets % no 21 development projects makes assets %------------------------------ -------------- ------ ----------------------------------- %When assets built before 7 well before they are reused % just-in-time 16 just before they are reused %------------------------------ -------------- ------ ----------------------------------- %Qualification yes 14 assets undergo a qualification process % no 9 no defined qualification process %------------------------------ -------------- ------ ----------------------------------- %Configuration management yes 16 configuration management used % no 7 %------------------------------ -------------- ------ ----------------------------------- %Rewards policy yes 3 a rewards policy for reuse in place % no 21 no rewards policy in place %------------------------------ -------------- ------ ----------------------------------- %# of assets 1 to 20 5 number of assets in the repository % 21 to 50 3 % 51 to 100 8 % 100+ 7 %------------------------------ -------------- ------ ----------------------------------- %Work-products C code % D design % R requirements % % Note that in the last entry, "work products", the number of values % is counted differently to the above. Specifically, C=10; D+C=4; % R+D+C=9 @attribute 'Project ID' {A,B,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y} @attribute 'Software Staff' {L,M,S} @attribute 'Overall Staff' {L,X,M,S} @attribute 'Type of Software Production' {product-family,isolated} @attribute 'Software and Product' {product,alone,process,NA} @attribute 'SP maturity' {high,middle,low} @attribute 'Application Domain' {TLC,SE-Tools,Bank,Engine_Controller,FMS,ATC,TS,Space,Manufacturing,Measurement,Finance,Book-Keeping} @attribute 'Type of Software' {Technical,Business,Embedded-RT,Non-Embedded-RT} @attribute 'Size of Baseline' {L,M,S,not_available} @attribute 'Development Approach' {OO,proc,not_available} @attribute 'Staff Experience' {high,middle,low,not_available} @attribute 'Top Management Commitment' {yes,no} @attribute 'Key Reuse Roles Introduced' {yes,no,NA} @attribute 'Reuse Processes Introduced' {yes,no,NA} @attribute 'Non-Reuse Processes Modified' {yes,no,NA} @attribute Repository {yes,NA} @attribute 'Human Factors' {yes,no} @attribute 'Reuse Approach' {tight,loose,NA} @attribute 'Work Products' {D+C,C,R+D+C,NA} @attribute 'Domain Analysis' {yes,no,NA} @attribute Origin {ex-novo,as-is,reeng,NA} @attribute 'Independent Team' {yes,no,NA} @attribute 'When Assests Developed' {before,justintime,NA} @attribute Qualification {yes,no,NA} @attribute 'Configuration Management' {yes,no,NA} @attribute 'Rewards Policy' {no,yes} @attribute '# assests' {51_to_100,21_to_50,100+,1_to_20,NA} @attribute 'Success or Failure' {success,failure} % 8. Missing attributes: 6 % 9. Class Distribution: % success: 15 % failure: 9 @data A,L,L,product-family,product,high,TLC,Technical,L,OO,high,yes,yes,yes,yes,yes,yes,tight,D+C,yes,ex-novo,yes,before,yes,yes,no,51_to_100,success B,L,L,product-family,product,high,TLC,Technical,M,OO,high,yes,yes,yes,yes,yes,yes,tight,D+C,yes,ex-novo,yes,before,yes,yes,no,51_to_100,success D,L,L,isolated,alone,middle,SE-Tools,Technical,M,OO,middle,yes,yes,no,no,yes,no,loose,C,no,as-is,no,before,no,no,yes,21_to_50,failure E,L,L,isolated,alone,middle,TLC,Technical,M,OO,middle,yes,yes,no,no,yes,no,loose,C,no,as-is,no,before,no,no,yes,21_to_50,failure F,L,L,isolated,alone,middle,TLC,Technical,M,OO,middle,yes,yes,no,no,yes,no,loose,C,no,as-is,no,before,no,no,yes,21_to_50,failure G,L,X,product-family,process,low,Bank,Business,L,OO,middle,yes,yes,yes,yes,yes,yes,loose,C,no,reeng,no,justintime,yes,yes,no,51_to_100,success H,M,M,product-family,product,high,Engine_Controller,Embedded-RT,L,OO,middle,yes,yes,yes,yes,yes,yes,tight,R+D+C,no,reeng,no,justintime,no,yes,no,51_to_100,success I,M,X,product-family,product,middle,FMS,Technical,M,OO,high,no,no,no,yes,yes,no,loose,D+C,no,reeng,no,justintime,no,no,no,51_to_100,failure J,M,X,product-family,product,middle,FMS,Technical,M,OO,middle,no,no,no,yes,yes,no,loose,D+C,no,reeng,no,justintime,no,no,no,51_to_100,failure K,M,X,product-family,product,middle,ATC,Non-Embedded-RT,L,proc,high,yes,yes,yes,yes,yes,yes,tight,R+D+C,yes,reeng,no,justintime,yes,yes,no,100+,success L,M,X,product-family,product,high,TS,Technical,M,proc,high,yes,yes,yes,yes,yes,yes,tight,R+D+C,yes,reeng,no,justintime,yes,yes,no,51_to_100,success M,M,X,product-family,product,high,SE-Tools,Technical,L,proc,middle,yes,yes,yes,yes,yes,yes,tight,R+D+C,yes,reeng,no,justintime,yes,yes,no,100+,success N,M,X,product-family,product,middle,TLC,Non-Embedded-RT,M,proc,middle,yes,yes,yes,yes,yes,yes,tight,R+D+C,yes,reeng,no,justintime,yes,yes,no,51_to_100,success O,S,L,product-family,product,middle,Space,Embedded-RT,M,OO,middle,yes,no,no,no,yes,no,loose,R+D+C,no,ex-novo,no,before,yes,yes,no,1_to_20,failure P,S,M,product-family,product,middle,Manufacturing,Embedded-RT,M,proc,middle,yes,yes,yes,yes,yes,yes,loose,R+D+C,yes,reeng,no,justintime,yes,yes,no,100+,success Q,S,M,product-family,product,middle,Manufacturing,Technical,M,proc,middle,yes,yes,yes,yes,yes,yes,loose,R+D+C,yes,reeng,no,justintime,yes,yes,no,100+,success R,S,M,product-family,product,middle,TLC,Embedded-RT,L,proc,high,yes,yes,yes,yes,yes,yes,loose,C,no,reeng,no,justintime,yes,yes,no,1_to_20,success S,S,S,product-family,product,low,Measurement,Technical,M,OO,middle,yes,yes,yes,yes,yes,yes,tight,C,no,ex-novo,no,justintime,yes,yes,no,100+,success T,S,X,product-family,product,middle,FMS,Embedded-RT,M,OO,high,no,yes,yes,no,yes,no,loose,C,no,reeng,no,justintime,yes,yes,no,1_to_20,failure U,S,X,product-family,process,low,Finance,Business,L,OO,low,yes,yes,no,yes,yes,yes,tight,R+D+C,no,reeng,no,justintime,no,yes,no,100+,success V,S,X,product-family,product,low,TLC,Technical,S,OO,middle,yes,yes,yes,yes,yes,yes,tight,C,no,reeng,no,justintime,yes,yes,no,1_to_20,success W,M,L,product-family,alone,middle,Manufacturing,Business,L,OO,middle,yes,no,yes,no,yes,yes,tight,C,yes,reeng,no,justintime,no,no,no,1_to_20,success X,S,S,product-family,NA,low,Book-Keeping,Business,S,proc,middle,yes,NA,NA,NA,NA,no,NA,NA,NA,NA,NA,NA,NA,NA,no,NA,failure Y,M,M,isolated,product,high,FMS,Embedded-RT,not_available,not_available,not_available,no,yes,no,no,yes,yes,loose,C,no,as-is,no,before,no,no,no,100+,failure