软件工程复习解析.docx
- 文档编号:25188375
- 上传时间:2023-06-05
- 格式:DOCX
- 页数:18
- 大小:160.17KB
软件工程复习解析.docx
《软件工程复习解析.docx》由会员分享,可在线阅读,更多相关《软件工程复习解析.docx(18页珍藏版)》请在冰豆网上搜索。
软件工程复习解析
Chapter1
1.WhatisSoftwareEngineering?
(什么是软件工程?
)
1)软件工程师利用他们的计算机和计算方面的知识,以帮助解决问题。
2)软件工程师使用技术、工具、程序、和范例来增强他们的软件产品的质量。
他们的
目的是使用有效的富有成果的途径来产生有效的问题解决方案。
3)一名软件工程师集中于把计算机作为一个解决问题的工具,而不是调查硬件的设计
或证明有关算法如何工作理论。
2.Whatisgoodsoftware?
(什么是好的软件?
)
1)Thequalityoftheproduct
2)TheQualityoftheProcess
3)QualityinthecontextofthebusinessEnvironment
3.Whatare9activitiesinsoftwaredevelopment?
(软件开发的9个活动)
1)需求分析和定义
2)系统设计
3)程序设计
4)程序实现
5)单元测试
6)集成测试
7)系统测试
8)系统交付
9)维护
4.Howhassoftwareengineeringchanged?
(Whataresevenkeyfactorsthataltered/changedsoftwareengineeringpractice?
)(改变/更改软件工程的七个关键因素是什么?
)
1)对商品而推向市场时间上的危急性
2)计算方面经济上转移:
较低硬件费用和较高的开发和维护费用
3)能有有桌面计算的利用
4)广泛的局域和广域网络互联
5)面向对象技术的可用性和实用
6)运用窗口、图标、菜单和指针的图形用户接口(GUI)
7)软件开发的分布模型的不可能性预测性
5.WhatistheWasserman’sdisciplineofsoftwareengineering?
(软件工程的Wasserman原则)
1)抽象
2)分析设计方法和概念
3)用户界面原型
4)软件体系结构
5)软件过程
6)复用
7)度量
8)工具和集成环境
Chapter2
(1)Concepts(Whatis):
(概念)
1)waterfallmodel(瀑布模型):
瀑布模型是将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工作,形如
瀑布流水,最终得到软件产品。
瀑布模型核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,即
采用结构化的分析与设计方法将逻辑实现与物理实现分开。
将软件生命周期划分为制定
计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规
定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。
2)incrementalmodel(增量模型):
增量模型是一种非整体开发模型。
在各个阶段并不交付一个可运行的完整产品,而是交
付满足客户需求的一个子集的可运行产品。
客户对每一个增量的使用和评估都作为下一
个增量发布的新特征和功能,这个过程在每一个增量发布后不断重复,直到产生了最终
的完善产品
3)iterativemodel(迭代模型):
迭代是重复反馈过程的活动,其目的通常是为了逼近所需目标或结果。
每一次对过程的
重复称为一次“迭代”,而每一次迭代得到的结果会作为下一次迭代的初始值。
(2)Benefits(advantages)anddrawbacks(disadvantages)ofwaterfallmodel?
(瀑布模型优缺点)
advantages:
1)为项目提供了按阶段划分的检查点
2)当前一阶段完成后,您只需要去关注后续阶段
3)可在迭代模型中应用瀑布模型
增量迭代应用于瀑布模型。
迭代1解决最大的问题。
每次迭代产生一个可运行的版本,同时增加更多的功能。
每次迭代必须经过质量和集成测试。
4)它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以
在该模板下有一个共同的指导
disadvantages:
1)各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。
2)由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从
而增加了开发风险。
3)通过过多的强制完成日期和里程碑来跟踪各个项目阶段
4)瀑布模型的突出缺点是不适应用户需求的变化
(3)Benefits(advantages)ofphaseddevelopment(阶段化开发模型)/incrementalanditerative(增量迭代模型)model?
增量模型
1)由于能够在较短的时间内向用户提交一些有用的工作产品,因此能够解决用户的一些急用功能
2)由于每次只提交用户部分功能,用户有较充分的时间学习和适应新的产品。
3)对系统的可维护性是一个极大的提高,因为整个系统是由一个个构件集成在一起的,当需求变更时只变更部分部件,而不必影响整个系统。
迭代模型
1)降低了在一个增量上的开支风险。
如果开发人员重复某个迭代,那么损失只是这一个开发有误的迭代的花费。
2)降低了产品无法按照既定进度进入市场的风险。
通过在开发早期就确定风险,可以尽早来解决而不至于在开发后期匆匆忙忙。
3)加快了整个开发工作的进度。
因为开发人员清楚问题的焦点所在,他们的工作会更有效率。
4)由于用户的需求并不能在一开始就作出完全的界定,它们通常是在后续阶段中不断细化的。
因此,迭代过程这种模式使适应需求的变化会更容易些。
Chapter4
1、作业
(1)Describetheprocessofdeterminingrequirements.(描述需求过程)
首先我们通过问问题、论证相似系统,甚至开发目标系统的全部或部分原型同顾客共同工作以引出需求。
接着,我们捕捉在一份文档或数据库中的需求。
需求首先被写下来以便于我们和顾客对系统应做什么达成一致。
需求常被以一种更加数学化的表示方法重写,以便设计员能更好地将系统需求转换为好的系统设计。
一个查核步骤保证需求是完全的、正确的、一致的。
一个确认步骤,确保我们已经描述了顾客在最产品中看到的东西。
(2)Itisusuallyhelpfultoseparatetherequirementsintothreecategories.Whatarethesethreecategories?
Explainwhyitishelpful.(将需求分为三类是有好处的。
这三类是什么?
解释为什么它是有帮助的。
)
1)绝对要满足的需求
2)很可取但不是必需的需求
3)可能但可以削减的需求。
Why:
按类需求分析助于各方来理解什么是真还需要的。
这种按类需求分析在软件开发项目受时间或资源限制时也是有用的;如果被定义的影响花费太多或耗时太长而不能开发的话,那么更可删去第3类需求,并分析第2类需求看能否削减或延期。
(3)Whatisarequirementsdefinitiondocument?
Whatisarequirementsspecificationdocument?
(什么是需求定义文档?
什么是需求规范文档?
)
需求定义文档:
是以顾客能理解的术语写下的,需求定义完全地得出了顾客期望系统要做的每件事。
代表了顾客和开发者对顾客需要成想要的东西的理解,且通常由顾客和开发者联合书写。
需求规范文档:
需求规格重新以适合开发系统设计的技术术语来重新表达需求定义,也
是需求定义文档的技术副本,是由需求分析员写的。
有时单独一个文档服务于两个目标,顾客、需求分析员和设计员的共同影响。
但通常两
型文档都需要,并且在将需求定义重新解释为规格时,特别要小心信息丢失或变化。
(4)Whatisafunctionalrequirement?
Giveanexampletoexplain.(什么是功能性需求?
举一个例子来解释。
)
一条功能性需求描述了系统和环境的相互作用。
例如,为确是功能的需求,我们决定什么状态是可接受的,系统将处于的状态。
而且,功能的需求描述了系统对给定激励应如何举动。
举例,对一个打印一周一次付薪支票的系统,功能的需求必须回答定于付薪支票何时发布的问题,要打印一张付薪支票,必需的输入是什么?
什么条件下支付数量可改变?
什么促使了一名雇员从薪水册列表中删除?
(5)Whatisanonfunctionalrequirement?
Giveanexampletoexplain.(什么是一个解功能性需求?
举一个例子来解释。
)
一条解功能的需求或约束描述了施加于系统上的一条限制,限制了我们构建问题解决方案的选择。
例如,我们可能被告知系统必须在一台Aardvark计算机上开发或者读取初始数据后不超过4小时时间里付薪支票必须被分发到雇员手中。
类似地,我们被告知对系统的查询必须在3秒内得到回答。
这些限制通常限制了我们对语言平台或实现技术或工具的选择,然而,直到需求已被指定后的设计阶段才做出这样的选择。
2、FortheproblemofXXXXX,Pleasedrawitsdataflowdiagram.(绘制分层数据流图)
某银行计算机储蓄系统的工作过程大致如下:
储户填写的存款单或取款单由业务员键入系统,如果是存款则系统记录存款人姓名、住址(或电话号码)、身份证号码、存款类型、存款日期、到期日期、利率及密码(可选)等信息,并印出存款单给储户;如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户。
请对以上问题画出分层数据流图。
Chapter5
1、作业(不包含面向数据流的设计方法既软件结构图);
(1)、Foreachtypeofcoupling,giveanexampleoftwocomponentscoupledinthatway.
1)当一个组件要修改另一个组件的内部数据或是一个组件要进入另一个组件的分支时,内容耦合就发生了
2)公共数据的改变就意味着所有对它进行访问的组件都将受到影响。
这就是所谓的公共耦合
3)控制耦合是指一个组件对另一个组件传递的参数是用于控制第二个组件的。
4)当数据结构本身作为信息在两个组件件传递的时候就发生了标记耦合
5)如果仅仅是数据被传递的话,就是数据耦合
(2)、Foreachtypeofcohesion,writeadescriptionofacomponentexhibitingthatkindofcohesion.
1)最低程度的内聚是偶然内聚,即组件中的某些部分是完全无关的。
这种情况下,不相关的功能、过程或是数据被放在同一个组件中。
2)逻辑内聚的程度稍微高点儿,但也是不希望看到的,即几个逻辑上相关的功能或是数据被置于同一组件中。
3)一个组件被用于初始化一个系统或一组变量。
这样的一个组件要按顺序完成几个功能,但是功能又仅和时间安排有关系,这就是时间内聚。
4)通常,功能都是以一个确定的顺序执行的。
当一个组件中的几个功能被分组的时候,就是为了保证能按这个顺序执行,这就是过程内聚。
5)如果一些特定的功能都是对相同数据集合进行操作或是产生相同的数据集合的话,我们可以把它们关联起来,组件的这种组织方式就是通讯内聚。
6)如果组件中一个部分的输出正好是另一个部分的输入的话,就称为顺序内聚。
7)而最理想的还应该是功能内聚,在组件中,每一个处理元素都是为了完成一个单一的功能,并且所有必需的元素都包含在这一个组件中。
(1)Concepts(Whatis):
(概念)
1)coupling:
耦合衡量不同模块彼此间互相依赖(连接)的紧密程度
2)cohesion:
内聚衡量一个模块内部各个元素彼此结合的紧密程度
(2)Thefollowingisthepseudocodeofaprogram.Pleasedrawitsprogramflowdiagram.
画出伪代码的程序流程图(类似题型)
START
IFpTHEN
WHILEqDO
F
ENDDO
ELSE程序流程图
BLOCK
g
n
ENDBLOCK
ENDIF
STOP
Chapter6
一、作业
1.
(1)Whataremajorcharacteristicsofobjectorientation?
(面向对象的主要特点是什么?
)
1)一致性
2)抽象
3)分类
4)封装
5)继承
6)多态性
7)连续性
(2)WhatisthekeydifferencebetweenmoretraditionalproceduraldevelopmentandtheOOdevelopment?
(传统的程序开发和面向对象的开发之间的关键区别?
)
这个跨过程的一致性是较多的传统的开发过程和面向对象的开发过程的关键不同点
(3)Whatisausecase?
(用例)
个用例描述了一个系统通过建立对话操作或展示一个用户,外部系统或其他实体在所开发的系统中的函数性
2.DrawausecasediagramfortheATMproblem.(画ATM问题的用例图)
4.Classifyeachofthefollowingrelationshipsaseitheraninheritancerelationship(继承关系),anaggregationrelationship(聚合关系),orageneralassociation(一般关联).
(1)Person–Student;aninheritancerelationship
(2)Library–Librarypatron;.anaggregationrelationship
(3)Car–Driver.ageneralassociation
5.
(1)Drawausecasediagramforthesimplelibraryproblem.
P174
(2)Drawaclassdiagramforthesimplelibraryproblem.Supposetheclassesinthisproblemarethelibrary,book,copiesofbooks,andpatron.
(3)Supposewehavethefollowingscenarioforthesimplelibraryproblem.Apatrongoestothelibraryandchecksoutabook.Twomonthslater,hebringstheoverduelibrarybookbacktothelibrary.Pleasedrawasequencediagramandacollaborationdiagramforthescenario.
时序图:
读者还书系统罚款系统借书系统
超时还书还书系统超时
书已归还罚款该书可借阅数+1
协作图:
读者罚款归还借书系统
还书
还书系统罚款系统
超时
6.
(1)ThefollowingisapartoftheRoyalServiceStationrequirement:
TheRoyalServiceStationprovidesthreetypesofservicestoitscustomers:
refueling,vehiclemaintenance,andparking.
Usethenoun-in-text-descriptiontoidentifytheclassesfromtheaboverequirementstatement.
答:
Classes:
servicestation,services,customer,refueling,vehiclemaintenance,andparking.
(2)Pleasedrawaclassdiagramfor
(1).
7.
(1)ThefollowingisapartoftheRoyalServiceStationrequirement:
Thestationmanagerusesthesystemtocontrolinventory.Thesystemwillwarnoflowinventoryandautomaticallyordernewpartsandfuel.
Usethenoun-in-text-descriptiontoidentifytheclassesfromtheaboverequirementstatement.
答:
system,manager,inventory,fuel,parts
(2)Pleasedrawaclassdiagramfor
(1).
(3)Pleasedrawthestatediagramsforthefuelandpartsclasses.(参照p338)
二、Classdiagram,statediagram;noun-in-text-descriptionmethod;Usecasediagram;
类图(作业题),状态图;文本描述方法中的名词;用例图(ATM【作业】、皇家服务站p325、图书馆p174、自动售货机);
自动售货机系统用例图自动售货机系统含扩展和使用关系的用例图
三、Conceptsandexamples
1)aggregation(聚集/聚合):
whenoneclassispartofanotherclass.Forexample,theordereditemispartoftheorder.【聚集是整体与部分之间的关系。
例如计算机和主板,计算机是一个整体,主板是其中的一部分,主板、显卡、显示器等部件组成了计算机。
聚合中类之间可以独立出来,比如一块主板可以状态A计算机上,也可以装在B计算机上。
也就是说这块主板离开A计算机之后仍然是有意义的。
聚集使用空心菱形+实线表示】
2)composition(组合):
组合关系中的整体与部分具有同样的生存期.即组合是一种特殊形式的聚集。
【组合中的类也是整体与部分的关系,与聚合不同的而是,其中的类不能对立出来。
例如一个人由头、手、腿和躯干等组成,如果这个头离开了这个人,那么这个头就没有任何意义了。
组合使用实心菱形和实线表示】
3)association(关联):
Twoclassesareassociatedwhentheyoccurtogether,andwhentherelationshipmustbepreservedforsomeperiodoftime.(ps:
聚集和组合是关联的特殊情况)Forexample,eachorderisassociatedwithasalesperson.Untiltheorderiscomplete,itisimportanttolinktheorderwiththesalesperson.【关联是指两个类之间存在某种特定的对应关系,例如客户和订单,一个订单只能属于某个客户,一个客户可能会有多张订单。
根据方向,分为单向和双向。
根据对应的数量分为一对一、一对多、多对多等。
关联关系用实线+箭头表示】
4)generalization(泛化【继承】):
【泛化比较好理解,就是两个类之间具有继承关系。
例如人和学生,学生继承了人,除过具有人的一般的属性和方法之外,他还要有学习的方法。
泛化用空心三角形+实线表示】
Chapter8
(1)Whatarethemainsoftwaretestingobjectives(软件测试目标)?
测试是以发现错误为核心
(2)Explainthefollowingterms:
1)Unittest(单元测试):
是指对软件中的最小可测试单元进行检查和验证。
单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。
2)integrationtest(集成测试):
也叫组装测试或联合测试。
在单元测试的基础上,将所有模块按照设计要求(如根据结构图)组装成为子系统或系统,进行集成测试。
3)functiontest(功能测试):
对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能
4)performancetest(性能测试):
是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
5)acceptancetest(验收测试):
是部署软件之前的最后一个测试操作。
在软件产品完成了单元测试、集成测试和系统测试之后,产品发布之前所进行的软件测试活动。
它是技术测试的最后一个阶段,也称为交付测试。
验收测试的目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务。
6)whiteboxtesting(白盒测试):
已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查
7)blackboxtesting(黑盒测试):
已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。
(3)Whatarethedifferencesbetweenblackboxandwhiteboxtesting?
最大的区别应该就是测试对象不一样,白盒测试主要针对的是程序代码逻辑,黑盒测试主要针对的是程序所展现给用户的功能,简单的说就是前者测试后台程序后者测试前台展示功能
Note:
Somekeywords:
Royalservicestationsystem;asimplelibrarysystem,thelibraryproblem;theproblemofphysicianvisit;aLibraryManagementInformationSystem;anautomaticbanktellermachine(ATM)system;….
Somekeywords:
majoractivities;softwarelifecycle;giveanexampletoexplain
Note:
作图题大约占50-分,其他为概念题50+。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 复习 解析
![提示](https://static.bdocx.com/images/bang_tan.gif)