现代软件工程平时作业及答案
软件工程课堂练习与参考答案
软件工程课堂练习与参考答案课堂练习一、填空题1、软件的生存期包括:问题的定义、()、需要分析三个阶段。
2、可行性分析的内容包括:()、经济可行性、操作可行性和法律可行性。
3、模块独立性设计的标准是:模块化、抽象、()、和信息隐藏。
4、主程序员组由主程序员、()、后备程序员、编程秘书组成。
5、成本/效益分析目的是从()评价开发一个新的软件项目是否可行。
6、模块是由边界元素限定的()(例如,数据说明、可执行的语句等)的序列。
7、模块化就是把程序划分成()且可独立访问的模块。
8、人类在认识复杂现象的过程中使用的最强有力的思维工具是()。
9、人机界面的设计质量,直接影响用户对软件产品的评价,从而影响软件产品的竞争力和寿命,因此,必须对人机界面设计给以()。
10、质量保证是为保证产品和服务充分满足消费者要求的质量而进行的有计划、()的活动。
二、问答题1.简述需求分析的基本步骤。
2.有哪些常用的需求收集方法和技术?试选择某一系统并根据方法进行需求收集。
3.数据流图与数据词典之间有什么关系?4.试考察某一学生档案管理系统,用实体联系图描述该系统的主要数据。
5.试考察某一学生成绩管理系统,对其进行尽可能详细的功能建模和数据建模。
6.举例说明“做什么”与“怎么做”之间的差别。
7.某学校计算机教材购销系统有以下功能:学生买书,首先填写购书单,计算机根据各班学生用书表及售书登记表审查有效性。
若有效,计算机根据教材库存表进一步判断书库是否有书;若有书,计算机把领书单返回给学生,学生凭领书单到书库领书。
对脱销的教材,系统用缺书单的形式通知书库,新书购进库后,也由书库将进书通知返回给系统。
请就以上系统功能画出分层的DFD图(第三层只需画出销售子系统的DFD 图)。
参考答案一、填空题1、可行性分析2、技术可行性3、逐步求精4、程序员5、经济角度6、程序元素7、独立命名8、抽象9、足够重视 10、有组织二、问答题1.需求分析的基本步骤:1)获取用户需求2)分析用户需求3)编写需求文档4)评审需求文档5)管理需求2.需求收集方法和技术:1)跟班作业通过亲身参加业务工作来了解业务活动的情况。
《现代软件工程》作业.
《现代软件工程》作业作业一:(一)名词解释1.软件危机2.数据流图3.数据字典4.变换流5.事务流6.耦合性7.内聚性8.程序设计语言(PDL)(二)填空题1. 在信息处理和计算机领域内,一般认为软件是_____、_____ 和_____ 。
2. 数据流图的基本组成部分有_____、_____、_____、_____。
3. 数据流图和数据字典共同构成了系统的_____模型,是需求规格说明书的主要组成部分。
4. 数据流图一般可分为_____和_____两类。
5. 结构化设计方法中,要把数据流图转换成软件结构,若某个加工将它的输入流分离成许多发散的数据流,形成许多加工路径,并根据输入的值选择其中一个路径来执行,这种特征的DFD称为_____数据流图。
6. PDL是描述处理过程“_____ ”的细节,结构化语言是描述加工“_____ ”的。
(三)选择题1. 软件工程的概念是哪年提出的( )。
A. 1988B. 1968C. 1948D. 19282. 影响输入输出风格的因素不包括( )。
A. 数据状态B. 通信环境C. 用户经验D. 输入/输出设备3. 符合数据说明顺序规范的是( )。
A. 全程量说明、局部量说明、类型说明、常量说明B. 全程量说明、局部量说明、常量说明、类型说明C. 类型说明、常量说明、全程量说明、局部量说明D. 常量说明、类型说明、全程量说明、局部量说明4. 瀑布模型的关键不足在于( )。
A. 过于简单B. 各个阶段需要进行评审C. 过于灵活D. 不能适应需求的动态变更5. 以下哪一项不是软件危机的表现形式( )。
A. 开发的软件不满足用户需要B. 开发的软件可维护性差C. 开发的软件价格便宜D. 开发的软件可靠性差6. 软件可行性研究实质上是要进行一次( )需求分析、设计过程。
A. 简化、压缩的B. 详细的C. 彻底的D. 深入的7. 结构化设计是一种面向( )的设计方法。
A. 数据流B. 模块C. 数据结构D. 程序8. 与确认测试阶段有关的文档是( )。
2022年中央电大《软件工程》平时作业1、2、3、4次及答案
软件工程第1次作业一、填空题(每空2分,共20分)二、单项选取题(将一种对的答案代码填入括号中,每小题3分,共15分) 1.( )是顾客和设计互换最频繁办法。
A. 原型化办法B.瀑布模型办法C. 螺旋模型办法D. 构件组装模型办法2.下列哪个阶段不是软件生存期三个阶段中内容( )。
A. 筹划阶段B.开发阶段C. 编码阶段D. 维护阶段3.下列( )操作产生副作用属于数据副作用。
A. 修改子程序B.局部变量再定义C. 删除标记符D.修改对编辑条件测试4.软件测试目( )。
A. 避免软件开发中浮现错误B.发现软件开发中浮现错误C.尽量发现并排除软件中潜藏错误,提高软件可靠性D.修改软件中浮现错误5.完毕详细设计工具不涉及( )。
A.PAD图B.数据流图C.HlP()图D.程序流程图三、多项选取题(将一种以上对的答案代码填入括号中,每小题3 分,共15分) 1.应从( )等方面研究可行性。
A. 经济可行性B.技术可行性C. 运营可行性D.法律可行性2.对于下列数据流图局部,关于描述中对的是( )。
A. 该图为第一层数据流图3.需求分析阶段结束后,交出文档中应当涉及( )。
A. 数据流图B.数据字典C. 简要算法描述D.项目经费预算4.软件管理工作涉及到直接对象涉及( )。
A. 软件开发人员B.硬件设备C. 项目经费D.软件项目5.在软件设计中,( )耦合应尽量避免。
A. 控制B.数据C.内容 D. 标记四、判断题(对的在括号内打上“√”,错误打上“X”。
每小题2分,共10分)1。
软件危机是指在软件开发和维护过程中遇到一系列严重问题。
( )2,构造化分析办法就是用抽象模型概念,按照软件内部数据传递、变换关系,自顶向下逐级分解,直到找到满足功能规定所有可实现软件为止。
( )3.UML只能应用于软件系统模型建立。
( )4.程序设计语言中应绝对禁止使用GOTO语句。
( ) 5.模块越小,模块长处越大。
( )五、问答题(每小题10分,共20分)1.什么是软件?什么是软件工程?2.什么是编码风格?为什么要强调编码风格?六、分析题(共20分)依照下列N—S图,写出其相应伪码。
(完整word版)软件工程习题集+答案
《软件工程》习题集目录一软件与软件工程 (1)二软件项目管理 (4)三需求分析 (7)四面向对象的需求分析 (10)五软件设计 (15)六程序设计语言和编码 (18)七软件测试 (20)八软件维护 (23)综合试卷一 (25)综合试卷二 (29)综合试卷三 (33)附参考答案: (37)一软件与软件工程参考答案 (37)二软件工程管理参考答案 (40)三需求分析参考答案 (42)四面向对象的需求分析参考答案 (46)五软件设计参考答案 (55)六程序设计语言和编码参考答案 (58)七软件测试参考答案 (62)八软件维护参考答案 (65)综合试卷一参考答案及评分标准 (68)综合试卷二参考答案及评分标准 (71)综合试卷三参考答案及评分标准 (74)一软件与软件工程一、选择题1。
软件的主要特性是()A、无形性B、高成本C、包括程序和文档D、可独立构成计算机系统2.软件工程三要素是()A、技术、方法和工具B、方法、工具和过程C、方法、对象和类D、过程、模型、方法3。
包含风险分析的软件工程模型是()A、螺旋模型B、瀑布模型C、增量模型D、喷泉模型4。
软件工程的主要目标是()A、软件需求B、软件设计C、风险分析D、软件实现5。
下列属于面向对象开发方法的是()A、BoochB、UMLC、CoadD、OMT6.软件危机的主要表现是()A、软件成本太高B、软件产品的质量低劣C、软件开发人员明显不足D、软件生产率低下7。
软件开发方法的主要工作模型有()A、螺旋模型B、循环模型C、瀑布模型D、专家模型8。
软件工程的目标有()A、易于维护B、低的开发成本C、高性能D、短的开发期9.软件工程学的目的和意义是()A、应用科学的方法和工程化的规范管理来指导软件开发.B、克服软件危机。
C、作好软件开发的培训工作。
D、以较低的成本开发出高质量的软件。
二、判断题1.软件就是程序,编写软件就是编写程序。
2。
瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰。
软件工程习题附答案
软件工程习题附答案软件工程是一门研究和应用如何以系统性、规范化、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。
以下是一些与软件工程相关的习题及答案,希望能帮助您更好地理解这门学科。
一、选择题1、软件生存周期中,解决软件“做什么”的阶段是()A 需求分析B 软件设计C 软件实现D 软件测试答案:A解析:需求分析阶段主要是确定软件系统需要完成的功能和性能,解决软件“做什么”的问题。
2、下面不属于软件设计原则的是()A 抽象B 模块化C 自底向上D 信息隐藏答案:C解析:软件设计的原则通常包括抽象、模块化、信息隐藏等,自底向上一般不是软件设计的原则,常见的是自顶向下的设计方法。
3、软件测试的目的是()A 证明软件没有错误B 发现软件中的错误C 改正软件中的错误D 优化软件的性能答案:B解析:软件测试的目的是为了发现软件中存在的错误,而不是证明软件没有错误或直接改正错误、优化性能。
4、下列模型中,不属于软件生命周期模型的是()A 瀑布模型B 快速原型模型C 增量模型D 螺旋模型E 喷泉模型答案:E解析:瀑布模型、快速原型模型、增量模型和螺旋模型都属于常见的软件生命周期模型,喷泉模型则主要强调软件对象之间的无缝迭代。
5、软件维护中,因修改软件而导致出现新错误的维护属于()A 改正性维护B 适应性维护C 完善性维护D 预防性维护答案:A解析:改正性维护是指改正在系统开发阶段已发生而系统测试阶段尚未发现的错误。
在这种维护中,可能会因为修改软件而引入新的错误。
二、填空题1、软件工程包括()、()和()三个要素。
答案:方法、工具、过程2、软件需求分析阶段的工作,可以分为四个方面:()、()、()和()。
答案:需求获取、需求分析、编写需求规格说明书、需求评审3、软件测试的步骤主要包括()、()、()和()。
答案:单元测试、集成测试、系统测试、验收测试4、面向对象的三大特性是()、()和()。
软件工程课后习题(含答案)
第一章练习题一、填空题1、软件工程三要素是:方法、工具、过程。
2、软件开发方法是指软件开发过程中所应遵循的方法和步骤。
二、名词(术语)解释:1、可靠性---是指在给定的时间间隔内,程序成功运行的概率。
可靠性是衡量软件质量的一个重要目标。
2、可理解性---指系统具有清晰的结构,能直接反映问题的需求。
可理解性有助于控制软件系统的复杂性,并支持软件的维护、移植和重用。
三、问答题1、面向对象方法的优点是什么?答:(1)将现实世界问题向面向对象解空间直接映射,实现对现实世界的直接模拟。
(2)以数据为中心,而不是基于对功能的分解,使得软件结构相对稳定,软件的重用性、可靠性、可维护等特性都较好。
2、可视化开发方法的优点有哪些?答:(1)简化了图形用户界面的设计和编码工作,将开发的注意力主要集中在程序的执行逻辑和工作流程上。
(2)软件开发简单,易学、易上手。
(3)专业或非专业人员都能参与软件开发活动。
第二章练习题一、填空题:1、软件工程过程是:为获得软件产品,在软件工具支持下由软件人员完成的一系列软件工程活动。
2、一个软件从定义、开发、使用和维护,直到最终被废弃,所经历的生存过程经历的生存过程称为软件生存期或叫生命期。
3、软件生命周期的阶段划分为3个时期是:定义时期、开发时期、维护时期。
4、软件工程标准的5个层次是:国际标准、国家标准、行业标准、企业规范、项目规范。
二、简答题:1、瀑布模型的优点有哪些?答:1、强迫开发人员采用规范的技术方法;2、严格地规定了每个阶段必须提交的文档;3、每个阶段结束前必须正式进行严格的技术审查和管理复审。
2、瀑布模型的缺点是什么?答:1、在软件开发的初期阶段就要求做出正确、全面、完整的需求分析对许多应用软件来说是极其困难的。
2、在需求分析阶段,当需求确定后,无法及时验证需求是否正确、完整。
3、作为整体开发的瀑布模型,由于不支持产品的演化,缺乏灵活性,对开发过程中很难发现的错误,只有在最终产品运行时才能暴露出来,从而使软件产品难以维护。
软件工程习题附答案
软件工程习题附答案软件工程是一门研究如何以系统性的、规范化的、可定量的方法开发和维护软件的学科。
在软件工程的学习和实践中,习题是一种重要的学习方法,通过解答习题可以加深对知识的理解和应用。
本文将为您提供一些关于软件工程的习题,并附带答案。
请注意,下文中的答案仅供参考,具体情况还需根据实际情况进行判断和调整。
1. 什么是软件工程?答案:软件工程是一门研究如何以系统性的、规范化的、可定量的方法开发和维护软件的学科。
2. 软件工程的核心原则是什么?答案:软件工程的核心原则是系统分析、设计、编程、测试和维护各个阶段严格按照规范进行,并强调团队协作和项目管理的重要性。
3. 软件生命周期包括哪些阶段?答案:软件生命周期包括问题定义、需求分析、系统设计、编码、测试和维护等阶段。
4. 请简要描述软件工程的开发流程。
答案:软件工程的开发流程一般包括需求分析、系统设计、编码、测试和维护等阶段。
具体而言,首先需要明确需求,然后进行系统设计,确定软件的整体结构和功能。
接着进行编码,将设计好的软件实现为代码。
随后进行测试,检查软件是否符合需求并修复潜在的问题。
最后是维护阶段,对软件进行更新和修复,以保证其长期有效运行。
5. 请列举几种常用的软件开发方法。
答案:常用的软件开发方法包括瀑布模型、迭代模型、敏捷开发等。
6. 什么是瀑布模型?答案:瀑布模型是一种线性顺序型的软件开发方法,各个阶段严格按照顺序进行,上一个阶段的输出作为下一个阶段的输入。
7. 什么是迭代模型?答案:迭代模型是一种反复迭代、循环演化的软件开发方法,每次迭代都会增加新的功能或修复问题。
8. 请简要介绍敏捷开发方法。
答案:敏捷开发方法是一种轻量级的软件开发方法,强调迭代、灵活和快速响应变化。
它鼓励团队协作、自我组织和持续改进。
9. 请列举几种常用的软件测试方法。
答案:常用的软件测试方法包括单元测试、集成测试、系统测试和验收测试等。
10. 什么是单元测试?答案:单元测试是针对软件开发的最小单位——单元(如函数、方法等)进行的测试,用于检查该单元是否符合预期的功能和设计要求。
软件工程课后习题参考答案
软件工程课后习题参考答案软件工程课后习题参考答案1.简答题1.1 什么是软件工程?软件工程是一门研究和应用如何以系统化、规范化、可量化的方式开发和维护软件的学科,涉及到软件的设计、构建、测试、部署和维护等全生命周期的过程。
1.2 软件工程的目标是什么?软件工程的目标是提高软件开发过程的效率和质量,确保软件项目按时、按需求交付,并且能够满足用户的期望。
1.3 软件生命周期有哪些阶段?常见的软件生命周期包括需求分析、系统设计、详细设计、编码、测试、部署和维护等阶段。
1.4 什么是软件需求?软件需求是指对于软件系统所需满足的问题或需求的描述,包括功能需求、性能需求、接口需求等。
1.5 软件开发过程有哪些模型?常见的软件开发过程模型包括瀑布模型、迭代模型、螺旋模型、敏捷开发等。
2.客观题2.1 软件测试的目的是什么?a) 发现软件中的错误和缺陷b) 验证软件是否符合需求和规格c) 提高软件的可靠性和质量d) 以上皆是答案:d) 以上皆是2.2 瀑布模型的特点是什么?a) 瀑布模型是一种线性顺序的软件开发过程模型b) 各个开发阶段是相互独立的c) 开发过程按照需求分析、设计、编码、测试等顺序进行d) 以上皆是答案:d) 以上皆是2.3 敏捷开发的原则是什么?a) 个体和交互胜过流程和工具b) 可工作的软件胜过详尽的文档c) 客户合作胜过合同谈判d) 响应变化胜过遵循计划e) 以上皆是答案:e) 以上皆是3.计算题3.1 请计算以下代码的覆盖率:(假设代码行数为100行,已执行代码行数为80行)覆盖率 = 已执行代码行数 / 代码行数 100% = 80 / 100 100% = 80%3.2 请计算以下缺陷密度的值:(假设代码行数为1000行,代码中的缺陷数为10个)缺陷密度 = 缺陷数 / 代码行数 1000 = 10 / 1000 1000 = 103.3 请计算以下代码的复杂度:(假设代码中包含的判断语句有20个,循环语句有5个)复杂度 = 判断语句数 2 + 循环语句数 3 = 20 2 + 5 3 = 40 + 15 = 554.附件本文档涉及附件:无5.法律名词及注释本文涉及的法律名词及注释:无。
软件工程课后题答案大全(详细)
软件工程课后题答案大全(详细)软件工程课后题答案大全(详细)现代社会中,软件工程越来越重要,因为它在各个行业中扮演着关键的角色。
而在学习软件工程课程时,完成课后题是提高理解和掌握程度的重要途径。
本文将为您提供一份全面且详细的软件工程课后题答案大全,希望能够帮助您更好地学习与应用软件工程知识。
1. 什么是软件工程?软件工程是指应用系统化的、规范化的、可量化的方法来开发和维护软件的学科。
它涵盖了各种软件开发阶段,包括需求分析、设计、编码、测试和维护,并借鉴了工程学的原则和方法。
2. 软件工程的原则有哪些?软件工程遵循一系列原则来保证软件开发和维护的质量和效率,如下:- 需求管理原则:明确需求,确保项目目标的准确性和一致性。
- 分阶段原则:将软件开发过程划分为不同的阶段,有序进行。
- 风险管理原则:评估和管理项目中的风险,降低项目失败的可能性。
- 适应性原则:根据不同的项目需求和情况,选择合适的软件开发方法和工具。
- 团队合作原则:加强团队协作,促进良好的沟通和信息共享。
3. 软件生命周期有哪些阶段?软件生命周期包括需求分析、设计、编码、测试和维护等多个阶段。
- 需求分析:明确软件系统的功能和性能要求,了解用户需求。
- 设计:定义软件系统的整体结构和组件之间的关系,确定使用的技术和工具等。
- 编码:根据设计方案,将代码实现为可以执行的程序。
- 测试:验证软件系统的功能和性能是否满足需求,并进行错误修复。
- 维护:对软件进行修复和改进,确保系统的长期可用性。
4. 软件需求分析的方法有哪些?软件需求分析是保证软件项目成功的关键步骤,以下是几种常用的分析方法:- 面谈法:直接与用户沟通,了解他们的需求和期望。
- 文档分析法:研究和分析相关文档,如需求规格说明书、用户手册等。
- 原型法:创建一个初步的系统原型,供用户参观和测试,获取反馈。
- 视频录制法:录制用户正在进行的工作流程,以便更好地了解他们的需求。
5. 软件项目管理中的风险管理包括哪些步骤?风险管理是确保软件项目成功的重要环节,步骤如下:- 风险识别:识别和描述可能影响项目目标实现的风险。
软件工程作业及参考答案(版)
软件工程作业及参考答案(最新版)-标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII软件工程一、软件危机与软件工程1.软件危机是指在开发和()过程中所遇到的一系列严重问题。
A.运行B.设计 C.维护 D.编码2.造成软件危机的原因是:A.用户使用不当 B.对软件的错误认识C.硬件不可靠D.缺乏好的开发方法和手段3.软件工程方法学的研究内容包含软件开发技术和软件工程管理两部分,其期望达到的最终目标是()。
A.消除软件危机B.软件开发工程化C.程序设计自动化 D.实现软件重用4.软件工程学中除重视软件开发技术的研究外,另一重要组成内容是软件的()。
A.工程管理 B.成本核算 C.人员培训 D.工具开发5.软件计划是软件开发的早期和重要阶段,此阶段要求交互和配合的是()。
A.设计人员和用户B.分析人员和用户C.分析人员和设计人员 D.编码人员和用户6.软件工程的结构化生命周期方法是将软件开发的全过程划分为相互独立而又相互依存的阶段,软件的逻辑模型形成于()。
A.开发阶段B.计划阶段 C.分析阶段 D.设计阶段7.在软件工程中,软件生存期可分为计划、开发以及维护三个阶段,每个时期又分为若干更小的阶段。
通常,计划时期包括问题定义、可行性研究和①,开发时期包括②、详细设计、编码以及③。
① A.需求分析 B.可行性研究 C.经费预算 D.质量保证② A.需求分析 B.可行性研究C总体设计 D模块化设计③ A.文档编制 B.运行维护C.测试 D.验收8.软件开发中常采用的生命周期方法,由于其特征而一般称其为()。
A.层次模型B.瀑布模型 C.螺旋模型 D.对象模型9.描述软件生存周期的瀑布模型包括计划、(A)、设计、编码、测试、维护等阶段。
其中,设计阶段又可以分成(B)和(C)两个步骤。
A:①需求分析②可行性研究③需求调查④问题定义B,C:①方案设计②代码设计③概要(总体)设计④数据设计⑤详细设计10.什么是软件危机软件危机产生的原因11.生命周期阶段的划分每个阶段的任务二、可行性研究1.可行性研究的任务步骤对于各种可能的方案,从哪几个方面进行可行性研究参考答案:任务:在尽可能短的时间内确定该软件项目是否能够开发,是否值得开发。
现代软件工程平时作业及答案
(一)名词解释1.软件2.软件危机3.数据流图4.数据字典5.变换流6.事务流7.耦合性8.内聚性9.程序设计语言(PDL)(二)填空题1. 在信息处理和计算机领域内,一般认为软件是 _____、_____ 和_____ 。
2. 数据流图的基本组成部分有 _____、 _____、 _____、 _____。
3. 数据流图和数据字典共同构成了系统的 _____模型,是需求规格说明书的主要组成部分。
4. 数据流图一般可分为 _____和_____两类。
5. 结构化设计方法中,要把数据流图转换成软件结构,若某个加工将它的输入流分离成许多发散的数据流,形成许多加工路径,并根据输入的值选择其中一个路径来执行,这种特征的DFD称为 _____数据流图。
6. PDL是描述处理过程“_____ ”的细节,结构化语言是描述加工“_____ ”的。
(三)选择题1. 软件工程的概念是哪年提出的( )。
A. 1988B. 1968C. 1948D. 19282. 影响输入输出风格的因素不包括( )。
A. 数据状态B. 通信环境C. 用户经验D. 输入/输出设备3. 符合数据说明顺序规范的是( )。
A. 全程量说明、局部量说明、类型说明、常量说明B. 全程量说明、局部量说明、常量说明、类型说明C. 类型说明、常量说明、全程量说明、局部量说明D. 常量说明、类型说明、全程量说明、局部量说明4. 瀑布模型的关键不足在于( )。
A. 过于简单B. 各个阶段需要进行评审C. 过于灵活D. 不能适应需求的动态变更5. 以下哪一项不是软件危机的表现形式( )。
A. 开发的软件不满足用户需要B. 开发的软件可维护性差C. 开发的软件价格便宜D. 开发的软件可靠性差6. 软件可行性研究实质上是要进行一次( )需求分析、设计过程。
A. 简化、压缩的B. 详细的C. 彻底的D. 深入的7. 结构化设计是一种面向( )的设计方法。
A. 数据流B. 模块C. 数据结构D. 程序8. 与确认测试阶段有关的文档是( )。
现代软件工程第3章作业.
1.填空题(1在进行可行性研究和计划以后,如果确认开发一个新的软件系统是必要的而且是可能的,那么就进入阶段。
(2需求分析的基本任务是要准确地定义,为了满足用户的需要,回答系统必须的问题。
(3在需求分析阶段,首先进行问题识别,即双方确定对问题的综合需求,这些需求包括、、、。
另外还有可靠性、安全性、保密性、可维护性等方面的需求。
(4需求分析的困难主要表现在4个方面:问题的复杂性、、、需求易变性。
(5数据流图有4个基本成分:、、、。
(6数据词典中的加工逻辑主要描述该加工的,即实现加工的策略,而不是实现加工的细节,它描述如何把输入数据流变量变换为输出数据流的。
(7SA方法利用图形等半形式化的描述方式表达需求,简明易懂,用它们形成需求说明书的主要部分。
这些描述工具是、、、、。
(8数据词典就是用来定义数据流图中的的。
它和数据流图共同构成了系统的,是的主要组成部分。
(9加工逻辑也称“小说明”,常用的加工逻辑的描述工具有:、、。
三种描述加工逻辑的工具各有优缺点,对于顺序执行和循环执行的动作,用描述。
对于存在多个条件复杂的判断问题,用和。
(10传统的SA方法主要用于的问题,主要工具DFD图体现了系统的功能,但它仅是一个,没有处理的顺序,即。
2.选择题(1需求分析是(A.要回答“软件必须做什么”B.可概括为“理解、分解、表达”六个字C.要求编写需求规格说明书D.以上都对(2进行需求分析可使用多种工具,但(是不适用的。
A.数据流图B.判定表C.PAD图D.数据词典(3需求分析阶段研究的对象是软件项目的(。
A.用户需求B.合理要求C.模糊要求D.以上都对(4数据词典的任务是对于数据流图中出现的所有被命名的数据元素,在数据字典中作为一个词条加以定义,使得每一个图形元素的名字都有一个确切的( .A.对象B.解释C.符号D.描述(5在结构化分析方法中,用以表达系统内部数据的运行情况工具有(。
A.数据流图B.数据词典C.结构化英语D.判定树与判定表(6在软件需求分析中,开发人员要从用户那里最重要的问题是(A.要让软件做什么B.要给该软件提供哪些资源C.要求软件工作效率怎样D.要让软件具有何种结构(7需求分析的最终结果是产生(A.项目开发计划B.可行性分析报告C.需求规格说明书D.设计说明书(8SA方法用DFD图描述(A.系统的控制流图B.系统的数据结构C.系统的基本加工D.系统的功能(9需求分析阶段不适于描述加工逻辑的工具是(A.结构化语言B.判定表C.判定树D. 流程图(10SA方法的基本思想是(A.自底向上逐步抽象B.自底向上逐步分解C.自顶向下逐步分解D.自顶向下逐步抽象3.简答题(1需求分析阶段的基本任务是什么?需求分析的难点主要表现在哪几个方面?(2画数据流图的步骤是什么?画数据流图应该注意什么事项?(3描述加工逻辑有哪些工具?(4什么是结构化分析方法?该方法使用什么描述工具?具有什么样的优缺点?(5传统的软件开发模型的缺陷是什么?原型化方法的类型有哪些?原型化开发模型的主要优点是什么?。
《软件工程》作业与参考答案
一、填空(15分)1、需求分析的任务:1)。
确定目标系统的综合要求A。
目标系统的功能要求B。
目标系统的性能要求C。
目标系统运行的环境要求D。
目标系统的扩展要求2)。
分析目标系统的数据要求A。
需要哪些数据?B。
数据之间有什么联系?C。
数据有什么属性及数据结构?D。
对数据的处理逻辑?3)。
导出目标系统的逻辑模型4)。
修正系统流程图5)。
修正系统开发计划6)。
开发原型系统2、模块设计准则1)、改进软件结构提高模块独立性(低耦合高内聚)2)、模块规模要适中3)、深度、宽度、扇入及扇出要适当4)、设计单入口单出口的模块5)、模块功能应该可以预测6)、降低接口的复杂性7)、模块的作用域应该在控制域之内3、软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题,具体表现在哪些方面?1)、无法开发复杂程度高的软件2)、成本和进度估计不准3)、无统一科学的规范,软件不可维护4)、无质量保证,可靠性差5)、软件常不能满足用户的需求6)、无适当的文档资料7)、软件生产率太低4 、总体设计的任务1)、设计系统的物理实现方案2)、设计软件的整体结构,划分程序功能模块,决定模块间的接口关系和传递信息; 3)、设计系统全局的存贮数据结构4)、设计系统I/O的方式和格式;5)、设计系统安全性、出错处理及代码等6)、设计组装测试计划。
5、从下列关于结构化程序设计的叙述中选出5条正确的叙述。
①程序设计比较方便,但比较难以维护。
②便于由多个人分工编制大型程序。
③软件的功能便于扩充。
④程序易于理解,也便于排错。
⑤在主存储器能够容纳得下的前提下,应使模块尽可能大,以便减少模块的个数。
⑥模块之间的接口叫做数据文件。
⑦只要模块之间的接口关系不变,各模块内部实现细节的修改将不会影响别的模块。
⑧模块间的单向调用关系叫做模块的层次结构。
⑨模块越小,模块化的优点越明显。
一般来说,模块的大小都在10行以下。
答:正确的叙述有②、③、④、⑦、⑧。
现代软件工程作业
(一)名词解释1.软件:软件就是计算机程序、数据以及相关得各种文档得集合。
2.软件危机软件危机就是在软件发展第二阶段末期得规模较大得项目开发中,出现了与当初得计划推迟交工、费用比预算大幅度上升、不能满足用户要求、可靠性低、维护困难等问题,导致了软件危机。
3.数据流图数据流图就是以图形得方式描述数据在系统中流动与处理得过程,只反映系统必须完成得逻辑功能,就是一种功能模型。
4.数据字典、数据字典就是用来定义数据流图中得各个成分得具体含义得。
它以一种准确得、无二义性得说明方式为系统得分析、设计及维护提供了有关元素得一致得定义与详细得描述。
5.变换流变换流指数据流图(简称DFD)具有明显得输入、变换与输出界面。
6.事务流事务流指数据流图中输入流被分离成许多数据流,形成许多加工路径,并根据输入值选择其中一条路径来执行。
7.耦合性耦合性也称块间关系,指软件系统结构中各模块间相互联系紧密程度得一种度量。
8.内聚性内聚性又称块内联系,指模块得功能强度得度量,即一个模块内部各个元素彼此结合得紧密程度得度量。
9.程序设计语言(PDL)程序设计语言(简称PDL),又称伪码,它就是一种用于描述模块算法设计与处理细节得语言。
(二)填空题1、在信息处理与计算机领域内,一般认为软件就是_程序____、__文档___ 与__数据___ 。
2、数据流图得基本组成部分有_数据流__、_加工_、_数据存储_、_数据源点或终点_。
3、数据流图与数据字典共同构成了系统得__逻辑_模型,就是需求规格说明书得主要组成部分。
4、数据流图一般可分为_变换型_与_事务型_两类。
5、结构化设计方法中,要把数据流图转换成软件结构,若某个加工将它得输入流分离成许多发散得数据流,形成许多加工路径,并根据输入得值选择其中一个路径来执行,这种特征得DFD称为_事务型_数据流图。
6、PDL就是描述处理过程“_怎么做_ ”得细节,结构化语言就是描述加工“_做什么_ ”得。
软件工程作业含答案解析
软件工程第一章作业 (1)1.1什么是计算机软件?软件的特点是什么? (1)1.2 简述软件的分类,并举例说明。
(1)1.4 什么是软件工程? (1)1.5 简述软件工程的基本原则。
(1)1.6 软件生存周期分哪几个阶段?分别简述各个阶段的任务。
(1)1.9 简述各类软件过程模型的特点。
(2)1.10 敏捷软件开发的特点是什么? (2)1.12 简述敏捷软件开发的原则。
(2)第2、3章 (3)2.1简述系统工程的任务。
(3)2.2基于计算机的系统由哪些元素组成? (3)2.3简述可行性分析的任务。
(3)3.1需求工程的重要性是什么?举出身边由于需求分析失败而造成整个项目失败的例子。
(3)3.2需求工程具体包括哪些步骤?每个步骤的具体任务是什么? (3)3.3一个系统分析员应该具备哪些思想素质和基础知识?请说明理由。
(4)3.4列出在制定需求获取策略时的3种主要考虑因素。
(5)3.6举例说明一个系统的3个不同类型的非功能需求 (5)3.8软件需求分析的操作性原则和需求工程的指导性原则是什么? (5)3.9软件需求规约主要包括哪些内容?自己寻找一个实例,亲自写一个需求规约。
. 53.10需求验证应该有哪些人参加?画出一个过程模型,说明需求评审应该如何组织。
5 第4章 (5)4.1 简述软件设计阶段的基本任务 (5)4.2 软件设计与质量的关系是怎么样的? (6)4.4 简述模块、模块化及模块化设计的概念。
(6)4.6 耦合和软件可移植性的概念有何关系?举例说明自己的结论。
(6)4.7用自己的话描述信息隐蔽概念,并讨论信息隐藏与模块独立两概念之间的关系。
64.8什么是模块独立性?设计中为什么模块要独立?如何度量独立性?模块功能独立有何优点? (6)4.9软件设计规约主要包括哪些内容? (7)第5章结构化分析与设计 (7)5.1 简述数据流图的主要思想,概述使用数据流图进行需求分析的过程。
2021年《软件工程》-平时作业-华南理工大学网络教育答案
2021年《软件工程》·平时作业华南理工大学网络教育答案作业要求:以下请填写学生本人姓名和学号,完成以下作业,然后重命名文件名为学生本人姓名,以附件形式提交该文件。
学生姓名:学生学号:一、简答题1.软件工程包含两方面的内容是什么?答:软件工程包括技术和管理两方面的内容,是技术与管理紧密结合所形成的工程学科。
2.数据流图是描述数据在软件什么过程?数据流图的图像符号有那四种?答:描述数据在软件中的加工处理和流动的过程。
图像符号有:①箭头:表示数据流;②圆或椭圆:表示加工;③双杠:表示数据存储;④方框:表示数据的源点或终点3.简述模块设计的基本原则。
答:模块设计基本原则有模块化、抽象、信息隐蔽和局部化等。
由此,我们可以知道不同模块相互之间联系需要尽可能少,尽可能减少公共的变量和数据结构。
一个模块应尽可能在逻辑上独立,有完整单一的功能。
4.软件详细设计需要设计人员考虑那些?答:设计人员主要考虑:①考虑构件(模块)的功能以及需要解决的问题,这个构件(模块)在什么可以被调用,为什么需要这个构件(模块)。
②考虑实现构件(模块)的算法,包括:公式、边界和特殊条件,甚至包括参考资料、引用的出入等③考虑构件(模块)内部的数据流。
对于面向对象的构件(模块),主要考虑对象之间的关系。
5.任何程序都可由那三种基本控制结构构造。
这三种基本控制结构的共同点是什么?答:可由三种基本控制结构:顺序、选择、循环;共同点:单入口,单出口。
6.黑盒测试主要针对功能进行的测试,请说明有那些是采用黑盒技术设计测试用例的方法。
答:黑盒测试主要是针对软件的功能测试和性能测试。
方法有:边界值分析、等价类划分、规范导出法、错误猜测法、基于故障的测试方法、因果图法、决策表法、场景法等。
7.软件维护的类型主要包括那四种?答:纠错性维护,适应性维护,完善性维护,预防性维护8.软件生命周期由那三个时期组成?答:软件定义,软件开发,软件维护9.软件可靠性是指什么?答:可靠性是指在指定条件下使用时,软件产品维持规定的性能级别的能力。
软件工程作业及答案
《软件工程》作业第一章1.什么是软件危机,它有哪些典型表现答: 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
概括地说,软件危机包含下述两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。
软件危机典型表现:对软件开发成本和进度的估计常常很不准确。
用户对“已完成的”软件系统不满意的现象经常发生。
软件产品的质量往往靠不住。
软件常常是不可维护的。
软件通常没有适当的文档资料。
软件成本在计算机系统总成本中所占的比例逐年上升。
软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。
产生软件危机的原因:一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。
软件不同于硬件,它是计算机系统中的逻辑部件而不是物理部件。
管理和控制软件开发过程相当困难。
软件是规模庞大,而且程序复杂性将随着程序规模的增加而呈指数上升。
目前相当多的软件专业人员对软件开发和维护还有不省糊涂观念,在实践过程中或多或少地采用了错误的方法和技术,这是使软件问题发展成软件危机的主要原因。
2.简述产生软件危机的原因和解决的思路。
答:软件危机产生的原因一方面与软件本身的特点有关,另一方面,是与已有软件开发、维护的方法不正确有密切关系。
解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。
即采用工程化的原则和方法组织软件开发是摆脱软件危机的一个主要出路。
3.什么是软件工程它有哪些本质特性答: 软件工程是指导计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。
软件工程本质特性:1、软件工程关注于大型程序的构造;2、软件工程的中心课题是控制复杂性;3、软件经常变化;4、开发软件的效率非常重要;5、和谐地合作是开发软件的关键;6、软件必须有效地支持它的用户;7、在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品。
软件工程作业及参考答案
软件工程作业1.什么是软件工程?产生软件工程的原因有哪些?答:软件的定义:软件工程是借助工程化的方法进行软件开发(先对软件进行设计再开发)。
软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。
产生软件工程的原因:(1)当时无法在预算内开发出高质量软件;(2)软件开发者无法制定具体目标,无法实现预测所需的资源,无法实现客户的期望;(3)软件工程的重点既在软件,也在工程;(4)软件开发具有复杂性和多变性的特征;(5)软件产品必须随着终端用户需求和目标环境的变化而变化。
2.常见的软件体系结构有哪些?分析它们的优缺点?答:2.1 管道/过滤器风格在管道/过滤器风格中,每个构件都有一组输人和输出,构件读输人的数据流,经过内部处理,然后产生输出数据流。
这里的构件被称为过滤器。
连接件被称为管道。
此风格特别重要的过滤器必须是独立的实体,它不能与其它的过滤器共享数据,而且一个过滤器不知道它上游和下游的标识。
这种风格的优点:(1)使得软构件具有良好的隐蔽性和高内聚、低藕合的特点;(2)有助于设计者将整个系统的输人/输出行为看成是多个过滤器的行为的简单合成;(3)支持软件重用;(4)易于系统维护和增强系统性能;(5)允许对一些如吞吐量、死锁等属性的分析;(6)支持并行执行。
这种风格的缺点:(1)通常导致进程成为批处理的结构;(2)不适合处理交互的应用;(3)数据传输上没有通用的标准,每个过滤器都增加了解析和合成数据的工作,导致了系统性能下降,增加了编写过滤器的复杂性,使数据传输量增加。
这种风格经常应用在UnixS hell中编写的应用系统中。
2.2 仓库风格在仓库风格中,有两种不同的构件:中央数据结构说明当前状态,独立构件在中央数据存贮上执行,仓库与外构件间的相互作用在系统中会有大的变化。
按控制策略的选取分类,可以产生两个主要的子类。
若输人流中某类时间触发进程执行的选择,则仓库是传统型数据库;另一方面,若中央数据结构的当前状态触发进程执行的选择,则仓库是黑板系统。
现代软件工程课后习题答案
现代软件工程学校:玉溪师范学院姓名:周应光第一章选择题:1.ABC2.CD3.A4.C5.ABCD6.BD7.ABC8.ABC9.ABD判断题:×××√×√×××√简答题:1.软件产品的特性是什么?a.软件产品是一种逻辑产品,具有无形性。
b.软件产品的生产主是研制,c.软件不存在磨损和老化问题,但存在退化问题d.软件产品的生产主要是脑力劳动,e.软件费用不断增加,成本相当昂贵。
f.软件具有“复杂性”,其开发和运行常受到计算机系统的限制3.什么是软件危机?其产生的原因是什么?1》软件危机:软件发展第二阶段的末期,由于计算机硬件技术的进步。
一些复杂的、大型的软件开发项目提出来了,但,软件开发技术的进步一直未能满足发展的要求。
2》软件危机产生的原因是由于软件产品本身的特点以及开发软件的方式、方法、技术和人员引起的:a.软件的规模越来越大,结构越来越复杂。
b.软件开发管理困难而复杂。
c.软件开发费用不断增加。
d.软件开发技术落后。
e.生产方式落后。
f.开发工具落后,生产率提高缓慢。
4.什么是软件生存周期模型?有哪些主要模型?1》软件生存周期模型:是描述软件开发过程中各种活动如何执行的模型。
(模型:是为了理解事物而对事物做出一种抽象,它忽略不必要的细节,它也是事物的一种抽象形式、一个规划、一个程式。
)2》软件生存周期主要模型:瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型和基于知识的模型等5.什么是软件开发的方法?有哪些主要方法?软件开发的方法:是一种使用早已定义好的技术集及符号表示习惯来组织软件生产的过程。
主要方法:结构方法、Jackson方法、维也纳开发方法(VDM)、面向对象的开发方法。
6.软件生命期个阶段的任务是什么?答:软件生命期瀑布模型分为六个阶段:。
可行性研究与计划。
需求分析与规格说明。
设计。
编程。
测试。
运行维护第二章可行性研究填空题1.值得去开发,其中的问题能否解决,设计2.技术,经济,社会3.研究正在运行的系统,建立新系统的高层逻辑模型4,。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(一)名词解释1.软件2.软件危机3.数据流图4.数据字典5.变换流6.事务流7.耦合性8.内聚性9.程序设计语言(PDL)(二)填空题1. 在信息处理和计算机领域内,一般认为软件是_____、_____ 和_____ 。
2. 数据流图的基本组成部分有_____、_____、_____、_____。
3. 数据流图和数据字典共同构成了系统的_____模型,是需求规格说明书的主要组成部分。
4. 数据流图一般可分为_____和_____两类。
5. 结构化设计方法中,要把数据流图转换成软件结构,若某个加工将它的输入流分离成许多发散的数据流,形成许多加工路径,并根据输入的值选择其中一个路径来执行,这种特征的DFD称为_____数据流图。
6. PDL是描述处理过程“_____ ”的细节,结构化语言是描述加工“_____ ”的。
(三)选择题1. 软件工程的概念是哪年提出的( )。
A. 1988B. 1968C. 1948D. 19282. 影响输入输出风格的因素不包括( )。
A. 数据状态B. 通信环境C. 用户经验D. 输入/输出设备3. 符合数据说明顺序规范的是( )。
A. 全程量说明、局部量说明、类型说明、常量说明B. 全程量说明、局部量说明、常量说明、类型说明C. 类型说明、常量说明、全程量说明、局部量说明D. 常量说明、类型说明、全程量说明、局部量说明4. 瀑布模型的关键不足在于( )。
A. 过于简单B. 各个阶段需要进行评审C. 过于灵活D. 不能适应需求的动态变更5. 以下哪一项不是软件危机的表现形式( )。
A. 开发的软件不满足用户需要B. 开发的软件可维护性差C. 开发的软件价格便宜D. 开发的软件可靠性差6. 软件可行性研究实质上是要进行一次( )需求分析、设计过程。
A. 简化、压缩的B. 详细的C. 彻底的D. 深入的7. 结构化设计是一种面向( )的设计方法。
A. 数据流B. 模块C. 数据结构D. 程序8. 与确认测试阶段有关的文档是( )。
A. 需求规格说明书B. 概要设计说明书C. 详细设计说明书D. 源程序9. 软件开发的需求活动,其主要任务是()。
A. 给出软件解决方案B. 给出系统模块结构C. 定义模块算法D. 定义需求并建立系统模型10. 需求分析阶段的研究对象是()。
A. 用户要求B. 分析员要求C. 系统要求D. 软硬件要求11. 可自动生成程序的详细设计方法是()。
A. 流程图B. IPO图C. 盒图D. PAD图12. 可行性研究采用()概括说明软件系统的物理模型。
A. 数据字典B. 系统流程图C. 数据流图D. 成本-效益分析(四)简答题1. 简述瀑布模型的阶段划分和各阶段的主要任务以及瀑布模型存在的问题。
2. 简述SA方法的优缺点。
3. 变换分析设计与事务分析设计有什么区别?简述其设计步骤。
(五)应用题某单位住房分配方案如下:所有住户50平方米以内每平方米1000元,超过50平方米后:在本人住房标准面积以内每平方米1500元,其中住房标准为:教授105平方米,副教授90平方米,讲师75平方米;标准面积以外每平方米4000元。
请用判定表和判定树表示各条件组合与费用之间的关系。
参考答案:(一)名词解释1. 软件是计算机程序、数据以及相关的各种文档的集合。
2. 软件危机是在软件发展第二阶段末期的规模较大的项目开发中,出现了与当初的计划推迟交工、费用比预算大幅度上升、不能满足用户要求、可靠性低、维护困难等问题,导致了软件危机。
3. 数据流图是以图形的方式描述数据在系统中流动和处理的过程,只反映系统必须完成的逻辑功能,是一种功能模型。
4. 数据字典是用来定义数据流图中的各个成分的具体含义的。
它以一种准确的、无二义性的说明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述。
5. 变换流指数据流图(简称DFD)具有明显的输入、变换和输出界面。
6. 事务流指数据流图中输入流被分离成许多数据流,形成许多加工路径,并根据输入值选择其中一条路径来执行。
7. 耦合性也称块间关系,指软件系统结构中各模块间相互联系紧密程度的一种度量。
8. 内聚性又称块内联系,指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。
9. 程序设计语言(简称PDL),又称伪码,它是一种用于描述模块算法设计和处理细节的语言。
(二)填空题1. 程序文档数据2. 数据流加工数据存储数据源点或终点3. 逻辑4. 变换型事务型5. 事务型6. 怎么做做什么(三)选择题1.B2.A3.D4.D5.C6.A7.A8.A9. D 10. A 11.D 12. B(四)简答题1. 瀑布模型的阶段划分和各阶段的任务为:(1) 需求分析和定义根据系统的使用者(需方)需求进行具体分析,制定系统应完成的功能、目标、各项服务和限制,确定工作范围和所花费的代价。
并且以用户和软件开发人员都能理解的形式加以定义和明确。
(2) 系统和软件设计先把用户的需求分成硬件需求和软件需求,在此基础上确定整个系统的结构。
在软件设计中,进一步把用户的要求和系统的目标在软件系统的各项功能中表现出来,并分别使之达到能够进行程序设计的程度。
(3) 编程和单元测试在这个阶段中,软件的设计已经以程序集合或单元程序的形式完成,并包含了验证各个单元程序是否满足式样要求的单元测试。
(4) 综合测试和系统测试把各个单元程序和程序组结合起来,作为一个完整的系统进行测试。
在这种测试中,一方面要发现和排除系统或程序中的错误,更重要的是要确认已完成的系统是否满足用户和设计者的要求。
测试后,把这个软件提供给用户。
(5) 运行和维护运行和维护是软件生存期中需要时间较长的一个阶段,在这一阶段,系统被实际装入并实际应用,那些在软件开发初期没有被发现的错误,或者是用户提出新的要求,都需要在这一阶段加以解决。
瀑布模型的问题之一是对软件工程中的反复性质认识不足,另外还有一个缺点是在开发工程的初期,就必须把规格式样确定下来,而在有些情况下,由于用户的需求不明确,某些规格式样开始是不太好确定的。
软件工程是复杂的、多变的工程,用单纯的线性模型很难完全表示出来。
2. SA方法是软件需求分析中公认的、有成效的、技术成熟、使用广泛的一种分析方法。
较适用于开发数据处理类型软件的需求分析。
利用图形等半形式化工具表达需求,简明、易读,也易于使用。
但也存在一些弱点,表现如下:SA方法仅是一个静态模型,没有反映处理的顺序,即控制流程,因此,不适合描述实时控制系统。
SA方法使用DFD在分析与描述“数据要求”方面是有局限的,只有与数据库技术中的实体联系图(ER图)结合起来,才能较完整地描述用户对系统的需求。
DFD不适合描述人机界面系统的要求、如一些人机交互较频繁的软件系统。
SA方法要与形式化方法结合起来,才能更精确地描述软件需求。
要借助需求分析工具,提高需求分析的质量及效率。
3. 变换分析设计是一个顺序结构,由输入、变换和输出三部分组成,其工作过程有3步:取得数据、变换数据和给出数据。
事务分析设计是将它的输入流分离成许多发散的数据流,形成许多加工路径,并根据输入的值选择其中一个路径来执行。
二者区别:变换分析设计适用于具有明显变换特征的数据流图,事务分析设计适用于具有明显事务特征的数据流图。
变换分析设计步骤:①确定DFD中的变换中心、逻辑输入和逻辑输出:从物理输入端开始,沿着数据流方向向系统中心寻找,直到有这样的数据流,它不能再被看做是系统的输入,则它的前一个数据流是系统的逻辑输入。
从物理输出端开始,逆数据流方向向中间移动,可以确定系统的逻辑输出。
介于逻辑输入和逻辑输出之间的加工就是变换中心,即主加工。
②设计软件结构的顶层和第一层——变换结构:顶层即主模块,主要完成所有模块的控制。
第一层至少有3个功能模块:输入、输出和变换模块,即为逻辑输入设计一个输入模块,其功能是为顶层模块提供相应数据,为逻辑输出设计一个输出模块,其功能是输出顶层模块的信息,为变换中心设计一个变换模块,其功能是将逻辑输入进行变换加工,然后逻辑输出。
③设计中、下层模块。
对第一层的输入、变换、输出模块自顶向下逐层分解。
输入模块下属模块的设计:可设计两个下属模块,一个接收,一个转换。
输出模块下属模块的设计:可设计两个下属模块,一个转换,一个发送。
变换模块下属模块的设计:按照模块独立性原则来组织其结构,一般对每个基本加工建立一个功能模块。
④设计的优化:输入部分求精:为每个物理输入设置专门模块,其他输入模块与转换数据模块可适当合并。
输出部分求精:为每个物理输出设置专门模块,其他输出模块与转换数据模块可适当合并。
变换部分求精:根据设计准则,对模块进行合并或调整。
事务分析设计步骤:①确定DFD的事务中心和加工路径:当数据流图中每个加工将一个输入数据分解成多个发散的输出数据流时,该加工就是事务中心,从事务中心辐射出去的数据流为各个加工路径。
②设计软件结构的顶层和第一层——事务结构。
顶层是一个全控模块,有两个部分:接收分支(与变换型DFD的输入部分设计方法相同)和发送分支(即调度模块,它控制管理所有下层的事务处理模块)。
③设计中、下层模块、优化等工作,与变换分析设计相同。
(五)应用题S表示住房面积,M表示住房费用。
条件取值表判定表*4000费用√=1000*50+(75-50)*1500+(S-75)*4000判定树。