软件工程17(结构化设计接口设计)
- 格式:ppt
- 大小:1.89 MB
- 文档页数:25
第一章绪论什么是软件工程?软件=程序+数据+文档什么是软件危机?软件危机是指落后的软件生产方式无法满足迅速增长的计算机软件,从而导致软件开发与维护过程中出现一系列严重问题的现象。
什么是软件工程?采用工程化的原理和方法对软件进行计划开发和维护。
软件工程三范型:1.过程式编程范型2.面向对象编程范型3.基于构件技术的编程范型软件工程的发展时期:(1)传统软件工程或者经典软件工程:开发过程:结构化分析一>结构化设计一>面向过程的编码一>软件测试(2)面向对象软件工程开发过程:OO分析与对象抽取一》对象详细设计一》面向对象编码与测试(3)基于构件的软件工程:以软件复用为目标、领域工程为基础,其开发过程一般包括包括以下阶段:领域分析和测试计划定制一一》领域设计一一》建立可复用构件库一一》按“构件集成模型,,查找与集成构件第二章生存周期什么是软件生存周期?计划阶段:需求分析,软件分析开发阶段:软件设计,编码(测试)软件测试维护阶段:运行维护模型特点和使用场合可行性研究1.经济可行性2.技术可行性3.运行可行性4.法律可行性第三章结构化分析与设计结构化程序设计的特点以及论述(1)整个程序的模块化(2)每个模块只有一个入口和出口(3)每个模块都应能单独执行,且无死循环(4)采用自顶向下,逐步细化的方法SA结构化分析设计(结构化)从内容分:1.系统结构设计2.接口设计3.数据设计4.过程设计按照步骤分:1.概要设计2.详细设计第四章OO与面向对象+UML OO的特征1.抽象2.封装3.继承4.多态为什么用面向对象1.符合人类习惯的思维方式2.提高软件系统的可复用性3.提高软件系统的可扩展性4.提高软件系统的可维护性UML相关知识静态图1.用例图:描述系统功能2.类图:描述系统的静态结构3.对象图:描述系统在某个时期的静态结构4.构件图:描述实现系统的元素的组织5.部署图:描述系统环境元素的配置动态图1.状态图:描述系统元素的状态条件和相应2.时序图:按照时间顺序描述系统元素间的交互3.协作图:按照连接关系描述系统元素间的交互4.活动图:描述系统元素的活动流程第五章需求建模需求分析的步骤1.需求获取2.需求建模3.需求描述4.需求验证面向对象需求建模1.画用例图2.写用例规约3.描述补充规约4.编写术语表第六章需求分析面向对象的需求分析1.边界类:边界类提供了对参与者或外部系统交互协议的接口。
软件工程结构化分析与设计在当今数字化的时代,软件几乎无处不在,从我们日常使用的手机应用程序,到企业内部复杂的业务系统,软件已经成为推动社会发展和提高生活质量的重要力量。
而软件工程中的结构化分析与设计,作为软件开发过程中的关键环节,对于确保软件的质量、可维护性和可扩展性具有至关重要的意义。
首先,让我们来理解一下什么是软件工程结构化分析。
简单来说,结构化分析就是对软件系统进行详细的调查和研究,以确定系统的需求和功能。
这就好比在盖房子之前,我们需要清楚地知道要盖什么样的房子,有多少房间,每个房间的用途是什么等等。
在软件领域,结构化分析的主要任务包括收集用户需求、理解业务流程、识别系统的输入和输出、定义数据结构等。
在收集用户需求时,开发人员需要与用户进行充分的沟通和交流。
用户可能来自不同的背景和领域,他们对软件的期望和需求也各不相同。
因此,开发人员需要具备良好的沟通技巧和理解能力,能够将用户模糊的、不明确的需求转化为清晰、具体的软件功能描述。
比如,用户可能说“我希望这个软件能够快速处理大量数据”,开发人员就需要进一步询问“快速”的具体标准是什么,“大量数据”大概是多少,以及数据的类型和格式等。
理解业务流程也是结构化分析的重要部分。
不同的行业和组织都有其独特的业务流程,软件系统需要能够与之相适应和支持。
例如,在一个电子商务系统中,订单处理、库存管理、支付流程等都是关键的业务环节,开发人员需要深入了解这些流程的细节,以便设计出符合业务需求的软件。
接下来,我们谈谈软件工程结构化设计。
结构化设计是在结构化分析的基础上,将系统的需求转化为软件的架构和模块设计。
这就像是根据房子的设计图纸,确定房子的框架结构、房间布局以及各个部分使用的材料等。
在结构化设计中,模块划分是一个关键步骤。
模块是软件系统中的独立组成部分,具有明确的功能和接口。
合理的模块划分可以提高软件的可维护性和可扩展性。
例如,将一个复杂的系统划分为用户界面模块、数据处理模块、业务逻辑模块等,每个模块都专注于完成特定的任务,并且可以独立地进行开发、测试和维护。
软件工程复习题文稿归稿存档编号:[KKUY-KKIO69-OTM243-OLUI129-G00I-FDQS58-软件工程复习题一、判断、填空题、选择题1.软件开发的瀑布模型适用条件是需求清晰的场合。
2.软件开发的增量模型可以快速构造核心模块,提交给用户使用。
3.需求分析是要弄清楚软件要做什么的阶段,符合用户要求。
4.模块独立性比较强的模块应该是高度内聚,松散耦合的模块。
耦合强调松散,模块与模块间的连接,内聚强调紧密,关注同一件事情。
5.系统程序可以跨平台、跨计算机运行,是因为具有可移植性。
6.软件生命周期中所花费用最多的阶段是维护阶段。
7.软件会逐级退化而不会磨损,其原因在于不断的变更使组件接口之间引起错误。
8.顺序图和协作图所表现的含义是相同的,同构的。
9.结构化分析的英文全称是( Structured Analysis ),这种分析主要是通过哪几种模型图来呈现(数据流图DFD、实体-关系图ER、状态-迁移图STD )。
10.UML全称是(统一建模语言)。
11.螺旋模型是将(瀑布模型)和(快速原型模型)结合起来,并且加入了(风险分析)。
瀑布模型是以(文档)为驱动、适合于(需求明确)的软件项目的模型。
12.用例图的定义和作用是什么(定义:描述的是参与者所理解的系统功能。
作用:用于需求分析阶段,它的建立是系统开发者和用户反复讨论的结果)。
13.顺序图和协作图的用途是什么()14.Coad和Yourdom给出的“面向对象”的定义如下:面向的对象=(对象)+(类)+(继承)+(消息通信)。
15.软件维护的4中维护活动是(改正性维护、适应性维护、完善性维护、预防性维护)。
16.从工程管理的角度,可以将软件设计分为两个阶段:()。
17.从技术的角度,概要设计阶段要完成体系(结构设计、接口设计、数据设计)。
18.软件工程的目标是(以较短的周期,较低的成本生产出高质量的软件,并最终实现软件的工业化生产)。
19.程序的5种基本控制结构是(顺序型、选择型、先判定型循环、后判定型循环、多情况型循环),如果简化到三种是(顺序、选择、循环)。
第一章1.计算机系统是由计算机硬件系统和软件系统这两个密不可分的部分组成的。
2.计算机软件系统通过运行程序来实现各种不同应用,包括用户为自己的特定目的编写的程序、检查和诊断机器系统的程序、支持用户应用程序运行的系统程序、管理和控制机器系统资源的程序等。
3.在软件工程学中,软件开发技术包括软件开发方法学、软件工具和软件工程环境。
4.在软件工程层次结构中,包括工具层、方法层、过程、技术层和质量保证层。
5.在面向对象概念中,消息传递是其与外部世界相互关联的唯一途径。
第三章1.软件需求分析,可以把软件功能和性能的总体概念描述为具体的软件需求规格说明,进而建立软件开发的基础.2.软件需求工作基本上包括收集用户、市场等方面对项目的需要,经过分析建立解题模型,细化模型,抽取需求.3.结构化分析方法的基本步骤是采用由顶向下对系统进行功能分解,画出分层数据流图;由后向前定义系统的数据和加工,绘制数据词典和加工说明;最终写出软件需求和规格说明书。
4.面向对象分析方法总是从理解系统的“使用实例”开始,基本步骤是:定义系统的用例,在领域分析的基础上建立问题域的类(对象模型),然后开始建立对象——关系和对象-—行为模型。
5.需求分析评审过程由以下5个步骤组成:规划、准备、召开审查大会、修改缺陷、重审。
第四章1.与软件需求分析一样,软件设计也有两种主要设计方法:以结构化设计为基础的结构化软件设计和面向对象方法指导的面向对象软件设计。
2.传统的软件设计任务通常分两个阶段完成.第一个阶段是概要设计,包括体系结构设计和接口设计,并编写概要设计文档;第二阶段是详细设计,其任务是确定各个软件的数据结构和操作,产生描述各软件组件的详细设计文档。
3.结构化的软件设计方法是一种面向数据流的设计方法,在面向数据流的方法中,数据流是考虑一切问题的出发点.4.在数据流图中所代表的结构化设计模型中,所有系统均可纳入两种典型的形式,因此系统结构图也有两种类型: 变换型系统结构图,事务型系统结构图.5.Jackson表示法包括图形描述(Jackson图)和文本描述(Jackson伪代码)两种形式。
软件工程1.以下哪一项不是软件危机的表现形式(C)A.成本高B.生产率低C.技术发展快D.质量得不到保证2.哪种模型分批地逐步向用户提交产品,每次提交一个满足用户需求子集的可运行的产品。
(A)A.演化模型B.喷泉模型C.原型模型D.螺旋模型3.可行性研究的目的不包括(B)A.分析开发系统的必要性B.确定系统建模的方案C.分析系统风险D.确定是否值得开发系统4.可行性分析研究的费用大约是项目总经费的(B)。
A.2%B.8%C.20%D.50%5.在E-R 模型中,包含以下基本成分(C)。
A.数据、对象、实体B.控制、联系、对象C.实体、联系、属性D.实体、属性、联系6.软件需求分析产生一个重要文档是(B)。
A.软件维护说明书B.需求规格说明书C.可行性报告D.初步用户手册7.内聚程度较低的是(D)。
A.通信内聚B.过程内聚C.顺序内聚D.时间内聚8.概要设计是软件系统结构的总体设计,以下选项中不属于概要设计的是(D)A.把软件划分成模块B确定模块之间的调用关系C.确定各个模块的功能D.设计每个模块的伪代码9.UML 语言支持的建模方式不包括有(C)。
A.静态建模B.动态建模C.模块化建模D.功能建模10.以下哪一项不是面向对象的特征。
(D)A.多态性B.继承性C.封装性D.过程调用11.在软件生产的程序系统时代由于软件规模扩大和软件复杂性提高等原因导致了(A)A.软件危机B.软件工程C.程序设计革命D.结构化程序设计12.瀑布模型的关键不足在于(B)A.过于简单B.不能适应需求的动态变更C.过于灵活D.各个阶段需要进行评审13.可行性研究的四大要素是(A)。
A.经济、技术、法律和社会环境B.经济、技术、开发组织能力和领导者水平C.经济、技术、计算机硬件环境和网络带宽D.经济、技术、软件开发工具和人员的稳定性14.经济可行性研究的主要内容包括(D)A.开发过程B.开发工具C.风险分析D. 效益分析15.在需求分析过程中,分析员要从用户那里解决的最重要的问题是(A)。
软件工程结构化设计在当今数字化的时代,软件几乎无处不在,从我们日常使用的手机应用程序,到企业级的复杂业务系统,软件已经成为推动社会发展和提高生活质量的重要力量。
而软件工程中的结构化设计,作为软件开发过程中的关键环节,对于确保软件的质量、可维护性和可扩展性具有至关重要的意义。
什么是软件工程结构化设计呢?简单来说,它是一种将软件系统分解为若干个模块,并明确这些模块之间的关系和交互方式的设计方法。
其目的是为了使软件系统具有清晰的结构,便于开发人员理解、实现和维护。
在结构化设计中,模块是基本的组成单位。
模块应该具有高内聚和低耦合的特性。
高内聚意味着模块内部的各个部分紧密相关,共同完成一个明确的功能;低耦合则表示模块之间的依赖关系尽可能少,相互之间的影响较小。
这样的设计能够使得每个模块都相对独立,当需要对某个模块进行修改或优化时,不会对其他模块产生过多的影响,从而降低了软件维护的成本和风险。
为了实现良好的结构化设计,通常会采用一些原则和方法。
比如,自顶向下的设计方法,先从系统的整体功能出发,逐步细化到各个子系统和模块;还有逐步求精的原则,不断对设计进行完善和优化,逐步增加细节和精度。
在进行结构化设计时,数据结构的设计也是非常重要的一部分。
合理的数据结构能够提高数据的存储和访问效率,为软件的性能提供有力的支持。
同时,还要考虑到数据的完整性和一致性,确保数据在整个软件系统中的准确性和可靠性。
另外,接口设计也是不容忽视的环节。
清晰、简洁的接口能够让不同的模块之间更好地进行通信和协作。
良好的接口设计可以减少模块之间的误解和错误,提高软件系统的稳定性和可靠性。
软件工程结构化设计的好处是显而易见的。
首先,它能够提高软件开发的效率。
清晰的结构和明确的分工,使得开发人员能够更加专注于自己负责的模块,减少了不必要的沟通和协调成本。
其次,有利于软件的维护和升级。
当软件需要进行修改或扩展时,能够快速定位到相关的模块,并且由于模块之间的低耦合性,降低了修改带来的风险和影响。
1. 在结构化程序设计中要实现任何模块的单入口单出口。
一般不允许使用控制结构是______A. 顺序B. 无条件转移C. 条件分支转移D. 循环正确答案:B 满分:3 分2. 用限定词来表示对象类之间受限关联的通常目地是________。
A. 更准确地表示归纳关系B. 更准确地表示组合关系C. 增加关联阶数D. 减少关联阶数正确答案:D 满分:3 分3. 黑盒测试在设计测试用例时,主要需要研究________A. 需求规格说明与概要设计说明B. 详细设计说明C. 项目开发计划D. 概要设计说明与详细设计说明正确答案:A 满分:3 分4. 当某一开发项目的进度有可能拖延时,应该_______。
A. 增加新的开发人员B. 分析拖期原因加以补救C. 从别的小组抽调人员临时帮忙D. 推迟预定完成时间正确答案:B 满分:3 分5. 下列选项中不符合软件测试原则的是______。
A. 只在编码之后进行软件测试。
B. 设计测试用例时,应当包括合理的输入条件和不合理的输入条件。
C. 严格地制定并执行测试计划D. 测试用例由测试输入数据和对应的预期结果组成。
正确答案:A 满分:3 分6. 在软件维护的实施过程中,为了正确、有效地修改,需要经历以下3个步骤:分析和理解程序、修改程序和________.A. 建立目标程序B. 执行程序C. 重新验证程序D. 验收程序正确答案:C 满分:3 分7. 软件需求分析是保证软件质量的重要步骤,它的实施应该是在_____。
A. 编码阶段处B. 软件开发全过程C. 软件定义阶段D. 软件设计阶段正确答案:C 满分:3 分8. 划分模块如果必须存在耦合,选择适当的耦合类型的错误原则是_____A. 尽量使用数据耦合B. 少用控制耦合C. 限制公共耦合的范围D. 容许使用内容耦合正确答案:D 满分:3 分9. 模块划分中,对模块独立的含义不包括_____A. 模块完成独立的功能开发B. 符合信息隐蔽和信息局部化原则C. 模块间关连和依赖程度尽量小D. 模块间不应存在关连和依赖正确答案:D 满分:3 分10. 为了定量分析项目进度,需要在制定项目进度计划时,估算每个_____ 可供选择答案:A. 应该完成的工作任务的预算工作量的成本B. 工作任务的预算成本C. 工作任务的实际工作量的成本D. 实际工作任务的预算成本正确答案:A 满分:3 分11. 软件开发时,一个错误发现得越晚,为改正它付出的代价就_______A. 越大B. 越小C. 接近平均D. 不可捉摸正确答案:A 满分:3 分12. 在McCall软件质量度量模型中,_______属于面向软件产品修改。
软件工程结构化分析与设计简版首先,结构化分析与设计是一种以模块化和分层的方式进行系统分析和设计的方法。
它将系统划分为多个模块,并对每个模块进行独立的设计和实现。
这样的设计方式有助于提高系统的可维护性和可扩展性,同时降低了系统开发的复杂性。
结构化分析的过程包括需求分析、系统规划、数据流建模和数据字典等步骤。
其中,需求分析是整个过程的第一步,通过和用户进行沟通和交流,了解用户的需求和期望。
系统规划则是根据需求分析的结果,确定系统的整体架构和功能。
数据流建模是结构化分析中的重要部分,它通过绘制数据流图来表示系统中的数据流动。
数据流图由多个加工、数据存储和数据流组成,通过对数据流图的绘制,可以清晰地了解系统中的数据流动和加工过程,有助于后续的系统设计和实现。
数据字典则是对数据流图中的各个数据流进行定义和描述。
数据字典包括数据流的名称、含义、类型和结构等信息,它提供了一个统一的标准,方便各个模块之间的交互和数据传递。
结构化设计是在结构化分析的基础上进行的,它主要包括模块划分、接口设计和模块实现等步骤。
模块划分是将系统划分为多个独立的功能模块,每个模块负责实现一个或多个功能。
接口设计则是定义各个模块之间的接口和数据传递方式,以确保各个模块之间的协同工作。
模块实现则是根据设计的结果,进行具体的编码和测试。
在模块实现的过程中,需要遵循一定的编码规范和测试标准,以确保编码的质量和系统的稳定性。
总的来说,软件工程结构化分析与设计是软件开发中不可或缺的一环。
通过结构化分析与设计,可以使得系统具备良好的结构和可扩展性,提高软件的质量和可维护性。
在进行结构化分析与设计时,需要遵循一定的分析和设计流程,并注重细节和规范,以保证系统的整体质量和稳定性。
1.随着模块规模减小,模块开发成本(),模块集成成本()。
选择一项:A. 减小/减小B. 增加/减小C. 增加/增加D. 减小/增加反馈Your answer is correct.正确答案是:减小/增加题目2正确获得1.00分中的1.00分标记题目题干2.反映模块独立性的指标是()。
选择一项:A. 模块的大小B. 内聚和耦合C. 模块的参数D. 模块的复杂性反馈Your answer is correct.正确答案是:内聚和耦合题目3正确获得1.00分中的1.00分标记题目题干3.非直接耦合的模块独立性最强,()的模块独立性最弱。
选择一项:A. 外部耦合B. 内容耦合C. 控制耦合D. 数据耦合反馈Your answer is correct.正确答案是:内容耦合题目4正确获得1.00分中的1.00分标记题目题干4.内容耦合是模块间最紧密的耦合,()是模块间最松散的耦合。
选择一项:A. 非直接耦合B. 控制耦合C. 外部耦合D. 数据耦合反馈Your answer is correct.正确答案是:非直接耦合题目5正确获得1.00分中的1.00分标记题目题干5.在对软件系统进行模块设计的时候,可以有不同的抽象层次,可以用(),配合面向问题的专业术语,概括地描述问题的解法。
选择一项:A. 自然语言B. 流程图C. 直接实现的方式D. 过程化的描述方法反馈Your answer is correct.正确答案是:自然语言题目6正确获得1.00分中的1.00分标记题目题干6.人们在认识复杂问题的过程中,使用最强有力的思维工具就是()选择一项:A. 模块化B. 抽象C. 信息隐蔽D. 内聚和耦合反馈Your answer is correct.正确答案是:抽象题目7正确获得1.00分中的1.00分标记题目题干7.信息隐藏的核心内容是()。
选择一项:A. 一个模块的内部信息不允许其他模块直接访问B. 把信息加密,只能让有密钥的模块访问C. 数据不能被其他模块访问D. 把数据都放在公共的区域反馈Your answer is correct.正确答案是:一个模块的内部信息不允许其他模块直接访问题目8正确获得1.00分中的1.00分标记题目题干8.每个子系统的接口定义了若干(),体现了子系统的功能,而功能的具体实现方法应该是隐藏的。
选择题1、以下哪个不是详细设计中常用的图形描述工具 A 。
A、数据流图B、程序流图C、盒图(N-S图)D、问题分析图(PAD)2、耦合是对软件结构中各个不同模块之间互相关联程度的度量。
一个模块直接访问另一个模块的内部信息应属于 B 方式。
A、控制耦合B、内容耦合C、数据耦合D、外部耦合3、在七种内聚中属于最强的是功能内聚,最弱的是偶然内聚4、软件工程的原则包括:模块化、抽象与逐步求精、信息隐藏与局部化、模块独立。
模块 D ,则说明模块的独立性越强。
A.耦合越强B、扇入数越高C、扇入数越低D、耦合越弱5、软件设计包括 D 两个阶段。
A、接口设计和结构设计B、数据设计和概要设计C、结构设计和过程设计D、概要设计和详细设计6、现有一个计算类型的程序,它的输入只有一个Y,其范围是—50≤Y≤50。
现从输入的角度考虑设计了一组测试用例:—100,100,0。
设计这组测试用例的方法是 D 173页A、条件覆盖法B、边缘值分析法C、错误推测法 D 、等价划分法7、系统设计分为两个阶段分别为设计方案与选择方案 92页。
8、对于变换型的数据流图,按照软件设计思想,要将一个大型复杂的软件进行分解,要确定数据流图的输入边界,输出边界和变换中心。
9、自顶向下结合的渐增式测试法,在组合模块时有两种组合策略:深度优先策略和宽度优先的策略157页。
10、在用面向对象观点建立起的3种模型中, B 231页基本、最重要、最核心的。
A、动态模型B、对象模型C、功能模型D、状态模型11、在软件结构图的有关术语中,用于表示软件结构中控制的层数的是 C 。
A、扇出B、扇入C、深度D、宽度12、指出PDL是哪种语言过程设计语言128页13、在进行软件测试时,首先应当进行单元测试,然后再进行组装测试,最后再进行有效性测试。
14、结构化设计方法是面向 B 的设计。
A.数据编码 B.数据流 C.数据库 D.数据结构15、软件工程的过程模型中,瀑布模型是经典的传统模型。