软件工程体系结构Ch14LargeScaleSoftwareDesignBasedonSoftwareReuse

上传人:E**** 文档编号:91193110 上传时间:2019-06-26 格式:PPT 页数:50 大小:2.02MB
返回 下载 相关 举报
软件工程体系结构Ch14LargeScaleSoftwareDesignBasedonSoftwareReuse_第1页
第1页 / 共50页
软件工程体系结构Ch14LargeScaleSoftwareDesignBasedonSoftwareReuse_第2页
第2页 / 共50页
软件工程体系结构Ch14LargeScaleSoftwareDesignBasedonSoftwareReuse_第3页
第3页 / 共50页
软件工程体系结构Ch14LargeScaleSoftwareDesignBasedonSoftwareReuse_第4页
第4页 / 共50页
软件工程体系结构Ch14LargeScaleSoftwareDesignBasedonSoftwareReuse_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《软件工程体系结构Ch14LargeScaleSoftwareDesignBasedonSoftwareReuse》由会员分享,可在线阅读,更多相关《软件工程体系结构Ch14LargeScaleSoftwareDesignBasedonSoftwareReuse(50页珍藏版)》请在金锄头文库上搜索。

1、Ch14 Large-Scale Software Design Based on Software Reuse,Ding Er-Yu Software Institute, Nanjing University,Software System Design and Architecture,Main Contents,An introduction to software reuse Component model and CBSE Frameworks Product Lines,Practices about Reuse,Studies: Only 15% of new code ser

2、ves an original purpose i.e. Theoretical reuse rate of 85% Studies: Software Reuse is the most beneficial “silver bullet” (30-35%) There is no other way to build large applications.,Chaos 2000, Standish Group,Definitions for Software Reuse,Software reuse is the systematic practice of developing soft

3、ware from a stock of building blocks so that similarities in requirements and architecture between applications can be exploited to achieve substantial benefits in productivity, quality and business performances. Software reuse is the process whereby an organization defines a set of systematic opera

4、ting procedures to specify, produce, classify, retrieve, and adapt software artifacts for the purpose of using them in its development activities.,Types of Reuse,Opportunistic reuse: This is possible during programming when components are discovered that happened to fit a requirement. Systematic reu

5、se: This require a design process that consider how exciting designs may be reused and that explicitly organized the design around available software components.,Opportunistic Reuse (Programmers view),Code reuse is practiced on an individual level. This heavily depends on Individuals skills, knowled

6、ge and Attitude towards reuse Programmers must be Aware of what is available for reuse Willing to reuse rather than create from scratch (not-invented here syndrome) Motivated to promote future reuse by enhancing reusability of components they develop.,Systematic Reuse,Domain-focused Based on repeata

7、ble processes and methodologies Concerned primarily with the reuse of higher level lifecycle artifacts (e.g. requirements, designs, subsystems, ) Shifts Software Engineering with the construction of a single system to a discipline concerned with the construction of multiple systems hat share common

8、parts and vary in certain regular and identifiable ways. Frakes,The Reuse Landscape,Types of Development Reuse,Primitive forms of reuse: code reuse Copy and paste Using functions A basic level reuse Libraries (eg. In C) Object oriented development reusing classes, interfaces and packages Todays Tren

9、d Component based development Pattern Framework Architecture Product Line, Domain Engineering Etc.,Benefits of Reuse (Hewlett-Packard),A Simple Software Reuse Process,cost-benefit analysis of reuse,The cost of software development with reuse C = CFreuse * Rreuse + CFnew * Rnew CFreuse: cost factor f

10、or reuse of code Rreuse : ratio of reused code CFnew : cost factor of developing new code Rnew: ratio of newly developed code Rnew + Rreuse = 1.,cost-benefit analysis of reuse (cont.),CFreuse = b + E/n b: cost of integrating reused code into a system. For reuse to be cost effective b must be = 1 the

11、 number of projects that reuse this software, denoted n,C = CFreuse * Rreuse + CFnew * Rnew,cost-benefit analysis of reuse (cont.),C = CFreuse * Rreuse + CFnew * Rnew Substituting Rnew = 1- Rreuse and CFnew = 1, CFreuse = b + E/n C=(b + E/n ) * Rreuse + (1-Rreuse ) * 1 = 1 - (1 (b + E/n) ) * Rreuse

12、b + E/n =1 Larger Rreuse is better,Example of cost-benefit analysis of reuse (b= 0.2 and E = 1.5),Main Contents,An introduction to software reuse Component model and CBSE Frameworks Product Lines,Motivation for CBSE,Introduces Components-Based Software Engineering (CBSE),Reality,Vision & dream!,Comp

13、onent-based system: Application + components + glue/addware,Whats a component?,software components are (binary) units of independent production, acquisition, and deployment that interact to form a functioning system. A software component can be deployed independently and is subject to composition by

14、 third parts. components are black boxes. Application developer that make use of components need not understand the implementation of those components. They are reusable code in its simplest form,Component environments,Components should be interactive, and have common understanding of their interfac

15、es, so do they interact like this? Then components cant be independent to context, so they usually be arranged like this The mediator are always provided by common component model,Component models,A component model is a definition of standards for component implementation, documentation and deployme

16、nt. The component model specifies how interfaces should be defined and the elements that should be included in an interface definition.,Commercial Component Models,Open standard CORBA CCM (Corba Component Model) Web Service Microsoft COM/DCOM .Net SUN JavaBeans Enterprise JavaBeans,EJB Component model: Interfaces and Implementations,24,EJBObject getEJBHome() getPrimaryKey() getHandle() isIdentical() remove() deposit() getBalance(),Remote Interface deposit() getBalance(),EJB ejbCre

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号