宋辽金史期末考试答案分析.docx
《宋辽金史期末考试答案分析.docx》由会员分享,可在线阅读,更多相关《宋辽金史期末考试答案分析.docx(28页珍藏版)》请在冰豆网上搜索。
宋辽金史期末考试答案分析
—————————————————————————
东南大学运算机科学与工程学院
《软件工程》温习总结
(依照张敏灵教师的英文PPT)
—————————————————————————
第一章
软件系统的特点:
1.复杂的制造
很多功能
实现许多不同的(往往又是矛盾的)目标
包括许多组成部份
不同的参与者
开发流程和软件生命周期常常持续很连年
2.容易发生转变
客户或终端用户需求转变
发觉错误
开发者有了专门好的明白得
新技术显现,员工变迁
软件工程的概念:
1.建模
软件工程师通过建模解决复杂性问题
模型:
系统的抽象表现,使咱们能够回答系统的问题并直观明白得系统
2.问题求解
在有限的预算和时刻下,模型寻求合理的解决方案
OOSE:
object-orientedsoftwareengineering
需求获取
需求分析
系统设计
对象设计
实现
测试
3.知识获取
软件工程师搜集数据,组织成信息,形成知识
非线性进程
4.原理驱动
软件工程师需要了解作出决定的环境条件和做出这些决定的大体原理用来应付转变
SE概念:
技术、方式和工具的集合,能够在有限的时刻、预算和转变显现的情形下实现高质量的软件系统
参与者和身份
系统和模型
生产产品(内部产品+交付产品)
功能需求和非功能需求
符号,方式,方式论
方式论:
方式的集合,解决一类问题或说明如何和何时每一个方式需要被用到
本书用到的方式论:
1.需求获取和分析
2.系统设计和对象设计
3.转变相关的活动
4.配置治理
SE不仅是有关开发,也关于治理
开发活动:
需求获取,需求分析,系统设计,对象设计,实现测试
治理活动:
交流,原理治理,软件配置治理,项目治理,软件生命周期
第二章
UML:
UnifiedModelingLanguage
面向对象软件建模中显现的标准
开创人:
OMT(JamesRumbaugh)
OOSE(IvarJacobson)
Booch(GradyBooch)
用途普遍:
功能模型:
用例图(用户角度)
对象模型:
类图(对象、属性、联系、操作角度)
需求分析—>分析对象模型—>应用概念
系统设计—>系统设计模型—>系统接口描述
对象设计—>对象设计模型—>解决方案对象的详细描述
动态模型:
交互图—>在一系列对象之间进行一系列消息互换来描述行为
状态机图—>针对某一个对象的状态转换
活动图—>针对操纵和数据流描述行为
用例图:
描述系统功能,在需求获取和分析时利用,从外部角度来关注系统行为
用例:
描述系统提供的功能,产生用户可见的结果
参与者:
任何与系统交互的人(用户,另一个系统,系统的物理环境)
参与者在系统边界外,用例在系统边界内
(乃们必然要记住用例名是写在那个椭圆下面的啊TT学长考试的时候全写在里面了!
)
类图:
描述系统的结构
类:
描述具有相同结构和行为的对象集的抽象
对象:
在系统执行进程中被创建、修改和销毁的类的实体
有状态(包括属性值和与其他对象的联系)
类图的成份:
类,对象,属性,操作,联系
交互图:
在用例中涉及的对象(参与对象),表现的确实是这些对象之间发生的交互
状态机图:
转换包括对象以后能够转向的状态和转变条件
活动图:
活动:
代表一系列操作执行的建模元素
针对活动来描述系统行为
其他活动的终止、对象的可用和外部的活动都能够动身活动的执行
与流程图相似:
操纵流(操作发生的顺序),数据流(操作中对象的交互)
用例图:
《extend》代表异样或很少挪用的用例,箭头指向被扩展的用例
《include》代表被分离出来的用例,箭头指向利用的用例
《inheritance》代表一个用例能够通过添加细节特化另一个更一样的用例,箭头指向那个一样的用例
用例描述:
1.用例名称
2.参与者
3.事件流
4.进入条件
5.退出条件
6.特殊需求
类图:
表现系统的结构
需求获取分析中对应用域概念建模
在系统设计中对子系统建模
在对象设计中说明类的详细行为和属性
类:
代表一种概念,封装属性和操作,每一个属性有一个类型,每一个操作有一个签名,只有类名是强制的信息
实例/对象:
实例代表一种现象,实例名有下划线,名字能够只包括类名
关系也能够通过属性来刻画
关系类能够用自己的操作和属性,用虚线连在关系线上
聚集:
共享聚集:
表示一种“属于”继承,空心菱形
组合聚集:
更强形式的聚集,生命周期必需一致,实心菱形
限制(qualification):
减少关系的复杂性
继承:
“是一种”的继承,通过度类简化分析模型,子类继承父类的操作和属性
包:
能够用UML包机制来组织子系统
对象模型成立步骤:
1.找到新的类
2.概念名字、属性、方式
3.找到类之间的关系
4.标注一样的关系(has\owns,etc.)
5.决定关系之间的多重性
6.重审关系
7.找到分类(利用继承)
8.简化、重组
顺序图:
在分析中,优化用例描述,找到更多的对象(参与对象)
在系统设计中,优化系统接口
消息—>参与对象,消息是参与对象中的方式
水平虚线箭头代表数据流
在消息前有个*代表迭代重复发送消息,在消息前有个[布尔表达式]代表一种发送消息的条件
消息指向一个对象的激活(确实是对象下面的长方形)那么代表创建(creation),在最后的激活上有个
代表销毁,销毁能够代表一个对象有效的生命的终止
状态机图:
状态:
知足一个对象(或系统)某种属性的一种情形
转换:
被事件、条件或时刻触发的状态转变
Action动作:
不可被打断的,有转换action,内部转换action,entry/action,exit/action
Activity活动:
在状态内部的可能是长时刻的活动,当退出转换被挪用的时候activity会被打断,用do做标签
嵌套状态机:
内部转换来减少复杂度
活动图:
是状态图的特殊形式
活动图中的状态是活动(“功能”)
活动终止自动跳转,不需要驱动
活动图关于描述系统的工作流程超级有效
活动许诺对“决定”(一个菱形)和“并发性”(竖线,包括把操纵流分成几个线程和同步多个活动)进行建模
活动还能够被分成假设干个泳道,代表这些活动是被哪个对象或子系统实现的
第三章
角色:
概念了责任(要去做什么)
责任被指定到角色身上,角色被指定到人身上
任务:
描述了被治理人员追踪的最小数量级的工作,包括:
1.角色
2.工作产品
3.开始时刻
4.打算工期
5.需要资源
工作产品:
可见的任务产出,交付到用户手中的叫作交付产品
活动:
一系列相关的任务
可能会以不同的名字再次被包括到更高级的活动当中
许诺关注分离
在活动中存在优先关系
打算内沟通:
问题陈述,客户评审,项目阅读,同行评审,现状阅读,群策群力,发布,事后阅读……
打算外沟通:
需求的澄清,需求的转变,问题求解
同步沟通机制:
面对面交谈,问题和正式会面,会议,同步群件
异步沟通机制:
电子邮件,新闻组,万维网,Lotus公司的Notes
(其他重点能够看书,仍是多看看中文比较好,毕竟试卷是中文....)
第四章
软件生命周期:
需求获取,需求分析,系统设计,系统细节设计,实现,测试
需求说明用自然语言,分析模型用UML
功能需求:
描述系统和环境之间的交互,与实现无关
非功能需求:
不与功能行为直接相关的方面
1.可用性:
必需是可测量的(网购需要的步数)
2.鲁棒性(健壮性):
错误的输入,外界环境的改变…
3.有效性:
系统正常运行时刻的比例(不要老是down机)
4.性能
5.可支持性
限制(伪需求Pseudorequirements):
由客户或环境提出
需求确认:
1.正确性:
是不是代表了客户的本意
2.完整性:
系统能应用的场景是不是全面
3.相容性:
没有彼此矛盾的需求
4.明确性:
需求只能有一种说明方式
5.可实现性:
需求能够被实现和交付
6.可追踪性:
每一个系统行为都能够追踪到一系列的功能需求
需求获取的不同方式:
1.绿地工程:
需求从用户和客户处抽取
2.再工程:
新需求从现存系统中抽取
3.界面工程:
需求从技术使能者或新的市场需求抽取
场景:
一种陈述性描述,所描述的是,在人们利用运算机系统和应用的时候他们所做的和所经历的。
(这是依照教师PPT上的原句翻译的,个人以为书上99面的翻译是错的。
原句是:
”Anarrativedescriptionofwhatpeopledoandexperienceastheytrytomakeuseofcomputersystemsandapplications.”)
As-is场景:
描述了当前情形,经常使用于再工程项目,通过观看用户并将他们的活动描述成场景,一次来明白适当前系统
Visionary空场景:
描述了以后的系统,经常使用于绿地工程和再工程项目。
开发者和用户两个方面。
关于用例的在前面已经有了,再稍作补充:
用例是场景的抽象提取
用例能够被多个对象利用
分析的关键:
从用例动身,找到参与对象
第五章
对象建模的步骤:
1.类概念
2.寻觅属性
3.寻觅方式
4.寻觅类之间的关系
实体对象:
代表被系统追踪的持久性信息(应用域对象,也被称作“业务对象”)
边界对象:
代表用户和系统之间的交互
操纵对象:
代表系统所执行的操纵任务
不同的对象类型让咱们更好的应付转变
对象类型起源于Smalltalk(AlanKay):
Model,View,Controller(MVC)
Model<->EntityObject
View<->BoundaryObject
Controller<->ControlObject
版型机制,模板机制(stereotypemechanism):
在UML中能够引入新的建模元素类型《String》Name
还能够用图标(icons)和图形符号来概念模板
在用例中寻觅参与对象:
1.选中一个用例,观看事件流
2.做语法分析(Abbott’sTechnique),名词确实是对象或类的候选项,动词确实是操作的候选项
3.概念不同对象的类型
注意:
这只是在用例中寻觅对象,若是是整个对象概念进程,那么是如下:
1.从用户和应用域专家处取得一系列场景
2.从场景中抽掏出用例
3.再进行上面“用例中寻觅参与对象”的进程,同时还要进行的是组建UML类图
组建类图的进程:
1.类概念(语法分析,领域专家)
2.属性和操作的概念(有时在类之前就被发觉)
3.类关系的概念
4.多重性的概念
5.任务的概念
6.继承的概念
动态图为对象模型发觉和补充操作
顺序图:
布局:
第一列——初始化用例的参与者
第二列——边界对象
第三列:
治理剩余用例的操作对象
创建:
边界对象在使劲初始化的时候被创建,操纵对象由边界对象创建
访问:
实体对象被操纵对象和边界对象访问,实体对象决不能挪用边界对象和操纵对象
构建顺序图中,可能会有新显现的事件,这些事件能够被以为是同意那个事件的类的一个public权限的操作
集中操纵式结构,操作能够互换顺序,有新需求时能够插入新操作
非集中式操纵结构,操作之间有很强的联系和顺序性
UML状态图符号(Notation)
事件是斜体,条件用[]括起,动作和活动之前都要加/
Notation是依照Harel的工作基础上成立起来的
超状态:
其中有很多嵌套子状态
从其他状态进入超状态是进入的第一个子状态
从超状态的任意一个子状态都能够离开
两种类型的并发性:
系统并发性:
对象并发性:
导航线线:
状态图能够被用作用户接口的设计
状态:
界面名称
活动/动作:
在界面名下面,前面有个“·”,一样只有退出动作会写出来
状态转换:
退出动作的结果(点击按钮、选择菜单、光标移动)
Modelverification查验模型之间转换
modelvalidation把模型结合实际进行比较(更高一层),正确性、完整性、
一致性、无歧义性、可实现性
对象模型占要紧:
系统有很多类,这些类的状态无关紧要,可是类之间的关系很
复杂
动态模型占要紧:
模型有很多事件:
输入、输出、异样、错误等
功能模型占要紧:
模型执行复杂的转换(计算包括许多步)
RAD(RequirementAnalysisDocument)
第六章
“Therearetwowaysofconstructingasoftwaredesign:
Onewayistomakeitsosimplethatthereareobviouslynodeficiencies,andtheotherwayistomakeitsocomplicatedthattherearenoobviousdeficiencies.”
-Hoare
设计目标是对不同利益关注者的衡量
子系统:
在UML中以包的形式显现
对象模型中的对象和类是子系统的“种子”
效劳:
功能模型中的用例是效劳的“种子”
效劳在系统设计中被概念
子系统接口:
是效劳的优化,需要被专门好的设计并很小
子系统接口在对象设计中被概念
Applicationprogrammer’sinterface(API):
APIs在实现中概念
层次:
一个子系统向另一个子系统提供效劳
某个层次只依托于它基层的效劳,而且对它的上层一无所知
UML中,Dependon用实线,calls用虚线
划分:
一个层次能够水平的被分为独立的子系统,即划分
同一层的划分之间能够相互提供效劳
划分是低耦合的子系统
P2P关系
虚拟机:
上基层之间是一种“提供效劳”的关系(关于子系统)
封锁架构(模糊):
上层只能向其下一层挪用操作
可保护性,灵活性
开放结构(透明):
每一个虚拟性能够向任何一个基层的虚拟机挪用操作
运行效率
一致性:
测量一个子系统中各个类之间的依托程度(高)
耦合性:
测量各个子系统之间的依托程度(低)
体系结构风格:
子系统分解的模式
客户端/效劳器:
一个或多个效劳器向称呼客户端的子系统实例提供效劳
客户端明白效劳器端的接口
效劳器端不明白客户端的接口
经常使用于数据库
缺点:
不能知足P2P的要求
P2P:
ISO=InternationalStandardOrganization
OSI=OpenSystemInterconnection
仓库(repository):
子系统访问和修改单一的数据结构
子系统之间彼此独立,子系统之间交互需要通过仓库完成
MVC
第七章
UML构件图:
编译时刻下子系统之间的设计依托关系
UML部署图:
描述系统的执行时刻配置
文件系统:
数据只由一个人写由很多人读
数据库:
数据被并发的人读和写
访问矩阵:
每一行代表系统的参与者,每一列代表希望操纵的类
访问表:
参与者,类,操作
访问操纵表:
参与者,操作(针关于某个类)
能力:
类,操作(针关于某个参与者)
第八章
对象设计:
对需求分析进行补充并作出实现决定
应用对象:
与系统相关的对象(应用域专家和终端用户概念)
求解对象:
与应用域没有对应(开发人员概念)
继承:
用新的操作或从头操作来扩展基类
1.描述分类:
需求分析中利用
2.接口概念:
对象设计中利用,概念所有对象的签名
实现继承(类继承):
父类的操作已经被实现
概念继承(子类型化):
只是继承被声明的操作,并非实现
类库:
被动的,不阻碍操纵流
框架:
主动的,阻碍操纵流
授权:
抓取一个操作发送到另一个对象上
组合模式:
模型动态聚集
适配器模式:
与已经存在的系统关联
桥模式:
与已经存在的和以后的系统关联,用于多重实现
facade模式:
与子系统关联
英文全称:
UML:
unifiedmodelinglanguage(考到)
OMT:
objectmodelingtechnology
OCL(ObjectConstraintLanguage)(考到)
OOAD(ObjectOrientedAnalysisAndDesign)(考到)
FRIEND:
FirstResponderInteractiveEmergency
NavigationalDatabase
ODD:
TheObjectDesignDocument
CMM:
CapabilityMaturityModelforSoftware
LOC:
lengthofcode(代码行)
COCOMO:
constructivecostmodel
Applicationprogrammer’sinterface(API)
ISO:
InternationalStandardOrganization
OSI:
OpenSystemInterconnection(那时写下来感觉没什么用,没想到竟然真的考到那个了!
)
OOSE:
object-orientedsoftwareengineering
RAD:
RequirementAnalysisDocument
“Therearetwowaysofconstructingasoftwaredesign:
Onewayistomakeitsosimplethatthereareobviouslynodeficiencies,andtheotherwayistomakeitsocomplicatedthattherearenoobviousdeficiencies.”
-Hoare
OMT(JamesRumbaugh)
OOSE(IvarJacobson)
Booch(GradyBooch)
—————————————————————————
复(yu)习到后面几章的时候离考试已经没几个消失了,因此写下来的东西就很少了。
。
。
学长只能帮你们到这儿了,学弟学妹们加油吧!
题目每一年都差不多了,尤其大题都是原题,题目在人人网上都有分享的,打印机和医院监控系统那两道网上也都有原题答案
然后二叉树那题我是这么写的不明白对不对
2
二叉树