中南大学电子信息软件工程初试资料 第10章 软件复用技术(10.7-10.8)
中南大学2016年944《软件工程》考试大纲
中南大学2016年全国硕士研究生入学考试《软件工程》考试大纲本考试大纲由软件学院教授委员会于2012年7月7日通过。
I.考试性质《软件工程》考试是为高等院校和科研院所招收硕士研究生而设置的具有选拔性质的全国统一入学考试科目,其目的是科学、公平、有效地测试学生掌握大学本科阶段软件工程课程的基本概念、原理、方法与技术,以及分析和解决问题的能力,评价的标准是高等学校本科毕业生能达到的及格以上水平,以保证被录取者具有基本的软件工程专业素质,并有利于各高等院校和科研院所在专业上择优选拔。
II.考查目标掌握:软件工程的产生、软件工程学的研究对象与原则、软件开发方法、软件工程的生存周期模型以及软件工程发展的新方向;软件需求分析的任务和要求、可行性研究的任务以及系统建模方法;软件开发阶段的任务、过程、方法和技术。
理解:软件质量的概念、分析技术;软件维护阶段的活动、提高软件可维护性的策略;软件工程的相关管理技术。
Ⅲ.考试形式和试卷结构1、试卷满分及考试时间本试卷满分为150 分,考试时间为180 分钟2、答题方式答题方式为闭卷,笔试。
3、试卷内容结构软件工程与软件过程约 10 %软件分析与设计约 55 % 软件验证与维护约 20 % 软件项目管理约 15 % Ⅳ.考查内容一、软件工程与软件过程1 软件工程的产生2 软件工程的研究对象与基本原理3 软件开发方法4 软件工程工具和环境5 软件生存期过程6 软件工程常用生存周期模型二、需求分析1 需求分析的目标2 可行性分析3 需求收集4 需求规格说明5 数据流建模6 实体-关系建模7 系统行为建模8 IDEF0功能建模9 IDEF1x数据建模10 用例建模11 面向对象建模12 统一建模语言UML三、软件设计1 软件设计的任务和过程2 软件设计基本原则3 面向数据流图的设计方法4 面向对象的设计方法5 面向对象软件设计模式6 模型-视图-控制器框架四、软件验证技术1 软件测试基础2 代码复审3 白盒测试4 黑盒测试5 单元测试6 集成测试7 确认测试8 系统测试9 程序正确性证明10 调试五、软件维护技术1 软件维护的基本概念2 软件维护过程3 软件可维护性4 软件再工程技术六、软件项目管理1 成本估计2 效益分析3 风险分析4 进度安排5 项目组织与计划6 软件质量保证与分析软件学院 2015-09-24。
软件工程全部课件-第10章软件复用与构件技术
10.2.3分类和检索软件构件
❖ 1.描述可重用的构件
可以用很多种方式描述可重用的软件构件,但是一种理想的描 述方式是Tracz提出的3C模型——概念(concept)、内容( content)和语境(context)。
软件构件的“概念”是对构件做什么的描述,应该完整地描述 构件的接口,并在前置条件和后置条件的语境中标识构件的语 义。 构件的“内容”描述实现概念的方法。 “语境”把可重用的软件构件置于其应用领域中,也就是说, 通过指定概念的、操作的和实现的特征,语境使得软件工程师 能够找到适当的构件以满足应用需求。
10.3 面向对象的软件重用技术
(3)类的合成 如果从类库中检索出来的基类能够完全满足新软件项目的需 求,则可以直接复用。否则,必须以类库中的基类为父类, 采用构造法或子类法派生出子类。
构造法为了在子类中使用类库中基类的属性和操作,可以考 虑在子类中引进基类的实例作为子类的实例变量。然后,在子 类中通过实例变量来复用基类的属性或操作,构造法用到面向 对象方法的封装特性。 子类法与构造法完全不同,子类法把新子类直接说明为类库 中基类的子类。通过继承、修改基类的属性和操作来完成新子 类的定义。子类法利用了面向对象方法的封装特性和继承特性 。
(2)选取:即用户根据已有软件制品的抽象,寻找、比较和选 择最适合他需要的那个制品(可复用件);
(3)特化:即对已集成:将例化后的复用件集成为应用系统。
10.2基于构件的软件开发
❖ 10.2.1开发可复用的软件构件 ❖ 10.2.2 软件构件的组织 ❖ 10.2.3分类和检索软件构件
10.2.2 软件构件的组织
❖ 可复用构件库的组织方法有枚举分类法、关键词分类法、多 面分类法、超文本组织法、模型法等。
第10章软件复用方案
编码与测试
中南大学医药信息系
软件复用的困难
复用具有许多明显的优点,但目前应用不广泛的主要原因是: (1)技术因素
构件与应用系统之间的差异; 构件要达到一定的规模,才能支持有效的复用; 发现合用构件的困难; 基于复用的软件开发方法和软件过程需要一些新的理论、技 术及支持环境。
(2)人的因素 喜欢自己创造而不喜欢使用别人的东西。
(2)构件检索
构件库中检索一个构件和在数据库中检索一个记录是不同 的。
构件库检索的不确定性带来两种相互矛盾的结果:检索的 结果可能是一个较大的构件集合,要从中找到所需的构件仍然 很费力;检索得到的集合没有把真正需要的构件包括在内。
解决方法:
(一)一般构件库系统能对提出的检索条件作广义解释。 建立同义词对照表,例如“商品销售”、“售货”、“卖
应用 软件
构件工程
测试
2. 软件复用的措施
软件复用的重要性
目的:能更快、更好、成本更低地生产软件产品。
实现软件复用应优先采取的措施:
建立支持复用的基础设施(如构件库)。 培训工程师和管理者使用复用软件。 采用促进软件复用的开发方法(如面向对象的开发
方法)。 企业内部采取激励措施。
管理信息系统
第10章 软件复用
中南大学医药信息系
主要内容
1. 软件复用的基本概念 2. 领域工程 3. 基于构件的软件开发 4. 面向对象与软件复用
编码与测试
中南大学医药信息系
10.1 软件复用的基本概念
1. 软件复用的定义
Freeman (1983年) : “在构造新的软件系统过程中,对已存在的软件
输入信息
技术文献 已有应用 专家经验/建议 当前与未来的需求
软件复用考试开卷资料
软件过程1.软件是什么?软件——计算机系统中的程序及其文档。
程序是计算任务的处理对象和处理规则的描述;文档是为了便于了解程序所需的阐明性资料。
2.软件项目失败原因?客户需求不确定;最终产品的设计和特色只有在过程中才能变得清晰;而不是开始时很难制定准确的计划;估计不够,低估时间和成本;来自营销、客户和管理者的压力;沟通失败是项目失败的最大的威胁;软件过程不可见3.软件项目成功关键?a.过程方面:从“重量型”方法转向了“轻量型”或“灵活”方法,只做有用的工作;XP 是一种不错的方法。
预计它对于目前一代的重要性就象SEI 及其CMM对上一代的重要性一样;越简单越好,越有效越好;用正确的方法做事,而不是将事情做正确,而不是为了遵循某些标准和模型;一定还有更好方法;过程依赖于人b.人员方面:在人力资源管理方面的强大投入,有优秀的员工才会有优秀的企业;发展高素质的项目管理人员,让软件项目管理人员具有专业的技能;发展并把握顶尖技术人才,一个有才华的软件开发者的创造性可以是一个普通者的十倍;软件开发项目应该配备有创造力的人员。
最好是找到一个有创造力的程序员,而不是指望某一个程序员会变得有创造力;可以让程序员发挥他们的专长:编写代码;建立有力合理的组织结构。
c.项目受益者广泛参与:最终用户参与;开发与营销紧密结合;高级管理者强大的支持;项目组内部有效沟通d.向不确定性挑战:日常建构,关注真正的最终结果;立足于灵活;在项目前期阶段充分沟通,充分交流,鼓励创新4.软件过程概念:A process defines Who is doing What, When and How to reach a certain goal软件工程中的目标就是开发和维护软件及相关产品软件过程就是把规程、人、技术和工具结合起来5.软件工程的层次:[从顶到底]工具、方法、过程、质量焦点a.软件工程的基层是过程层:软件工程过程是将技术层结合在一起的凝聚力,使得软件能够被合理地和及时地开发出来。
中南大学电子技术课程考试试卷及答案
---○---○--- ---○---○--- 学 院 专业班级 学 号 姓 名 …………评卷密封线………………密封线内不要答题,密封线外不准填写考生信息,违者考试成绩按0分处理………………评卷密封线…………中南大学考试试卷 20 ~20 学年 1 学期 电子技术 课程 时间110分钟 80学时, 5 学分,闭卷,总分100分,占总评成绩 70 % 20 年 月 日 题 号 一 二 三 四 五 六 七 八 合 计 满 分 10 19 16 12 8 15 10 10 100 得 分 评卷人 复查人 一、选择题(本题10分,每小题2分) 1.三极管工作在饱和状态时,发射结和集电结处于( )。
A .两者均正偏; B .前者正偏,后者反偏; C .两者均反偏; D .前者反偏,后者正偏; 2.电路如图所示,所有二极管均为理想元件,则D1、D2、D3的工作状态为( )。
A .D1导通,D2、D3截止; B .D1、D2截止,D3导通; C .D1、D3截止,D2导通; D .D1、D2、D3均截止; 3.欲使放大电路的输入电阻增加,带负载能力强,应引入( )。
A .电流串联负反馈; B .电压串联负反馈; C .电流并联负反馈; D .电压并联负反馈; 4.能使逻辑函数F=A ⊕B ⊕C ⊕D 均为1的输入变量组合是( )。
A .1101,0001,0100,1000 B .1100,1110,1010,1011 C .1110,0110,0111,1111 D .1111,1001,1010,0000 4.右图所示波形反映的逻辑函数是( )。
(其中A 、B 为输入波形,Y 为输出波形) A .与非; B .异或; C .同或; D .或; 5.对功率放大电路的基本要求是在不失真的情况下能有( )。
A .尽可能高的电压放大倍数 B.尽可能大的输出功率 C. 尽可能小的零点漂移得 分 评卷人二、简答题(24分) 1. 测得放大电路中晶体管的直流电位如图,在圆圈中画出管子,标出各电极的名称,并指出是硅管还是锗管?(4分)2.写出下图电路输出逻辑表达式。
复用技术在软件工程领域中的应用
汇报人:文小库 2024-01-07
目录
• 复用技术概述 • 复用技术的分类 • 复用技术在软件工程中的应用
场景 • 复用技术面临的挑战与解决方
案 • 复用技术的未来展望 • 案例分析
01
复用技术概述
复用技术的定义
复用技术的定义
复用技术是一种在软件开发过程中, 将已有的代码、组件、模块等资源进 行重复利用,以提高软件的开发效率 和质量的技术。
详细描述
基于组件的复用技术使得软件应用程序的不同部分可以像乐高积木一样组合在一 起。这些组件具有明确定义的接口,使得它们可以在不同的应用程序中重复使用 。这种复用技术提高了软件开发的效率和可维护性。
基于框架的复用
总结词
基于框架的复用技术是一种将软件应用程序的结构和框架作 为可重用的资源,以减少开发工作量的方法。
区块链技术在软件复用中的潜在价值
版权保护
区块链技术可以用于记录软件的 版权信息和授权情况,保护开发 者的权益。
透明度与可信度
区块链的分布式特性可以提高软 件复用的透明度和可信度,降低 信息不对称的风险。
去中心化协作
区块链技术可以实现去中心化的 软件协作和复用,降低对中心化 机构的依赖。
06
案例分析
模块化开发
组件化开发
将软件组件封装为可重用的单元,通 过组件的组合和配置实现软件功能, 可以提高开发效率和软件的可扩展性 。
将软件系统划分为多个模块,每个模 块实现特定的功能,可以提高开发效 率和可维护性。
软件维护的复用
1 2
维护工具
使用自动化工具进行软件维护,如代码重构、代 码审查、测试工具等,可以提高维护效率和软件 质量。
中南大学网络技术与应用课件第10章
美2.7黑客案件的攻击方式 分布式拒决服务(DDoS)
Hacker 黑客
M
M
M
Master 主攻手 Zombie 僵尸
z z z
z z
z z z
Target 目标机
1. 基于主机的入侵检测 2. 基于网络的入侵检测
黑客分类
白帽子创新者
•设计新系统 •打破常规 •精研技术 •勇于创新
MS -Bill Gates GNU -R.Stallman Linux -Linus
10.4.3 防火墙的体系结构 1. 屏蔽路由器:是一个多端口的IP路由器,它通过对每一 个到来的IP包依据组规则进行检查来判断是否对之进行 转发。屏蔽路由器从包头取得信息,例如协议号、收发 报文的IP地址和端口号、连接标志以及另外一些IP选项, 对IP包进行过滤。主要用来防止IP欺骗攻击。 2. 双宿主机网关 3. 屏蔽主机网关 4. 屏蔽主网
对于有n个用户的网络,就只需要n个私有密钥和n个公共密钥
• 安全性更高 • 公共密钥加密系统计算非常复杂,它的速度远赶不上对称密钥加
密系统 实际应用:
公共密钥加密系统通常被用来加密关键性的、核心的机密数据,
而对称密钥加密系统通常被用来加密大量的数据
RSA简介
RSA公钥加密算法是1977年由Ron Rivest、Adi Shamirh和 LenAdleman在MIT(美国麻省理工学院)开发的,1978年 首次公布。RSA是目前最有影响的公钥加密算法,它能够 抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公 钥数据加密标准。 RSA算法中,每个通信主体都有两个钥匙,一个公钥一个私 钥。 1.权威数字认证机构(CA)给所有通信主体(个人或组织) 颁发公钥和私钥,彼此配对,分别唯一。 2.私钥好比数字指纹,同时具有解密和加密功能。个人保 管,不公开。 3.公钥好比安全性极高的挂号信箱地址,公开。
中南大学软件工程复习题及参考答案
中南大学复习题及参照答案软件工程一、选择题:1.下面哪些UML图描述系统行为( A )A.用例图B.类图C.对象图2.属于概要设计活动旳是( A )A.软件构造设计B.数据构造设计C.算法设计3.属行为型设计模式旳是(C)A.组合模式B.工厂措施模式C.观测者模式4.下列说法对旳旳是( B )A.UML是软件开发措施B.UML是系统描述语言C.UML是软件开发过程5. 根据程序流程图划分旳模块一般是( B )A. 信息内聚旳模块B. 过程内聚旳模块C.逻辑内聚旳模块6.假如某程序中旳比较个数是m,则其McCabe环形复杂度为( C )A.m-1B.mC.m+17.按ISO9000-3旳阐明,下列属软件配置项旳是( C )A.软件开发措施B.软件开发组织管理制度C.软件开发协议8. 软件测试旳目旳是( C )A.证明软件无错B.发现软件中旳所有错误C.尽量发现软件系统中旳错误9.软件重构关注旳是( B )A. 软件体系构造B. 模块细节C.软件性能10.软件项目开发计划旳内容有( B )A. 数据分析B.风险分析C.功能分析11.在UML旳类图中,描述整体与部分关系旳有( B )A.泛化关系B.聚合关系C.依赖关系12.软件过程能力成熟度模型CMM用以评价(A)A.软件过程能力B.组织能力C.学习能力13. 因计算机硬件和软件环境旳变化而作出旳修改软件旳过程称为( C )A. 完善性维护B. 改正性维护C.适应性维护14. 对项目软件而言,软件功能需求信息重要由谁提供( A )A.软件顾客B.软件开发人员C.软件项目管理人员15. IDEF0图反应不出(C)A.系统做什么B.系统功能由谁做C.系统怎样做16. 原型模型是一种什么开发过程模型(B)A.自顶向上B. 由外至内C.增量式17. 系统流程图描述(A)A.物理系统B.逻辑系统C.软件体系构造18.需求规格阐明书旳内容不应当包括( C )A.软件确认准则B.软件旳性能描述C.算法过程旳详细描述19.适合需求模糊或需求不确定系统开发旳软件开发模型有( C )A. 瀑布模型B. RAD模型C.原型模型20.UML图中描述系统构造旳有( A )A. 组件图B. 次序图C.状态图21.面向对象措施是一种什么软件开发措施( B )A.层次化B.迭代增量式C.逐渐求精22.不可以用来衡量软件可维护性旳有()A.可靠性B.可用性C.可行性23. 系统分析员在需求分析最终负责编写()A.顾客手册B. 概要设计阐明书C.可行性研究汇报24.为了提高软件旳可靠性、可维护性等而对软件旳修改称为()A.改正性维护B.适应性维护C.防止性维护25.在构造化措施中,为使需求变化对软件影响较小,应当使软件构造()A. 与问题构造对应B. 与问题构造独立C.与顾客界面对应26.单元测试旳计划应当在什么阶段完毕()A. 需求分析B. 概要设计C.详细设计27. 下列属面向对象软件开发措施旳有()A. LCP措施B. OMT措施C.IDEF0措施28.强调信息隐藏旳软件工程设计措施有()A.Jackson措施B.Parnas措施C.SA/SD措施29.描述系统动态行为旳模型有()A.包图B.软件构造图C.状态图30.考虑输入条件组合旳测试用例设计措施有()A.等价分类法B.语句覆盖法C. 因果图法31. 下列能减少支援性维护活动旳有()A.运用软件包B.进行配置管理C.对顾客进行合适培训32. 只支持单重继承旳程序设计语言有()A.C++B.DelphiC. C33. IDEF0图旳顶层图是()A. A0图B.A-0图C.A-1图34. 在UML旳用例图中,扩展关系是一种()A. 泛化关系B.依赖关系C.关联关系35.独立测试小组开始介入测试是在()A.模块测试阶段B.集成测试阶段C.确认测试阶段36. 在成本估计中轻易低估局部问题旳措施是()A. 基于经验模型旳估计B. 自底向上估计C. 自顶向下估计37.在IDEF1X图中,假如子实体与父实体存在联络,则子实体将继承父实体旳()A.所有属性B.主关键字属性C.非主关键字属性38. 构造化分析措施使用旳工具有()A. 数据流图B.类图C.软件构造图39. 白盒测试设计用例旳措施是()A. 等价分类法B.基本途径覆盖法C.因果图法40. 在衡量软件质量时,最重要旳原则是()A. 可维护性好B. 可用性好C. 满足顾客功能需求41. 瀑布模型是一种()A. 演化模型B. 次序模型C. 增量模型42. 模块旳独立程度可以由什么定性原则度量()A. 耦合度B. 复杂度C.可靠性43.如下选项中,不属于对象旳特点有()A. 继承B. 多态C. 封闭44. 面向数据构造旳设计措施有()A.Parnas措施B.Jackson措施C. IDEF0措施45. 与UML配合最佳旳软件开发措施是()A.RUP措施B.Coad/Yourdon措施C.IDEF4措施二、填空题:1.统一建模语言UML提供了两种描述整体/部分关系旳措施,分别是和。
2022年中南大学软件工程专业《计算机网络》科目期末试卷B(有答案)
2022年中南大学软件工程专业《计算机网络》科目期末试卷B(有答案)一、选择题1、下列选项中,不属于网络体系结构所描述的内容是()。
A.网络的层次B.每一层使用的协议C.协议的内部实现细节D.每一层必须完成的功能2、()不是对网络模型进行分层的目标。
A.提供标准语言B.定义功能执行的方法C.定义标准界面D.增加功能之间的独立性3、IPv6的地址长度为()位。
A.32B.64C.128D.2564、CIDR技术的作用是()。
A.把小的网络汇聚成大的超网B.把大的网络划分成小的子网C.解决地址资源不足的问题D.由多个主机共享同一个网络地址5、为了检测5比特的错误,编码的海明距应该为()。
A.4B.6C.3D.56、假设数据链路层采用后退N帧协议进行流量控制,发送方已经发送了编号为0~6号的帧。
当计时器超时时,2号帧的确认还没有返回,则发送方需要重发的帧数是()。
A.1B.5C.6D.77、在TCP中,采用()来区分不同的应用进程。
A.端口号B.IP地址C.协议类型D.MAC地址8、主机甲和主机乙新建一个TCP连接,甲的拥塞控制初始阀值为32KB,甲向乙始终以MSS=1KB大小的段发送数据,并一直有数据发送;乙为该连接分配16KB接收缓存,并对每个数据段进行确认,忽略段传输延迟。
若乙收到的数据全部存入缓存,本被取走,则甲从连接建立成功时刻起,未发送超时的情况下,经过4个RTT后,甲的发送窗口是()。
A.1KBB.8KBC.16KBD.32KB9、某TCP分组的选项字段长度为9B,则该TCP分组的数据偏移字段内容为()。
A.1000B.0111C.1111D.001110、在电子邮件应用程序向邮件服务器发送邮件时,最常使用的协议是()A.IMAPB.SMTPC.POP3D.NTP11、FTP客户机发起对FTP服务器的连接建立的第一阶段建立()A.控制传输连接B.数据连接C.会话连接D.控制连接12、使用集线器连接局域网是有限制的,任何两个数据终端设备之间允许的传输通路中可使用的集线器个数最多是()。
中南大学电子信息软件工程初试资料 第9章 软件质量及保证体系(9.1)
易分析性、易改变性、 稳定性、易测试性
与软件可从某一环境转移到另一环境的 能力有关的一组属性。
适应性、易安装性、 一致性、易替换性
9.1.2 软件质量评价
评价软件质量可从三个方面进 行,即产品或中间产品、过程 (即软件生产所需的资源和活 动)和项目。
产品或中间产品评价
定义质量需求 质量需求包含两个方面:①问题规定或隐含的需求;②软件质量
第9章 软件质量及保证体系
中南大学信息科学与工程学院 任胜兵
主要内容
软件质量基本概念 软件质量度量
软件复杂性分析 软件可靠性分析
软件质量控制
ISO9000认证 软件配置管理SCM CMM
9.1 软件质量
1991年海湾战争
事实1:一个软件小故障 造成导弹跟踪系统失灵 。
事实2:爆 炸的根本 原因在于 惯性导航 系统软件 中技术要 求和设计 的错误 。
组织外部的顾客
使所有利益相关者满意为目的
以所有顾客满意为目的
关系到质量结果的取得
对达到质量要求的证明
预期的结果是所有工作都很出色
预期结果是确信组织的产品 能为顾客满意
质量特性
功能特性 (Functionality)
可靠性 (Reliability)
可用性 (Usability)
效率 (Efficiency)
可维护性 (Maintainability)
可移植性 (Portability)
含义
子特性
与一组功能及其指定的性质有关的一组 属性。
适合性、准确性、互 操作性、依从性、安 全性
❖…
9.1.4 软件质量管理
确定质量方针、目标和职责,并在质量 体系中通过诸如:质量策划、质量控制、 质量保证和质量改进,使其实施全部管 理职能的所有活动。
软件工程第10章(2-06)
6.2.1 域工程的概念与特征
1.域与域工程概念的涵义 域是由一组具有类似用户需求的相关系统所组成 的系统集,它展示了现有各系统的共性、个性和 可重用资源,并为开发相似系统提供了可参照的 模型。域工程则是一组相似或相近系统应用工程 建立基本能力和必备基础的过程,它包括了建立 可重用软件构件的全部活动。一个软件域就是共 享通用的、可控制功能的一组系统或应用程序。
1.域分析概念的涵义
20世纪80年代初,美国软件专家James Neighbors提出了“域分析” 这一概念,他认为“域分析标识一个特定问题域中一类相似系统的对 象和操作的活动”。 域分析是发现和记录某个领域共性和差异的过程,它是软件系统化、 形式化和有效重用的关键。在基于域工程的软件开发中,同一域中的 系统需求和功能必然具有明显的共性,域模型就描述不同软件之间的 共性。域分析的主要任务是以软件重用为目标,针对单个或一族相似 的域,寻找域族中能够为多个目标重用的软部件,并经结构化组织后 放入部件库中。 在域工程中,开发人员的基本任务是对一个域中的所有系统进行处理, 而不是局限于个别系统。 此外,域分析与需求分析有许多相似之处:都是基于应用领域的开发 活动,要用域模型来描述。但是,域分析应具有更广阔的视角,因为 它不仅要服务于当前的项目,还要服务于将来的项目。
6.2.1 域工程的概念与特征
2.域特征 在新软件的设计过程中,有时候很难确定一个可重用软件构件在某种 特定情况下是否确实可用。为了解决这个难题,就必须定义一组可以 被论域中所有软件共享的域特征。域特征定义了被论域中的所有产品 的类属属性。可复用软件的域特征的集合可用{Dp},集合中的每一项 Dpi都表示某特定的域特征,赋给Dpi的值表示一个顺序的等级,它可 分为5个等级,分别表明了该特征对软件制品P的相关性,如下:
中南大学软件工程教材知识点整理
可行性研究1、软件工程项目可行性研究实质是一次大大压缩和简化了的分析和设计过程,主要在较高层次上以较抽象的方式进行,其目的是在尽可能短的时间内以最小的代价确定该项目是否能够开发,是否值得开发。
2、可行性研究不是去开发一个软件项目,而是研究该项目能否在给定的资源和给定的时间开发,是否能够开发,是否值得开发。
3、可行性研究的内容:技术可行性(相关技术分析、资源有效性分析、风险分析);经济可行性(成本估计、效益分析);操作可行性,又称社会可行性和运行可行性(就政治意识形态、法律法规、社会道德、民族意识以及系统运行的组织机构或人员等,分析系统能否运行及运行好坏程度)。
4、可行性研究的步骤:对系统目标和范围的定义→对现行系统进行分析研究→导出新系统的逻辑模型→设计新系统的物理方案→推荐可行的方案。
5、可行性研究阶段,成本估计的方法:①基于已完成的类似项目进行估算;(自顶向下估计)缺点:对开发中某些局部问题难以预估,导致考虑不周②使用简单的“分解技术”来进行成本及工作量的估算;(自底向上估计)③使用经验模型进行成本及工作量的估算。
(经验算法估计)主要经验模型:静态单变量模型;动态多变量模型;COCOMO模型。
COCOMO模型:Boehm将软件成本估算分成3个由粗到细的层次:基本层、中间层和详细层。
每个层次又按软件项目的应用领域和复杂程序分成3种类型:组织型、半独立型和嵌入型。
6、效益分析:系统的效益有两部分:经济效益和社会效益。
经济效益是指用使用新系统而增加的收入,包括使用新系统节省的运行费用,是一种有形的效益。
(经济效益度量指标:货币的时间价值、纯收入、投资回收期、投资回收率);社会效益是一种无形的效益,主要从性质上、心理上进行衡量,很难直接量化,但在某些情况下,无效的效益能转化成有形的效益。
7、系统流程图是描绘物理系统的传统工具,可以采用系统流程图来描述项目的大概业务处理流程,其基本思想是用图形符号以黑盒子形式描绘系统各部件(如程序、数据库、文档、人工过程等)。
软件复用知识点总结
1、为什么要复用?软件复用是在软件开发中避免重复劳动的解决方案,而是以已有的工作为基础,充分利用过去应用系统开发中积累的知识和经验,如:需求分析结果、设计方案、源代码、测试计划及测试案例等,将开发的重点集中于应用的特有构成成分。
通过软件复用,在应用系统开发中可以充分地利用已有的开发成果,消除了包括分析、设计、编码、测试等在内的许多重复劳动,从而提高了软件开发的效率,同时,通过复用高质量的已有开发成果,避免了重新开发可能引入的错误,从而提高了软件的质量。
2、复用的概念:软件复用是指重复使用“为了复用目的而设计的软件”的过程。
相应地,可复用软件是指为了复用目的而设计的软件.与软件复用的概念相关,重复使用软件的行为还可能是重复使用“并非为了复用目的而设计的软件”的过程,或在一个应用系统的不同版本间重复使用代码的过程,这两类行为都不属于严格意义上的软件复用。
3、软件复用的分类:1)依据复用的对象,可以将软件复用分为产品复用和过程复用.•产品复用:指复用已有的软件构件,通过构件集成(组装)得到新系统;•过程复用:指复用已有的软件开发过程,使用可复用的应用生成器来自动或半自动地生成所需系统.过程复用依赖于软件自动化技术的发展,目前只适用于一些特殊的应用领域.产品复用是目前现实的、主流的途径.2)依据对可复用信息进行复用的方式,可以将软件复用区分为黑盒(Black Box)复用和白盒(White Box)复用.黑盒复用:指对已有构件不需作任何修改,直接进行复用.这是理想的复用方式.白盒复用:指已有构件并不能完全符合用户需求,需要根据用户需求进行适应性修改后才可使用.而在大多数应用的组装过程中,构件的适应性修改是必需的。
灰盒复用:不允许直接修改构件源代码,但提供了可修改构件行为的扩展语言或编程接口。
可以是基于框架、基于连接子、基于粘连码的复用。
4、如何实现复用:实现复用的基本条件:一是必须有可以复用的对象;二是所复用的对象必须是有用的,三是复用者需要知道如何去使用被复用的对象.5、软件复用包括两个相关过程:可复用软件(构件)的开发和基于可复用软件(构件)的应用系统构造(集成和组装).6、实现软件复用的关键因素:1)软件构件技术:构件是指应用系统中可以明确辨识的构成成分。
2022年Internet技术考试复习题及参考答案
中南大学现代远程教育课程考试复习试题及参照答案Internet技术一、填空题:把答案填在题中横线上。
1.数字基带传播中数据信号旳编码方式有、和三种。
2.Windows旳是一种大型数据库,用于保存网络资源和配备信息。
3.典型旳网络操作系统涉及Windows、UNIX、Linux和。
4.IEEE802参照模型旳原则定义了以太网技术。
5.以太网旳核心技术是。
6.10Base-T中旳100代表、Base代表、T代表。
7.在制作双绞线时,我们一般遵循旳原则是;当连接计算机与互换机时,所用网线两端旳线序是,当将两台计算机直接连接起来时,网线两端线序是。
8.常用旳局域网合同涉及:、、。
9.当联网计算机数量多,且对网络安全规定高时,必须将网络配备为模式。
10.是计算机使用者旳身份标志。
11.可以通过两种方式为计算机配备IP地址:和。
12.为了使DHCP服务正常启动,必须由网络管理员为DHCP服务。
13.IIS旳全称是。
14.Internet旳核心是采用了合同。
15.常用旳Internet接入方式涉及、、、。
16.当在上网时看到喜欢旳网站时,可以将网站添加到,以便下次浏览。
17.顾客可以通过网上旳环绕某一种主题开展持续不断旳讨论。
18.在综合布线各子系统中,充当水平子系统与垂直子系统旳桥梁旳是。
19.网络管理是指对网络旳运营状态进行和。
20.排除网络故障旳流程是、、。
21.实现防火墙旳核心技术有分组过滤技术和。
22.为了书写IP地址以便,习惯上采用所谓表达法。
23.Ipv6对IP地址空间作了大幅度旳扩展,每个IP地址占_位。
24.域名与IP地址之间旳转换由网络上旳来完毕。
25.在计算机网络中,通信双方必须共同遵守旳规则或商定,称为。
26.统一资源定位符URL旳一般格式为:+://+主机域名(或IP地址)+目录途径。
27.建筑物综合布线系统旳水平子系统一般仅使用作为传播介质。
28.路由器是构成因特网旳核心设备。
按照OSI参照模型,它工作于层。
软件工程试卷(中南大学)
软件工程试卷(中南大学)本页仅作为文档页封面,使用时可以删除This document is for reference only-rar21year.March1.名词解释软件,软件危机,系统软件,产品软件,软件工程,软件生存期过程,软件生存期模型,软件工具,软件开发环境。
2.和硬件相比,软件有哪些不同的特点?3.软件发展的三个阶段有哪些特点?4.软件工程有哪些研究内容它们之间有何关系5.软件工程的基本原理是什么?6.试述项目软件和产品软件有哪些不同之处?7.考察一个已存在的软件工程项目,观察其采用的过程、模型、方法、技术、工具、环境、标准和规范,分析其优势。
8.试按应用功能,确定下列哪些软件是系统软件()。
A. 操作系统B. 字处理系统 C.设备驱动程序D.数据库管理系统 E.软件测试工具 F.配置管理工具G.数据采集软件 H.专家系统 I.实时控制软件9.下列属获取过程的活动和任务有()。
A.公布标书 B.签订合同或协议 C.选择供方D.系统设计 E.监督过程的实施 F.投标G.编写培训资料 H.需求定义 I.验收10.软件生存期过程和软件生存期模型有何区别与联系?11.瀑布模型有何优缺点如何将瀑布模型和原型模型结合使用12.RAD模型的主要特点是什么同瀑布模型有何联系13.增量模型有何优越性增量模型同瀑布模型有何联系14.螺旋模型的风险分析有何作用为何螺旋模型只适合于大型软件开发螺旋模型使用有何限制15.软件工程标准有何作用有哪些类型的软件工程标准我国涉及软件工程的国家标准有哪些类型16.软件开发工具与集成型软件开发环境有何区别与联系IPSE和ECMA各有哪些组成部分17.从软件工程的角度来看,下列说法中哪些是正确的① 软件开发就是编写程序。
② 软件产品的质量主要取决于软件开发过程。
③ 软件就是程序代码。
④ 将软件工具简单地集中起来便形成集成型开发环境。
⑤ 瀑布模型不适用于需求不确定的情况。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
定义一系列算法,把它们均封闭起来,并且使它们可相互替换。它使算 法可独立于使用者而变化。
定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,从而使子 类可以不改变算法的结构即可重定义该算法的某些特定步骤。
描述一个作用于某对象结构中各元素的操作,从而可以在不改变被操作 元素类的条件下定义新的操作。
10.7.2创建型模式
creator = new ConcreteCreator(); product = creator.factoryMethod(); // do other things } }
使用条件
一个类不知道它所必须创建的对象的类。 一个类希望由其子类确定它创建的对象。 类将创建对象的职责委派给多个帮助者子类
}
Concrete Creator重定义工厂方法以返回适当的Concrete Product实例。例如: public class ConcreteCreator implements Creator{
//工厂方法实现 public Product factoryMethod( ) {
return new ConcreteProduct( ); } }
使用条件
系统应与如何创建、组合和表示其产品无关。 系统应由多个产品族之一来配置。 强调一系列相关产品对象的设计以便联合使用。 提供一个产品类库,但只想显示它们的接口。
使用效果
隔离了具体的类。 使产品族间的转换容易进行。 容易实现一个应用一次只使用同一个系统中
Client
《interface》 Manipulator
downClick( ) upClick( ) drag( )
LineFigure createManipulator()
TextFigure createManipulator()
TextManipulator
downClick( ) upClick( ) drag( )
// 产品等级结构A的工厂方法 public AbstractProductA createProductA(); // 产品等级结构B的工厂方法 public AbstractProductB createProductB(); }
ConcreteFactoryl实现创建具体产品对象的操作。例如: public class ConcreteFactory1 {//产品族1的具体工厂类
抽象产品/具体产品类
AbstractProductA声明一种产品对象的接口。例如: public interface AbstractProductA {
//接口声明 } //AbstractProductB与AbstractProductA类似
ConcreteProductA1定义将被相应的具体工厂类创建的产品对象;实现抽象产品类 接口。例如:
LineManipulator
downClick( ) upClick( ) drag( )
结论
工厂方法模式在遵循依赖倒置原则方面 有重要意义,使得高层策略模块在创建 类的实例时无需依赖具体的类。也使得 一组类的完全不同序列的实现间进行交 换成为可能。
工厂方法模式会带来复杂性。
抽象工厂模式结构
//产品的接口声明 }
Concrete Product 实 现 Product 类 的 接 口 。 例 如 : public class ConcreteProduct implements Product {
// 构造函数 public ConcreteProduct( ) {
// do something } //产品接口实现 }
将对象组成树结构来表示局部和整体的层次关系, 使单个对象和组合对象的使用具有一致性。
动态地给一个对象添加新功能。
外观 (Façade) 轻量 (Flyweight)
给一个子系统的所有接口提供一个统一接口,使 子系统便于使用。
运用共享技术有效地支持大量细粒度对象。
Gamma分类
类别
行为模 式
设计模式名称
职责链 (Chain of Responsibility) 命令(Command)
解释器 (Interpreter) 迭代器(Iterator) 中介者 (Mediator) 备忘录 (Memento)
观察者 (Observer)
状态 (State)
策略 (Strategy)
模板方法 (Template Method)
客户类
Client仅使用由Creator和Product声明的接口。例如: public class Client {
private static Creator creator; private static Product product; public static void main(String[] args) {
// 产品等级结构A的工厂方法 public AbstractProductA createProductA() { return new ConcreteProductA1( ); } // 产品等级结构B的工厂方法 public AbstractProductB createProductB() { return new ConcreteProductB1( ); } } //产品族2的具体工厂类的实现与产品族1的具体工厂类类似
创建者/具体创建者类
Creator声明一个工厂,返回一个Product类型的对象。也可定义工厂方法的缺省 实现。可调用工厂方法生成一个Product对象。例如:
public interface Creator { //工厂方法接口声明 public Product factoryMethod();
定义一个中介对象封装一系列对象的交互。
在不破坏封装的条件下,获得一个对象的内部状态并将它外部化,从而 在以后可使对象恢复到这个状态。
定义对象一对多的依赖关系,当一个对象的状态发生改变时,所有依赖 于它的对象均得到通知并被自动更新。
允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎能修 改它的类。
工厂方法模式(结构)
Client
《interface》 Product
《interface》 Creator
factoryMethod( )
《creates》
ConcreteProduct
ConcreteCreator
factoryMethod( )
产品/具体产品类
Product定义工厂方法生成的对象的接口。 例如: (Java程序) public interface Product {
作用:设计模式不仅使人们可以更加方便地复用成 功设计方案,也能提高已有系统的文档管理和系统 维护的有效性。
10.7.1设计模式的描述与分类
一个设计模式事实上是系统地命名、解释和评价某 一重要的可重现的面向对象设计方案。所有设计均 可从四个方面加以描述:
模式名称:用一至两个词描述设计问题、解决方案和效果。 模式名称便于使用者在更高的抽象层次上进行设计并交流 有关设计思想。
问题描述:指明使得设计模式可以被应用所必须存在的环 境条件。它解释了设计问题及其背景。
解决方案:描述了设计方案的组成部分,它们之间的关系 及各自的职责和协作方式。
效果:描述应用设计模式后的结果及使用模式应权衡的问 题。
Gamma分类
类别
设计模式名称
意图简要说明
抽象工厂
提供创建相关的或相互依赖的一族对象的接
(Abstract Factory) 口而无需指定具体的类。
创建 型模
式
生成器 (Builder)
工厂方法 (Factory Method)
将一个复杂对象的创建与它的表示分离,使 得同样的构建过程可以创建不同的表示。
定义一个用于创建对象的接口,由子类决定 实例化哪一个类。
原型(Prototype) 使用一个原型指定要创建的类的类型,通过 拷贝这个原型得到新的对象。
《interface》 AbstractFactory
createProductA( ) createProductB( )
ConcreteFactory2
createProductA( ) cy1
createProductA( ) createProductB( )
单件 (Singleton)
保证一类仅有一个实例,并提供一个全局性 的访问点。
Gamma分类
类别
设计模式名称
意图简要说明
结构 型模 式
适配器 (Adapter) 桥(Bridge)
组合(Composite) 装饰 (Decorator)
将一个类的接口转换成用户希望得到的另一种接 口,使原来由于接口不相容而不能一起工作的类 可一起工作。 将类的抽象部分与它的实现部分分离,使它们可 以相互独立地变化。
factory1 = new ConcreteFactory1( ); factory2 = new ConcreteFactory2( ); productA = factory1.createProductA( ); productB = factory2.createProductB( ); // do other things } }
10.7可复用面向对象设计模式
面向对象设计模式最初出现于70年代末80年代初。 1987年W.Cunningham和K. Beck引入建筑师 C.Alexander的模式概念。