A Method for Improving Code Reuse System Prasanthi.S.

Slides:



Advertisements
Similar presentations
Unified theory of software evolution Reengineering – Business process reengineering and software reengineering BPR model – Business definition, process.
Advertisements

Software Reuse Building software from reusable components Objectives
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development.
Managing Reuse Presented by: Aisha Al-Hammadi. Outline Introduction History. The technical and managerial advantages of Reusing Solutions. The main challenges.
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 3: Basing Software Development on Reusable Technology.
Data Structures and Programming.  John Edgar2.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development to validate requirements l.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14Slide 1 Design with Reuse l Building software from reusable components.
Software Engineering Reuse.
Figures – Chapter 16. Figure 16.1 Benefits of software reuse BenefitExplanation Increased dependabilityReused software, which has been tried and tested.
02/10/2015 Page 1 R. Theeuws Siemens Atea Filename: CBD_ervaring Werkgroep Component Based Developments Ervaring CBD.
Chapter 11: Software Prototyping Omar Meqdadi SE 273 Lecture 11 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Introduction To Software Component Reuse
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14Slide 1 Chapter 14 Design with Reuse.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Software Reuse 1 Dr. Eman Alkhammash Taif University.
Software Prototyping Rapid software development to validate requirements.
Chapter 4 Automated Tools for Systems Development Modern Systems Analysis and Design Third Edition 4.1.
Design Engineering 1. Analysis  Design 2 Characteristics of good design 3 The design must implement all of the explicit requirements contained in the.
Maitrayee Mukerji. INPUT MEMORY PROCESS OUTPUT DATA INFO.
Software Development Module Code: CST 240 Chapter 6: Software Maintenance Al Khawarizmi International College, AL AIN, U.A.E Lecturer: Karamath Ateeq.
Chapter 2: The Process. What is Process? Software Engineering Process is the glue that holds the technology layers together and enables rational and timely.
Object Oriented Systems Design
Rekayasa Perangkat Lunak Part-6
Software Hardware refers to the physical devices of a computer system.
Chapter 16 – Software Reuse
Chapter 0: Introduction
Prototyping in the software process
Software Prototyping.
Definition CASE tools are software systems that are intended to provide automated support for routine activities in the software process such as editing.
Modern Systems Analysis and Design Third Edition
Introduction to Design Patterns
Software Life Cycle “What happens in the ‘life’ of software”
Modern Systems Analysis and Design Third Edition
The Systems Engineering Context
Programming Technology Lab, VUB
CS 641 – Requirements Engineering
CS 641 – Requirements Engineering
Software Maintenance
Chapter 16 – Software Reuse
Software Project Planning &
MAKE SDTM EASIER START WITH CDASH !
Chapter 16 – Software Reuse
Script-less Automation: An Approach to Shift-Left.
Teaching slides Chapter 1.
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Modern Systems Analysis and Design Third Edition
An Overview of Software Processes
Requirements Engineering for Product Lines
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Need for the subject.
Modern Systems Analysis and Design Third Edition
What is a CMS. CMS is content management system CMS is a software that stores content.
Software Engineering Software Engineering is the science and art of
CS385T Software Engineering Dr.Doaa Sami
CS310 Software Engineering Lecturer Dr.Doaa Sami
Software Engineering Software Engineering is the science and art of
Software Engineering Lecture 17.
Chapter 16 – Software Reuse
Rapid software development
Chapter 8, Design Patterns Introduction
Software Maintenance Part1 Introduction. Outlines What Is Software Maintenance Purposes of Maintenance Why We Need It Maintenance Difficilties Some Tips.
Chapter 7 Software Testing.
FRAMEWORKS AND REUSE What is “Framework”?
Open API and Open Architecture Working Group (OA2-WG) *DRAFT*
Modern Systems Analysis and Design Third Edition
Chapter 1: Creating a Program.
Chapter 1: Software and Software Engineering
Presentation transcript:

A Method for Improving Code Reuse System Prasanthi.S

Content Abstract Introduction Pros and Cons of code reuse system Problem Statement Solution Conclusion

Abstract Software companies spend more money on development of new products, reuse becomes a more appealing solution. Software assets means the reusable artifacts within the software companies. How can then reusing code help the company? – Code reuse is a good way to put together a solution using tested and implemented code. The advantage with code reuse is that the company can be able to work faster. Alternative lower their costs and get more effective to give them a great advantage against their competition on the market.

Introduction Software Engineering is concerned with processes, techniques and tools which enable us to build “good” systems Software reuse is the reapplication of a variety of kinds of knowledge about one system to another system in order to reduce the effort of development and maintenance of that other system Types of Reuse – Knowledge reuse Artificial reuse – Reuse of use cases, standards, design guidelines, domain-specific knowledge. Pattern reuse – A design pattern is a solution to a common problem in the design of computer systems – Reuse of publicly documented approaches to solving problems – Software reuse Code reuse – Reuse of (visible) source code Inheritance reuse – Using inheritance to reuse code behaviour Template reuse – Reuse of common data format/layout Components – Reuse of prebuilt, fully encapsulated component Framework reuse – Collection of basic functionality of common technical or business domain for components

Pros and Cons of code reuse system Pros of code reuse system – Increased dependability Reused software, which has been tried and tested in working systems, should be more dependable than new software because its design and implementation faults have already been found and fixed. – Reduced process risk The cost of existing software is already known, while the costs of development are always a matter of judgment. This is an important factor for project management because it reduces the margin of error in project cost estimation. This is particularly true when relatively large software components such as subsystems are reused. – Standards compliance Some standards, such as user interface standards, can be implemented as a set of standard reusable components. For example, if menus in a user interface are implemented using reusable components, all applications present the same menu formats to users. The use of standard user interfaces improves dependability because users are less likely to make mistakes when presented with a familiar interface. – Accelerated development Bringing a system to market as early as possible is often more important than overall development costs. Reusing software can speed up system production because both development and validation time should be reduced.

Pros and Cons of code reuse system Cons of code reuse system – Increased maintenance cost If the source code of a reused software system or component is not available the maintenance costs may be increased because the reused elements of the system may become increasingly incompatible with system changes. – Lack of tool support CASE toolsets may not support development with reuse. It may be difficult or impossible to inte grate these tools with a component library. The software process assumed by these tools may not take reuse into account. – Creating and maintaining a component library Populating a reusable component library and ensuring the software developers can use this library can be expensive. – Finding, understanding and adapting reusable components Software components have to be discovered in a library understood and, sometimes, adapted to work in a new environment. Engineers must be reasonably confident of finding a component in the library before they will make include a component search as part of their normal development process.

Problem Statement Conducting the literature review gave an understanding that having a tool like this leads to a performance gain for the company which in turn makes them more popular to their clients. A company without a code reuse system will have to reinvent the wheel over and over; code already developed in earlier projects is often developed again in a later project, thus increases the costs, time and money for the company. This is why it is so important that the companies have some sort of system and/or library that they can use out in the field.

Solution One of the best solution for code reuse system is making a good tool. A properly working cod e reusing tool will benefit the company with: Enables developers to produce more code per time unit. Ensuring that the inserted code is working well, because it is already in use in other projects. Saves the developers time when debugging and testing, thus the code has already be en debugged and tested. Creates a standard process in code storing.

Conclusion Code reuse system is a good way to helps the company to work faster. A properly working code reusable tool will helps the company for reducing their money and time for the development of new software products.