Software Reusability An efficient way in Software Development By Tejaswi Peesapati www.tejaswi.co.nr.

Slides:



Advertisements
Similar presentations
Integrated Project Management IPM (Without IPPD) Intermediate Concepts of CMMI Project meets the organization Author: Kiril Karaatanasov
Advertisements

Building Bug-Free O-O Software: An Introduction to Design By Contract A presentation about Design By Contract and the Eiffel software development tool.
ARCHITECTURES FOR ARTIFICIAL INTELLIGENCE SYSTEMS
Main issues: • Why is reuse so difficult • How to realize reuse
Chapter 22 Product Line Engineering Week 1 CIS 673.
Unified theory of software evolution Reengineering – Business process reengineering and software reengineering BPR model – Business definition, process.
The Human Side of Project Management
Chapter 8 Information Systems Development & Acquisition
Software Reuse Building software from reusable components Objectives
Copyright 2002 Prentice-Hall, Inc. Chapter 1 The Systems Development Environment 1.1 Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer.
Software Product Lines
SYSTEMS DEVELOPMENT Phases, Tools, and Techniques
Chapter 1 The Systems Development Environment 1.1 Modern Systems Analysis and Design Third Edition.
Soft. Eng. II, Spring 02Dr Driss Kettani, from I. Sommerville1 CSC-3325: Chapter 6 Title : The Software Reuse Reading: I. Sommerville, Chap. 20.
Testing Components in the Context of a System CMSC 737 Fall 2006 Sharath Srinivas.
SDLC. Information Systems Development Terms SDLC - the development method used by most organizations today for large, complex systems Systems Analysts.
Reuse Basic concepts. Rationale for reuse  Save calendar time  Save person hours  Reduce process risk  Increased quality  Standards compliance.
Architecture, Implementation, and Testing Architecture and Implementation Prescriptive architecture vs. descriptive architecture Prescriptive architecture:
The Re-engineering and Reuse of Software
COMPONENT-BASED SOFTWARE ENGINEERING
Initiating and Planning Systems Development projects
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2004 Session 6 Lecture # 5 – October 12, 2004.
Appendix 2 Automated Tools for Systems Development © 2006 ITT Educational Services Inc. SE350 System Analysis for Software Engineers: Unit 2 Slide 1.
N By: Md Rezaul Huda Reza n
Page 1 MODEL TEST in the small GENERALIZE PROGRAM PROCESS allocated maintenance changes management documents initial requirement project infrastructure.
Copyright 2002 Prentice-Hall, Inc. Chapter 1 The Systems Development Environment 1.1 Modern Systems Analysis and Design.
Copyright 2002 Prentice-Hall, Inc. Chapter 1 The Systems Development Environment 1.1 Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer.
SOFTWARE REUSABILITY AJAYINDER SINGH CSC What is Software Reuse Software reuse is the process of implementing or updating software systems using.
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
Software Quality Assurance
1 Planning for Reuse (based on some ideas currently being discussed in LHCb ) m Obstacles to reuse m Process for reuse m Project organisation for reuse.
Software Product Line Material based on slides and chapter by Linda M. Northrop, SEI.
The Traditional System Development Life Cycle There are a number of important steps in the creation of a system, regardless of which approach you use.
Systems Analysis and Design in a Changing World, Fourth Edition
1 Chapter 3 1.Quality Management, 2.Software Cost Estimation 3.Process Improvement.
Frameworks CompSci 230 S Software Construction.
ANKITHA CHOWDARY GARAPATI
COMM89 Knowledge-Based Systems Engineering Lecture 8 Life-cycles and Methodologies
SOFTWARE PROCESS AND PROJECT METRICS. Topic Covered  Metrics in the process and project domains  Process, project and measurement  Process Metrics.
Software Maintenance Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.
Domain Classes – Part 1.  Analyze Requirements as per Use Case Model  Domain Model (Conceptual Class Diagram)  Interaction (Sequence) Diagrams  System.
CASE (Computer-Aided Software Engineering) Tools Software that is used to support software process activities. Provides software process support by:- –
MNP1163 (Software Construction).  SDLC and Construction Models  Construction Planning  Construction Measurement.
Oktalia Juwita, S.Kom., M.MT. SYSTEMS DEVELOPMENT Dasar-dasar Sistem Informasi – IKU1102.
Software Engineering Lecture # 1.
Software Engineering Chapter: Computer Aided Software Engineering 1 Chapter : Computer Aided Software Engineering.
Chapter 4 Automated Tools for Systems Development Modern Systems Analysis and Design Third Edition 4.1.
SOFTWARE ENGINEERING. Objectives Have a basic understanding of the origins of Software development, in particular the problems faced in the Software Crisis.
IS444: Modern tools for applications development Dr. Azeddine Chikh.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2000 Lecture # 2 - September 14, 2004.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 15. Review Interaction-Oriented Software Architectures – MVC.
A Method for Improving Code Reuse System Prasanthi.S.
Chapter 1 The Systems Development Environment
Pragmatics 4 Hours.
Chapter 1 The Systems Development Environment
Modern Systems Analysis and Design Third Edition
Software Verification and Validation
Modern Systems Analysis and Design Third Edition
Chapter 1 The Systems Development Environment
Object oriented system development life cycle
Tools of Software Development
Software Reuse Objectives
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Modern Systems Analysis and Design Third Edition
Modern Systems Analysis and Design Third Edition
Software Engineering with Reusable Components
Chapter 1 The Systems Development Environment
Modern Systems Analysis and Design Third Edition
Logical Architecture & UML Package Diagrams
Presentation transcript:

Software Reusability An efficient way in Software Development By Tejaswi Peesapati

Re-Usability? Building Software from reusable components. Components are not just “code” !! Components include all the products in the SDLC, i.e., Requirements and proposals, specifications and designs, etc.,

Why Reusability? Increases Productivity Increase Quality Increases Reliability Decreases Costs Decreases Time

Types of Reusability.. Horizontal Reusability Vertical Reusability

Horizontal Reusability.. Refers to Software Components having wide variety of applications. For example, in Code, it can be Libraries, or any GUI functions. Using Commercial Off-the-Shelf(COTS) or third party applications, falls under this category.

Vertical Reusability.. Neglected, but more potential. Basic idea is to reuse system’s functional areas, or domains in other similar functional system. Here, it can be a like a steering mechanism in cars [:p], for different models of same make.

Creating Reusable Software.. Reusability don’t just happen !! It should be made. Sometimes, it is more managerial than technical to implement reusabilty.

Development Process.. Reusable components should be designed in a way that they can be used in future. Typical ‘Contract Projects’ are built for one time use. Here Key Abilities are Collect and Maintain reusable components repository. Using reusable components in new/existing systems.

Organizational Abilities.. Resources and funding for Reuse Tasks. Training on Reusable components to members. Tech & Non Tech Aspects to Managers. One should take responsibility to maintain repository.

Technical Proficiency.. Should be more than that of ordinary development. Along with OOPS, Layered Archic., should be familiar with ‘Domain Analysis’(DA). DA involves the identification of components in the variations of a common component. Standard Coding Practices, Code Documentation also plays an Imp role.

The Capital for Reusability.. The costs are higher than regular one. But is always advantage in long run of a component. Initial capital may be Technical, Organizational and process changes, Cost of tools to support changes, training staff members, etc.,

Domain Analysis & Sys. Arch.. A group of experts are formed to implement Product Line Approach. Domain is partitioned into individually developable components. After DA, in System Architecture, a group creates interfaces in a way that they can be modified later without disturbing rest of the system Clear & Complete Documentation of Arch. And Design is proposed and scrutinized by experts.

Tools Required.. Repositories should be maintained. Tools should be developed to assist in integration of arch, design and products. Configuration mgmt. tools should be used to track evolution of product line.

People.. { We.. ;) } Most important part of Reusability process. They should understand the reusablilty concept, and benefits for best results. Training programs to Staff members. Takes twice the time to that of regular., so, mgmnt. Should encourage and reward. Then importance & +ves of ReUse become popular.

Advantages.. Increased Reliability Components exercised in working systems. Reduced Process Risk Less Uncertainty in development costs.

Advantages.. Effective Use of Specialists Reuse components, instead of people. Accelerated Development Avoid original development, and hence speed- up production.

Sooooooo Reusability :: Reduces the costs, time to a greater extent. :: Increases quality, reliability Reusability has a great “Road Ahead..” !!

Questions..???

Thank You !! >