sixteen questions about software reuse

21
Sixteen Questions About Software Reuse William B. Frakes and Christopher J. Fox Communications of the ACM

Upload: sanam

Post on 09-Feb-2016

57 views

Category:

Documents


0 download

DESCRIPTION

Sixteen Questions About Software Reuse. William B. Frakes and Christopher J. Fox Communications of the ACM. Software reuse. The use of existing software knowledge and artefacts to build new software artefacts sometimes confused with porting reuse is using an asset in different systems - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Sixteen Questions About  Software Reuse

Sixteen Questions About Software Reuse

William B. Frakes and Christopher J. FoxCommunications of the ACM

Page 2: Sixteen Questions About  Software Reuse

Software reuse

• The use of existing software knowledge and artefacts to build new software artefacts

• sometimes confused with porting– reuse is using an asset in different systems– porting is moving a system across environments and

platforms

Page 3: Sixteen Questions About  Software Reuse

The survey• Surveyed:

– software engineers, managers, educators, and other in the software development and research community

• About:– attitudes, beliefs, and practices in reusing code and

other lifecycle objects• Response from

– 113 people from 29 organizations (28 US and one European)

– fairly representative of experienced software engineers or managers at high technology companies

Page 4: Sixteen Questions About  Software Reuse

16 questions

• The survey is used to answer 16 questions commonly asked by organizations attempting to implement systematic reuse.

• The answers to these questions are often taken for granted in the software community but without empirical verification

• This article uses empirical data from a survey to answer these questions

Page 5: Sixteen Questions About  Software Reuse

Q1: How widely reused are common assets?

• Are reusable assets actually used, and are they found valuable?

• Answer: yes and no.– Some assets are widely used (e.g.. UNIX tools) and perceived to

be valuable, others are not used by many and are not perceived to be valuable (e.g.. Cosmic collection form NASA)

• Possible reasons: – lack of information and education– asset quality and ease of access– anecdotal evidence suggest that relevant functionality is an

important factor

Page 6: Sixteen Questions About  Software Reuse

Q2: Does programming language affect reuse?

• Does certain programming languages provide better reuse support (e.g.. by supporting abstractions, inheritance, strong typing)

• The data of the survey shows the correlation of 11 languages and the level of organizational code reuse.

• Findings:– languages usually thought to promote reuse show small correlation (e.g..

ADA and C++)– Higher level languages are no more strongly correlated with code reuse

than is assembly language• Conclusion:

– Choice of programming language does not affect code reuse levels– To increase reuse the focus should be on other factors

Page 7: Sixteen Questions About  Software Reuse

Q3: Do CASE tools promote reuse?

• Many organizations regard CASE tools as a way to improve reuse• The majority (75%) does not agree that CASE tools have

promoted reuse• No significant correlation between the respondents degree of

belief in that CASE tools promote reuse and the percentage of actual reuse.

• Conclusion:– CASE tools are not currently effective in promoting reuse– Reasons:

• CASE tools may not be used• CASE tools may not be used correctly• CASE tools may not promote reuse

Page 8: Sixteen Questions About  Software Reuse

Q4: Do developers prefer to build from scratch or to reuse?

• Many people believe that software engineers prefer to build their own software rather than reuse someone else's

• Statement used in the survey:– ”It’s more fun to write my own software than to reuse”

• Most respondent do not agree on it (72%)• Conclusion:

– Most developers prefer to reuse rather than to build from scratch

• Contradicts conventional assumptions, but is in agreement with other findings of another recent study

Page 9: Sixteen Questions About  Software Reuse

Q5: Does perceived economic feasibility influence reuse?

• Reuse may not be done if it is not believed to be economically feasible.

• Levels of code reuse is compared with respondents agreement with the statement: “Reuse is economically feasible in my organization”.

• Clear trend towards higher reuse as belief in economic feasibility increases

• Conclusion:– perceived economic feasibility influences reuse– important to convince software engineers about the economic

feasibility of reuse

Page 10: Sixteen Questions About  Software Reuse

Q6: Does reuse education influence reuse?

• Comparing education about software reuse (at school) with individual levels of reuse shows that education on reuse does affect code and design reuse

• Comparing education about software reuse (at work) with organizational reuse levels of lifecycle objects shows that education at work does affect reuse

• Conclusion:– Education in school and at work improves reuse and is a necessary

part of a reuse program

Page 11: Sixteen Questions About  Software Reuse

Q7: Does software engineering experience influence reuse?

• General assumption that experienced software engineers are better practitioners

• The survey shows no significant correlations between engineering experience and personal level of reuse.

• Conclusion:– Software engineering experience has no effect on reuse

of lifecycle objects– Maybe caused by historical lack of training in reuse

Page 12: Sixteen Questions About  Software Reuse

Q8: Do recognition rewards increase reuse?

• Reuse incentives are considered to be necessary catalysts for reuse.– recognition rewards and cash rewards

• Respondents say that rewards are rare– no cash bonuses– only a few with other recognition

• Comparing levels of organizational code reuse between the two groups ”rec. rewards” and ”no rewards” show no significant differences

• Similar findings for individual reuse• The findings contradict the common belief that recognition is a

sufficient reward for reuse.• It may be that only monetary rewards are sufficient rewards

Page 13: Sixteen Questions About  Software Reuse

Q9: Does a common software process promote reuse?

• Statement used in the survey:– “A common development process has promoted reuse across projects in

our organization.”• Respondents generally do not agree on it.• This might mean:

– no defined common process– the process has failed to support reuse

• The correlations between the degree of agreement with the statement and the organizational reuse shows– moderate correlation for designs, test plans, and test cases– weak correlations for requirements, code, and user documentation

• Conclusion– A defined software process that promotes reuse does affect software reuse

levels

Page 14: Sixteen Questions About  Software Reuse

Q10: Do legal problems inhibit reuse?

• Legal issues e.g.. regarding contracting, ownership are still unresolved and are thought to be a serious impediment to reuse

• The statement: – I am inhibited by possible legal problems.

• Most respondents (68%) report that legal problems do not appear to be an impediment

• Conclusion:– No significant correlation between levels of reuse and reported

inhibition by legal problems.

Page 15: Sixteen Questions About  Software Reuse

Q11: Does having a reuse repository improve code reuse

• A reuse repository is a searchable collection of reusable assets.

• Slightly higher median for reuse levels for organizations with a repository

• Not statistically significant• Conclusion

– Having a reuse repository does not improve reuse– A repository should not be the focus for organizations

trying to improve systematic reuse

Page 16: Sixteen Questions About  Software Reuse

Q12: Is reuse more common in certain industries?

• Respondents were asked to classify their company or business

• Significant differences in reuse between different industries– higher level for telecommunication– lower level for aerospace industries

• Reasons not currently known• Industries with low reuse might benefit from studying and

adopting reuse practice in industries that lead in software reuse

Page 17: Sixteen Questions About  Software Reuse

Q13: Are company, project sizes predictive of organizational reuse?

• Small organizations:– Is systematic reuse a realistic goal given the the scope of their

domain and limited resources?• Large organizations:

– Introducing systematic reuse may be unrealistic because of the large investment and time required

• No significant correlation were found between organizational size and reuse levels

• Conclusion:– Company and project size are not predictive of reuse levels– Organizations of any size may succeed to introduce systematic

reuse

Page 18: Sixteen Questions About  Software Reuse

Q14: Are quality concerns inhibiting reuse?

• It is commonly thought software engineers distrust assets developed outside and thus are less likely to reuse them.

• No correlation between:– ”software developed elsewhere meets our standards”– ”what percentage of the parts you reuse are form external sources”

• Experience in quality of reusable software have generally been favourable (69% agreement)

• No correlation between personal reuse level and experience in quality of external software

• Conclusion– Satisfaction with quality does not influence reuse levels– Does NOT mean that quality is unimportant

Page 19: Sixteen Questions About  Software Reuse

Q15: Are organizations measuring reuse, quality, and productivity?

• Measuring reuse is important to determine success of the reuse program

• Few organizations are currently measuring reuse (at most 25%)

• Quality is more widely measured (42%)• Productivity measurement is relatively rare (32%)• Conclusion:

– Many organizations do not measure reuse levels, quality, and productivity

– These organizations cannot properly manage their software processes and products, including reuse

Page 20: Sixteen Questions About  Software Reuse

Q16: Does reuse measurement influence reuse?

• Measuring an activity will tend to increase it.• Comparing median level of software reuse for

organizations that are or are not measuring reuse.• The study shows no correlation• Conclusion:

– Organizations that measure reuse do not use these measurements to improve reuse levels.

Page 21: Sixteen Questions About  Software Reuse

How to improve reuse

• To improve systematic reuse concentrate on:– education about reuse– developers understanding on the economic feasibility

of reuse– introduce a common development process that

promotes reuse– make high quality assets available to developers