软件工程复习资料英文.docx
《软件工程复习资料英文.docx》由会员分享,可在线阅读,更多相关《软件工程复习资料英文.docx(16页珍藏版)》请在冰豆网上搜索。
![软件工程复习资料英文.docx](https://file1.bdocx.com/fileroot1/2023-2/22/ef7a083d-05f9-4ac8-a4df-f161c25d5c7d/ef7a083d-05f9-4ac8-a4df-f161c25d5c7d1.gif)
软件工程复习资料英文
软件工程复习资料-英文
Lecture1AnIntroductiontoSoftwareEngineering
1whatdoessoftwareengineeringconcern?
1)Softwareengineeringisconcernedwiththeories,methodsandtoolsforprofessionalsoftwaredevelopment.
2)Softwareengineeringisconcernedwithcost-effectivesoftwaredevelopment.
2Whatissoftware?
Softwareincludes:
①computerprograms
②datastructures
③documents
3Whatisthetwotypesofsoftwareproducts
Genericsoftware(通用软件)and
customsoftware(定制软件)
4Thethreekeyelementsofasuccessfulsoftwareprojectare:
ontime,withinbudget,satisfiestheuser’sneeds
5Genericactivitiesinallsoftwareprocessesare:
Specification(描述)
Development(开发)
Validation(有效性验证)
Evolution(进化)
6Theattributesofgoodsoftwareinclude:
Maintainability(可维护性),Dependability(可依赖性),Efficiency(有效性),Acceptability(可接受性)
Lecture2SoftwareProcesses
1Whatisasoftwareprocessmodel
Asoftwareprocessmodelisanabstractrepresentationofasoftwareprocess.Itpresentsadescriptionofaprocessfromsomeparticularperspective.
2DrawthegraphicpresentationofWaterfallmodelanddescribeitscharacter.
1)这种模型把软件过程划分成几个顺序的阶段。
阶段间具有依赖性,前一个阶段结束,后一个阶段才能开始;
2)这种模型很难对用户变更做出调整,只适用于需求非常清楚和需求变更被严格限制的情况下。
3Describethebasicprincipleofevolutionarydevelopmentanditstwotypes
进化式开发的基本思想是先开发一个原型给用户使用,通过用户反馈意见来不断修改系统直到最后成熟,所以又被称作快速原型开发方法。
它不主张将描述、开发和有效性验证等活动分开进行,而是让这些活动迭代执行,同时让这些活动能得到快速的反馈信息。
进化式开发有两种基本类型:
探索式开发和抛弃式原型法。
4Drawthegraphicpresentationofincrementaldeliveryanddescribeitscharacter
在这种开发方式中,系统不是作为一个整体交付,而是被分解成若干个增量,每个增量交付系统的部分功能。
用户的需求按优先级排队,优先级最高的需求被放入最早交付的增量中。
这样,优先级最高的系统功能就得到最多的测试,系统的可靠性较高。
5DescribethecharactersofSpiraldevelopment.
(对照模型去理解)
1)Processisrepresentedasaspiralratherthanasasequenceofactivitieswithbacktracking.
2)Eachloopinthespiralrepresentsaphaseintheprocess.
3)Nofixedphasessuchasspecificationordesign-loopsinthespiralarechosendependingonwhatisrequired.
4)Risksareexplicitlyassessedandresolvedthroughouttheprocess.
Lecture3
RequirementsEngineering
1Drawthegraphicpresentationofrequirementengineeringprocess.
2Describethedifferenceoffunctionalrequirements,non-functionalrequirements,
Domainrequirements.
Functionalrequirementsdescribetheservicesthatthesystemshouldprovideandhowthesystemshouldreacttoparticularinputsandhowthesystemshouldbehaveinparticularsituations.
Non-functionalrequirementsdescribetheconstraintsontheservicesorfunctionsofferedbythesystemsuchastimingconstraints,constraintsonthedevelopmentprocess,standards,etc.
Domainrequirementscomefromtheapplicationdomainofthesystemandthatreflectcharacteristicsofthatdomain.
3Describethedifferencebetweenuserrequirementsandsystemrequirements.
1)Userrequirementsshoulddescribefunctionalandnon-functionalrequirementsinsuchawaythattheyareunderstandablebysystemuserswhodon’thavedetailedtechnicalknowledge.
Userrequirementsaredefinedusingnaturallanguage,tablesanddiagramsasthesecanbeunderstoodbyallusers.
2)Systemrequirementsaremoredetailedspecificationsofsystemfunctions,servicesandconstraintsthanuserrequirements.
Theyareintendedtobeabasisfordesigningthesystem.
Theymaybeincorporatedintothesystemcontract.
Systemrequirementsmaybedefinedorillustratedusingsystemmodels.
4Describetheprocessactivitiesofrequirementselicitation.
Requirementselicitationprocessisaniteratedprocess.
1)Requirementsdiscovery(需求发现)
Interactingwithstakeholderstodiscovertheirrequirements.Domainrequirementsarealsodiscoveredatthisstage.
2)Requirementsclassificationandorganization(需求的分类与组织)
Groupsrelatedrequirementsandorganisesthemintocoherentclusters.
3)Prioritisationandnegotiation(优先排序和冲突解决)
Prioritisingrequirementsandresolvingrequirementsconflicts.
4)Requirementsdocumentation(需求文档化)
Requirementsaredocumentedandinputintothenextroundofthespiral.
5whatareviewpointsandwhatarethetypesofviewpoints
⏹Viewpointsareawayofstructuringtherequirementstorepresenttheperspectivesofdifferentstakeholders.Stakeholdersmaybeclassifiedunderdifferentviewpoints.
Therearethreetypes:
1)Interactorviewpoints
Peopleorothersystemsthatinteractdirectlywiththesystem.InanATM,thecustomer’sandtheaccountdatabaseareinteractorVPs.
2)Indirectviewpoints
Stakeholderswhodonotusethesystemthemselvesbutwhoinfluencetherequirements.InanATM,managementandsecuritystaffareindirectviewpoints.
3)Domainviewpoints
Domaincharacteristicsandconstraintsthatinfluencetherequirements.InanATM,anexamplewouldbestandardsforinter-bankcommunications.
5WritedownatleastfourprinciplesofdelaminatedDFD.
①顶层数据流图上的数据流必须封闭在外部实体之间。
②数据应通过加工流动,避免从一个数据存储直接流向另一个数据存储。
③每个加工至少有一个输入数据流和一个输出数据流,且输入与输出数据流要平衡。
有输入,无使用及输出为“黑洞”,无输入和产生而有输出为“奇迹”。
④在数据流图中,需按层给加工框编号。
编号表明该加工处在哪一层,以及上下层的父图与子图的对应关系。
⑤规定任何一个数据流子图必须与它上一层的一个加工对应,两者的输入数据流和输出数据流必须一致。
此即父图与子图的平衡。
⑥图上每个元素都必须有名字。
数据流和数据文件的名字应当是“名词”或“名词性短语”,表明流动的数据是什么。
加工的名字应当是“动词+宾语”,表明做什么事情。
6Accordingtothedecisiontable,drawthedecisiontree.
7WhataretheattributesofagoodSRS(SystemRequirementsSpecification)?
1)完整性:
需求描述包含了所有的用户要求,不应该遗漏要求和必需的信息;
2)一致性:
需求描述不能存在冲突;
3)可检验性:
功能与性能指标应该能够量化衡量;
4)可理解性:
需求描述方式要容易理解,没有歧义;
5)可跟踪性:
要明确标识需求与其原始材料的关系,能够回溯道源头;
6)可变更性:
需求要易于修改,有良好的组织,如目录、索引。
Lecture4
SoftwareDesign
1DescribethetwoscaleparameterofIndependencyandexplainwhyweneedfineindependency.
模块独立性可用两个定量准则来度量:
耦合(coupling)和内聚(cohesion)
。
耦合性是对软件程序结构中各个模块之间相互关联程度的一种度量。
内聚性是信息隐藏和局部化概念的自然扩展,它标志一个模块内部各成分彼此结合的紧密程度。
模块的内聚性越强,耦合性越弱,独立性越强。
独立性好的模块对其它的模块依赖性小,修改时对其它模块的影响小,易于修改和扩充,因此有良好的可维护性。
2Whatisthetaskofarchitecturaldesign?
Itistoidentifythesub-systemsmakingupasystemandtobuildtheframeworkforsub-systemcontrolandcommunication.
3Describethebasiccharacterofrepositorymodel.
Shareddataisheldinacentraldatabaseorrepositoryandmaybeaccessedbyallsub-systems
4DescribethebasiccomposingofClient-servermodel
.
Setofstand-aloneserverswhichprovidespecificservicessuchasprinting,datamanagement,etc.
Setofclientswhichcallontheseservices.
Networkwhichallowsclientstoaccessservers.
5DescribethecharactersofAbstractmachine(layered)model
1)Thismodelorganisesthesystemintoasetoflayers(orabstractmachines)eachofwhichprovideasetofservices.
2)Itsupportstheincrementaldevelopmentofsub-systemsindifferentlayers.Whenalayerinterfacechanges,onlytheadjacentlayerisaffected.
6Describetwotypesofcontrolmodel.
Centralisedcontrol:
Onesub-systemhasoverallresponsibilityforcontrolandstartsandstopsothersub-systems.
Event-basedcontrol:
Eachsub-systemcanrespondtoexternallygeneratedeventsfromothersub-systemsorthesystem’senvironment.
7Describethreetypesofsoftwarereuse.
Applicationsystemreuse
Thewholeofanapplicationsystemmaybereusedeitherbyincorporatingitwithoutchangeintoothersystems(COTSreuse)orbydevelopingapplicationfamilies.
Componentreuse
Componentsofanapplicationfromsub-systemstosingleobjectsmaybereused.
Objectandfunctionreuse
Softwarecomponentsthatimplementasinglewell-definedobjectorfunctionmaybereused.
8Whatisframework?
框架是一种高于对象层次的大粒度抽象的复用成分
Frameworkisasub-systemdesignmadeupofacollectionofabstractandconcreteclassesandtheinterfacesbetweenthem
9DrawanddescribethegraphicpresentationofMVCframework.
这个框架有三个基本组件:
控制器、模型和视图
1)控制器:
代表应用程序的逻辑部分,它定义了一个用户如何和程序进行交互并且定义了用户行为是如何映射到模型;
2)模型:
负责对数据模型和所有用来确定应用程序状态的信息进行管理;
3)视图:
从不同的角度对存储在模型中的数据进行展示。
10Drawthegraphicpresentationofuserinterfacedesignprocess
.
11Theprinciplesofuserinterfacedesignare:
用户熟悉、一致性、意外最小化。
12Errormessages
shouldbepolite,concise,consistentandconstructive.
13Exercise
Lecture5Object-orientedAnalysisandDesign
1Comparedwithtraditionalstructuraldevelopingmethods,whatareadvantagesofobject-orientedmethods?
符合人类自然思维方式,易于理解、描述和实现。
对需求变化有较好的适应性:
封装机制和消息传递机制将需求变化影响限制在对象内部。
支持软件复用:
封装性有助于实现复用;继承、实例化实现了对象复用;类库提供了大量公共代码。
可维护性好:
封装性和消息传递造成低耦合,错误定位和修改容易;继承与多态使得功能的扩展更加容易。
开发过程衔接紧密:
在软件生命周期各阶段可以使用同样的模型描述。
2DescribetheultimatelypurposeofUML
UML是一种标准的图形化建模语言,为不同领域的人们提供一种统一的交流标准,这种标准使得系统构造者能够用标准的、易于理解的方式建立能表达出他们想象力的系统蓝图,并使客户、分析员、设计人员、程序员和系统其它涉及者能够相互理解和达成一致,从而能够有效地共享和交流设计结果。
3Exercise(要求熟悉UML各种模型)
Lecture6SoftwareImplementationandValidation
1Eachprogramcomponentinvolvesatleastthreemajoraspects:
controlstructures,algorithms,anddatastructures.
2Describethedifferencebetweenverification
andvalidation.
●Verification:
"Arewebuildingtheproductright”.
Thesoftwareshouldconformtoitsspecification.
●Validation:
"Arewebuildingtherightproduct”.
Thesoftwareshoulddowhattheuserreallyrequires
3ThetwomethodsinV&Vprocessare:
Softwareinspectionisconcernedwithanalysisofthestaticsystemrepresentationtodiscoverproblems(staticverification)
Softwaretestingisconcernedwithexercisingandobservingproductbehaviour.Thesystemisexecutedwithtestdataanditsoperationalbehaviourisobserved.(dynamicverification)
4Drawthegraphicpresentationofsoftwaretestingprocess
.
5Thetwophases
ofsystemtestingareintegrationtesting
andreleasetesting
6Inintegrationtesting,tosimplifyerrorlocalisation,systemsshouldbe增量集成.
7Describethebasecomposingoftestcaseandthebaseprincipleofequivalencepartitiontesting.
测试用例的基本构成可以包括:
设计的输入、期望的输出、测试环境和测试对象的描述。
等价划分测试是测试用例设计的一种方法。
设计测试用例时,可以按特征把数据输入域化分成若