没有合适的资源?快使用搜索试试~ 我知道了~
自考软件工程,对教材课后习题进行详尽解答
资源推荐
资源详情
资源评论
第一章 绪论(知识点摘要)
(1)软件工程:软件工程是应用计算机科学理论和技术以及工程管理原则和方法,按预算和进度实现满
足用户要求的软件产品的工程,或以此为研究对象的学科。P15
(2)软件危机:软件生产率、软件质量远远满足不了社会发展的需求,成为社会,经济发展的制约因素 ,
人们通常把这一现象称为“软件危机”。
(3)软件工程发展的两个时期:1、主要围绕软件项目、开展了有关开发模型、开发方法和支持工具的研
究。2、围绕对软件工程过程的支持,开展了一系列有关软件生产技术,特别是软件复用技术和软件生产
管理的研究与实践。
(4)计算机软件:一般是指计算机系统中的程序及其文档。程序是计算机任务的处理对象和处理规则的
描述;文档是为了理解程序所需的阐述性资料。
(5)软件开发的本质:软件开发的本质就是实现问题空间的概念和处理逻辑到解空间的概念和处理逻辑
之间的映射。
(6)软件开发涉及两个方面的问题:一是如何实现这样的映射(技术);二是如何管理这样的映射(管
理)。
(7)简述软件开发所涉及的两大类技术:一是求解软件的开发逻辑,二是求解软件的开发手段。
(8)简述实施软件开发的基本途径:是系统建模。所谓系统建模,是指运用所掌握的知识,通过抽象,
给出该系统的一个结构——系统模型。
(9)简述何谓模型以及软件开发中所涉及的模型:模型是一个抽象。该抽象是在意图所确定的角度和抽
象层次对物理系统的一个描述,描述其中的成分和成分之间所具有的特定语义的关系,还包括对该系统边
界的描述。软件开发中所涉及的模型可分为两大类,一类称为概念模型,描述了系统是什么;另一类统称
为软件模型,描述了实现概念模型的软件解决方案。
(10)软件开发中所涉及的模型可分为两大类:一类称为概念模型,另一类统称为软件模型,软件模型又
包括设计模型、实现模型和部署模型等。
(11)软件工程需要解决的问题:软件的费用,可靠性,可维护性,软件生产率和软件的重用。
(12)软件工程的目标:付出较低开发成本;达到要求的功能;取得较好的性能;开发的软件易于移植;
只需较低的维护费用;能按时完成开发任务,及时交付使用;开发的软件可靠性高。
第二章 软件需求与软件需求规约
(1)软件需求:以一种技术形式,描述了一个产品/系统应该具有的功能、性能和其它性质。
(2)软件需求的性质:1、必要的,该需求是用户所要求的。2、无歧义的,该需求只能用一种方式解释。
3、可测的,该需求是可进行测试的。4、可跟踪的,该需求可从一个开发阶段跟踪到另一个阶段。 5、可
测量的,该需求是可测量的。
(3)需求的分类:两大类:一类是功能需求,一类是非功能需求,而非功能需求可分为性能需求,外部
接口需求、设计约束和质量属性需求。
(4)功能需求:规约了系统或系统构件必须执行的功能。
(5)非功能需求:是性能、外部接口、设计约束和质量属性这 4 类需求的统称。
(6)功能需求和非功能需求之间的基本关系:功能需求是整个需求的主体,即没有功能需求,就没有派
生的其他功能需求,就没有性能、外部接口、设计约束和质量属性等非功能性需求。一个非功能需求可作
用于一个或多个功能需求。
(7)非功能需求:性能需求、外部接口需求(如用户接口、硬件接口、软件接口、通信接口、内存约束 、
运行和地点需求)、设计约束(如法规政策、硬件限制、与其他应用的接口、并发操作、审计功能、控制
功能、高级语言需求、握手协议)和质量属性(可靠性、存活性、可维护性和用户友好性)这 4 类需求。
(8)需求发现技术:自悟、交谈、观察、小组会和提炼。
(9)需求规约是一个软件项目/产品/系统所有需求陈述的正式文档,它表达了一个软件产品/系统的概念
模型。
(10)需求规约的基本性质:1、重要性和稳定性程度:按需求的重要性和稳定性,对需求进行分级。2、
可修改的:在不过多地影响其他需求的前提下,可以容易地修改一个单一需求。 3、完整的:没有被遗漏
的需求。4、一致的:不存在互斥的需求。
(11)简述需求规约的 3 种基本形式:1、非形式化的需求规约。非形式化的需求规约即以一种自然语言
来表达需求规约,如同使用一种自然语言写了一篇文章。2、半形式化的需求规约。半形式化的需求规约
即以半形式化符号体系(包括术语表、标准化的表达格式等)来表达需求规约。 3、形式化的需求规约。
形式化的需求规约即以一种基于良构数学概念的符号体系来编制需求规约,一般往往伴有解释性注释的支
持。
(12)软件需求规约的作用:1、需求规约是软件开发组织和用户之间一份事实上的技术合同书,是产品
功能及其环境的体现。2、对于项目的其余大多数工作,需求规约是一个管理控制点。3、对于产品/系统
的设计,需求规约是一个正式的、受控的起始点。4、需求规约是创建产品验收测试计划和用户指南的基
础,即基于需求规约一般还会产生另外两个文档---初始测试计划和用户系统操作描述。
(13)简述需求规约和项目需求的不同:需求规约和项目需求是两个不同的概念。需求规约是软件开发组
织和用户之间一份事实上的技术合同书,即关注产品需求,回答“交付给客户的产品 /系统是什么”;而项目
需求是客户和开发者之间有关技术合同——产品/系统需求的理解,应记录在工作陈述中或其他某一项目
文档中,即关注项目工作与管理,回答“开发组要做的是什么”。
第三章 结构化方法
(1)需求分析工作面临的三大挑战:1、问题空间理解;2、人与人这间的通信;3、需求的变化性。
(2)一种好的需求技术就具有以下基本特征:1、提供方便的通信的机制;2、鼓励需求分析人员使用问
题空间的术语思考问题,编写文档;3、提供定义系统边界的方法;4、提供支持抽象的基本机制;5、为
需求分析人员提供多种可供选择的方案;6、提供特定的技术,适应需求的变化。
(3)任何一种软件分析方法包括:1、要给出一些基本术语,支持表达分析中所需要使用的信息;2、要
给出表达系统模型的工具,支持表达系统功能;3、给出过程指导,支持如何系统化地使用相关信息来建
造系统模型。
(4)结构化方法基本术语:数据流、加工、数据存储、数据源和数据潭。
(5)数据流图:表达功能模型的工具,即数据流图(Dataflow Diagram) 简称 DFD 图,简单的说,DFD
图是一种描述数据变换的图形化工具,其中包括的元素可以是数据流、数据存储、加工、数据源和数据潭
等。
(6)结构化方法的建模过程:1、建立系统环境图,确定系统语境,一般为系统的顶层数据流图;2、自
顶向下,逐步求精,建立系统的层次数据流图;3、定义数据字典,用于表达系统中的数据结构;4、描述
加工,用于表达每个加工输入和输出之间的逻辑关系;5、需求验证。
(7)父 DFD 图生成子 DFD 图的步骤:1、将“父图”的每一加工按其功能分解为若干个子加工;2、将“父
图”的输入流和输出流分派到相关的子加工;3、在各个加工之间建立合理的关联,必要是引入数据存储,
使之形成一个有机的整体。
(8)数据字典(DD):用来定义数据库流图中的各个成分的具体含义。有以下三类条目:数据流条目,
数据项条目,数据存储条目。
(9)数据字典中定义数据结构的符号:1、“ =”表定义为;2、“ +”表顺序;3、[ | ]表选择;4、{}表重复;
5、m..n 表子界。
(10)描述加工的工具:1、结构化自然语言;2、判定表;3 判定树。[这一部分的内容请参照后面的相关
习题]
(11)结构化分析方法总结:
(12)需求阶段的主要任务:是完整地定义问题,确定系统的功能和能力。为此,该阶段的主要任务一般
包括需求发现、需求分析和需求验证,最终形成系统的软件需求规格说明书。
(13)需求验证:应验证需求规格说明书中的每一单一需求是否满足 5 个性质,即必要性、无歧义性、可
测性、可跟踪性、可测量性;验证需求规格说明书是否满足 4 个性质,即重要性和稳定程序、可修改性、
完整性和一致性。
(14)结构化设计的主要任务:在需求分析的基础上,定义满足需求所需要的软件结构,即针对给定的问
题,给出该项问题的软件解决方案,研究“怎么做”的问题。
(15)结构化设计分为:总体设计和详细设计。
(16)总体设计阶段的基本任务:是把系统的功能需求分配到一个特定的软件体系结构中,即把需求分析
所得到的系统 DFD 图映射为设计层面上的模块和模块调用。
(17)总体设计引入的两个基本概念:1、模块,即指软件中具有特定标识的独立成分,即执行一个特殊
任务的一个过程以及相关的数据结构,包括接口和模块体两部分; 2、模块调用,即指模块之间的一种使
用关系。
(18)软件体系结构图主要有三种:1、模块结构图(MSD 图);2、层次图;3、HIPO 图。
(19)HIPO 图是由 H 图和 IPO 图两部分组成,H 图就是层次图,IPO 即为模块的输入/处理/输出。
(20)总体设计的步骤:1、初始设计:首先将系统的 DFD 图转化为初始的模块结构图;2、精华设计:
基于“高内聚低耦合”的原则,通过模块化,将初始的模块结构图转化为最终的、可供详细设计使用的模块
结构图(MSD); 3、复审阶段:对 MSD 图进行复审。
(21)数据流图分为:变换型数据流图和事务型数据流图。
(22)变换型数据流图:具有较明显的输入部分和变换(主加工)部分之间的界面变换部分和输出部分之
间界面的数据流图。
(23)事务型数据流图:数据到达一个加工 T,该加工 T 根据输入数据的值,在其后的若干动作序列中选
出一个来执行。
(24)变换设计的步骤:1、设计准备—复审并精化系统模型;2、确定输入、变换、输出这三部分之间的
边界;3、第一级分解—系统模块结构图顶层和第一层的设计;4、第二级分解---自顶向下,逐步求精。
(25)变换型数据流图对应的软件结构包括:1、主控模块;2、输入模块部分;3、变换模块部分;4、输
出模块部分。
(26)事务设计的步骤:1、设计准备—复审并精化系统模型;2、确定事务处理中心;3、第一级分解—
系统模块结构图顶层和第一层的设计;4、第二级分解---自顶向下,逐步求精。
(27)模块耦合:是不同模块之间相互依赖程序的度量。
(28)模块耦合的类型:1、内容耦合:当一个模块直接修改或操作另一个模块的数据,或一个模块不通
过正常入口而转入到另一个模块时;2、公共耦合:两个或两个以上的模块共同引用一个全局数据项;3、
控制耦合一个模块通过接口向另一个模块传递一个控制信息,接收信号的模块根据信号值进行适当的动作 ;
4、标记耦合:若一个模块 A 通过接口向两个模块 B 和 C 传递一个公共参数;5、数据耦合:模块之间通
过参数来传递数据。
(29)模块内聚:指一个模块内部各成分之间相互关联程度的度量。
(30)模块内聚的类型:1、偶然内聚:一个模块的各成分之间基本不存在任何关系;2、逻辑内聚:几个
逻辑上相关的功能被放在同一个模块中;3、时间内聚:一个模块完成的功能必须在同一时间内执行,但
这些功能只是因为时间因素关联在一起;4、过程内聚:一个模块内部的处理成分是相关的,而且这些处
理必须以特定的次序执行;5、通信内聚:一个模块的所有成分都操作同一数据集或生成同一数据集;6、
顺序内聚:一个模块的各个成分和同一个功能密切相关,而且一个成分的输出作为另一个成分的输入;
7、功能内聚:最理想的内聚,模块的所有成分对于完成单一的功能都是基本的。
(31)启发式规则:1、改进软件结构,提高模块独立性;2、力求模块结构适中;3、力求深度、宽度、
扇出和扇入适中;4、尽力使模块的作用域在其控制域之内。5、尽力降低模块接口的复杂程序;6、力求
模块功能可以预测。
(32)控制域:模块本身以及所有直接或间接从属于它的模块的集合。作用域:受该模块内的一个判定所
影响的所有模块的影响。
(33)详细设计:具体描述模块结构图中的每一模块,即给出实现模块功能的实施机制,包括一组例程和
数据结构,从而精确地定义了满足需求所规约的结构。
(34)详细设计工具:1、程序流程图;2、盒图(N-S 图);3、PAD 图。
(35)程序流程图的主要缺点:1、不是一种逐步求精的工具;2、所表达的控制流,往往不受任何约束可
随意转移,从而会影响甚至破坏好的系统结构;3、不易表达数据结构。
(35)自顶向下、逐步求精方法的优点:1、自顶向下、逐步求精方法符合人们解决复杂问题的普遍规律,
可提高软件开发的成功率和生产率;2、用先全局后局部、先整体后细节、先抽象后具体的逐步求精的过
程开发出来的程序具有清晰的层次结构;3、程序自顶向下,逐步细化,分解成树形结构;4、程序清晰和
模块化,使得在修改和重新设计一个软件时,可复用的代码最大; 5、程序的逻辑结构清晰,有利于程序
正确性证明;6、每一步工作仅在上层结点的基础上做不多的设计扩展,便于检查;7、有利于设计的分工
和组织工作。
(36)N—S 图有以下几个特点:1、图中每个矩形框都是明确定义了的功能域,以图形表示,清晰可见;
2、它的控制转移不能任意规定,必须遵守结构化程序设计的要求;3、很容易确定局部数据和全局数据作
用域;4、很容易表现嵌套关系。
第四章 面向对象方法 UML
(1)UML 是一种可视化的语言,可用于规约系统的制品,构造系统的制品、建立系统制品的文档。这意
味着 UML 可作为软件需求规约、设计和实现的工具。
(2)UML 表达事件的术语:类与对象,接口,协作,用况,主动类,构件,制品和结点。
(3)UML 表达关系的术语:关联、泛化、实现和依赖。
(4)类:是一组具有相同属性、操作、关系和语义的对象的描述,包括一组属性的操作。
(5)类在建模中的用途:1、模型化问题域中的概念;2、建立系统的职责分布模型;3、模型化建模中使
用的基本类型。
(6)接口:是操作的一个集合,其中每个操作描述了类、构件或子系统的一个服务。
(7)在建立模型中,接口对系统模型化应注意的问题:1、接口只可以被其他类目使用,而本身不能访问
其他类目;2、接口描述类的外部可见操作,通常是该类的一个特定有限行为;3、接口不描述其中操作
的实现,也没有属性和状态;4、接口之间没有关联、泛化、实现和依赖。
(8)协作,是一个交互,涉及交互的三要素:交互各方、交互方式、交互方式以及交互内容。
(9)用况:是对一组动作序列的描述,系统执行这些动作应产生对特定参与者有值的、可观察的结果。
(10)主动类:是一种至少具有一个进程或线程的类。
(11)构件:是系统设计中的一种模块化部件,通过外部接口隐藏了它的内部实现。
(12)制品:是系统中包含物理信息的,可代替的物理部件。
(13)结点:是在运行那个时存在的物理元素,通常表示一种具有记忆能力和处理能力的计算机资源。
(14)关联:是对一组具有相同结构、相同链的描述。
(15)为了表达关联的语义,UML 采用以下途径:1、关联名 2、导航 3、角色 4、可见性 5、多重性 6、
限定符 7、聚合 8、组合 9、关联类 10、约束。
(16)泛化:是一般性类目和它的较为特殊性类目之间的一种关系,有事称为“is-a-kind-of”关系。
(17)进一步表达泛化的语义,UML 给出 4 个约束:1、完整 2、不完整 3、互斥 4、重叠。
(18)细化:是类目之间的语义联系,其中一个类目规约了保证另一个类目执行的契约。
(19)依赖:是一种使用关系,用于描述一个类目使用另一类目的信息和服务。
(20)UML 图形化工具分两类:1、结构图,用于表达系统或系统成分的静态结构模型,给出系统或系统
成分的一些说明性信息;2、行为图,用于表达系统或系统成分的动态结构模型,给出系统或系统成分的
一些行为信息。
(21)软件开发中 4 中建模工具:类图、用况图、状态图、顺序图。
(22)类图:是可视化地表达系统静态结构模型的工具,通常包含类、接口、关联、泛化和依赖关系等。
(23)用况图:对行为进行抽象,给出行为结构,给出系统的动态性描述。包括 6 个模型元素:主题、用
况、参与者、关联、泛化、依赖。
(24)状态图:是现实一个状态机的图,其中强调了从一个状态到另一个状态的控制流。 UML 把状态分
3 类:初态、终态和通常状态。
(25)状态图包含的内容:(1)状态:名字,进入/退出效应,do 动作或活动,被延迟事件(2)事件:
信号事件,调用事件,时间事件,变化事件(3)状态转移:源状态、转移触发器、监护条件、效应、目
标状态。
(26)顺序图:是一种交互图,由一组对象以及按时序组织的对象之间的关系组成,其中还包含这些对象
之间所发送的消息。
(27)顺序图的构成:(1)消息(2)对象生命线(3)聚焦控制。控制操作子:选择执行操作子,条件
执行操作子,并发执行操作子,迭代执行操作子。
(28)结构良好的类的条件:(1)明确抽象了问题域或解域中某个有型事物或概念(2)包含了一个小的、
明确定义的职责集,并能很好的实现(3)清晰的分离了抽象和现实。
(29)组合:如果在一个时间段内,整体类的实例中至少包含一个部分类的实例,并且该整体类的实例负
责创建和消除部分类的实例,特别是整体类的实例和部分类的实例具有相同的生命周期。
(30)聚合:一个类目是另一个类目的一部分,但整体与部分具有不同的生命用期,表达的是一种“整体/
部分”的关系。
(31)包:UML 提供的组织信息的一种通用机制,目的是为了控制信息的复杂性。包之间存在两种关系 :
引入和访问。
(32)认识行为的有效算途径:1、从功能的视角;2、从交互的视角;3、从生存周期的视角。在 UML 中
剩余20页未读,继续阅读
资源评论
q2012yl
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Pytorch-pytorch深度学习教程之前馈神经网络.zip
- Pytorch-pytorch深度学习教程之线性回归.zip
- Pytorch-pytorch深度学习教程之基本操作.zip
- 基于QT的地图可视化桌面系统后台数据库为MySQL5.7源码.zip
- 基于simulink的PLL锁相环系统仿真【包括模型,文档,参考文献,操作步骤】
- 基于EM-GMM模型的目标跟踪和异常行为检测matlab仿真【包括程序,注释,参考文献,操作步骤,说明文档】
- 2109010044_胡晨燕_选课管理数据库设计与实现.prj
- 帕鲁介绍的PPT备份没什么好下的
- demo1-202405
- 两种方式修改Intel网卡MAC地址
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功