软件工程中面向数据流的设计方法
《软件工程案例教程软件项目开发实践》第四章练习题
第四章练习题:一、填空题1.C/S、B/S、SOA、BPM等都是不同的体系结构。
2.数据字典包括数据项、数据流、数据存储和基本加工。
3.高内聚、松耦合是模块设计的基本原则。
4.软件设计把已确定的软件需求转换成特定形式的设计表示,使其得以实现。
5.设计模型是从分析模型转化而来的,主要包括四类模型:体系结构设计模型、数据设计模型、接口设计模型、构件设计模型。
6.面向对象设计的主要特点是建立了四个非常重要的软件设计概念:抽象性、信息隐藏、功能独立性和模块化。
7.模块层次图和模块结构图是模块功能划分的重要方法。
8.UML设计中主要采用的图示有类图、对象图、包图等。
9.软件模块设计,包括模块划分、模块独立性、模块的调用关系、每个模块的功能等。
10.数据库的设计一般要进行三个方面的设计:概念结构设计、逻辑结构设计和物理结构设计。
11.结构化程序设计方法的主要原则可以概括为自顶向下,模块化,逐步求精。
二、判断题1.软件设计是软件工程的重要阶段,是一个把软件需求转换为软件代码的过程。
(×)2.软件设计说明书是软件概要设计的主要成果。
(√)3.软件设计中的设计复审和设计本身一样重要,其主要作用是避免后期付出高代价。
(√)4.应用程序框架结构是一个可以重复使用的、大致完成的应用程序,可以通过对其进行定制,开发成一个客户需要的真正的应用程序。
(√)5.面向对象设计(OOD)是将面向对象分析(OOA)的模型转换为设计模型的过程。
(√)6.在进行概要设计时应加强模块间的联系。
(×)7.复用原则也是软件设计的一个重要原则。
(√)8.以对象、类、继承和通信为基础的面向对象设计方法也是常见的软件概要设计方法之一。
(√)三、选择题1.内聚是从功能角度来度量模块内的联系,按照特定次序执行元素的模块属于(D)方法。
A.逻辑内聚B.时间内聚C.过程内聚 D.顺序内聚2.概要设计是软件工程中很重要的技术活动,下列不是概要设计任务的是(B)。
软件工程填空题
1.软件开发技术包括:软件开发方法学、工具和环境支持,其内容是。
2.软件工程中,开发阶段包括、概要设计、详细设计、编码及测试几个阶段。
3.在软件工程中,高质量的文档标准是完整性、一致性和性。
4.软件的生产经历了程序设计、程序系统和 3 个阶段。
5.软件开发方法中的结构化方法是一种面向数据流的开发方法,其指导思想是。
6.综合应用观点和虚拟机观点,软件可分为系统软件、和应用软件3类。
7.软件工程的结构化生命周期方法中,一般将软件设计阶段划分为和详细设计两个阶段。
8.总体设计阶段主要由两个小阶段组成,首先要进行,然后进行软件结构设计。
9. 阶段主要完成的任务是确定每个模块的具体执行过程。
10.软件的详细设计可采用图形、和过程设计语言3种形式的描述工具表示模块的处理过程。
11.软件工程是一种分阶段实现的软件程序开发过程。
12.采用自顶向下逐步分解的分析方法是。
13.软件详细设计的方框图方法常用两个盒子;数据盒和过程盒,在数据盒中包含四种描述,它们是,局部数据,数据结构和调用参数模式。
14.软件的详细设计需要设计人员为每个设计模块确定所使用的算法、、接口细节和输入、输出数据等。
15.软件需求说明包括概述、数据描述、功能说明、参考文献目录和附录。
16. 是为了便于了解程序所需的资源说明,是与程序的开发、维护和使用有关的资料。
17.软件可分为应用软件、系统软件和支撑软件3种。
其中是最靠近硬盘的一层。
18.对于变形的数据流图,按照软件设计的思想,要将一个大型复杂的软件进行分解,要确定数据流图的、逻辑输入、逻辑输出。
19.软件结构以图形的方式表示。
20.Jackson 方法可以实现从推导出程序结构。
21.软件工程标准化所涉及的主要内容是:软件开发程序、软件设计、、和项目管理。
22.在程序设计时代的生产方式是个体手工劳动,使用的工具是和汇编语言,主要通过编程来实现,不重视程序设计方法。
23.面向数据流的设计方法定义了不同的映射方法,可以将数据流图映射和变换成。
软件工程(本)_201906_模拟卷1_答案
华东理工大学网络教育学院(全部答在答题纸上,请写清题号,反面可用。
试卷与答题纸分开交)软件工程(本)_201906_模拟卷1_答案一、判断题(共10题)1.软件维护费用增加的主要原因是软件维护的生产力非常低。
()★标准答案:正确2. 喷泉模型是一种以用户需求为动力,以对象作为驱动的模型。
()( ).★标准答案:正确3. 良好的程序设计风格不仅可以减少编程的错误,而且可以减少阅读程序的时间,从而提高软件的开发效率。
() ( ).★标准答案:正确4.数据字典一般包括数据流、数据项、数据存储和基本加工四类条目。
( )★标准答案:正确5. 使用黑盒法测试程序时,测试人员需要考虑程序的内部结构和处理过程。
()( ).★标准答案:错误6. 模块独立性指每个模块只完成系统要求的独立的子功能,并与其他模块的联系最少且接口简单。
().★标准答案:正确7. 软件维护只需要校正性维护、适应性维护和完善性维护。
().★标准答案:错误8.在数据流图(DFD)中数据流就是控制流。
( ).★标准答案:错误9. 增量模型和瀑布模型之间的本质区别是:瀑布模型属于整体开发模型,而增量模型属于非整体开发模型。
().★标准答案:正确10.等价类划分法并不一定能提供一组完整的测试用例来检查程序的全部功能。
()答案: 正确二、单选题(共10题)1. 软件危机的主要原因是( )A.软件本身特点及开发方法B.对软件的认识不够C.软件生产能力不足D.软件工具落后★标准答案:A2. 面向数据流的设计方法把数据流图(DFD)划分为变换型和___两大类,并提出了对应于这两类结构的分解方法。
A.控制型B.处理型C.事务型D.功能型.★标准答案:C3. ___是指将具有一致数据结构和行为的对象抽象成类。
A.分类性B.继承性C.多态性D.封装性.★标准答案:A4. _______指被测试程序不再机器上运行,而是采用人检测和计算机辅助静态分析的手段对程序进行测试。
软件工程_第七章_面向数据流的设计方法
第七章面向数据流的设计方法面向数据流的设计方法,即通常所说的结构设计法(简称SD方法),是根据需求阶段对数据流的分析(一般用数据流图和数据字典表示)设计软件结构。
数据流图主要描绘信息在系统内部加工和流动的情况,面向数据流的设计方法根据数据流图的特性定义两种“映射”,这两种映射能机械地将数据流图转换为程序结构。
该方法的目标是为软件结构设计提供一个系统化的途径,使设计人员对软件有一个整体的认识。
本章所述技术用于软件的概要设计描述,包括模块、界面和数据结构的定义,这是所有后续开发工作的基础。
每种软件设计方法都有长处和不足,先用哪种方法首先应考虑它适用的范围。
任何软件系统都可以用数据流图表示,理论上,面向数据流的设计方法可用于任一种软件系统的开发。
然而,该方法对那些顺序处理信息且不含层次数据结构的系统最为有效,例如过程控制、复杂的数值分析过程、以及科学与工程方面的应用,等等。
当SD方法用于完全的数据处理时,即使系统中作用层次数据也同样行之有效。
从系统设计的角度出发,软件设计方法可以分为三大类。
第一类是根据系统的数据流进行设计,称为面向数据流的设计或者过程驱动的设计,以结构化设计方法为代表。
第二类是根据系统的数据结构进行设计,称为面向数据结构的设计或者数据驱动的设计,以LCP(程序逻辑构造)方法、Jackson 系统开发方法和数据结构化系统开发(DSSD)方法为代表。
第三类设计方法即面向对象的设计。
第一节基本概念和设计过程面向数据流设计方法是基于模块化、自顶向下细化、结构化程序设计等程序设计技术基础上发展起来的。
该方法实施的要点是:①建立数据流的类型。
②指明流的边界。
③将数据流图映射到程序结构。
④用“因子化”方法定义控制的层次结构。
⑤用设计测量和一些启发式规则对结构进行细化。
一、在系统结构图(SC)中的模块在系统结构图中不能再分解的底层模块为原子模块。
如果一个软件系统的全部实际加工(数据计算或处理)都由底层的原子模块来完成,而其他所有非原子模块仅仅执行控制或协调功能,这样的系统就是完全因子分解的系统。
软件工程考试试题(含答案)
一、填空题(每空1分,共25分)1.软件生存周期一般可以划分为,问题定义、____________、____________、设计、编码、测试和____________.2.基于软件的功能划分,软件可以划分成__________、__________、__________三种.3.可行性研究,应从、技术可行性、运行可行性、和开放方案可行性等方面研究。
4.系统流程图是描绘的传统工具。
它的基本思想是用图形符号以描绘系统里面的每个部件。
5.数据流图的基本四种成分:数据输入的源点和数据输出汇点、、和。
6.结构化分析方法是面向________________进行需求分析的方法。
结构化分析方法使用________________与________________来描述。
7.是自动地共享类、子类和对象中的方法和数据的机制.8.软件详细设计工具可分为3类,即________________、________________和________________。
9.为了在软件开发过程中保证软件的质量,主要采取下述措施:________________、复查和管理复审、________________。
10.大型软件测试包括、、确认测试和四个步骤.1、可行性研究需求分析运行与维护2、系统软件支撑软件应用软件3、经济可行性法律可行性4、物理系统黑盒子形式5、加工数据流数据存储文件6、数据流数据流图DFD 数据字典DD7、继承性8、图示工具、设计语言表格工具9、审查测试10、单元测试集成测试系统测试1.软件设计中划分模块的一个准则是()。
A、低内聚低耦合B、低内聚高耦合C、高内聚低耦合D、高内聚高耦合2.Jackson设计方法是由英国的M。
Jackson提出的,它是一种面向()的软件设计方法.A、对象B、数据流C、数据结构D、控制结构3.试判断下列叙述中,哪个(些)是正确的( ).a、软件系统中所有的信息流都可以认为是事务流b、软件系统中所有的信息流都可以认为是变换流c、事务分析和变换分析的设计步骤是基本相似的A、aB、bC、cD、b和c4.()是用户和设计交换最频繁的方法.A、原型化方法B、瀑布模型方法C、螺旋模型方法D、构件组装模型5.软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是()。
智慧树知到《软件工程》章节测试答案
智慧树知到《软件工程》章节测试答案智慧树知到《软件工程》章节测试答案第一章1、"软件危机"是指()。
A:计算机病毒的出现B:利用计算机系统进行经济犯罪活动C:人们过分迷恋计算机系统D:软件开发和软件维护中出现的一系列问题答案:软件开发和软件维护中出现的一系列问题2、软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是()。
A:硬件环境B:软件开发的环境C:软件开发工具和软件开发的环境D:开发人员的素质答案:软件开发工具和软件开发的环境3、软件危机可以表现为()。
A:产品不符合用户的需要B:软件产品的质量差C:软件的可维护性差D:软件的价格昂贵答案:产品不符合用户的需要,软件产品的质量差,软件的可维护性差,软件的价格昂贵4、下面的()说法是错误的。
A:由于软件是产品,因此可以应用其他工程制品所用的技术进行生产B:购买大多数计算机系统所需的硬件比软件更昂贵C:大多数软件系统是不容易修改的,除非它们在设计时考虑了变更D:一般来说,软件只有在其行为与开发者的目标一致的情况下才能成功答案:由于软件是产品,因此可以应用其他工程制品所用的技术进行生产,购买大多数计算机系统所需的硬件比软件更昂贵,一般来说,软件只有在其行为与开发者的目标一致的情况下才能成功5、软件工程的方法只适用于大型软件的开发,对小型软件的开发没有帮助。
A:对B:错答案:错第二章1、可行性分析是在系统开发的早期所做的一项重要的论证工作,它是决定该系统是否开发的决策依据,因必须给出()的回答。
A:确定B:行或不行C:正确D:无二义答案:行或不行2、数据流图是描述数据在软件中流动和变换的过程,而对数据流图中所包含的元素的定义则是()。
A:数据存储B:数据加工C:数据字典D:数据定义答案:数据字典3、在软件的可能性研究中经常从不同的角度对系统进行可行性研究,其中从功能角度对系统进行研究属于()的研究。
软件工程复习题(带答案)
软件工程复习题(带答案)软件工程复习题一、单选题1、软件开发的结构化设计(SD)方法,全面指导模块划分的最重要原则应该是( c )A模块高内聚 B模块低耦合 C模块独立性 D程序模块化2、软件工程方法的提出起源于软件危机,而其目的应该是最终解决软件的什么问题?( D )A产生危机 B质量保证 C开发效率 D生产工程化3、软件工程开发的可行性研究是决定软件项目是否继续开发的关键,而可行性研究的结论主要相关于( A )A软件系统目标 B软件的性能C软件的功能 D软件的质量4、软件需求分析一般应确定的是用户对软件的( D )A.功能需求B.非功能需求C.性能需求D.功能需求和非功能需求5、软件测试是满足软件的功能和性能要求,保证软件正确性的措施,一般软件测试计划的制订应始于软件开发的哪个阶段? ( D )A.需求分析B.软件设计C.程序编码D.软件计划6、软件工程方法是在实践中不断发展的方法,而早期的软件工程方法主要是指( B )A.原型化方法B.结构化方法C.面向对象方法.D.功能分解法7、数据流图描述数据在软件中流动和被处理变换的过程,它是以图示的方法来表示,即.( A )A.软件模型B.软件功能C.软件结构D.软件加工8、软件工程学涉及到软件开发技术和工程管理两方面的内容,下述内容中哪一个不属于开发技术的范畴?(D)A.软件开发方法B.软件开发工具C.软件工程环境D.软件工程经济9、软件文档是软件工程实施中的重要成份,它不仅是软件开发的各阶段的重要依据,而且也影响软件的()A.可理解性B.可维护性C.可扩展性D.可靠性10、从( )语言开始,软件摆脱了对硬件的依赖。
A.第一代B.第二代C.第三代D.第四代11、在下面列出的基本成分中,哪个不是实体关系图的基本成分? ( )A.实体B.数据存储C.关系 D属性13、结构化程序设计主要强调程序的(C)A.效率B.速度C.可读性D.大小14、在软件工程中根据程序的功能说明,而不关心程序内部逻辑的测试方法为( A )A.黑盒法B.白盒法C.灰盒法D.综合法15、软件开发的结构化分析方法,常用的描述软件功能需求的工具有( C )A业务流程图,数据字典 B.软件流程图,模块说明C.数据流图,数据字典D.系统流程图,程序编码16、结构化程序设计思想的核心是要求程序只由顺序、循环和( A )三种结构组成。
软件工程试题及答案
4. 面向对象的分析方法主要是建立三类模型,即( D )。
A) 系统模型、ER模型、应用模型B) 对象模型、动态模型、应用模型C) E-R模型、对象模型、功能模型D) 对象模型、动态模型、功能模型5. 在E-R模型中,包含以下基本成分( )。
A) 数据、对象、实体B) 控制、联系、对象C) 实体、联系、属性D) 实体、属性、操作9.若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0, 1.0],现从输入的角度考虑一组测试用例:-1.001, -1.0, 1.0, 1.001.设计这组测试用例的方法是( c )A.条件覆盖法 B.等价分类法C.边界值分析法 D.错误推测法10、详细设计的基本任务是确定每个模块的( d )A.功能B.调用关系C.输入输出数据 D.算法11.设函数C(X)定义问题X的复杂程序,函数E(X)确定解决问题X需要的工作量(时间)。
对于两个问题P1和P2,如果C(P1)>C(P2)显然E(P1)>E(P2),则得出结论E(P1+P2)>E(P1)+E(P2)就是:( a )A.模块化的根据B.逐步求精的根据C.抽象的根据D.信息隐藏和局部化的根据13.面向数据流的设计方法把( D )映射成软件结构。
A.数据流B.系统结构C.控制结构D.信息流14.内聚程度最低的是( A.偶然 )内聚A.偶然 B.过程 C.顺序 D.时间15.确定测试计划是在( D )阶段制定的.A.总体设计 B.详细设计 C.编码 D.测试16.需求分析的产品是( D )A.数据流程图案B.数据字典C.判定表D.需求规格说明书17.数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是( C )A.数据库设计B.数据通信C.数据定义D.数据维护18.( D )引入了“风险驱动”的思想,适用于大规模的内部开发项目。
A.增量模型B.喷泉模型C.原型模型D.螺旋模型(×)2、系统测试的主要方法是白盒法,主要进行功能测试、性能测试、安全性测试及可靠性等测试。
《软件工程》11套考试复习练习题、作业题(含答案)
作业1:1. 软件是计算机系统中与硬件相互依存的另一部分,它是包括( A )、( B )及( C )的完整集合。
其中,( A )是按事先设计的功能和性能要求执行的指令序列。
( B )是使程序能够正确操纵信息的数据结构。
( C )是与程序开发、维护和使用有关的图文材料。
供选择的答案:A~C. ①软件②程序③代码④硬件⑤文档⑥外设⑦数据⑧图表2. 开发软件时对提高软件开发人员工作效率至关重要的是( A )。
软件工程中描述生存周期的瀑布模型一般包括计划、( B )、设计、编码、测试、维护等几个阶段,其中设计阶段在管理上又可以依次分成( C )和( D )两步。
供选择的答案:A.①程序开发环境②操作系统的资源管理功能③程序人员数量④计算机的并行处理能力B.①需求分析②需求调查③可行性分析④问题定义C、D.①方案设计②代码设计③概要设计④数据设计⑤运行设计⑥详细设计⑦故障处理设计⑧软件体系结构设计3. 从供选择的答案中选出适当字句填入下列关于软件发展过程的叙述中的( )内。
有人将软件的发展过程划分为4个阶段:第一阶段(1950~1950年代末)称为“程序设计的原始时期”,这时既没有( A ),也没有( B ),程序员只能用机器指令编写程序。
第二阶段(1950年代末~1960年代末)称为“基本软件期”。
出现了( A ),并逐渐普及。
随着( B )的发展,编译技术也有较大的发展。
第三阶段(1960年代末~1970年代中期)称为“程序设计方法时代”。
这一时期,与硬件费用下降相反,软件开发费急剧上升。
人们提出了( C )和( D )等程序设计方法,设法降低软件的开发费用。
第四阶段(1970年代中期~现在)称为“软件工程时期”。
软件开发技术不再仅仅是程序设计技术,而是包括了与软件开发的各个阶段,如( E )、( F )、编码、单元测试、综合测试、(G )及其整体有关的各种管理技术。
供选择的答案:A ~ D:①汇编语言②操作系统③虚拟存储器概念④高级语言⑤结构式程序设计⑥数据库概念⑦固件⑧模块化程序设计E ~ G:①使用和维护②兼容性的确认③完整性的确认④设计⑤需求定义⑥图象处理4. 软件工程过程有哪几个基本过程活动?试说明之。
软件工程习题与答案(第1次)
软件工程学习资料(1)一、填空1、软件工程学的内容可包括理论、结构、方法、工具、环境、管理、规范等。
2、N-S图中的顺序结构:在PAD图中表示为:PAD图设置五种基本控制结构,并允许递归使用。
3、模块的独立程度可以由两个定性标准度量,这两个标准分别称为内聚和耦合。
耦合衡量不同模块彼此之间相互依赖的紧密程度。
内聚衡量一个模块内部各个元素彼此结合的紧密程度。
4、软件测试方法按测试过程是否在实际应用环境中分为静态分析和动态测试。
二、单项选择题1、模块在同一段时间内完成各种初始化工作,这属于。
A.偶然内聚B.逻辑内聚C.时间内聚D.过程内聚2、在编程安全方法方面,一般来说无法做到。
A. 避开错误B.完美无缺,绝无错误C. 冗余D.设计防错程序3、在衡量软件质量时,最重要的标准是。
A. 成本低B. 可维护性好C. 符合要求D. 界面友好4、下列工具中,不属于详细设计工具的是。
A. 测试工具B. 图形工具C. 表格工具D. 语言工具5、下列哪个做法会导致不利的语句结构A.避免使用ELSE GOTO结构B.对递归定义的数据结构尽量不再使用递归过程C.模块功能尽可能单一化,模块间的耦合能够清晰可见D.利用信息隐蔽,确保每一个模块的独立性三、判断题1、Jackson系统开发方法是一种典型的面向对象的分析设计方法。
(×)2、HIPO图是由一组IPO图加一张HC图组成,是美国IBM公司在软件设计中使用的主要表达工具。
(√)3、在软件开发中采用原型系统策略的主要困难是成本问题。
(√)4、软件开发所需的资源可以画成一个金字塔,塔的高层最基本的资源是人。
(√)5、下图表示的是WHILE 型循环。
(×6的顺序,而数据流图只反映数据的流向,不反映处理逻辑的先后。
(√)四、问答题1、什么是软件答:软件是一种产品,包含下面三方面的含义。
(1)在运行中能提供所希望的功能和性能的指令集(即程序);(2)使程序能够正确运行的数据结构;(3)描述程序研制过程、方法所用的文档。
软件工程第6章面向数据流的设计方法
21
变换分析
输入流 变换流 输出流
A C
B E D F G H
主控模块 输入流 控制模块
变换流 控制模块
输出流 控制模块
图6-5 一级分解
22
变换分析
图6-5展示的是一个简单三叉结构,实际处 理大型系统的复杂数据流时,可能需要多 个模块对应图6-5中一个模块的功能。“一 级分解”总的原则是,在完成控制功能并 保持低耦合度、高内聚度的前提下尽可能 地减少模块的数量。 “传感器监测子系统”一级分解如图6-6所 示,其中控制模块的名字概括了所有下属 模块的功能。
E
输出流控制模块 G
A
C
F
主控模块
H
输入流控制模块 B A D C
E F
G H
图6-8 结构的优化
31
监控传感器执行者
警报输出控制器 获得响应信息 建立警报条件
产生显示 读传感器
生成警报信号
建立与电话网络的 连接
产生脉冲
32
变换分析
上述七个设计步骤的目标是给出软件的 一个整体描述。 一旦有了这样一个描述,设计人员即可 从整体角度评价和精化软件的总体结构, 此时修改所需耗费不多,却能大大提高 软件质量。
39
无效口令
图6-2-1 用户交互子系统的二级数据流图
事务分析
事务分析法可概括为七个步骤:
步骤一、复审基本系统模型; 步骤二、复审并精化软件数据流图; 步骤三、确定数据流图的特征; 步骤四、指出事务中心,确定接收部分和发送部分 的流界; 步骤五、映射出系统上层模块结构; 步骤六、分解并精化事务结构以及每条动作路径所 对应的结构。根据流经每一动作路径的数据流特征, 参考前面所述“变换设计” 相关步骤可以逐一导出 这些子结构.
软件工程导论(整理)
一、软件危机与软件工程1、软件危机软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题.(正常、不正常运行软件都具有这种问题)2、软件危机的原因1)软件本身特点造成;程序规模庞大;程序复杂性随着程序规模的增加而呈指数上升。
2)软件开发与维护的方法不正确。
主要表现:(a)忽视软件需求分析;(b)认为软件开发就是写程序并使之运行;(c)轻视软件维护;3、解决软件危机的途径:1、组织管理:软件开发不是某种个体劳动的神秘技巧,软件开发应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。
2、方法:应该推广使用在实践中总结出来的开发软件的成功的技术和方法,并且研究探索更好更有效的技术和方法,尽快消除在计算机系统早期发展阶段形成的一些错误概念和做法。
3、工具:应该开发和使用更好的软件工具。
在软件开发的每个阶段都有许多繁琐重复的工作需要做,在适当的软件工具辅助下,开发人员可以把这类工作做得既快又好.4、软件工程包括哪7条基本原理?1. 用分阶段的生命周期计划严格管理;2。
坚持进行阶段评审;3. 实行严格的产品控制;4. 采用现代程序设计技术;5. 结果能清楚地审查;6. 开发小组的人员应该少而精;7。
承认不断改进软件工程实践的必要性。
5、软件开发流程?1)、问题定义2)、可行性研究3)、需求分析4)、总体设计5)、详细设计6)、编码和单元测试7)、综合测试8)、软件维护6、软件开发模型瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型、rational统一过程、敏捷过程与极限编程、微软过程二、可行性研究1.系统流程图系统流程图是概括地描绘物理系统的传统工具,它的基本思想是用图形符号以黑盒子形式描绘系统里面的每个部件(程序、文件、数据库、表格、人工过程等),表达信息在各个部件之间流动的情况。
2.数据流图数据流图描绘系统的逻辑模型,图中没有任何具体的物理元素,只是描绘信息在系统中流动和处理的情况。
软件工程考核知识点-第4章-软件概要设计
软件工程考核知识点-第4章-软件概要设计4.1 软件概要设计的基本任务在软件需求分析阶段,已经搞清楚了软件“做什么”的问题,并把这些需求通过规格说明书描述了出来,这也是目标系统的逻辑模型。
进入了设计阶段,要把软件“做什么”的逻辑模型变换为“怎么做”的物理模型,即着手实现软件的需求,并将设计的结果反映在“设计规格说明书”文档中,所以软件设计是一个把软件需求转换为软件表示的过程,最初这种表示只是描述了软件的总的体系结构,称为软件概要设计或结构设计。
4.1.1 基本任务1. 设计软件系统结构(简称软件结构)为了实现目标系统,最终必须设计出组成这个系统的所有程序和数据库(文件),对于程序,则首先进行结构设计,具体为:(1)采用某种设计方法,将一个复杂的系统按功能划分成模块。
(2)确定每个模块的功能。
(3)确定模块之间的调用关系。
(4)确定模块之间的接口,即模块之间传递的信息。
(5)评价模块结构的质量。
根据以上内容,软件结构的设计是以模块为基础的,在需求分析阶段,已经把系统分成层次结构。
设计阶段,以需求分析的结果为依据,从实现的角度进一步划分为模块,并组成模块的层次结构。
软件结构的设计是概要设计关键的一步,直接影响到下一阶段详细设计与编码的工作软件系统的质量及一些整体特性都在软件结构的设计中决定。
2.数据结构及数据库设计对于大型数据处理的软件系统,除了控制结构的模块设计外,数据结构与数据库设计也是很重要的。
(1)数据结构的设计逐步细化的方法也适用于数据结构的设计。
在需求分析阶段,已通过数据字典对数据的组成、操作约束、数据之间的关系等方面进行了描述,确定了数据的结构特性,在概要设计阶段要加以细化,详细设计阶段则规定具体的实现细节。
在概要设计阶段,宜使用抽象的数据类型。
(2)数据库的设计数据库的设计指数据存储文件的设计,主要进行以下几方面设计:①概念设计。
在数据分析的基础上,采用自底向上的方法从用户角度进行视图设计,一般用ER模型来表示数据模型,这是一个概念模型。
太原科技大学软件工程考试重点(二)
太原科技大学软件工程考试重点(二)第六章详细设计1.详细设计根本目标:确定如何具体实现所要求的系统。
任务:不是具体编写程序,而是设计程序的“蓝图”。
详细设计的结果决定最终程序代码的质量2.结构程序设计是一种设计程序的技术,它采用自顶向下逐步求精的设计方法和单入口单出口的控制结构。
经典的结构程序设计:只允许使用顺序、IF_THEN_ELSE选择DO_WHILE 循环。
3.设计人机界面过程中会遇到的4个问题:1)系统响应时间系统响应时间指从用户完成某个控制动作,到软件给出预期的响应之间的这段时间。
系统响应时间有两个重要属性:长度和易变性2)用户帮助设施大多数现代软件都提供联机帮助设施,用户无须离开用户界面就能解决自己的问题。
常见的帮助设施可分为集成的和附加的两类.3)出错信息处理出错信息和警告信息,是出现问题时交互式系统给出的“坏消息.4)命令交互多数情况下,用户既可以从菜单中选择软件功能,也可以通过键盘命令序列调用软件功能。
4.设计过程5.过程设计的工具:1) 程序流程图:是一种描述程序的控制结构流程和指令执行情况的有向图。
缺点:程序流程图的缺点:(1)程序流程图本质上不是逐步求精的好工具,它诱使程序员过早地考虑程序的控制流程,而不去考虑程序的全局结构。
(2)程序流程图中用箭头代表控制流,因此程序员不受任何约束,可以完全不顾结构程序设计的精神,随意转移控制。
(3)程序流程图不易表示数据结构。
2)盒图特点:(1)功能域明确,可以从盒图上一眼就看出来;(2)不可能任意转移控制;(3)很容易确定局部和全程数据的作用域;(4)很容易表现嵌套关系,也可以表示模块层次结构3)PAD图它用二维树形结构的图来表示程序的控制流,将这种图翻译成程序代码比较容易特点:(1)使用表示结构化控制结构的PAD符号所设计出来的程序必然是结构化程序;(2)PAD图所描绘的程序结构十分清晰;(3)用PAD图表现程序,通俗易懂,程序从图中最左竖线上端的结点开始执行,自上而下,从左向右顺序执行,遍历所有结点;(4)容易将PAD图转换成高级语言源程序,这种转换可以用软件工具自动完成;(5)可用于表示程序逻辑,也可用于描绘数据结构;(6)PAD图的符号支持自顶向下、逐步求精的方法。
软件工程的题目
1.(单选题)软件工程是一种( )分阶段实现的软件程序开发的方法。
(本题2.0分)A.自底向上B.自顶向下C.逐步求精D.面向数据流答案:B软件工程是一种自顶向下分阶段实现的软件程序开发方法。
这种方法将软件开发过程分解为多个阶段,每个阶段都以系统的整体需求和设计为基础,从总体到具体逐步细化。
开发过程从高层次概念和需求开始,逐步细化为更具体的设计和实现,直到最终的编码和测试。
举例来说,考虑一个在线购物网站的开发过程。
首先,以用户需求和整体系统设计为基础,从整体上定义系统的功能和特性,这是自顶向下的第一阶段。
然后,将整体系统划分为子系统和模块,进一步细化各个模块的功能和接口,这是自顶向下的细化阶段。
接着,针对每个模块进行详细设计和实现,分别开发相应的功能模块,这是自顶向下的实现阶段。
最后,进行集成测试和系统测试,确保整体系统功能的正确性和稳定性,这是自顶向下的测试阶段。
通过自顶向下的分阶段开发方法,可以更好地管理软件开发过程,确保系统的功能完备性、易用性和稳定性。
2.(单选题)在测试中,下列说法错误的是( )(本题2.0分)A.测试是为了发现程序中的错误而执行程序的过程B.测试是为了表明程序的正确性D.成功的测试是发现了至今为止尚未发现的错误的测试答案:B在测试中,下列说法错误的是 B. 测试是为了表明程序的正确性。
详细解析:A. 测试是为了发现程序中的错误而执行程序的过程是正确的。
测试的主要目的之一是发现程序中潜在的错误或缺陷。
C. 成功的测试是指找到了至今为止尚未发现的错误。
这是测试的一个重要指标,因为成功的测试应该能够揭示程序中隐藏的问题。
举例说明:假设有一个电子邮件客户端的程序,测试人员执行各种测试来确保其正确性和稳定性。
他们可能会进行功能测试,以验证发送、接收邮件等功能是否按预期工作。
同时,他们还会进行负载测试,以确保客户端可以处理大量邮件流量而不崩溃。
如果测试中发现了程序中的错误,开发团队将修复这些错误,并重新进行测试,直到程序达到预期的质量标准。
第11章面向数据的设计方法
Shuttle -1
软件工程
wait- body1
Leave(1)
TRANSit- b ody1
Shuttlebody1
Arrive(1)
Wait(1)*
Transit(1)* Station(i)*
11.2.2 扩充功能性过程
Button-0
BD
软件工程
Button-1
Shuttle-0
SV
Shuttle-1
LAMP CMDS
图10-2-2 修改后的SSD LAMPCMDS—Lamp commands
软件工程
SHUTTLE_1 seq LON(1) /* 控制发光板“亮”,说 明交通车正停在站1上 */ read 状态向量 WAIT_BODY1 itr while Wait(1) read 状态向量 WAIT_BODY1 end LOFF(1) /* 交通车即将离站;控 制发光板“暗” */ LEAVE(1) TRANSIT_BODY1 itr while Transit(1) read 状态向量 TRANSIT_BODY1 end
分析技术识别出系统中的实体(包括人、对象、 产生或使用信息的组织)和动作(客观世界中 影响系统实体的那些事件); 2)生成实体结构图:针对每一实体,将影响它 的所有动作按发生的时间顺序用Jackson结构 图(Jackson diagrams)表示出来。为了描述 时间约束,同一动作必须出现在多张结构图中;
LEAVE(i)
TRANSIT_BODY itr while Transit(i) read 状态向量
软件工程——9.面向数据流的设计精品文档
传入模块 ─ 从下属模块取得数据,经过某些 处理,再将其传送给上级模块。它传送的数 据流叫做逻辑输入数据流。
传出模块 ─ 从上级模块获得数据,进行某些 处理,再将其传送给下属模块。它传送的数 据流叫做逻辑输出数据流。
9.1 SD方法的基本概念和设计过程
传入模块
从下属模块取得数据,进行某些处理,再 将其结果传给上级模块。在此,将它传送的数据 流称为逻辑输入数据流。
– 发展:SP (structured Programming) →SD→SA。[55]P107;[2]P96;[57]中册 P253~255。
9.1 SD方法的基本概念和设计过程
二、SD的基本思想
结构图SC描述一个软件系统由哪些模块组 成,以及模块之间的调用关系。
结构图SC的基本成分有:模块、调用和数
状态转换图 控制 规 格说明
过程设计 接口设计 体系结构设计 数据设计
相关概念回顾
软件设计的任务
从管理和技术两个不同角度对设计的认识
相关概念回顾
软件设计任务
工程管理观点
– 概要设计,将软件需求转化为数 据结构和软件的系统结构。
– 详细设计,即过程设计。通过对 结构表示进行细化,得到软件的 详细的数据结构和算法。
相关概念回顾
软件设计的目标和任务
Aim/Goal:
– 以SRS为依据,设计出能满足SRS中定 下的各项需求的软件实现方案,并力求 使方案达到最佳。该设计方案是后继阶 段(编码实现)的依据。
(设计方案也将为问题的软件解 solution或软件表示representation)
相关概念回顾
据。
a,d MS f
a,d f
《软件工程》作业与答案2
软件工程作业及参考答案第三、四章一、填空题1.需求分析的基本任务是准确的回答(系统必须做什么)。
2.需求分析阶段研究的对象是软件项目的(用户要求)。
3.结构化分析方法就是(面向数据流)自顶向下逐步求精进行需求分析的方法。
需求分析的目的之一就是把数据流和数据存储定义到(元素级)。
4.数据流图的基本符号包括(数据输入的源点和数据输出的汇点)、(加工)、(数据流)、(数据存储文件)。
5.数据流图和(数据字典)共同构成系统的逻辑模型。
6.数据字典的内容包括六项:(数据流)、(数据项)、(数据结构)、数据存储、处理逻辑、外部实体。
7.在需求分析阶段常用的图形工具有(层次方框图)、(Warnier图)、(IPO图)。
8.需求分析应交付的主要文档是(需求规格说明书)。
9.概要设计过程中要先进行系统设计、(复审系统计划)与(需求分析),确定系统具体的实施方案;然后进行(结构设计),确定软件结构。
10.层次结构的上一层是下一层的(抽象),下一层是上一层的(求精)。
11.模块独立的概念是(模块化)、(抽象)、(信息隐蔽)和局部化概念的直接结果。
12.模块耦合的强弱取决于(模块间接口的复杂程度)、(调用模块的方式)和通过接口的信息。
13.设计出软件的初步结构以后,应该进一步分解或合并模块,力求降低(耦合)提高(内聚)。
14.在一段程序中,将多次出现的一组语句设计为一个子程序,供多个部分调用,这种情况出现的内聚称为(偶然内聚)。
15.一个模块直接调用的模块数目称为模块的(扇出),一个模块被多少上级模块直接调用称为模块的(扇入)。
16.JSD是一种典型的(面向数据结构)的分析设计方法。
17.Jackson图除了可以表达(程序结构外)外,还可以表达数据结构。
18.对于下列伪码,画出改进的Jackson图()A seqBCDA end二、判断题1.在软件开发中,采用原型系统策略的主要困难是时间问题。
(╳)2.数据流图从数据传递和加工的角度,以图形的方式描述数据流从输入到输出的传输变换过程。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
9.4.1 Βιβλιοθήκη 发式设计策略5.模块功能应该可预言,避免对模块施加 过多限制。 模块功能可预言指,只要模块的输入数 据相同,其运行产生的输出必然相同, 也就是可以依据其输入数据预测模块的 输出结果。此外,如果设计时对模块中 局部数据的体积,控制流程的选择及外 部接口方式等诸因素限制过多,则以后 为去掉这些限制要增加维护开销。
描述接口和全局 数据结构
复审 通过 详细设计
图9-1-4 面向数据流 的设计
9.2 变换分析
步骤一、复审基本系统模型 基本系统模型指顶级DFD和所有由外部提 供的信息。这一设计步骤是对系统规格说明 书和软件需求规格说明书进行评估。这两个 文档描述软件界面上信息的流程和结构。
9.2 变换分析
步骤二、复审和精化软件数据流图 这一步主要是对软件需求规格说明书中的分析 模型进行精化,直至获得足够详细的DFD。
辅助文档
获得程序结构后,必须开发一系列辅助 文档,作为软件总体设计的组成部分。 主要工作包括: 1)陈述每个模块的处理过程; 2)描述每个模块的界面; 3)根据数据字典定义数据结构; 4)综述设计中所有限制和约束; 5)对概要设计进行复审; 6)对设计进行优化。
9.4.2 设计优化原则
我们努力追求的设计应该是既满足功能和性能 的要求,又符合一般软件设计原理和上述种种 启发式设计原则。 对软件结构的修改越早越好。必要时,可以并 行地开发若干个软件结构,通过评比,求得 “最佳”结果。 简洁的程序结构容易测试、容易维护,应该使 用尽可能少的模块;只要满足信息要求,应该 使用尽可能简单的数据结构。 结构优化是一个精益求精的过程。优化过程可 以在设计的早期,甚至要延续到详细设计乃至 编码阶段。
软件工程
第9章 面向数据流的设计方法
面向数据流的设计方法,即通常所说的结构设 计法(Structure Design,简称SD方法), 由Yourdon和Constantine等人于1974年提出 的,与结构化分析(SA)相衔接,根据对数 据流的分析设计软件结构。 SD方法对那些顺序处理信息且不含层次数据 结构的系统最为有效,例如过程控制、复杂的 数值分析过程、以及科学与工程方面的应用。
发送部分
SUBSYS1
SUBSYS3
图9-3-2 映射系统上层结构模块
…
…
…
9.3 事务分析
步骤六、分解并精化事务结构以及每条动 作路径所对应的结构。这些子结构是根据 流经每一动作路径的数据流特征,采用本 节或上节所述设计步骤逐一导出的。
3 1 2 4 5 SUBSYS2 输入控制 7 变换控制 10
a a a
b
c
b
c
b
a) 顺序调用
b) 选择调用
c) 循环调用
9.2 变换分析
输入流 变换流 输出流
A C
B E D F G H
主控模块 输入流 控制模块
变换流 控制模块
输出流 控制模块
图9-2-5 一级分解
9.2 变换分析
步骤六、执行“二级分解”。
二级分解的任务是把数据流图中每个处理 框映射为结构图中的一个模块。其过程是 从变换中心的边界开始沿输入、输出通道 向外移动;从变换中心的输入(出)边界向外 移动,把遇到的每个处理框映射为结构图 中相应控制模块下的一个模块。
9.3 事务分析
事务分析法可概括为七个步骤: 步骤一、复审基本系统模型; 步骤二、复审并精化软件数据流图; 步骤三、确定数据流图的特征; 步骤四、指出事务中心,确定接收部分和发 送部分的流界; 步骤五、映射出系统上层模块结构;
3 1 2 4 5
6 7 10 11
接收部分 事务中心
8
9
SYSTEM 输入 1 散转 2 SUBSYS2
6 7 10 11
接收部分 事务中心
8
9 发送部分 输出控制 11
4 图9-3-3 设计系统下层模块结构
9.3 事务分析
SYSTEM 输入 1 SUBSYS1 3 输入控制 散转 2 SUBSYS2 变换控制 输出控制 11 8 SUBSYS3
5
9
6
7
4
10
图9-3-4 将模块结构组合,得到程序结构雏形
9.2 变换分析
步骤三、确定DFD的特性,判定它为变换 流还是事务流。
步骤四、划定输入流和输出流的边界,孤 立变换中心。
9.2 变换分析
步骤五、执行“一级分解”(first level factoring) 一级分解的目标是导出具有三个层次的程 序结构,顶层为主控模块;底层模块执行 输入、计算和输出功能;中层模块控制、 协调底层的工作。
1)变换流
变换流 — 在基本系统模型(即顶级数据 流图)中信息通常以“外部世界”所具 有的形式进入系统,经过处理后又以这 种形式离开系统。
信 息 外 部 表 示 内 部 表 示 输出流 输入流 变换流
时间
图9-1-1 信息流
1)变换流
C A B D 图9-1-2 典型的变换流 变换流的特点是:经过变换B的数据流一部分先 经过变换C到达变换E,然后另一部分经过变换D 到达E;即C和D是顺序结构。
9.4.2 设计优化原则
对时间有特殊要求的软件,应根据普遍存在的“百 分之二十规则”(即20%的代码占用80%的处理时 间,80%的错误出自20%的代码)采用下述对策: 1.在不考虑时、空耗费的情况下,设计并精化软 件结构; 2.借用CASE工具模拟分析运行时的性能,定位出 低效的部分,加以改进; 3.详细设计时对最耗时的模块,认真地设计它们的处 理过程(算法),以便减少时间的开销; 4.尽量用高级语言编程以利于软件的优化; 5.对大量占用计算机系统资源的模块必要时用低级语 言重新编码,以提高效率。 设计优化的格言—“先让它干起来,再让它快起来”。
9.4.1 启发式设计策略
2.调整软件结构的深度、宽度、扇出和扇入 数目,改善软件结构性能。 经验表明,设计良好的软件结构通常顶层 扇出较高,中层扇出较低,底层又高扇入 到公共的实用模块中去。
9.4.1 启发式设计策略
应避免的结构
应追求的结构
图9-4-1 应追求与避免的程序结构
9.4.1 启发式设计策略
H
输入流控制模块 B A D C
E F
G H
图9-2-8 结构的优化
9.2 变换分析
上述七个设计步骤的目标是给出软件 的一个整体描述。 一旦有了这样一个描述,设计人员即 可从整体角度评价和精化软件的总体 结构,此时修改所需耗费不多,却能 大大提高软件质量。
9.3 事务分析
当数据流具有明显的事务特征时,即能 找到一个事务(亦称触发数据项)和一 个事务中心,采用事务分析法更为适宜。
输入流
变换流
输出流
A C
B
E
D
F
G
H
主控模块 输入流控制 模块 B A D C 变换流控制 模块 E F 输出流控制 模块 G H
图9-2-7 二级分解
9.2 变换分析
DFD的处理框与程序结构模块一一对应, 但按照软件设计原则进行设计时,可能需 要把几个处理框聚合为一个模块,或者把 一个处理框裂变为几个模块。总之,应根 据“良好”设计的标准,进行二级分解。 二级分解后得到的仅仅是程序结构的“雏 形”( first-cut ),后续的复审和精化会 反复修改。
9.3 事务分析
步骤七、使用启发式设计策略,精化所 得程序结构雏形,改良软件质量。这一 步骤与变换分析法相同。
SYSTEM 输入 1 3 6 7 散转 2 SUBSYS2 10 11 8 5 9
4
9.4 设计优化及原则
9.4.1 启发式设计策略
1.调整模块的功能和规模,降低耦合度,提高内 聚度。 若在几个模块中发现了共有的子功能,一般应将 此子功能独立出来作为一个模块,以提高单个模 块的内聚度。合并模块通常是为了减少控制信息 的传递以及对全程数据的引用,同时降低接口的 复杂性。 模块的规模没有固定的要求。以保持模块的独立 性为原则。一般而言,模块规模以一页左右为宜 (高级语言在75个语句左右)。
9.2 变换分析
程序结构的模块名已隐含了模块功能,但仍 有必要为每个模块写一个简要的处理说明, 它应当包括: 1.进出模块的信息(接口描述); 2.模块的局部信息; 3.处理过程陈述,包括任务和主要的判 断点的位置、条件; 4.对有关限制和一些专门特性的简要说 明(例如,文件I/O,独立于硬件的 特性,特殊的实时要求等)。 这些描述构成第一版设计规格说明书。
3.改造程序结构,使任一模块的作用域 在其控制域之内。
A B 受F中判定 E 的影响 G 违背第三条原则 C D C 判定 H B G A D
F
F
H
E
满足第三条原则
图9-4-2 作用域与控制域
9.4.1 启发式设计策略
4.分析模块之间的接口信息,降低界面的复 杂性和冗余程度,提高协调性。 界面复杂是引起软件错误的一个基本因素, 界面上传递的数据应尽可能简单并与模块 的功能相协调,界面不协调(即在同一个 参数表内或以其他某种方式传递不甚相关 的一堆数据)本身就是模块低内聚的表征。
9.2 变换分析
程序结构可用 Yourdon 结构图表示。结构图中,方 框代表模块,框内名称表示模块的功能;方框之间的 有向边(无二义时也可用无向边)表示模块间的调用 关系。调用模块上无标志表示顺序调用:从左至右; 菱形表示选择调用;弧形箭头表示循环调用。但除了 顺序调用外,并不是必须遵循这些规定。
9.4.1 启发式设计策略
6. 改造程序结构,追求单入口单出口的模块。 7. 为满足设计或可移植性的要求,把某些软 件用包(package)的形式封装起来。 软件设计常常附带一些特殊限制,例如,要求 程序采用覆盖技术。此时,根据模块重要的程 度、被访问的频率及两次引用的间隔等因素对 模块分组。 此外,程序中那些供选择的或“单调” (one-shot)的模块应单独存在,以便高效地 加载。