软件工程导论复习(期末_考研用)
软件工程导论总复习

• 5.3、设计的启发规则
1、提高模块独立性 2、模块规模适中 – 3、深度、宽度、扇入、扇出适当 4、作用域在控制域内 5、降低接口的复杂程度 – 6、单出口单入口,避免内容耦合 – 7、模块功能可预测
• 5.4 描绘软件结构的图形工具
– 层次图和HIPO图
• 5.5 面向数据流的设计方法
– 变换流 – 事务流 – 变换分析和事务分析的步骤
– 状态 – 事件 – 符号
• 3.7 其他图形工具
– 层次方框图 – Warnier图 – IPO图
• 3.8 验证软件需求
– 方法、工具
练习题
•
•
•
什么是需求分析?需求分析阶段的基本任务是 什么? 答:所谓"需求分析",是指对要解决的问题进行 详细的分析,弄清楚问题的要求,包括需要输 入什么数据,要得到什么结果,最后应输出什 么。可以说,“需求分析”就是确定要计算机 “做什么”。 任务:确定软件项目的目标和范围。调查使用 者的要求,分析软件必须做什么,编写需求规 格说明书等它相关文档,并进行必要的需求审 查。除此之外,还包括需求变更控制,需求风 险控制,需求版本控制等对需求的管理工作
•
•
指出瀑布模型中下列任务的顺序:验收测 试,项目计划,单元测试,需求评审,成 本估计,概要设计,详细设计,系统测试, 设计评审,编码,需求规格说明书。 答:项目计划,成本估计,需求规格说明 书,需求评审,概要设计,详细设计,设 计评审,编码,单元测试,系统测试,验 收测试
第二章 可行性研究
• 2.1 任务
可行性研究是在(A)之前 • A、系统开发 B、测试 C、试运行 D、集成测试 可行性研究需要的时间长短取决于系统的 规模,一般来说,可行性研究的成本只是 预期总成本的(C)。 • A、1% B、20% C、8% D、50%
软件工程导论复习(期末_考研用)

第1章软件工程概述1、什么是软件工程?为什么会出现软件工程?软件工程是:①把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②研究①中提到的途径。
软件工作者在20世纪60年代后期开始认真研究消除软件危机的途径,从而逐渐形成了一门新兴的工程学科——计算机软件工程学(通常简称为软件工程)。
2、软件工程的主要目标是什么?基本目标是什么?软件工程的目标:从管理和技术两个方面开发和维护计算机软件,用低成本,开发出达标、高性能、易于移植、可靠性高的软件。
软件工程的基本目标是:优质、高产。
3、什么是软件工程方法学?软件工程的3要素(软件工程方法学的3要素)是什么?分别包含什么内容?软件工程方法学:软件生命周期全过程中使用的一整套技术方法的集合软件工程方法学包含3个要素:方法、工具和过程。
方法是完成软件开发的各项任务的技术方法,回答“怎样做”的问题;工具是为运用方法而提供的自动的或半自动的软件工程支撑环境;过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
目前使用得最广泛的软件工程方法学,分别是传统方法学和面向对象方法学。
4、什么是软件过程?什么是软件周期?常见软件生命周期模型(课件中的前5类)的特点有哪些?软件过程:它是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
软件生命周期:由软件定义、软件开发和运行维护(也称之为软件维护)3个时期组成①瀑布模型定义:传统软件工程方法学的软件过程,基本上可以用瀑布模型来描述。
瀑布模型的特点:1.阶段间具有顺序性和依赖性;2.推迟实现的观点;3.质量保证的观点。
瀑布模型的成功在很大程序上是由于它基本上是一种文档驱动的模型。
瀑布模型的主要优点:a.可强迫开发人员采用规范的技术方法;b.严格地规定了每个阶段必须提交的文档;c.每个阶段结束前必须正式进行严格的技术审查和管理复审。
2023软件工程导论期末考试题库及参考答案

2.判断题1.向滞后的项目中增加人手会使得项目更加滞后。
(T)2.过程描述语言可以用于描述软件的系统结构。
(F)3.按照瀑布模型开发软件的一条指导思想是清楚地区分逻辑设计与物理设计,以便尽早开始程序的物理实现。
(F)5.只有质量差的软件产品才需要维护。
(F)6.层次图用来描述软件的层次结构。
层次图中的一个矩形框代表一个模块,方框间的连线表示模块的组成关系。
在层次图中除最顶层的方框之外,给每个方框都加编号,即成为带有编号的层次图。
(F)7.建立动态模型的第一步,是编写典型交互行为的脚本。
(T)8.软件错误可能出现在开发过程的早期,越早修改越好。
(T)9.软件模块的耦合是越低越好。
(T)10.一个好的测试用例在于能发现至今未发现的错误。
(T)11.面向对象设计的结果只能采用面向对象语言来实现(F)12.一个成功的项目唯一提交的就是运行程序。
(F)13.用例之间的关系有3种。
(T)14.面向对象设计准则也要遵循弱耦合的原则,但是继承耦合则应该提高,紧密地继承耦合与高度的一般-特殊内聚是一致的。
(T)15.软件工作的考虑范围主要是程序设计和实现。
(F)16.环形复杂度定量度量程序的逻辑复杂度,可以用这个公式来计算环形复杂度:流图G的环形复杂度V(G)=N-E+2o(改成E-N+2)(F)17.等价类划分方法将所有可能的输入数据划分成若干部分,然后从每一部分中选取少数有代表性的数据作为测试用例。
(T)18.在进行总体(改成概要)设计时应加强模块间的联系。
(F)19.系统结构图是精确表达程序结构的图形表示法。
因此,有时也可以将系统结构图当作系统流程图使用。
(T)20.建立动态模型的第一步,是编写典型交互行为的脚本。
(T)21.在程序调试时,找出错误的位置和性质比改正该错误更难。
(F)22.如果通过软件测试没有发现错误,则说明软件是正确的。
(F)23.快速原型模型可以有效地适应用户需求的动态变化。
(T)24.模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合度的软件产2023软件工程导论期末考试题库及参考答案1 .填空题1.一般来说,可以从一致性、完整性、现实性和有效性四个方面验证软件需求的正确性。
软件工程导论综合复习题

一、选择题1、软件是一种( B )性工业产品。
(1)理论(2)知识(或逻辑)(3)消耗(4)体力2、需求分析是在( B )进行的。
(1)用户(2)用户和分析人员之间(3)开发人员内部(4)使用和维护人员之间3、在软件的可行性研究中经常从不同角度对系统进行可行性研究,其中从功能角度对系统进行研究属于( B )的研究。
(1)经济可行性(2)技术可行性(3)操作可行性(4)法律可行性4、在软件工程项目中,不随参与人员的增加而使软件的生产率增加的主要问题是( D )。
(1)工作阶段的等待时间(2)生产原型的复杂性(3)参与人员所需的工作站数(4)参与人员之间的沟通困难5、需求分析阶段的研究对象是( A )。
(1)用户需求(2)分析员要求(3)系统需求(4)软硬件需求6、对某公司进行调查分析,确定是否值得开发一个新系统的工作是进行( D )。
(1)系统设计(2)系统分析(3)系统详细调查(4)系统初步调查7、系统分析员应当( D )。
(1)善于使用户接受自已的观点(2)善于使自已获得成就(3)是用户与计算机技术人员的有效协调与组织者(4)满足上述所有条件8、数据流图的绘制过程,是对新系统的需求进行综合分析和形成新系统( A )的过程。
(1)逻辑模型(2)物理模型(3)总体方案(4)可行性报告9、系统测试的目的是( D )。
(1)找出编码错误(2)找出数据错误(3)要证明程序无错(4)发现软件错误10、一个模块内部各程序段都在同一张表上操作,这个操作的内聚性称为( B )。
(1)时间内聚(2)功能内聚(3)通信内聚(4)顺序内聚11、对象是面向对象开发的基本成分,每个对象可用它的一组()和它可以执行的一组操作来定义。
(1)服务(2)参数(3)属性(4)调用12、最高程度也是最差的耦合是()。
(1)公共耦合(2)内容耦合(3)控制耦合(4)数据耦合13、概要设计阶段产生的文档不包括()。
(1)概要设计说明书(2)数据库设计说明书(3)用户手册(4)开发进度报告14、汽车有一个发动机,汽车和发动机之间的关系是()。
软件工程导论《软件工程》期末考试题及答案

软件工程导论《软件工程》期末考试题及答案一、选择题(每题2分,共20分)1. 下列哪项不是软件工程的基本目标?A. 提高软件的生产率B. 提高软件的可维护性C. 提高软件的性能D. 降低软件的开发成本答案:C2. 下列哪种方法不属于软件需求分析的方法?A. 数据流图(DFD)B. 实体-关系图(ER图)C. 状态转换图D. Petri网答案:D3. 软件设计中,模块的内聚性越高,表明模块的:A. 功能越单一B. 独立性越强C. 复用性越低D. 可维护性越低答案:A4. 在软件测试阶段,下列哪种测试方法不属于黑盒测试?A. 等价类划分B. 边界值分析C. 代码覆盖率分析D. 逻辑覆盖分析答案:D5. 软件项目管理中,项目经理的主要职责不包括以下哪项?A. 制定项目计划B. 管理项目进度C. 组织项目团队D. 编写代码答案:D二、填空题(每题2分,共20分)6. 软件生命周期可以分为______、需求分析、设计、编码、测试、维护等阶段。
答案:需求调研7. 软件工程的三要素是______、过程、方法。
答案:工具8. 在软件设计中,模块的独立性包括______和耦合性两个方面。
答案:内聚性9. 软件测试的目的不包括______。
答案:发现并修复所有错误10. 软件项目管理的主要目标是实现项目的______、质量和成本控制。
答案:进度三、简答题(每题10分,共30分)11. 简述软件工程的基本原则。
答案:软件工程的基本原则包括:(1)抽象:将复杂问题分解为更简单的子问题;(2)分解:将问题分解为多个部分,分别解决;(3)模块化:将软件划分为独立的模块,提高可维护性和复用性;(4)信息隐藏:隐藏模块内部的信息,只暴露必要的接口;(5)一致性:保持软件各部分的一致性,提高可读性;(6)可维护性:使软件易于修改和维护。
12. 简述软件需求分析的目的和任务。
答案:软件需求分析的目的在于明确用户对软件系统的功能、性能等方面的需求。
软件工程导论复习题及答案

1、思考:假设要求你开发一个软件,其功能是把读入的浮点数开平方,所得到的结果应该精确到小数点后4位.一旦实现并测试完之后,该产品将被抛弃.你打算用哪种软件生命周期模型?请说明你作出选择的理由.瀑布模型。
这个软件的需求很明确,实现开平方功能的算法也很成熟,因此,既无须通过原型来分析需求,也无须用原型来验证设计方案.此外,一旦实现并测试完后,该产品将被抛弃,因此也无须使用有助于提高软件可维护性的增量模型或螺旋模型来开发.2、思考:假设你被任命为一家软件公司的项目负责人,你的工作是管理该公司已被广泛应用的字处理软件的新版本的开发.由于市场竞争激烈,公司规定了严格的完成期限并且已对外公布.你打算采用哪种软件生命周期模型?为什么?应选有助于加快产品开发进度的模型:增量模型.旧版本相当于一个原型,通过收集用户对旧版本的反映较易确定对新版本的需求,没必要建立原型系统来分析用户需求;本公司的软件工程师对字处理软件有丰富的开发经验,开发不具有太大风险;该软件受到广大用户的喜爱,今后可能还要更新版本,应该把软件的体系结构设计成开放式的,便于改进和扩充.3、银行储蓄系统数据流图4、患者监护系统的功能级数据流图P187 8对一个包含10000条机器指令的程序进行一个月集成测试后,总共改正了15个错误,此时MTTF=10h,经过两个月测试后,总共改正了25个错误,MTTF=15h.1.根据上述数据确定MTTF与测试时间之间的函数关系,画出MTTF与测试时间τ的关系曲线.在画这条曲线时做了什么假设?2.为做到MTTF=100h,必须进行多长时间的集成测试?当集成测试结束时总共改正了多少个错误,还有多少个错误潜伏在程序中?(1)假设在程序的平均无故障时间MTTF和测试时间τ之间存在线性关系,即MTTF=a+bτ由题意知:当τ=1时,MTTF=10 ;当τ=2时,MTTF=15,∴ a+b=10 a=5a+2b=15 b=5MTTF与τ之间有下列关系:MTTF=5+5τ(2)为使MTTF=100h则100=5+5τ 则τ=19即需要进行19个月的集成测试。
2023软件工程导论期末考试题库及参考答案

2023软件工程导论期末考试题库及参考答案一、选择题(每题2分,共20分)1. 以下哪个不是软件工程的三个基本目标?A. 可维护性B. 可用性C. 可靠性D. 高效性参考答案:D2. 软件生命周期中,以下哪个阶段是软件开发过程的核心阶段?A. 需求分析B. 设计C. 编码D. 测试参考答案:C3. 以下哪种编程范式主要用于降低软件复杂性?A. 面向对象编程B. 过程式编程C. 函数式编程D. 逻辑编程参考答案:A4. 在软件工程中,以下哪个方法用于估算软件项目的成本和进度?A. COCOMOB. WBSC. SDLCD. CASE参考答案:A5. 以下哪个是软件工程中的一个重要原则?A. 分而治之B. 一次性编写C. 重用D. 模块化参考答案:D6. 以下哪个不是软件工程的基本活动?A. 软件规格B. 软件开发C. 软件验证D. 软件测试参考答案:C7. 以下哪个是软件工程中用于提高软件质量的技术?A. 设计模式B. 重构C. 代码审查D. 单元测试参考答案:C8. 以下哪个不是软件工程的五大基本过程?A. 软件规格B. 软件开发C. 软件维护D. 软件项目管理参考答案:D9. 以下哪个是软件工程中的一个重要概念,用于描述软件系统中的各个组件之间的关系?A. 耦合B. 内聚C. 模块化D. 重用参考答案:A10. 以下哪个是软件工程中的一个重要原则,用于指导软件开发过程?A. 迭代B. 增量C.螺旋D. 模型驱动参考答案:A二、填空题(每题2分,共20分)11. 软件工程的三要素是:方法、工具和______。
参考答案:过程12. 软件生命周期包括:需求分析、设计、编码、______和软件维护。
参考答案:测试13. 软件工程中的面向对象方法包括:封装、继承和______。
参考答案:多态14. 软件工程中的 CASE 工具主要用于支持______。
参考答案:软件设计和开发15. 软件工程中的敏捷开发方法强调______、可维护性和可扩展性。
《软件工程导论》期末复习材料.doc

《软件工程导论》期末复习材料1、什么是软件危机?产生的主要原因有哪些?(1页)软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
主要原因:1)用户对软件需求的描述不精确。
2)软件开发人员对用户需求的理解有偏差。
3)缺乏处理大型软件项0的经验。
4)开发大型软件易产生疏漏和错误。
5)缺乏有力的方法学的指导和有效的开发工具的支持。
6)面对日益增长的软件需求,人们显得力不从心。
2、什么是瀑布模型,瀑布模型的缺点主要有哪些?(15页)瀑布模型将软件开发分成:需求分析、规格说明、设计、编码、综合测试和维护阶段,每个阶段必须完成规定的文档,必须等前一个阶段完成之后XI?幵始下一个阶段的工作,前一个阶段输出的文档是下一个阶段的输入文档。
缺点主要包括:1)在软件开发的初期阶段就要求做出正确、全面、完整的需求分析对许多应用软件来说是极其困难的。
2)在需求分析阶段,当需求确定后,无法及时验证需求是否正确、完整。
3)不支持产品的演化,缺乏灵活性,使软件产品难以维护。
3、什么是数据流图,数据流图由哪些基本符号组成?(40页)数据流图:简称DFD,,主要用于SA(结构化分析)方法,它描绘信息流和数据从输入移动到输出的过程中所经受的变换,是一种功能模型.基本符号有四种:->,箭头,表示数据流;=,开口矩形或者两条平行线,表示数据存储;正方形或者立方形,表示数据的源点或终点,圆角矩形或圆形,表示加工,也就是数据的处理;数据流图中每一个加工至少有一个输入流和一个输出流。
4、数据字典有哪几种元素组成?(47页)1)数据流,2)数据元素,3)数据存储,4)处理或者加工5、需求分析阶段的基本任务是什么(56页)1).问题识别,确定系统的综合需求和数据需求,包括a.功能需求b.性能需求c.环境需求d.用户界面需求e.出错处理的需求f.接口需求2).分析与综合,导出软件的逻辑模型.3).修正开发计划4).编写文档6、模块的内聚有哪几种?(99页)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第1章软件工程概述1、什么是软件工程?为什么会出现软件工程?软件工程是:①把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②研究①中提到的途径。
软件工作者在20世纪60年代后期开始认真研究消除软件危机的途径,从而逐渐形成了一门新兴的工程学科——计算机软件工程学(通常简称为软件工程)。
2、软件工程的主要目标是什么?基本目标是什么?软件工程的目标:从管理和技术两个方面开发和维护计算机软件,用低成本,开发出达标、高性能、易于移植、可靠性高的软件。
软件工程的基本目标是:优质、高产。
3、什么是软件工程方法学?软件工程的3要素(软件工程方法学的3要素)是什么?分别包含什么内容?软件工程方法学:软件生命周期全过程中使用的一整套技术方法的集合软件工程方法学包含3个要素:方法、工具和过程。
方法是完成软件开发的各项任务的技术方法,回答“怎样做”的问题;工具是为运用方法而提供的自动的或半自动的软件工程支撑环境;过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
目前使用得最广泛的软件工程方法学,分别是传统方法学和面向对象方法学。
4、什么是软件过程?什么是软件周期?常见软件生命周期模型(课件中的前5类)的特点有哪些?软件过程:它是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
软件生命周期:由软件定义、软件开发和运行维护(也称之为软件维护)3个时期组成①瀑布模型定义:传统软件工程方法学的软件过程,基本上可以用瀑布模型来描述。
瀑布模型的特点:1.阶段间具有顺序性和依赖性;2.推迟实现的观点;3.质量保证的观点。
瀑布模型的成功在很大程序上是由于它基本上是一种文档驱动的模型。
瀑布模型的主要优点:a.可强迫开发人员采用规范的技术方法;b.严格地规定了每个阶段必须提交的文档;c.每个阶段结束前必须正式进行严格的技术审查和管理复审。
瀑布模型的主要缺点:在可运行的软件产品交付给用户之前,用户只能通过文档来了解未来的产品是什么样的。
开发人员和用户之间缺乏有效的沟通,很可能导致最终开发出的软件产品不能真正满足用户的需求。
②快速原型模型定义:所谓“快速原型”,是快速建立起来的、可在计算机上运行的程序,它所能完成的功能往往是最终的软件产品所能完成的功能的子集。
原型是软件开发人员与用户沟通的强有力工具,因此有助于所开发出的软件产品满足用户的真实需求。
快速原型模型的主要优点是:A.使用这种软件过程开发出的软件产品通常能满足用户的真实需求;B.软件产品的开发过程基本上是线性顺序过程。
③增量模型定义:增量模型也称为渐增模型增量模型的主要优点:A.能在较短时间内向用户提交可完成部分工作的产品;B.逐步增加产品功能,从而使用户有较充裕的时间学习和适应新产品,减少一个全新的软件给客户组织带来的冲击。
④螺旋模型定义:螺旋模型的基本思想是,使用原型及其他方法尽量降低风险。
理解这种模型的一个简便方法,是把它看作在每个阶段之前都增加了风险分析过程的快速原型模型。
螺旋模型所描述的软件过程主要适用于内部开发的大型软件项目。
使用螺旋模型开发软件,要求软件开发人员具有丰富的风险评估知识和经验。
螺旋模型主要有下述优点:A.有利于已有软件的重用;B.有助于把软件质量作为软件开发的一个重要目标;C.减少了过多测试或测试不足所带来的风险;D.软件维护与软件开发没有本质区别。
⑤喷泉模型定义:迭代是软件开发过程中普遍存在的一种内在属性。
在面向对象范型中,软件开发过程各阶段之间的迭代或同一阶段内各个工作步骤之间的迭代,比在结构化范型中更常见。
喷泉模型,是典型的面向对象生命周期模型,它充分体现了面向对象软件开发过程迭代和平滑过渡的特性。
5、在“快速原型”模型中软件原型的作用主要是什么?在哪类生命周期模型中引入了风险分析?哪类生命周期模型是典型的传统软件工程生命周期模型?哪类生命周期模型是典型的面向对象软件工程生命周期模型?在“快速原型”模型中软件原型的作用主要是:软件开发人员与用户沟通的强有力工具,因此有助于所开发出的软件产品满足用户的真实需求。
螺旋模型中引入风险分析瀑布模型是典型的传统软件工程生命周期模型喷泉模型是典型的面向对象软件工程第2章可行性研究1、可行性研究包括哪几方面(每方面解决什么问题),研究得到的文档和结论是什么?技术可靠性:使用现有的技术能否实现这个系统吗?经济可行性:这个系统的经济效益能否超过它的开发成本?操作可行性:系统的操作方式在这个用户组织内是否行得通?研究的结果:是一份可行性研究的各个步骤的工作结果的文档,它包含了工程是否能继续进行下去和分析员的推荐方案;2、主要描述工具的概念和使用:系统流程图:是什么,成份和基本符号,描述什么模型,画法;数据流图:是什么,成份和基本符号,系统级和功能级、简单细化数据流图的区别,画法;数据字典:是什么,内容、定义数据的方法。
(1)系统流程图的定义:是概括地描绘物理系统的传统工具。
它用图形符号以黑盒子形式描绘组成系统的每个部件。
系统流程图表达的是数据在系统各部件之间流动的情况,而不是对数据进行加工处理的控制过程,是物理数据流图而不是程序流程图。
系统流程图的基本符号:(2)数据流图的定义:它是一种图形化技术,它描述信息和数据从输入移动到输出过程中所经历的变换。
在数据流图中没有任何具体的物理部件,它只是描绘数据在软件中流动和被处理的逻辑过程。
数据流图的基本符号:正方形(或立方体)表示数据的源点或终点;圆角矩形(或圆形)代表变换数据的处理;开口矩形(或两条平行横线)代表数据存储;箭头线表示数据流,即特定数据的流动方向。
(3)数据字典的定义:是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。
数据字典的作用也正是在软件分析和设计的过程中给人提供关于数据的描述信息。
数据字典的内容:数据流、数据流分量、数据存储、处理定义数据的方法:用被定义的事物的成分的某种组合表示这个事物,这些组成成分又由更低的成分组合来定义。
3、数据字典和数据流图的关系。
数据流图和数据字典共同构成系统的逻辑模型。
没有数据字典,数据流图就不严格,然而没有数据流图,数据字典也难于发挥作用。
只有数据流图和对数据流图中每个元素的精确定义放在一起,才能共同构成系统的规格说明。
第3章需求分析1、需求分析的任务是什么?分析得到的成果(文档)是什么?包含哪些内容?1、需求分析的任务:(1)确定对系统的综合要求:功能需求、性能需求、可靠性和可用性需求、出错处理需求、接口需求、约束、逆向需求、将来可能提出的要求(2)分析系统的数据要求:(3)导出系统的逻辑模型(4)修正系统开发计划;2、需求分析得到的结果:是通过需求分析得到的除了分析模型之外,还应该写出软件需求规格说明书,它是需求分析阶段得出的最主要的文档。
2、软件需求通常包括哪些方面?各类需求一般包含内容有哪些?(1)功能需求:这方面的需求指定系统必须提供的服务。
通过需求分析应该划分出系统必须完成的所有功能。
(2)性能需求:性能需求指定系统必须满足的定时约束或容量约束,通常包括速度(响应时间)、信息量速率、主存容量、磁盘容量、安全性等方面的需求。
(3)可靠性和可用性需求:可靠性需求定量地指定系统的可靠性。
可用性与可靠性密切相关,它量化了用户可以使用系统的程度。
(4)出错处理需求:这类需求说明系统对环境错误应该怎样响应。
(5)接口需求:接口需求描述应用系统与它的环境通信的格式。
常见的接口需求有:用户接口需求;硬件接口需求;软件接口需求;通信接口需求。
(6)约束:设计约束或实现约束描述在设计或实现应用系统时应遵守的限制条件。
(7)逆向需求:逆向需求说明软件系统不应该做什么。
(8)将来可能提出的要求:应该明确地列出那些虽然不属于当前系统开发范畴,但是据分析将来很可能会提出来的要求。
这样做的目的是,在设计过程中对系统将来可能的扩充和修改预做准备,以便一旦确实需要时能比较容易地进行这种扩充和修改。
3、追加的主要描述工具的概念和使用:E-R图:是什么,成份和基本符号,描述什么模型;状态转换图:是什么,描述什么模型(1)E-R图的定义:即实体--联系图,是表示数据对象及其之间关系的图形语言机制,是建立数据模型的图形工具。
E-R图的基本成份和使用的符号:实体(即数据对象)----矩形框,关系----菱形框,属性----椭圆形或圆角矩形。
E-R图描述的模型:用来建立数据模型,ER模型使用简单的图形符号表达系统分析员对问题域的理解(2)状态转换图的定义:通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。
状态转换图的基本成份和使用的符号:基本成分是状态、事件、状态转换。
状态转换图描述的模型:用来建立系统的行为模型。
4、在结构化分析中,建模的核心是什么?3种模型分别是什么,分别用什么工具来描述?建模的核心是数据字典,它描述了所有的在目标系统中使用的和生成的数据对象。
(1)、数据模型,用实体-联系图描述;(2)、功能模型,用数据流图描述;(3)、行为模型,用状态转换图描述。
第5章总体设计1、什么是总体设计?将软件需求转化为软件的数据结构和系统结构,确定各组成成分(子系统或模块)之间的相互关系2、模块化设计的原理包括什么?为了提高软件的可维护性,其中,模块独立性最重要的,是评价软件结构质量的首要标准。
模块化设计的原理包括:模块化、抽象、逐步求精、信息隐藏和局部化、模块独立。
为了提高软件的可维护性,其中,模块独立性最重要的,是评价软件结构质量的首要标准。
3、模块独立性度量(描述)的两个指标:内聚、耦合;什么是内聚,什么是耦合;耦合和内聚的具体分类及使用原则;在面向数据流的方法中,内聚、耦合各分为哪几级,每级的具体含义分别是什么?强度从弱到强如何排列?耦合和内聚两者关系?(1)耦合定义:它是对一个软件结构内不同模块之间互连程度的度量;耦合分类:耦合使用原则:尽量使用数据耦合,小用控制耦合和特征耦合,限制公共环境耦合的范围,完全不用内容耦合,最终降低模块间接口的复杂性。
(2)内聚定义:它标志着一个模块内各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的自然扩展。
内聚分类:内聚使用原则:设计时力求高内聚,设计时应该力求做到高内聚,通常中等程度的内聚也是可以采用的,而且效果和高内聚相差不多;但是,低内聚很坏,不要使用。
(3)耦合和内聚两者关系:耦合与内聚都是模块独立性的定性标准,都反映模块独立性的良好程度。
其中内聚更重要。
内聚与耦合密切相关。
同其它模块强耦合的模块意味着它自己是弱内聚的;强内聚模块意味着与其它模块间松散耦合。
所以设计的目标应该是力争高内聚、低耦合。
4、软件总体结构描述工具的概念和使用:软件层次图、软件结构(SC)图、HIPO图:是什么,基本符号和表示的结构,画法。