Presentation is loading. Please wait.

Presentation is loading. Please wait.

Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.

Similar presentations


Presentation on theme: "Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks."— Presentation transcript:

1 Banaras Hindu University

2 A Course on Software Reuse by Design Patterns and Frameworks

3 by Dr. Manjari Gupta Department of Computer Science Banaras Hindu University

4 Lecture 1 Basic Issues in Software Reuse

5  software reuse offers possibilities for  reducing development cost and  improving software quality Scope and necessity of software reuse

6  Most reuse approaches  based on object-oriented technology.  different kinds of reuse  code, analysis, design, and architectures. Software Reuse

7  Standard block of code copied and pasted into every application  Difficult, if frequent changes are needed  Object-oriented programming  Good reuse within an application  Framework technology: reuse across applications Origin of Software Reuse

8  Incidental reuse  Developers are tempted to reuse their earlier work  Reuse may actually cost more than developing new software  It is necessary to plan for reuse  additional cost during development  dramatic savings over a number of projects Software reuse

9  Other engineering disciplines, like mechanical and electrical, make the designs based on reusable and replaceable components.  in software engineering field we need to reuse software assets Systematic Software Reuse

10  Formal Software Reuse  introduced by Mcllroy  at the NATO Software Engineering Conference  in 1968

11  reusing the inputs, the processes and the outputs of previous software development efforts [Mili95].  is the reapplication of artifacts and knowledge from the development of one system to another system [Li92].  Reuse is, basically, a work culture  the basic principle of reuse [Smolarova97]  not to repeat solving of what has been already solved. Software reuse

12  initial phases of software reuse will generate negative savings  As the repository grows larger, the savings through reuse will start to offset the costs associated with the initial setup, and  a breakeven point will be reached.  Beyond this, the savings should continue to outpace costs Savings in development (reuse- based) effort [Nazareth02]

13  Reusability is a measure of the ease with which a reusable item can be used.  It is the degree to which a reusable artifact can be used in more than one applications. REUSABILITY

14  Software reuse encapsulates two aspects  Software development for reuse and  Software development with reuse  Chicken and egg problem

15  Increase in productivity,  Increase in quality,  Reduced software development cost,  Reduced maintenance costs,  Reduced time to market for a project,  Provides return on investment etc. REUSE PROMISES

16 DOD Lines of Code in Service and Cost/LOCS [Bohem99]

17  Added revenuer due to income from selling reusable information  Added revenue from fees or royalties resulting from redistribution of information REUSE PRODUCER BENEFITS [Fichman01]

18  Reduced cost to design  Reduced cost to document (internal)  Reduced cost to implement  Reduced cost to unit test  Reduced cost to design tests  Reduced cost to document tests  Reduced cost to execute testing REUSE CONSUMER BENEFITS [Fichman01]

19  Reduced cost to product publications  Added revenue due to delivering product sooner to market place  Reduced maintenance costs  Added revenue due to improved customer satisfaction with product quality  Reduced cost of tools  Reduced cost of equipment  Reduced cost to manage development and test REUSE CONSUMER BENEFITS [Fichman01] Cont…

20  Cost of performing cost-benefit analysis  Cost of performing domain analysis  Cost of designing reusable parts  Cost of modeling/design tools for reusable parts  Cost of implementing reusable parts REUSE PRODUCER COSTS [Fichman01]

21  Cost of testing reusable parts  Cost of documenting reusable parts  Cost of obtaining reuse library tools  Cost of added equipment for reuse library  Cost of resources to maintain reuse library REUSE PRODUCER COSTS [Fichman01] Cont…

22  Cost of management for development, test and library support groups  Cost of producing publications  Cost of maintaining reusable parts  Cost of marketing reusable parts  Cost of training in software reuse REUSE PRODUCER COSTS [Fichman01] Cont…

23  Cost of performing cost-benefit analysis  Cost of performing domain analysis  Cost of locating and assessing reusable parts  Cost of integrating reusable parts  Cost of modifying reusable parts REUSE CONSUMER COSTS [Fichman01] Cont…

24  Cost of maintaining modified reusable parts  Cost of testing modified reusable parts  Fees for obtaining reusable parts  Fees or royalties for reusing parts  Cost of training on software reuse REUSE CONSUMER COSTS [ Fichman01] Cont…

25 Non-technical  Financial investment for establishing a reuse program [Smolarova97],  Lack of knowledge of the issues and technologies for reuse [Lynex97],  Lack of support from managers because of tight budget, failure fear, set-up costs etc [Lynex97],  Lack of way to incorporate and promote reuse [Layzell]. FACTORS IMPEDING REUSE

26 disincentives amongst development staff [Smolarova97, Lynex97, Manjari04] oresistance to change, oeffecting job security as fewer developers may be required, obecause of most famous “Not-Invented-Here” syndrome, ocompetition among staffs, ofeel comfortable in developing from scratch than developing by reusing other’s reusable assets etc. Non-technical factors impeding reuse Cont…

27  Lack of methodologies incorporating reuse as a standard development practice,  Lack of appropriate tools supporting software reuse,  Lack of standards for representing reusable software artifact,  Lack of reusable artifact libraries with acceptable retrieval support, Technical factors hindering reuse [Smolarova97]

28  Hard-to-measure nature of reuse [Lynex97],  Continual evolving requirements force users (developers) to modify software (built from reusable systems) to satisfy these changed requirements [Bohem99],  Variability extent among similar applications in a domain [Manjari04],  Lack of appropriate solution for composition and instantiation problems in large scale reuse [Manjari04] etc. Technical factors hindering reuse Cont…

29  Adopt a product line approach  Perform a business case analysis  Focus on achieving black-box reuse  Establish an empowered product line manager and stakeholder buy-in  Establish reuse-oriented processes and organizations Success Factors for Software Reuse [Bohem99]

30  Adopt an incremental approach  Use metrics-based reuse operations management  Establish a pro-active product-line evolution strategy  Maintain a reuse library Success Factors for Software Reuse [Bohem99]Cont…

31 REUSE TYPES  By-substance [Diaz93]  By-mode [Morisio00]  By extent of modification [Diaz93]  By-products [Diaz93]  By-scope [Diaz93]  By scale [Batory93, Li92]  technique used [Manjari04]

32  By-substance  Ideas or concepts reuse: The knowledge why and how to do things in a certain way is reuse.  Artifacts or components reuse  Procedures or skills reuse  By-scope  Vertical: This reuse takes place within the same application area or domain.  Horizontal: It means that reusable parts produced in one application area are reused in a different one. REUSE TYPESCont…

33  By-mode  Copy-paste reuse: It is not a form of real (formal) reuse. It is only the copy of old code and edit that.  Ad-hoc reuse: In this approach if one gets something useful, reuses it otherwise no attempt for reuse is done.  Opportunistic reuse: This approach requires effort for reuse. Library of reusable artifacts are created using existing assets and users take opportunity of this library.  Systematic reuse: This approach deals with planning and developing reusable artifacts that can be of future need. REUSE TYPESCont…

34  By extent of modification  white-box the internal structure of reusable artifact is given to the consumers  black-box reuse reusable artifact is not provided to consumers  By-products  source code, design, specifications, objects, text, and architectures REUSE TYPESCont…

35  By scale  Small Scale Reuse  reuse algorithms or functions, classes, subroutines, package and so on.  Medium Scale Reuse  abstract data types (ADTs)  unit of reuse is a suite of tightly inter-related functions  Large Scale Reuse  reuse subsystems  unit of reuse is a suite of tightly inter-related classes or ADTs  reuse of design information e.g. software architectures, design specifications, REUSE TYPESCont…

36  technique used  Analysis patterns: promotes reuse of domain knowledge by introducing patterns already in analysis phase of the software life cycle.  Design patterns: promotes reuse of design experiences.  Frameworks: promotes reuse of design and semi-code. It promises highest degree of reuse among all others.  Commercial-Off-The-Shelf components REUSE TYPESCont…

37


Download ppt "Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks."

Similar presentations


Ads by Google