软件工程基础课件

上传人:F****n 文档编号:88317319 上传时间:2019-04-23 格式:PPT 页数:87 大小:205KB
返回 下载 相关 举报
软件工程基础课件_第1页
第1页 / 共87页
软件工程基础课件_第2页
第2页 / 共87页
软件工程基础课件_第3页
第3页 / 共87页
软件工程基础课件_第4页
第4页 / 共87页
软件工程基础课件_第5页
第5页 / 共87页
点击查看更多>>
资源描述

《软件工程基础课件》由会员分享,可在线阅读,更多相关《软件工程基础课件(87页珍藏版)》请在金锄头文库上搜索。

1、第5章 软件工程基础,5.1 基本概念 5.2 软件分析 5.3 软件设计 5.4 软件测试和维护,5.1 基本概念,5.1.1 软件工程学 5.1.2 软件生命期 5.1.3 软件方法和工具,5.1.1 软件工程学,1 软件危机:人们开发优质软件的能力大大落后于计算机硬件日新月异的进展和社会对计算机软件不断增长的需求,这种状况已经严重妨碍了计算技术的进步。 2 软件危机的表现: 系统的质量却难以保证。 所研制的软件常常不符合用户的实际需要。 软件维护困难 实际成本大大高于预计成本,实际进度慢于预期进度,5.1.1 软件工程学,3 软件工程学:采用工程的概念、原理、技术和方法来研制和维护软件的

2、方法体系,它将先进的组织、管理技术和开发技术融合在一起,成为研制大型软件系统必须采用的一种高效率的手段。 4 软件工程的原理: 严格按照计划进行管理 坚持进行阶段评审 实行严格的产品控制 采用现代化的程序设计技术 结果要能清晰地审查 开发小组成员的素质要好,数量却不宜多 要承认不断改善软件工程实践的必要性,5.1.2 软件生命期,5 软件生命期:从时间角度对软件开发和维护进行分解,把软件系统生存期分为若干个阶段,每个阶段都有确定的任务,并产生一定规格的文档交送给下一阶段,下一阶段在前阶段提供的文档的基础上继续开展工作。 6 软件的生命期: 分析:理解和表达用户的要求 设计:建立系统的结构 编写

3、:写程序 测试:发现和排除错误 运行:维护,5.1.3 软件方法和工具,7 软件方法:是指导研制软件的某种规范,它告诉人们“什么时候做什么以及怎么做”。 8 软件方法的内容: 明确的工作步骤 具体的文档格式 确定的评价标准,5.1.3 软件方法和工具,9 软件工具:用来实现软件研制过程的自动化,提高软件的劳动生产率和可靠性,降低软件生产成本。 10 软件方法和软件工具的关系: 软件方法和软件工具之间有着密切的联系,方法是主导,工具则是辅助的,软件方法提出了明确的工作步骤和标准的文档格式,这是设计软件工具的基础。 11 软件工程环境:是方法和工具的结合,它提供一组能支持软件开发、维护、管理、质量

4、控制等各个方面的软件工具,为开发人员提供了一个良好的工作环境。,5.2 软件分析,5.2.1 什么是软件分析 5.2.2 结构化分析方法 5.2.3 数据流图 5.2.4 数据字典 5.2.5 小说明 5.2.6 面向对象的分析方法,5.2.1 什么是软件分析,软件分析:软件开发的第一阶段,其任务是用户和软件人员双方一起来充分理解用户的要求,并把共同的理解明确地表达成一份书面资料系统说明书。,问题定义:要解决的问题是什么?,可行性分析:要解决上一步确定的问题有行得通的解决办法吗?,需求分析:确定系统必须具有哪些功能。,5.2.2 结构化分析方法,1 结构化分析方法的基本思想:SA采用了“由顶向

5、下逐层分解”的方式,首先将系统分解若干个子系统,如果这些子系统还很复杂,则将它们再进一步细分,如此继续下去,直到子系统足够简单能清楚地被理解和表达为止。 2 结构化分析的过程可分为四步进行: (1) 理解当前的现实环境,建立当前人工系统的物理模型 (2) 从当前系统的物理模型抽象出当前系统的逻辑模型 (3) 分析目标系统与当前系统在逻辑上的差异,建立目标系统的逻辑模型 (4) 对目标系统的逻辑模型作补充。,5.2.2 结构化分析方法,3 SA分析的系统说明书的组成: (1) 一套分层的数据流图。 (2) 一本数据词典。 (3) 一组小说明。 (4) 补充材料,5.2.3 数据流图,1 数据流图

6、的组成: (1) 数据流: (2) 加工: (3) 文件: (4) 数据流的源点和终点: 2 画数据流图的步骤: (1) 画系统的输入输出 (2) 画系统的内部 (3) 画加工的内部 (4) 标记数据流和加工,5.2.3数据流图,3 分层数据流图:由顶层、底层和中间层组成 (1) 顶层:由一个加工和若干个输入、输出数据流组成,它定义了系统的边界。 (2) 底层:由一些不必在细分的加工组成,这些加工称为基本加工或功能单元。 (3) 中间层:是上一层分解的结果,它描述了某个加工的分解,而它的组成部分又可能进一步被分解。 注:较大的系统中间层可达8、9层之多,较小的系统也可没有中间层。,5.2.3

7、数据流图,4 分层数据流图的优点: (1) 分层数据流图适用于由顶向下的分析方法,由此建立的系统说明书也可由顶向下地阅读。 (2) 页与页之间没有联线。 (3) 所有的图都可以画在一张大小适中的纸上。 5 分层数据流图的画法: (1) 确定父子关系 (2) 给子图和加工编号 (3) 检查父图和子图的平衡 (4) 检查局部文件 (5) 掌握适当的分解程度 (6) 确定底层,5.2.3 数据流图,6 改进数据流图: (1) 检查数据流和加工的名字 (2) 检查父图和子图的平衡 (3) 检查数据是否守恒 (4) 检查对文件的使用 (5) 排除错误的概念,5.2.4 数据词典,1 数据词典:对数据流图

8、中出现的每一个数据流名、每一个文件名和每一个基本加工名进行定义,它们组成的集合就是数据词典。 2 数据词典描述内容的准则: (1) 数据流图中出现的每一个数据流名、每一个文件名和每一个基本加工名在词典中都应有一个条目给出这个名字的定义。 (2) 数据词典的结构是由顶向下、逐步分解的分层结构。 (3) 进行定义时所用到的词汇都应具有明确的概念,人们对其含义只能有一种理解。 (4) 定义不允许有任何重复 (5) 所有条目应按“字典序”来编排,5.2.4 数据词典,3 数据词典的条目: (1) 数据流条目:给出某个数据流的定义。 (2) 文件条目:给出某个文件的定义 (3) 数据项条目:给出某个数据

9、单项的定义 4 数据词典的实现方式: (1) 人工管理的数据词典 (2) 计算机管理的数据词典,5.2.5 小说明,1 小说明:精确地描述一个基本加工“做什么”。 2 小说明的描述方式: (1) 结构化语言:介于自然语言和形式语言之间的一种半形式语言。 (2) 判定表:适合组合条件的判定 (3) 判定树:适合组合条件的判定,图形方式更直观,易被理解。,5.2.6 面向对象的分析方法,对象抽象的方法: (1) 类化 (2) 一般化和继承 (3) 集约化 (4) 组合化,5.3 软件设计,5.3.1 什么是软件设计? 5.3.2 结构化设计方法 5.3.3 块间联系和块内联系 5.3.4 改进结构

10、图 5.3.5 从数据流图导出初始结构图 5.3.6 面向对象的设计方法,5.3.1 什么是软件设计,1 软件设计的任务:将用户要求转换成一个具体的设计方案。 软件设计可分为总体设计和详细设计两步: 2 总体设计:决定系统的模块结构。 (1) 如何将系统划分成一个个模块 (2) 模块间传送什么数据 (3) 模块间的调用关系如何 (4) 如何评价模块结构的质量,5.3.1 什么是软件设计,3 详细设计:具体考虑每一个模块内部采用什么算法。 4 设计阶段的主要工作结果:模块说明书,包括模块结构图、模块的功能说明两部分。 5 模块结构图:描述了系统由哪些模块组成以及模块之间的调用关系。 6 模块的功

11、能说明:列出每个模块的名字、输入数据、输出数据、功能以及其他种种性质和限制等。 模块说明书是编写程序的基础,也是测试的依据。 软件系统的质量及一些其他特性主要是由它的结构决定的。,5.3.2 结构化设计方法,1 结构化设计方法(SD):将系统设计成由相对独立、单一功能的模块组成的结构。 提出了评价模块结构质量的两个具体标准:块间联系和块内联系,还给出了从表达用户要求的数据流图导出模块结构的原则。 2 结构图:描述了软件系统的模块结构,并反映了块间联系和块内联系等特性。 (1) 模块 : (2) 调用: (3) 数据:调用箭头上的注释。,5.3.2 结构化设计方法,1 画结构图时应注意: (1)

12、 一个模块在结构图中只能出现一次。 (2) 为结构图中的每一个成分适当地命名 (3) 模块间传送的数据应按调用模块使用的名字命名 (4) 辅助性符号:菱形表示有条件调用;弧形箭头表示循环调用;空心圆表示传递的是数据;实心圆表示传递的是控制信息。 (5) 应将整个结构图画在一张纸上。 (6) 画结构图的一般习惯是:输入模块在左,输出模块在右,计算模块在中间。,5.3.2 结构化设计方法,2 模块独立性的度量标准:块间联系和块内联系。 (1) 块间联系:衡量不同模块之间相互依赖的紧密程度。 (2) 块内联系:衡量一个模块内部各个成分之间结合的紧密程度。 3 SD方法的目标:使块间联系最小,块内联系

13、最大。 4 SD方法分两步进行: (1) 建立一个满足系统说明书要求的初始结构图 (2) 对结构图做逐步改进,以提高块内联系和减少块间联系,5.3.3 块间联系和块内联系,1 块间联系:也称耦合,它是对模块独立性的直接衡量,块间联系越小就意味着,模块的独立性越高。 2 块间联系的衡量: (1) 方式:块间联系是通过什么方式进行的 (2) 作用:块间共用的信息是作什么用的 (3) 数量:块间共用信息的多少,5.3.3 块间联系和块内联系,3 块间联系的类型: (1) 数据连接:数据型参数 (2) 特征连接:都与同一个数据结构有关 (3) 控制连接:控制型参数 (4) 公共连接:共同使用全局数据

14、(5) 内容连接:直接访问另一模块的数据。 4 设计准则:使每个模块用尽可能清楚的方式,通过CALL语句调用其他模块,模块间传递数据型参数,而且参数的个数应尽可能少。,5.3.3 块间联系和块内联系,1 块内联系:也称内聚,指模块内部各个成分之间的联系,块内联系越大,模块的相对独立性越高。 2 块内联系的类型: (1) 功能性:一个模块只是针对一个具体的任务 (2) 顺序性:模块中某个成分的输出是另一个成分的输入 (3) 通信性:模块中的成分引用共同的数据 (4) 瞬时性:模块中的成分是同时间有关的 (5) 逻辑性:将几个逻辑上相似的功能放到一个模块中 (6) 偶然性:模块中的成分之间实际上没

15、有任何联系。,5.3.3 块间联系和块内联系,功能性块内联系是最强的,偶然性块内联系是最弱的。 3 SD方法的目标:获得功能性的模块,即每个模块都执行一个功能。 注:SD方法的设计总则不能机械的使用,其实逻辑性和瞬时性的块内联系,或用作开关量的参数也往往有易于设计、节省时空等优点,设计人员应该了解各种联系的特点,权衡各方面的利弊。,5.3.4 改进结构图,启发式规则: (1) 完善模块功能 (2) 减少块间联系 (3) 消除重复的功能 (4) 模块的大小要适中 (5) 深度、宽度、扇出和扇入都应适当 (6) 降低模块接口的复杂程度,设计单入口单出口的模块 (7) 尽可能研究整张结构图 (8)

16、逐步满足系统说明书的要求,提高模块的可维护性,5.3.5 从数据流图导出初始结构图,数据流图分为两种类型:变换结构和事务型结构 1 变换分析:从变换型结构的数据流图导出标准形式的程序结构。 2 变换分析的步骤: (1) 找出主加工、逻辑输入和逻辑输出 (2) 设计模块结构的顶层和第一层 (3) 设计中、下层模块,5.3.5 从数据流图导出初始结构图,3 事务分析:从事务型结构的数据流图导出标准形式的程序结构。 2 事务分析的步骤: (1) 设计主模块 (2) 为每一种类型的事务处理设计一个事务处理模块 (3) 为每个事务处理模块设计下层的操作模块 (4) 为操作模块设计细节模块,5.3.6 面向对象的设计方法,根据实体来组织信息系统的逻辑结构。信息系统被划分成若干个模块,每一个模块都负责处理一类实体,以此将实体的结构特征和行为特征集中在一起。 面向对象设计方法产生的模块是类模块。 类模块的优点:系统结构清晰、模块的重用性好、错误被限制在局部范围里、系统的修改也可以被局部化等。,5.4 软件测试和维护,5.4.1 什么是软件测试 5.4.2 白盒法 5.4.3 黑盒法 5

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号