中南大学软件工程教材知识点整理
中南大学软件学院软件工程基础复习大全资料

精品文档瀑布模型是以文档为驱动、适合于(软件需求确定的)软件项目的开发。
1.需求分析的基本任务是(确定用户需要软件做什么)。
2.,现从输入的角度考虑一组],1.03. 若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0。
设计这组测试用例的方法是(边界值分析法)。
,1.0,1.001,测试用例:-1.001-1.0 4. 根据程序流程图划分的模块通常是(过程)内聚的模块。
(支撑软件)和应用软件。
5. 软件的分类,按其功能可分为:系统软件、表示法)两个部分。
语义和(UML6. UML的定义包括UML)。
(7. 客观世界中的若干类,通常有两种主要的结构关系:即分类结构和整体与部分结构)三种成分,其中实体可分为数据)模型,主要有实体、联系和(属性8. IDEF1X图用来描述系统的(),且一个实体只能在图中出现一次。
独立实体和(从属实体(描述计算机程序的文档)及(数据)的完整集合,将其统称为软件配置,这些项9、软件是计算机程序、称为软件配置项。
通过正式复审的软件配置项称为(基线),只有通过正式的变化控制过程才能改变它。
、通常,将软件生命周期全过程中使用的一整套技术方法的集合称为方法学,包含三个要素,即方法、10。
传统方法学采用(结构化)技术来自顶向下顺序地完成软件开发的各项任务,而面向(工具)和(过程)对象方法是一种以(数据)为主线,把数据和对数据的操作紧密地结合起来的方法,其开发过程是一个多次迭代的演化过程。
,因而从心理学角度来看,由程序作者对自己编写的程序进行11、软件测试的目标是(暴露程序中的错误)、输入的测试测试是不恰当的。
设计测试方案是测试阶段的关键技术问题,测试方案一般包括(测试目的)数据和(预期的结果)。
、模型是为了理解事物而对事物作出的一种抽象,由(一组图示符号)和(组织这些符号的规则)组成。
12 UML提供的(类图)图来描述。
对象模型描述了系统的静态结构,通常使用,在需求分析结束前,系统分析员应该写出(软13、需求分析的基本任务是(准确地回答系统必须做什么)件需求规格说明书),以书面的形式准确描述软件需求。
软件工程基础知识点整理版

软件工程基础知识点整理版1.软件生命周期:软件工程将开发和维护软件的过程划分为不同的阶段,包括需求分析、设计、编码、测试、部署和维护。
这些阶段构成了软件生命周期。
2.软件需求:软件需求工程是对软件需求进行分析、规划和定义的过程。
它包括对用户需求的收集、分析和确认,以及对系统功能和性能的详细规范。
3.软件设计:软件设计是定义软件的结构和组成部分的过程。
它包括对软件系统的整体架构和各个模块的设计。
4.软件编码:软件编码是将设计好的软件系统转化为具体的程序代码的过程。
编码过程需要使用编程语言,并遵循编码规范和最佳实践。
5.软件测试:软件测试是验证软件是否满足需求规格的过程。
它包括对软件的功能、性能和安全性进行测试,并发现和修复软件中的错误。
6.软件配置管理:软件配置管理是对软件开发过程中各个组成部分的控制和跟踪。
它包括版本控制、配置项管理和变更控制等活动。
7.软件质量保证:软件质量保证是确保软件达到高质量标准的一系列过程和活动。
它包括质量计划、质量评审、质量度量和缺陷管理等。
8.软件项目管理:软件项目管理是规划、组织和控制软件开发和维护活动的过程。
它包括项目计划、进度管理、团队管理和风险管理等。
9.软件工具和环境:软件工程使用各种工具和环境来辅助软件开发和维护。
这些工具包括集成开发环境、版本控制工具、测试工具和项目管理工具等。
10.软件工程伦理:软件工程伦理是软件工程师在工作中需要遵循的道德准则和原则。
它包括保护用户隐私、遵守知识产权法律和保持专业水平等方面。
以上是软件工程的一些基础知识点,但软件工程领域非常广泛,还有很多其他的知识点值得深入学习和研究。
尽管有一些基础知识点可以帮助我们理解和实践软件工程的基本原理和方法,但要成为一名优秀的软件工程师,还需要不断学习和提升自己的技能和知识。
软件工程概论知识点汇总

软件工程概论知识点汇总软件工程概论知识点汇总第一章软件工程概述1. 软件工程定义及概念2. 软件工程的历史发展3. 软件开发生命周期模型a. 瀑布模型b. 迭代模型c. 增量模型d. 螺旋模型e. 敏捷开发模型第二章需求分析与管理1. 需求工程的基本概念2. 需求获取与分析方法3. 需求规格说明书4. 需求变更与配置管理第三章软件设计与架构1. 结构化设计方法2. 面向对象设计方法3. 设计模式及应用4. 软件架构设计与选择第四章软件编码与测试1. 编码规范与风格2. 测试方法与策略3. 单元测试与集成测试4. 软件质量保证与评估第五章软件项目管理1. 软件项目组织与人力资源管理2. 软件项目计划与进度管理3. 风险管理与配置管理4. 软件项目质量管理第六章软件维护与演化1. 软件维护的类型与阶段2. 软件维护的过程与方法3. 软件重构与演化第七章软件工程的理论与方法1. 软件需求建模方法2. 软件设计原则与方法3. 软件度量与评估方法4. 软件工程的形式化方法第八章软件工程的伦理与职业道德1. 软件工程的伦理问题2. 软件工程师的职业道德要求3. 软件工程师的专业素养与发展本文档涉及附件:________本文所涉及的法律名词及注释:________1.著作权法:________保护软件的著作权,禁止未经授权的复制、修改、发布等行为。
2.商标法:________保护软件的商标权,禁止他人未经授权使用相同或相似的商标。
3.专利法:________保护软件的发明专利权,禁止他人未经授权使用相同或相似的发明。
4.合同法:________规定软件开发过程中的合同签订与履行等事项。
软件工程知识点总结

软件工程知识点总结软件工程知识点总结1.软件工程概述1.1 软件工程定义1.2 软件工程的重要性1.3 软件生命周期2.需求分析与规格说明2.1 需求分析过程2.2 需求获取方法2.3 需求规格说明的要素2.4 需求跟踪与变更管理3.软件设计3.1 软件设计原则3.2 结构化设计方法3.3 面向对象设计方法3.4 数据库设计3.5 用户界面设计4.软件开发4.1 编码规范4.2 编程语言选择4.3 软件构建工具4.4 软件测试4.5 版本控制5.软件项目管理5.1 项目计划与进度管理 5.2 软件开发过程模型 5.3 团队协作与沟通5.4 风险管理6.质量保证与软件维护6.1 质量保证方法6.2 软件维护类型6.3 软件维护活动6.4 软件退役与替换附件:________本文档涉及的附件(请附上相关文档、图表等)法律名词及注释:________1.软件工程:________指将系统化的、规范化的、可量化的方法应用于软件的开发、运行和维护的工程学科。
2.需求分析:________确定用户对软件系统需要的功能、性能和约束等方面的要求,并以此为基础进行系统的分析和设计。
3.软件设计:________根据需求分析的结果,制定软件系统的总体结构和各组成部分的详细设计方案。
4.软件开发:________根据软件设计的方案,进行编码和调试,最终可执行的软件系统。
5.软件项目管理:________对整个软件项目进行计划、协调、控制和有效地管理,确保项目顺利完成。
6.质量保证:________通过不同的方法和技术,提高软件产品的质量,确保其满足用户的需求和要求。
7.软件维护:________对已投入使用的软件进行修复性、适应性、完善性和预防性等各方面的修改和改进。
软件工程基础知识点总结(2023版)

软件工程基础知识点总结软件工程基础知识点总结
1.软件工程概述
1.1 软件工程定义
1.2 软件工程的历史与发展
1.3 软件工程的特点和目标
1.4 软件工程的生命周期
2.软件需求工程
2.1 软件需求定义和分类
2.2 需求获取与分析
2.3 需求规格说明
2.4 需求验证和确认
3.软件设计
3.1 软件设计原则和概念
3.2 结构化设计方法
3.3 面向对象设计
3.4 软件设计工具和标记语言
4.软件开发
4.1 编码规范与规范检查
4.2 编程技术与方法
4.3 集成开发环境(IDE)和调试工具
4.4 软件测试和调试
5.软件项目管理
5.1 软件项目规划和组织
5.2 项目进度和资源管理
5.3 项目风险管理
5.4 质量管理与配置管理
6.软件工程度量与评估
6.1 软件度量概述
6.2 软件度量指标与度量方法
6.3 软件质量评估与改进
7.软件维护与演化
7.1 软件维护概述
7.2 维护过程与维护方法
7.3 软件重构与演化
8.软件工程的伦理和专业责任
8.1 软件工程的伦理问题
8.2 软件工程的专业责任
附件:
本文档涉及的法律名词及注释:
1.版权:一种法律保护措施,确保作品的原创性和独立性。
2.知识产权:指由人们的智能活动所创造的权利,包括专利权、著作权等。
3.商标:用以区别商品或服务来源的记号,被注册后获得权益
保护。
4.隐私保护:保护个人信息和隐私不被非法或未经授权的使用、泄漏、外传等。
软件工程知识点汇总

软件工程知识点汇总软件工程知识点汇总
1、软件需求
1.1 需求概述
1.2 需求分类
1.3 需求获取与分析
1.4 需求规格说明
2、软件设计
2.1 面向对象设计
2.2 结构化设计
2.3 数据库设计
2.4 用户界面设计
2.5 系统架构设计
3、软件编码
3.1 编程语言选择与使用
3.2 编码规范
3.3 软件开发环境
3.4 编码工具和技术
3.5 调试和测试
4、软件测试
4.1 测试基础知识
4.2 测试方法与策略
4.3 白盒测试
4.4 黑盒测试
4.5 功能性测试
4.6 性能测试
4.7 集成测试
4.8系统测试
4.9用户验收测试
5、软件项目管理
5.1 项目计划与进度管理 5.2 风险管理
5.3 人员管理
5.4 项目质量管理
5.5 变更管理
5.6 项目交付与部署
6、软件维护与升级
6.1 软件维护分类
6.2 软件维护流程
6.3 软件升级策略
6.4 软件版本控制
7、软件安全
7.1 信息安全基础知识
7.2 软件安全需求与设计
7.3 安全测试与评估
7.4 安全漏洞修复与更新
附件:
法律名词及注释:
1、版权: 对一种表达形式的独特创造进行保护的法律概念。
2、商标: 表示和区分特定商品或服务来源的标识符。
3、专利: 对于新发明的独特权利,使得发明人可以禁止他人在专利权期限内使用该发明。
4、法律责任: 违反法律规定而应承担的法律后果。
软件工程基本知识总结

软件工程书上考点总结(选择、填空、判断、简答)大题没有选择或判断或考点总结:1、软件:在计算机系统中,与硬件相互依存的逻辑部件,它由程序、数据及相关文档组成。
2、软件工程:是指导计算机软件开发和维护的工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。
3、软件的特点:3、可行性研究的目的:可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。
4、可行性研究的任务:一般都要从经济、技术、操作和法律四个方面来研究每种解法的可行性,做出明确结论来供用户参考,包括:经济可行性、技术可行性、操作可行性和法律可行性。
5、软件需求分析:软件需求分析是软件开发期的第一个阶段,是软件生存周期最重要的一步,是关系到软件开发成败的关键步骤6、需求分析的任务:需求分析的任务还不是确定系统怎样完成它的工作。
需求分析的任务仅仅是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰而且具体的需求。
7、需求获取的常用方法(1)客户访谈:分为正式的和非正式的两种基本形式(2)建立联合分析小组(3)问题分析与确认8、需求分析的常用方法:(1)功能分解方法(2)结构化分析方法(3)信息建模方法(4)面向对象方法(目前最主流的方法)9、软件总体设计的目标和任务:总体设计阶段的基本目标就是回答“概括地说,系统应该如何实现?”这个问题。
总体设计的另一项任务是设计软件的总体结构,即确定系统中的每个程序是由哪些模块组成的,每个模块的功能以及模块和模块之间的接口、调用关系等。
10、详细设计的根本目的:确定应该怎样具体实现所要求的系统。
经过这个阶段的设计工作,应该得出对目标系统的精确描述,具体的就是为软件结构图中每一个模块确定采用的算法和块内数据结构,用某种选定的详细设计工具更清晰地描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序.11、人机界面设计原则:(1)让用户驾驭软件,而不是软件驾驭用户。
软件工程基础知识点总结

1 是计算机系统中与硬件相互依存的另一部份,是包括程序、数据以及相关文档的完整集合。
1) 程序是软件开辟人员根据用户需求开辟的、用程序设计语言描述的、适合计算机执行的指令(语句)序列。
2) 数据是使程序能够正常操作信息的数据结构.3)文档是与程序开辟、维护和使用有关的图文资料。
国标(GB)计算机软件的定义:与计算机系统的操作相关的计算机程序、规程、规则以及可能有的文件、文档及数据。
21)软件是一种逻辑实体,而不是物理实体,具有抽象性,是计算机的无形部份;2)软件的生产与硬件不同,它没有明显的制作过程;3)软件在运行、使用期间不存在磨损、老化问题;4)软件的开辟、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移植的问题;5)软件复杂性高,成本昂贵;6)软件开辟涉及诸多的社会因素3按照功能可以分为:应用软件、系统软件、支撑软件(或者工具软件) 1)应用软件是为解决特定领域的应用而开辟的软件.2)系统软件是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件。
3)支撑软件是介于系统软件和应用软件之间,协助用户开辟软件的工具软件。
4问题。
软件危机主要体现在以下几个方面:① 软件开辟的实际成本和进度估计不许确② 开辟出来的软件往往不能使用户满意③ 软件产品的质量不高,存在漏洞,需要时常打补丁④ 大量已有的软件难以维护⑤ 软件缺少有关的文档资料⑥ 开辟和维护成本不断提高,直接威胁计算机应用的扩大⑦ 软件生产技术进步缓慢,跟不上硬件的发展和人们需求增长5 .软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来开辟与维护软件的学科.1)研究软件工程的主要目的就是在规定的时间、规定的开辟费用内开辟出满足用户需求的高质量的软件系统(高质量是指错误率低、好用、易用、可移植、易维护等)。
2)软件工程的三个要素:方法、工具和过程。
①方法:完成软件工程项目的技术手段;②工具:支持软件的开辟、管理、文档生成;③过程:支持软件开辟的各个环节的控制、管理。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
可行性研究1、软件工程项目可行性研究实质是一次大大压缩和简化了的分析和设计过程,主要在较高层次上以较抽象的方式进行,其目的是在尽可能短的时间内以最小的代价确定该项目是否能够开发,是否值得开发。
2、可行性研究不是去开发一个软件项目,而是研究该项目能否在给定的资源和给定的时间开发,是否能够开发,是否值得开发。
3、可行性研究的内容:技术可行性(相关技术分析、资源有效性分析、风险分析);经济可行性(成本估计、效益分析);操作可行性,又称社会可行性和运行可行性(就政治意识形态、法律法规、社会道德、民族意识以及系统运行的组织机构或人员等,分析系统能否运行及运行好坏程度)。
4、可行性研究的步骤:对系统目标和范围的定义→对现行系统进行分析研究→导出新系统的逻辑模型→设计新系统的物理方案→推荐可行的方案。
5、可行性研究阶段,成本估计的方法:①基于已完成的类似项目进行估算;(自顶向下估计)缺点:对开发中某些局部问题难以预估,导致考虑不周②使用简单的“分解技术”来进行成本及工作量的估算;(自底向上估计)③使用经验模型进行成本及工作量的估算。
(经验算法估计)主要经验模型:静态单变量模型;动态多变量模型;COCOMO模型。
COCOMO模型:Boehm将软件成本估算分成3个由粗到细的层次:基本层、中间层和详细层。
每个层次又按软件项目的应用领域和复杂程序分成3种类型:组织型、半独立型和嵌入型。
6、效益分析:系统的效益有两部分:经济效益和社会效益。
经济效益是指用使用新系统而增加的收入,包括使用新系统节省的运行费用,是一种有形的效益。
(经济效益度量指标:货币的时间价值、纯收入、投资回收期、投资回收率);社会效益是一种无形的效益,主要从性质上、心理上进行衡量,很难直接量化,但在某些情况下,无效的效益能转化成有形的效益。
7、系统流程图是描绘物理系统的传统工具,可以采用系统流程图来描述项目的大概业务处理流程,其基本思想是用图形符号以黑盒子形式描绘系统各部件(如程序、数据库、文档、人工过程等)。
系统流程图表达的是信息在系统中各部件之间流动的情况,而不是对信息进行加工处理的控制过程。
(信息有流动无处理)8、数据流图描述的是系统的逻辑模型,图中没有具体的物理元素,只是描绘信息在系统中的流动和处理情况。
(数据流图是逻辑系统的图形表示)软件项目计划1、软件项目计划的目标就是提供一个框架,使管理者有能够对资源、成本、风险及进度进行合理的估算分析和调度,为软件工程过程提供管理依据。
项目计划一般由软件项目的管理员、系统分析员与用户经过“可行性研究后”共同制订,并在“需求分析”阶段确定软件系统的详细需求后定稿,随着项目的进展定期更新。
2、软件项目计划的主要内容:风险分析、进度安排和项目组织。
3、风险分析活动:风险标识(项目风险、技术风险和商业风险)、风险估计、风险评价和风险管理与监控。
4、进度安排方法:PERT技术和Gantt图方法(看看书上的过程)。
5、小结:由于经过风险分析,能够做到“知已知彼”(彼即风险),从而“百战不殆”,使得开发者能够战胜风险带来的损失,使项目成功。
进度安排的落空不仅会造成项目开发成本的提高,造成有形的经济损失,而且会使客户的不满意度、不信任度增加,造成无形的经济损失。
在软件开发过程中,人是最活跃的部分。
需求分析1、需求分析是指开发人员通过细致的调查分析,详细、准确和完整地理解用户需要什么样的软件,将用户非形式的需求陈述转化为完整的需求定义,再将需求定义转换到相应的需求规格说明的过程。
2、通常,把一整套的需求分析方法、技术和工具等的集合称为建模方法。
3、需求收集的方式:访谈(程式化的访谈和非程式化的访谈);问卷调查;使用用例;用户资料收集;建立快速原型。
4、需求分析主要任务:问题分析、需求描述、需求评审。
5、需求分析主要目的:确定用户需要系统做什么。
6、需求规格说明:需求分析的主要成果是得到需求规格说明(SRS)。
需求规格说明为用户、分析人员、设计人员和测试人员之间的理解和交流提供了方便,是系统设计、测试和验收的依据。
大量统计数字表明,软件系统中15%的错误起源于需求的错误。
一个有效的需求规格说明应具有如下特征:正确性、无歧义性、完整性、一致性、可验证性、可理解性、可修改性、可追踪性和注释等。
需求分析说明书的作用:①用户与开发人员之间的合同②概要设计的依据③软件验收测试的依据。
数据流建模(功能建模)因为盒子内部的结构如何无从得知。
16、IDEF0图:也称为活动图形。
主要元素是简单的盒子及箭头。
盒子代表系统的功能(活动)。
箭头表示系统处理的数据约束,可以是具体的事物,也可以是抽象的信息。
IDEF0功能建模方法要求一张IDEF0图中的盒子最多只能有6个(子图形还要求不少于3个)。
17、IDEF0建模步骤:IDEF0方法在详细的功能需求调研基础上,用严格的自顶向下、逐层分解的方式来进行;确定建模的范围、观点及目的;建立系统的内外关系图,即A-0图;建立A0图的一系列子图;书写文字说明。
(P49)IDEF1X(数据建模)18、IDEF1X数据建模:IDEF1X方法是IDEF1方法的扩展版本。
IDEF1用来表示系统的信息结构和语义。
IDEF1X方法增强了图形的表达能力,丰富了语义和简化了开发过程。
19、IDEF1X图:实体是具有相同属性或特征的现实或抽象事物的集合,这个集合中的一个元素便称为实体的一个实例。
在一张IDEF1X图中,一个实体只能在图中出现一次。
属性:表示现实或抽象的事物一种特性或性质。
IDEF1X建模步骤:0阶段——确定建模目标和计划;1阶段——定义实体;2阶段——定义联系;3阶段——定义键;4阶段——定义属性。
需求分析(2)面向对象方法1、UML建模语言:是一种可以应用于任面向对象软件开发方法的标记法和语义语言。
2、UML各种图:动态模型图(反映系统行为):用例图、顺序图、协作图、状态图、活动图。
静态模型图(反映系统结构):类图、包图、组件图、部署图、对象图。
3、UML特点:统一了面向对象方法的基本概念(UML融合了Booch方法、OMT方法和OOSE方法中的有关概念);具有更强的建模能力(正如G. Booch 在他的一本书中所说:“如果你有好的思想,那它也是我们的。
”);独立于特定的开发语言和开发过程。
4、UML应用:需求分析(用例图---功能的需求;类图---静态结构;状态图、顺序图和协作图等---类之间所需的协作,实现用例。
);设计(定义软件系统中的技术细节用到的类,如引入处理用户交互的类、处理数据的类、处理通信和并行性的类等。
);实现(组件图---代码组件的物理结构以及组件之间的关系;部署图---硬件的拓扑结构和组件的分布。
);测试(类图---单元测试;组件图、协三水哥呕心沥血之作,只为与你相约中南作图---集成测试;用例图---确认测试)概要设计1、软件设计:需求分析:软件系统必须“做什么”;软件设计:“如何做”才可以满足需求规格说明中规定的各项需求。
2、从工程管理的角度来看,软件设计通常分为两步,即概要设计和详细设计。
3、概要设计的基本目的是回答“概括地说,软件系统应如实现”这一问题。
因此,概要设计有时称为初步设计或总体设计。
概要设计的主要任务是确定软件的总体结构,即确定软件系统的组成成份(子系统或模块)以及各组成成份之间的相互关系。
方法:结构化方法、面向对象方法。
详细设计是对概要设计结果的进一步细化,其主要任务是确定软件系统各组成成份内部的数据结构和算法过程。
4、抽象与求精:抽象,即过程抽象、数据抽象和控制抽象。
抽象使得设计人员能够避开过早地陷入细节之中刻画过程和数据。
求精能够帮助设计人员随着设计过程的深入而不断呈现更低层次的信息。
5、模块化和信息隐藏:软件应该分解成可单独命名的且可访问的部件,这些部件称为模块。
由Parnas倡导的“信息隐藏”是指模块中所包含的信息(包括数据和过程)对不需要这些信息的其它模块是不可访问的。
抽象有助于定义组成软件的过程(或信息)实体;隐藏定义并加强了对模块内部访问的约束,有助于分离模块的实现者和使用者。
6、模块独立性:模块独立性是模块化、抽象和信息隐藏的直接产物。
模块的功能独立性可以使得模块既容易开发又容易维护。
模块独立性有两个定性的度量标准:内聚度和耦合度。
7、内聚度:模块内部各成分联系紧密的程度。
内聚度越高,模块的独立性就越强。
内聚程度从高到低的顺序是:功能内聚、信息内聚、通信内聚(数据相关—数据或标记耦合)、过程内聚(程序流程图;过程相关---控制耦合)、时间内聚(初始化模块)、逻辑内聚和偶然内聚。
设计模块时,应该尽可能避免使用偶然内聚等低级内聚的模块,争取高级内聚的模块,以提高模块的独立性。
8、耦合度:模块之间相互关联紧密的程度。
模块的耦合度越低,模块的独立性越强。
耦合程度从低到高也可分为七种:非直接耦合、数据耦合、标记耦合、控制耦合、外部耦合、公共耦合、内容耦合。
在设计模块时,应该尽量使用数据耦合,必要时使用标记耦合,少用控制耦合,限制使用公共耦合,最好不要使用内容耦合。
结构化设计方法- 5 -面向数据流图的软件结构设计面向数据流图的设计方法是一种结构化设计方法。
过程:首先,研究、分析和审查数据流图,确保数据流图符合实际,必要时还要进一步精化数据流图;然后,确定数据流图的类型,即变换型数据流或事务型数据流;再依据数据流图的类型采用变换分析法或事务分析法导出系统初始的软件结构;最后,依据软件设计原理和一些优化策略改进系统初始的软件结构,形成最终的软件结构。
1、在结构化设计方法中,软件结构是软件系统模块层次结构,反映了整个系统功能及其之间的关系。
软件结构图的主要内容有:模块、模块间的调用关系和模块之间传递的信息。
2、模块:在软件系统的软件结构图中,有6种类型的模块:传入模块、传出模块、变换模块、协调模块、源模块和漏模块。
在软件结构图中,模块用方框来表示,并用名字标识该方框。
3、调用关系:在软件结构图中,模块间的调用关系主要有三种:顺序调用、选择调用和循环调用。
方框之间的箭头表示模块之间的调用与被调用关系。
模块间调用的次序,习惯上是从左至右。
4、数据或控制信息:在软件结构中,模块传递的信息用带名称的短线箭头来表示。
箭头方向代表信息传递的方向。
若箭头线尾是带空心圆圈,则表示该箭头线代表的是数据;若箭头线尾是带实心圆圈,则表示该箭头线代表的是控制。
5、数据流变换分析法:一种将变换型数据流图映射为变换型软件结构图的软件系统设计方法。
(P101)6、数据流事务分析法:是将事务型数据流图映射为事务型软件结构图的软件系统设计方法。
(P103)7、软件结构图的改进:模块大小适中、模块扇入扇出合理、模块的作用域应在控制域内。
模块的扇出是指模块直接调用多少其它模块。