REUSE-Re-Engineering The Software Process By Venkat Praveen Medikonda.

Slides:



Advertisements
Similar presentations
Chapter 5 Development and Evolution of User Interface
Advertisements

A BPM Framework for KPI-Driven Performance Management
Systems Development Environment
CSC271 Database Systems Lecture # 18. Summary: Previous Lecture  Transactions  Authorization  Authorization identifier, ownership, privileges  GRANT/REVOKE.
Lecture # 2 : Process Models
Enterprise Resource Planning
Copyright 2004 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Second Edition Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix.
Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department of Defense © 1998 by Carnegie Mellon.
MIS 385/MBA 664 Systems Implementation with DBMS/ Database Management Dave Salisbury ( )
Introduction To System Analysis and Design
SESSION 10 MANAGING KNOWLEDGE FOR THE DIGITAL FIRM.
© Prentice Hall CHAPTER 9 Application Development by Information Systems Professionals.
Effective systems development requires a team effort from stakeholders, users, managers, systems development specialists, and various support personnel,
Copyright 2002 Prentice-Hall, Inc. Chapter 1 The Systems Development Environment 1.1 Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer.
Dr. Ralph R. Young Director of Software Engineering PRC, Inc. (703) Fifth IEEE International Symposium on Requirements Engineering.
Fundamentals of Information Systems, Second Edition
Chapter 1 The Systems Development Environment 1.1 Modern Systems Analysis and Design Third Edition.
Principles of Information Systems, Sixth Edition 1 Systems Investigation and Analysis Chapter 12.
MSIS 110: Introduction to Computers; Instructor: S. Mathiyalakan1 Systems Investigation and Analysis Chapter 12.
Lecture Nine Database Planning, Design, and Administration
Introduction to Systems Analysis and Design
Understanding of Automation Framework A Storehouse of Vast Knowledge on Software Testing and Quality Assurance.
Copyright © 2014 McGraw-Hill Higher Education. All rights reserved. CHAPTER 4 Product/Process Innovation McGraw-Hill/Irwin.
Software Configuration Management
Enterprise Architecture
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
What is Business Analysis Planning & Monitoring?
Effective Methods for Software and Systems Integration
1.Database plan 2.Information systems plan 3.Technology plan 4.Business strategy plan 5.Enterprise analysis Which of the following serves as a road map.
HOW DO INFORMATION SYSTEM SUPPORT THE MAJOR BUSINESS FUNCTION?
Database System Development Lifecycle © Pearson Education Limited 1995, 2005.
Overview of the Database Development Process
Appendix 2 Automated Tools for Systems Development © 2006 ITT Educational Services Inc. SE350 System Analysis for Software Engineers: Unit 2 Slide 1.
Reuse Standards Dr. Carma McClure Extended Intelligence, Inc. Copyright (c) 1998 by Extended Intelligence, Inc.
Chapter 2 The process Process, Methods, and Tools
Software Process and Models
Describing Methodologies PART II Rapid Application Development*
Transaction Processing Systems and System Development Life Cycle
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.
Topic (1)Software Engineering (601321)1 Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution.
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.
What is a Business Analyst? A Business Analyst is someone who works as a liaison among stakeholders in order to elicit, analyze, communicate and validate.
Rapid Application Development. What is RAD……..?  Rapid Application Development (RAD) is a software development process.  first developed during the.
MERCURY BUSINESS PROCESS TESTING. AGENDA  Objective  What is Business Process Testing  Business Components  Defining Requirements  Creation of Business.
Copyright 2002 Prentice-Hall, Inc. 1.1 Modern Systems Analysis and Design Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 1 The Systems Development.
Copyright 2001 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix B Rapid Application.
Computers Are Your Future Tenth Edition Chapter 13: Systems Analysis & Design Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall1.
Information Systems Engineering. Lecture Outline Information Systems Architecture Information System Architecture components Information Engineering Phases.
Principles of Information Systems, Sixth Edition Systems Investigation and Analysis Chapter 12.
Software Product Line Material based on slides and chapter by Linda M. Northrop, SEI.
Search Engine Optimization © HiTech Institute. All rights reserved. Slide 1 What is Solution Assessment & Validation?
Object-Oriented Software Engineering using Java, Patterns &UML. Presented by: E.S. Mbokane Department of System Development Faculty of ICT Tshwane University.
Chapter 6 CASE Tools Software Engineering Chapter 6-- CASE TOOLS
Principles of Information Systems, Sixth Edition Systems Investigation and Analysis Chapter 12.
CASE (Computer-Aided Software Engineering) Tools Software that is used to support software process activities. Provides software process support by:- –
Copyright 2002 Prentice-Hall, Inc. Chapter 4 Automated Tools for Systems Development 4.1 Modern Systems Analysis and Design.
Chapter 4 Automated Tools for Systems Development Modern Systems Analysis and Design Third Edition 4.1.
Foundations of Information Systems in Business. System ® System  A system is an interrelated set of business procedures used within one business unit.
Search Engine Optimization © HiTech Institute. All rights reserved. Slide 1 Click to edit Master title style What is Business Analysis Body of Knowledge?
Fundamentals of Information Systems, Sixth Edition
Modern Systems Analysis and Design Third Edition
Rapid Application Development
Component Based Software Engineering
Object oriented system development life cycle
Software Product Lines
Modern Systems Analysis and Design Third Edition
Modern Systems Analysis and Design Third Edition
Presentation transcript:

REUSE-Re-Engineering The Software Process By Venkat Praveen Medikonda

Software Reuse Software Reuse is the process of creating software systems from predefined software Software Reuse is the process of creating software systems from predefined software components. This practice enables us to assemble new programs from existing components. This practice enables us to assemble new programs from existing components. components. Two basic process of software reuse are:  The systematic development of reusable components and  The systematic reuse of these components as building blocks to create new systems. systems. The positive features of software reuse are: The positive features of software reuse are:  Increase software productivity  Shorten development time  Develop software with fewer people  Reduce software development and maintenance costs  Produce more standardized and better quality software

Rethinking Software Development  Traditional methods of software development, cannot meet the ever-growing demand for more software systems delivered in shorter span with low cost.  Software development needs to be re-engineered with software reuse approach  Here software is developed from predefined, standardized, interchangeable software components..  Software reuse is the best answer to the software crisis

Software Reuse Paradigms: The reasons why software reuse often fails to work in practice are  There is no management commitment or support  Cost of reuse is too high  Code reuse is more trouble then it is worth  Current tools do not support reuse  Management is not convinced of the business value of reuse  Reward and recognition programs are counter to reuse Similarity of Software Systems:  Systems within the same work or application area have great deal of similarity.  Comparative analysis show 60% to70 % similarity across software systems.  This includes code, design, functional and architectural similarities.  Majority of each new application built could be assembled from predefined reusable components.

Commonality  Commonability means that the same software components recur across systems or within one system  Commonalty occurs at all levels of system abstraction,code components,design,requirements etc Common component: is a component which is used repeatedly within one system or in multiple systems or in multiple versions/implementations of the same system. systems or in multiple versions/implementations of the same system. Commonality analysis: Commonality analysis is a process of identifying common components across a set of existing or future systems. Commonality analysis: Commonality analysis is a process of identifying common components across a set of existing or future systems. purpose: is it advantageous to develop reusable components and in particular which reusable components to be used in creation and maintenance of systems. purpose: is it advantageous to develop reusable components and in particular which reusable components to be used in creation and maintenance of systems. commonality analysis is a combination of commonality analysis is a combination of top-down process top-down process and and bottom-up process bottom-up process

Top-Down Process Top-Down Process Studies future systems for the domain its objective is to determine the percentages of future system components that are common. Studies future systems for the domain its objective is to determine the percentages of future system components that are common. Potential commonalities in future systems can be identified by comparing: Potential commonalities in future systems can be identified by comparing:  System requirements and priorities of system requirements  System behavior/functions  Software architectures  Technology (supporting hardware and software) Bottom-Up Process Studies examples of existing systems in the domain to identify common components. Studies examples of existing systems in the domain to identify common components. To identify common components in existing systems, compare systems in term of To identify common components in existing systems, compare systems in term of  If components have similar names, they are likely to be similar.  If components use similar input and produce the same output, they are likely to be similar.  If components have same data structures, they are likely to be similar.

Domain Analysis  Domain analysis is the process of identifying reusable components that have best reuse potential.  It is a form of system analysis for a class of systems.  Domain analysis defines and organizes reusable components to enable their effective reuse in a domain.  Domain analysis occurs before the systems analysis stage in the life cycle process.  Domain analysis provides a means to link corporate goals, critical success factors and strategic system requirements with opportunities to practice reuse in the most optimum manner.  Domain analysis is performed to gather model information for the better understanding of the domain and to develop future systems from reusable components.  Examples of domain analysis are airline reservation or customer inquiry.

The Reuse Techniques Commonality Analysis: Commonality analysis is the process of identifying common components across a set of existing and /or future systems. components across a set of existing and /or future systems. Domain Analysis: Domain analysis is the process of capturing and modeling information in the domain for the purpose of gaining a better understanding of the domain and for developing future systems for the domain from highly reusable components. for developing future systems for the domain from highly reusable components. Redundancy Checking: Set of techniques that identify software components that have been implemented multiple times in one software system or across multiple systems. Reuse Planning: Reuse planning is the process of creating a reuse implementation plan for a reuse program. Reuse Library: The development of software reuse library is an essential part of practicing reuse

Reuse Engineering Is the activity consisting of cohesive collection of all tasks that are primarily performed to increase the reuse on endeavors of certified reusable work products. Goals: Goals:  Ensure that an optimal supply of high-quality reusable work products are available within the development organization  Ensure that these reusable work products are available to all project teams for reuse. Objectives: Objectives:  Ensure that the supply of reusable work products is optimal in size, scope, and applicability.  Ensure the quality of the reusable work products is high enough to justify reuse.  Ensure that the reusable work products are available to all endeavor teams for reuse. Examples:  Typical examples of reuse engineering include:  Project-internal reuse engineering  Organizational-internal reuse engineering

Stages Of Reuse Engineering

Reuse-Based Planning  Create enterprise models reusing available models when possible  Develop strategic Plan  Identify domains and opportunities for practicing reuse  Create the corporate reuse plan Domain Analysis Stage  Select domain to analyze  Define what kind of components to reuse  Identify what currently exists and can be reused and package it for reuse  Identify what is common and should be created for future reuse  Define reuse catalogs, classification schemes and library architecture  Create and populate reuse library Reuse-Based Business Area Analysis  Create business area models from existing models when available  Determine where to practice reuse in the business area  Create a design plan and reuse plan for each system to be developed in the business area

Stages Of Reuse Engineering Reuse-Based Design  Create system prototypes from reusable prototype skeletons and system designs from templates  Create system Implementation and test plan from reusable plan skeletons and reusable test cases  Look for design components that can be reused in the future Reuse-Based Construction  Support generative reuse with the use of GUI generators, code generators, DBMS generators, application generators, etc. Final Reuse Review  Evaluate the system produced and the project in terms of how well they meet reuse goals  Identify any new reusable components and products that could be developed based on this system development effort  Produce a System reuse review report capturing reuse experiences, lessons learned, advise and suggestions for improving the practice of software reuse

Reuse Roles Reuse Sponsor Member of management appointed to sponsor the reuse program. The reuse sponsor authorizes, approves, promotes, and provides funding and other resources for the reuse program. Member of management appointed to sponsor the reuse program. The reuse sponsor authorizes, approves, promotes, and provides funding and other resources for the reuse program. Reuse Champion An individual or group, who is respected by both management and software professionals, is a good communicator and is excited about reuse. The reuse champion is responsible for initiating the reuse implementation program for an organization and promoting the concept and practice of reuse on a day-to-day basis. An individual or group, who is respected by both management and software professionals, is a good communicator and is excited about reuse. The reuse champion is responsible for initiating the reuse implementation program for an organization and promoting the concept and practice of reuse on a day-to-day basis. Domain Expert A domain expert is knowledgeable in the domain. A knowledgeable end user, software developer or software maintainer who has experience with systems previously created for the domain and also understands the future directions and requirements for the domain may serve as a domain expert. A domain expert is knowledgeable in the domain. A knowledgeable end user, software developer or software maintainer who has experience with systems previously created for the domain and also understands the future directions and requirements for the domain may serve as a domain expert. Reuse Expert The reuse expert is an expert in the practice of software reuse and the application of reuse techniques such as commonality analysis, domain analysis and the creation and management of software reuse libraries. The reuse expert is an expert in the practice of software reuse and the application of reuse techniques such as commonality analysis, domain analysis and the creation and management of software reuse libraries.

References [1]. Ted J.Biggerstaff,Alan j.Perlis “Software Reusability”, volume 1 concepts and models [2]. Tracz, Will, Software Reuse: Engineering Technology Tutorial. IEEE Computer Society Press, Washington DC, 1988 [3]. Dr. Carma McClure “ MODEL-DRIVEN SOFTWARE REUSE PRACTING REUSE INFORMATION ENGINEERING STYLE” & “Reuse-Re Engineering the software process” papers on reusablity “Reuse-Re Engineering the software process” papers on reusablity [4] M.Morisio, M.Egran, C.Tully “Success and Failure factors in software Reuse” IEEE Transaction on software Engineering. [5]. Banker, R. D., Kauffman, R. J., Wright, C. and Zweig, D., "Automating Output Size and Reuse Metrics in a Repository-Based Computer-Aided Software Engineering (CASE) Environment," IEEE Transactions on Software Engineering, Vol. 20, No. 3, (March l994), pp