软件工程课后作业第四章.doc

合集下载

软件工程第四章 结构化分析

软件工程第四章 结构化分析

软件需求分析阶段的工作,可以分成以下四个方面 :对问题的识别、分析与综合、制定规格说明以及 ( )。 A.总结 B.实践性报告 C.需求分析评审 D.以上答案都不正确
答案:C
需求验证应该从下述几个方面进行验证:(C ) A 可靠性、可用性、易用性、重用性 B可维护性、可移植性、可重用性、可测试性 C一致性、现实性、完整性、有效性 D 功能性、非功能性
3、需求分析步骤
1、需求获取
3、亲身实践:观察用户工作流程
优点: 1. 通过直接观察提取用户或系统的特性; 2. 有助于理解难以用语言描述清楚的复杂业务。 3. 更加准确和真实 缺点:
1. 观察可能使用户紧张,从而表现与往常不同。 2. 比较费时间
3、需求分析步骤
1、需求获取
3、需求分析步骤
3、需求分析步骤
3 需求描述
1. 又叫:需求规约
2. 是分析任务的最终产物,给出对目标软件的 各种需求。
3. 需求规约作为用户和开发者之间的一个协议 (需求规格说明书),在之后的软件工程各 个阶段发挥重要作用
软件需求分析阶段的目的是澄清用户的要求 ,并把双方共同的理解明确地表达成一份书 面文档——(软件需求规格说明书)。
经调查,系统分析员给出有问题的初略陈述, 其中部分描述如下:某商场的采购部门要求每 天开出定购清单,交采购员输入系统;仓库管 理员还要将库存信息此输入系统,经库存业务 (进贷或出贷)处理后输出。从这段描述可知 该部分数据流图中的外部项为:
A.采购员、仓库管理员 B.定购清单、库存业务 C.库存业务 D.定购清单、采购员 答案A
3、需求分析步骤
4、需求验证
1. 进行需求评审
2. 验证需求的一致性
3. 验证需求的现实性

《软件工程》各章课后习题答案

《软件工程》各章课后习题答案

《软件工程》各章课后习题答案软件工程是计算机科学与技术的一门重要学科,旨在研究和应用工程原则和方法来开发高质量的软件系统。

课程中的习题对于加深学生对软件工程理论和实践的理解至关重要。

下面是对《软件工程》各章课后习题的答案,希望能够帮助你更好地掌握软件工程的知识。

第一章:软件工程导论1. 软件工程的定义:答:软件工程是通过应用系统化、规范化和可量化的方法进行软件开发、运行和维护的学科。

2. 软件工程的目标:答:软件工程的目标是提高软件开发的质量、效率和可靠性,使得软件能够满足用户的需求和期望。

3. 软件生命周期模型:答:常见的软件生命周期模型包括瀑布模型、迭代模型、敏捷模型等。

每个模型都有其独特的特点和适用场景。

4. 软件过程模型:答:软件过程模型描述了软件开发过程中的一系列活动和阶段,常见的软件过程模型包括瀑布模型、迭代模型、敏捷模型等。

5. 软件工程的基本原则:答:常见的软件工程基本原则包括分阶段、逐步求精、持续集成、迭代开发、需求优先等。

第二章:软件项目管理1. 软件项目管理的定义:答:软件项目管理是指对软件开发过程中的资源、进度、质量等进行有效管理,以确保软件项目能够按时、按质地完成。

2. 软件项目管理的内容:答:软件项目管理包括项目计划、需求管理、项目进度管理、资源管理、风险管理等方面。

3. 软件项目管理的方法:答:常见的软件项目管理方法包括敏捷项目管理、水平项目管理、里程碑项目管理等。

4. 软件项目管理的工具:答:常用的软件项目管理工具包括甘特图、PERT/CPM网络图、项目管理软件等。

第三章:软件需求分析与规格说明1. 软件需求的定义:答:软件需求是指用户对软件系统的要求和期望,包括功能需求、性能需求、接口需求等方面。

2. 软件需求分析的方法:答:常用的软件需求分析方法包括面向对象分析法、数据流图法、用例分析法等。

3. 软件需求规格说明的格式:答:常见的软件需求规格说明的格式包括自然语言描述、结构化描述、图形描述等。

软件工程实用教程(2版)-第2、3、4、5章-习题与参考答案(人民邮电大学出版社 郭宁主编)

软件工程实用教程(2版)-第2、3、4、5章-习题与参考答案(人民邮电大学出版社 郭宁主编)

《软件工程实用教程》第2、3、4、5章习题与参考答案第2章软件生存周期及开发模型1.简述什么是软件生存周期?根据国家标准《计算机软件开发规范》,软件生存周期主要包括哪几个阶段?答案要点:软件生存周期是指软件产品从功能确定、设计、开发成功、投入使用,并在使用中不断修改、完善,直至被新的软件所替代,而停止该软件使用的全过程。

国家标准GB8566-1988《计算机软件开发规范》将软件生命周期划分为几个阶段:可行性研究、项目计划、需求分析、总体设计、详细设计、编码实现(包括单元测试)、集成测试、确认测试、系统运行和维护。

这几个阶段又可以归纳为3个大的阶段,即软件定义阶段,软件开发阶段和软件运行维护阶段。

2.瀑布模型有哪些特点?对于里程碑,你有哪些认识?答案要点:瀑布模型是一种基于里程碑的阶段过程模型,它所提供的里程碑式的工作流程,为软件项目按规程管理提供了便利。

例如,按阶段制定项目计划,分阶段进行成本核算,进行阶段性的评审等。

这为提高软件产品质量提供了有效保证。

瀑布模型的特点:•阶段性:前一阶段工作完成以后,后一阶段工作才能开始,前一阶段的输出文档是后一阶段的输入文档。

•阶段评审:在每一阶段工作完成后都要进行评审,以便尽早发现问题,避免后期的返工,如果评审不合格,则不开始下一阶段的工作。

•文档管理:在每阶段都规定了要完成的文档,没有完成文档,就认为没有完成该阶段的任务。

3.试说明原型模型的两种实现方案各有什么特点?各适用于什么情况?答案要点:原型模型在软件分析、设计阶段的应用,用来解决用户对软件系统在需求分析上的模糊认识。

将模拟的手段引入需求分析的初期阶段,通过建立原型缩短用户与分析人员之间的距离。

快速原型方法具有以下一些特点。

•快速原型是用来获取用户需求的,或是用来试探某种设计是否有效。

一旦需求或设计确定下来,原型就将被抛弃。

因此快速原型要求快速构建、容易修改,以节约原型创建成本,加速开发速度。

快速原型往往采用软件生成工具来创建,例如,4GL语言。

软件工程第四版课后答案

软件工程第四版课后答案

20
作业及解答(第3章)
ER模型
本问题中共有两类实体,分别是“储户”和“储蓄所”,
E2 业务员
13:07:42
F8储蓄利率
D2存款利率
19
重庆工学院计算机科学与工程学院 李梁(liliang@)
作业及解答(第3章)
F2取款单 无效取款信息 D1存款信息 F7密码 F7密码 P3.2 密码校验 P3.1 输入取款信息 F5存款信息
E1 储户
13:07:42
重庆工学院计算机科学与工程学院 李梁(liliang@)
13:07:42
重庆工学院计算机科学与工程学院 李梁(liliang@)
4
作业及解答(第1-2章)
(1)在1985年对计算机存储容量的需求,估计是
M 4080 e
0.28(19851960)
4080e 4,474,263(字)
7
如果字长为16位,则这个存储器的价格是 19851974
73,577,679条指令。 在1995年一名程序员每天可开发出30条指令,每月可开 发出600条指令,为了开发出可装满整个存储器的程序, 需要的工作量为 73577679 122 629(人月) , 600
13:07:42 重庆工学院计算机科学与工程学院 李梁(liliang@)
13:07:42
重庆工学院计算机科学与工程学院 李梁(liliang@)
15
作业及解答(第3章)
电话号码=[校内电话号码|校外电话号码] 校内电话号码=非零数字+
3 位数字 //后面继续定义 校外电话号码=[本市号码|外地号码] 本市号码=数字零+8位数字 外地号码=数字零+3位数字+8位数字 非零数字=[1|2|3|4|5|6|7|8|9] 数字零=0 3位数字=3{数字}3 //3至3个数字 8位数字=非零数字+7位数字 7位数字=7{数字}7 数字=[0|1|2|3|4|5|6|7|8|9]

软件工程第4章 软件设计

软件工程第4章  软件设计

5. 设计软件结构 通常程序中的一个模块完成一个适当的子功能。应 该把模块组织成良好的层次系统,顶层模块调用它 的下层模块以实现程序的完整功能,每个下层模块 再调用更下层的模块,从而完成程序的一个子功能, 最下层的模块完成最具体的功能。
6. 设计数据库 对于需要使用数据库的那些应用系统,软件工程师 应该在需求分析阶段所确定的系统数据需求的基础 上,进一步设计数据库。
高内聚也有两类:如果一个模块内的处理元素和同 一个功能密切相关,而且这些处理必须顺序执行 (通常一个处理元素的输出数据作为下一个处理元 素的输入数据),则称为顺序内聚。根据数据流图 划分模块时,通常得到顺序内聚的模块,这种模块 彼此间的连接往往比较简单。如果模块内所有处理 元素属于一个整体,完成一个单一的功能,则称为 功能内聚。功能内聚是最高程度的内聚。
(2) 用户手册根据总体设计阶段的结果,修改更正 在需求分析阶段产生的初步的用户手册。
(3) 测试计划包括测试策略,测试方案,预期的测 试结果,测试进度计划等等。 (4) 详细的实现计划 (5) 数据库设计结果
9. 审查和复审 最后应该对总体设计的结果进行严格的技术审查, 在技术审查通过之后再由使用部门的负责人从管理 角度进行复审。
为什么模块的独立性很重要呢?主要有两条理由: 第一,有效的模块化(即具有独立的模块)的软件比 较容易开发出来。这是由于能够分割功能而且接口 可以简化,便于多人分工合作开发同一个软件。
第二,独立的模块比较容易测试和维护。这是因为 相对说来,修改设计和程序需要的工作量比较小, 错误传播范围小,需要扩充功能时能够“插入”模块。
(2)详细设计。详细设计阶段的根本目标是确定 应该怎样具体地实现所要求的系统,也就是说,经 过这个阶段的设计工作,应该得出对目标系统的精 确描述,从而在编码阶段可以把这个描述直接翻译 成用某种程序设计语言书写的程序。 详细设计阶段的任务还不是具体地编写程序,而是 要设计出程序的“蓝图”,结果基本上决定了最终 的程序代码的质量。

软件工程课后习题参考答案

软件工程课后习题参考答案

软件工程课后习题参考答案软件工程课后习题参考答案1. 第一章规约与软件工程概述1.1 规约的定义规约是软件开发过程中明确要求的描述,包含了对软件需求、设计、实现、测试、部署和维护等各个阶段的要求和约束。

1.2 软件工程的概述软件工程是一门涉及对软件的开发、运行和维护的学科。

它通过应用工程原则和方法,以系统化、规范化、可靠化、经济化和高质量的方式来开发和维护软件。

2. 第二章软件需求规约2.1 软件需求规约的作用软件需求规约是对软件系统所需功能和性能的具体描述和说明,是软件开发的基础和依据。

它指导着开发团队的工作,确保软件的功能和性能符合用户的需求。

2.2 软件需求规约的要素软件需求规约包括功能需求、非功能需求和约束条件。

功能需求描述了软件系统应该具备的功能,非功能需求描述了软件系统的性能要求和质量特性,约束条件描述了软件系统所受限制的条件。

3. 第三章软件设计规约3.1 软件设计规约的目标软件设计规约是对软件系统进行结构化和模块化设计的过程,其目标是确保软件系统具备可靠性、可维护性、可扩展性和可重用性。

3.2 软件设计规约的方法软件设计规约采用面向对象设计、结构化设计和模块化设计等方法。

面向对象设计强调将问题领域的概念和对象转化为软件系统的类和对象,结构化设计强调将系统分解为模块,模块化设计强调模块间的接口和通信。

4. 第四章软件实现规约4.1 软件实现规约的目的软件实现规约是指将软件设计阶段得到的设计规约转化为计算机可执行的程序代码,其目的是确保软件系统的正确性、可靠性、可维护性和可测试性。

4.2 软件实现规约的技术软件实现规约采用编程语言、软件开发工具和软件开发环境等技术。

编程语言提供了描述算法和数据结构的语法和语义,软件开发工具提供了代码编辑、编译、调试和测试等功能,软件开发环境提供了开发的整体支持。

5. 第五章软件测试规约5.1 软件测试规约的目的软件测试规约是对软件系统进行功能、性能和质量等方面的验证和检测,其目的是找出软件系统的错误和缺陷,并修复和改进。

软件工程专业《面向对象技术》课程的课后作业参考答案(第4部分)

软件工程专业《面向对象技术》课程的课后作业参考答案(第4部分)

}
public void run(){ //结束条件设定为,当卡内资金大于 100 元时,线程 OVER while(this.mycard.getMoney()<=100){ AddSystem.addMoney(this.mycard); } System.out.println("资金大于 100 元,该线程 OVER"); System.out.println("");
}
public void addMoney(float addmoney){
money=money+addmoney;
//金额累加:
System.out.println("充值完毕,增加了"+addmoney+"元钱lass Student extends Thread{
money=0; id=0; name="No"; }
Card(int id, String name){ money=0;
this.id=id;
=name; }
public float getMoney(){
return money; }
public void dispInformation() { System.out.println("该一卡通考号为:"+id+"号");
}
public void dispInformation() { System.out.println("******************************"); System.out.println("该学生的基本信息如下:"); System.out.println("姓名-------:"+name);

软件工程第4章

软件工程第4章
试用有穷状态机说明上述的图书流通系统。
4-5 试用Petri网说明第4题所述图书馆中一本书的循 环过程。在规格说明中应该包括操作H、C及R。
4-6 试用Z语言对第4题所述图书馆图书流通系统做一 个完整的规格说明。

生 活 中 的 辛 苦阻挠 不了我 对生活 的热爱 。20.12.2820.12.28Monday, December 28, 2020
第二条和第三条规则,分别对应于电梯即将下降 或者没有待处理的请求的情况。
4.2.3 评价
有穷状态机方法采用了一种简单的格式来描述规 格说明:
当前状态+事件+
这种形式的规格说明易于书写、易于验证,而且 可以比较容易地把它转变成设计或程序代码。
有穷状态机方法比数据流图技术更精确
4.3 Petri网
4.3.1 概念
所有按钮的集合,因此,Z规格说明开始于: 〔Button〕 2. 状态定义 一个Z规格说明由若干个“格(schema)”组成,每个 格含有变量说明和限定变量取值范围的谓词。例如, 格S的格式如图4.12所示。
图4.12 Z格S的格式
3. 初始状态 对于电梯问题来说,抽象的初始状态为:
ˆ Button_Init Button_State|pushed=Φ〕
第4章 形式化说明技术
4.1 概述 4.2 有穷状态机 4.3 Petri网 4.4 Z语言 4.5 小结 习题
按照形式化的程度,可以把软件工程使用的方 法划分成非形式化、半形式化和形式化3类:
• 用自然语言描述需求规格说明,是典型的非形式 化方法。
• 用数据流图或实体-联系图建立模型,是典型的 半形式化方法。
有穷状态机对本产品进行规格说明: 这个问题中有两个按钮集。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第四章
4.1.简述软件设计阶段的基本任务。

答:(1)数据/类设计数据/类设计将分析类模型变换成类的实现和软件实现所需要的数据结构。

(2)体系结构设计体系结构设计定义了软件的整体结构,由软件部件、外部可见的属性和他们之间的关系组成。

(3)接口设计接口设计描述了软件内部、软件和协作系统之间以及软件同人之间的通信方式。

(4)部件级设计部件级设计将软件体系结构的结构性元素变换为对软件部件的过过程性描述。

4.2.软件设计与软件质量的关系是怎么样的?
答:设计是在软件开发中形成质量的阶段,设计提供了可以用于质量评估的软件表示,是将用户需求准确地转化为完整的软件产品或系统的主要途径。

4.4.简述模块、模块化及模块化设计的概念。

答:模块:具有名字、参数、功能等外部特征以及完场模块功能的程序代码和模块内部数据等特征。

模块化:把软件按照规定原则,划分为一个个较小的,相互独立的但又相互关联的部件。

模块化设计:简单地说就是程序的编写不是开始就逐条录入计算机语句和指令,而是首先用主程序、子程序、子过程等框架把软件的主要结构和流程描述出来,
并定义和调试好各个框架之间的输入、输出链接关系。

4.5.举例说明每种类型的模块耦合度和每种类型的模块内聚度。

答:1、巧合内聚:讲几个模块中没有明确表现出独立功能的相同程序代码段独立出来建立的模块称巧合内聚模块。

2、逻辑内聚:逻辑内聚是指完成一组逻辑相关任务的模块,调用该模块时,由传送给模
块的控制性参数来确定该模块应执行哪一种功能。

3、时间内聚:时间内聚是指一个模块中的所有任务必须在同一时间段内执行。

4、过程内聚:过程内聚是指一个模块完成多个任务,这些任务必须指定的过程执行。

5、通信内聚:通信内聚是指一个模块内所有处理元素都集中在某个数据结构的一块区
域中。

6、顺序内聚:顺序内聚是指一个模块完成多个功能,这些功能又必须顺序执行
7、功能内聚:功能内聚是指一个模块中各个部分都是为完成一项具体功能而协同工作,
紧密联系,不可分割。

1、内容耦合:当一个模块直接修改或操作另一个模块的数据,或者直接转入另一
个模块时 ,就发生了内容耦合。

此时 ,被修改的模块完全依赖于修
改它的模块。

如果发生下列情形 ,两个模块之间就发生了内容耦合
(1) 一个模块直接访问另一个模块的内部数据;
(2) 一个模块不通过正常入口转到另一模块内部;
(3) 两个模块有一部分程序代码重叠(只可能出现在汇编语言中);
(4) 一个模块有多个入口。

2、公共耦合:若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。

公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。

3外部耦合:一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。

4.控制耦合:如果一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能,就是控制耦合。

5.标记耦合:一组模块通过参数表传递记录信息,就是标记耦合。

这个记录是某一数据结构的子结构,而不是简单变量。

其实传递的是这个数据结构的地址;
6.数据耦合:一个模块访问另一个模块时,彼此之间是通过简单数据参数(不是控制参数、公共数据结构或外部变量) 来交换输入、输出信息的。

7非直接耦合:两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的。

4.6.耦合和软件可移植性的概念有何关系?举例说明自己的结论。

答:耦合性是2个或多个模块相关的程度,可移植性是指软件从一个平台/环境转移到另一个平台/环境的难易程度。

4.7.用自己的话描述信息隐蔽概念,并讨论信息隐藏域模块独立两概念之间的关系。

答:1、信息隐蔽指在设计和确定模块时,使得一个模块内包含信息(过程或数据),对于不需要这些信息的其他模块来说,是不能访问的.
在面向对象方法中 ,信息隐蔽是通过对象的封装性来实现的。

2、信息隐蔽的概念与模块的独立性直接相关。

4.8.什么是模块的独立性?设计中为什么模块要独立?如何度量独立性?模块功能独立有何优点?
答:(1)模块独立性:1.模块独立性指每个模块只完成系统要求的独立的子功能,并且
与其他模块的联系最少且接口简单
2.模块独立性是指模块内部各部分及模块间的关系的一种衡量
标准,由内聚和耦合来度量。

(2)1、具有独立的模块的软件比较容易开发出来。

这是由于能够分割功能而且接口可以简化,当许多人分工合作开发同一个软件时,这个优点尤其重
要。

2、独立的模块比较容易测试和维护。

这是因为相对说来,修改设计和程序
需要的工作量比较小,错误传播范围小,需要扩充功能时能够"插入"模
块。

总之,模块独立是优秀设计的关键,而设计又是决定软件质量的关键
环节。

(3)模块的独立程度可以由两个定性标准度量,这两个标准分别称为内聚和耦合。

耦合衡量不同模块彼此间互相依赖(连接)的紧密程度;内聚衡量一个
模块内部各个元素彼此结合的紧密程度。

(4)1、具有独立的模块的软件比较容易开发出来。

这是由于能够分割功能而且
接口可以简化,当许多人分工合作开发同一个软件时,这个优点尤其重
要。

2、独立的模块比较容易测试和维护。

4.9软件设计规约主要包括哪些内容?自己寻找一个实例,亲自写一个设计规约。

答:包括软件设计规约的目的、范围、定义、首字母、缩写词、缩略语、参考资料和概述。

相关文档
最新文档