当前位置:文档之家› 计算机导论课件-第8章 软件工程

计算机导论课件-第8章 软件工程


8.2 系统分析
8.2.2 面向对象分析
2. 类图 【例】电梯的一个类图。
按钮
电梯按钮
has 1
电梯
楼层按钮
has 1
8.2 系统分析
8.2.2 面向对象分析
3 . 状态图 状态图是描述一个实体基于事件反应的动态行为,显示了该实体如何根 据当前所处的状态对不同的事件做出反应。通常,UML状态图可用于表 示类、角色、子系统或组件的复杂行为。
8.2 系统分析
8.2.2 面向对象分析
1 . 用例图
用例图由参与者(Actor)、用例(Use Case)、系统边界和箭头组成 。
➢ 矩形表示系统边界或系统; ➢ 圆角矩形表示用例的行动;
➢ 椭圆形表示用例;
➢ 线条人物表示参与者;
➢ 箭头表示参与者和系统间的关联关系。箭头尾部用来表示启动交互的 一方,箭头头部用来表示被启动的一方。
注意:软件系统模块间的内聚必须最大化。
8.3 系统设计
8.3.2 面向对象设计
在面向对象设计中,设计阶段通过详细描述类的细节(列出类的属性 和方法)来继续。在面向对象设计中,电梯设计中的4个类如下图所示。
8.4 系统实现
在系统实现阶段,程序员为面向过程设计中的模块编写程序单元, 或者实现面向对象设计中的类。
8.1 软件生命周期
8.1.3 软件工程的三要素
目前,最广泛应用的软件工程方法学分别是传统方法学(面向过程方法 学)和面向对象方法学。
1.传统方法学 传统方法学也称面向过程方法学,它采用结构化技术(结构化分析 、结构化设计和结构化实现)来完成软件开发的各项任务,并使用 适当的软件工具或软件工程来支持结构化技术的运用。 传统方法学把软件生命周期的全过程依次划分为若干个阶段,然后 顺序地完成每个阶段的任务。采用此方法开发软件,从对问题的抽 象逻辑分析开始,逐阶段地按顺序进行开发。
8.1 软件生命周期
8.1.3 软件工程的三要素
2.面向对象方法学 与传统方法学相反,面向对象方法学则把数据和行为看成同等重要,它是 一种以数据为主线,把数据和行为紧密地结合起来的方法。 概括地说,面向对象方法学具有下述4个要点: (1)把对象(object)作为融合了数据和行为的软件构件。 (2)把所有的对象都划分成类(class)。 (3)按照父类(或称为基类)与子类(或称为派生类)的关系,把若干 个相关类组成一个层次结构的系统(也称为类等级)。 (4)对象彼此间仅能通过发送消息互相联系。
8.4.1 语言选择
在系统实现阶段,工程团队需要从面向过程语言中选择一种或一组 语言。不同的编程语言有着不同的优势,要根据实际项目的特性去选择 编程语言,而有的项目可能同时用到多种编程语言。
8.4.2 软件质量
一般来讲,软件质量可以用三个广义的属性来度量:可操作性、可 维护性和可迁移性。每个属性还可以展开,如下图所示。
注意:软件系统中模块间的耦合必须最小化。
8.3 系统设计
8.3.1 面向过程设计
2 . 模块化 (2)内聚性
内聚性也称块内联系,是指模块之间的功能强度的度量,即一个模 块内部各个元素彼此结合的紧密程度的度量。
模块中组成元素结合的越紧密,模块的内聚性就越高,模块的独立 性也就越高。理想的内聚性要求模块的功能应明确、单一,即一个模块 只做一件事情。
8.1 软件生命周期
8.1.1 软件的概念
一般来讲,计算机软件有三部分组成:程序、数据结构和文档。 (1)程序是指为进行某项活动或过程所规定的执行途径,即数据与 指令的集合; (2)数据结构是指数据元素的集合和数据元素之间的关系的集合, 是计算机存储、组织数据的方式; (3)文档则是描述程序开发过程、开发方法及使用说明等资料的集 合。
8.2 系统分析
8.2.2 面向对象分析
1 . 用例图
【例】老式电梯的用例图。图中的系统是电梯,动作者是电梯的使用
者。这里有两个用例:按电梯按钮(在每层的大厅)和在电梯内按楼
层按钮。
电梯
使用者
按电梯按钮 按楼层按钮
8.2 系统分析
8.2.2 面向对象分析
2. 类图 类图是显示了模型的静态结构,特别是模型中存在的类、类的内部 结构以及它们与其他类的关系等。 类图由许多说明性的模型元素组成,例如类、包和它们之间的关系 ,这些元素和它们的内容互相连接。类图最常用的是UML图,显示 类、接口以及它们之间的静态结构和关系,它用于描述系统的结构 化设计。
8.3 系统设计
在设计阶段,系统所有的组成部分都被定义。系统设计内容主要包 括:确定设计方针和方法;将系统分解为若干子系统;确定各子系统的 目标、功能及其相互关系;决定对子系统的管理体制和控制方式;对各 子系统进行技术设计和评价;对全系统进行技术设计和评价等。
8.3.1 面向过程设计
1. 结构图 在面向过程设计中,说明模块间关系的常用工具是结构图。 结构图是指以模块的调用关系为线索,自上而下的连线表示调用关系并 注明参数传递的方向和内容,从宏观上反映软件层次结构的图形。
8.2 系统分析
8.2.1 面向过程分析
高级程序设计语言中,通常有三种不同的程序结构,即:顺序结构、 选择结构和循环结构,它们的流程图如下。
8.2 系统分析
8.2.2 面向对象分析
如果实现过程使用的是面向对象语言,那么分析过程就是面向对象分析 过程。此情况下可以使用多种工具来编写规格说明文档,例如用例图、 类图、状态图等。 1 . 用例图 用例图(User Case)是指由参与者(Actor)、用例(Use Case)以 及它们之间的关系构成,用于描述系统功能的视图。用例图主要用于对 系统、子系统或类的功能行为进行建模。
1 . 软件工程的基本原理
中大型软件开发过程本身就是一项复杂的工程活动,需要投入大量的人
力、物力和财力,就像建筑工程一样,必须按照工程方法学来标准化管
理。一般来讲,软件工程应该遵循以下七条基本原理:
(1)用分阶段的生存周期计划严格管理
(2)坚持进行阶段评审
(3)实行严格的产品控制
(4)采用现代程序设计方法
8.2 系统分析
8.2.1 面向过程分析

数据的源点/终点

处理

文件(数据存储)
数据流
图8-2 数据流图的基本符
8.2 系统分析
8.2.1 面向过程分析
【例】下图是数据流图,反映了仓库管理员在接收事务(如出库事 务)后接下来必须完成的事务的过程,并且体现了过程中产生的数据清 单(如:库存清单、定货报表)的流向和处理过程。
8.2 系统分析
8.2.1 面向过程分析
1 . 数据流图 数据流图是结构化分析方法中使用的工具,是从数据传递和加工角度, 以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统 必须完成的逻辑功能,所以它只是一种功能模型。 在面向过程开发方法中,数据流图是需求分析阶段产生的结果,它们使 用4种符号,如图8-2所示:
验证过程 确认过程 联合评审过程 审核过程 问题解决过程
易用性过程
生存周期组织过程 管理过程 改进过程
资产管理过程 领域工程过程
基础设施过程 人力资源过程 重用大纲管理过程
图8-1 国标GB/T 8566-2007的结构
8.1 软件生命周期
8.1.3 软件工程的三要素
通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方 法学(Methodology),软件工程方法学包含3个要素:方法、工具和 过程。 ➢方法是完成软件开发的各项任务的技术方法,是回答“怎样做”的问 题; ➢工具是为运用方法而提供的自动的或半自动的软件工程支撑环境; ➢过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规 定了完成各项任务的工作步骤。
(5)结果应能清楚地审查
(6)开发小组的人员应该少而精
(7)不断改进软件工程实践的必要性
8.1 软件生命周期
8.1.2 软件工程的含义
2 . 软件生命周期 软件的生命周期,亦称软件的生存周期。是按开发软件的规模和复杂程 度,从时间上把软件开发的整个过程(从计划开发开始到软件报废为止 的整个历史阶段)进行分解,形成相对独立的几个阶段,每个阶段又分 解成几个具体的任务,然后按规定顺序依次完成阶段的任务并规定一套 标准的文档作为各个阶段的开发成果,最后生产出高质量的软件。
8.ቤተ መጻሕፍቲ ባይዱ 系统分析
8.2.1 面向过程分析
【例】下图是反映教师、课程、学生三个实体之间关系的ER图。教 师与课程之间是多对多的关系,学生与课程之间是多对多的关系。
8.2 系统分析
8.2.1 面向过程分析
3 . 程序流程图 程序流程图(也称框图)是程序分析中最基本、最重要的分析技术 ,也是进行程序流程分析的最基本的工具。 程序流程图用一组框图符号来表示程序中的各种操作,它是人们对 解决问题的方法、思路或算法的一种描述。程序流程图的基本符号 及符号的意义如下图所示:
8.3 系统设计
8.3.1 面向过程设计
1. 结构图 结构图的基本图形符号如下图所示。
8.3 系统设计
8.3.1 面向过程设计
1. 结构图 【例】结构图的实例(“销售订单处理”功能结构图)如下图所示。
8.3 系统设计
8.3.1 面向过程设计
2 . 模块化 模块化是指解决一个复杂问题时自顶向下逐层把系统划分成若干子模块 的过程,通过模块的不同组合得到不同品种、不同规格的产品。 模块化意味着将大项目分解成较小的部分,以便能够容易理解和处理, 换言之,模块化意味着将大程序分解成能相互通信的小程序。 模块化是一种将复杂系统分解成多个更好管理的子模块的方式,当系统 被分解成模块时,主要关心两点:耦合性和内聚性。
8.1 软件生命周期
8.1.1 软件的概念
➢按功能分计算机软件可分为系统软件、支撑软件和应用软件三 大类。 ➢按规模分计算机软件又可分为:微型、小型、中型、大型和超 大型软件; ➢按工作方式分计算机软件可分:实时处理软件、分时处理软件 、交互式处理软件和批处理软件。
相关主题