




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、会计学1 软件工程软件工程实践软件工程软件工程实践 软件教研室 软软 件件 工工 程程 知知 识识 体体 系系 软件需求 软件设计 软件测试 软件维护 软件需 求基础 需求过 程 需求获 取 需求分 析 需求规 格说明 需求分 析工具 软件设 计基础 软件设计 关键问题 软件结构 与体系结 构 软件设计质量 的分析与评价 软件设 计符号 软件设计 的策略与 方法 软件测 试基础 测试级 别 测试技 术 与 测 试 相 关 的 度量 测试过 程 软件维 护基础 软件维护 的关键问 题 维护过 程 维护技 术 可行性研究 可行性 研究的 目的 可行性 研究的 过程 系统流 程图 数据流 图 数据字
2、 典 成 本 / 效益分 析 第1页/共140页 软件教研室 1.理解问题(通讯和分析); 2.计划一个解决方案(建模和软件设计); 3.执行计划(编写代码); 4.检查结果的精度(测试和品质保证) 第2页/共140页 软件教研室 可行性研究的目的可行性研究的目的 第3页/共140页 软件教研室 可行性研究的类型可行性研究的类型 1.1.研究型项目的可行性研究分析研究型项目的可行性研究分析 2.2.委托型可行性研究分析;委托型可行性研究分析; 3.3.自主开发性可行性研究分析;自主开发性可行性研究分析; 第4页/共140页 软件教研室 可行性研究解决问题过程的本质可行性研究解决问题过程的本质
3、当前系统 物理模型逻辑模型 逻辑模型物理模型 目标系统 模型化抽象化 怎么做 做什么 实例化 具体化 导 出 理解需求 表达需求 第5页/共140页 软件教研室 第6页/共140页 软件教研室 1.市场分析;市场分析; 2.软件环境分析;软件环境分析; 3.硬件环境分析;硬件环境分析; 4.功能分析;功能分析; 5.动态分析;动态分析; 6.压力分析;压力分析; 第7页/共140页 软件教研室 1.项目效益评估;项目效益评估; 2.社会效益评估;社会效益评估; 3.项目成本核算;项目成本核算; 4.工作计划评估;工作计划评估; 5.项目风险评估;项目风险评估; 可行性研究报告可行性研究报告 可
4、行性研究报告研究型示例可行性研究报告研究型示例 招标文件招标文件 第8页/共140页 软件教研室 加油站基础信息管理系统,是一个定位于加油站基加油站基础信息管理系统,是一个定位于加油站基 本信息、油机信息、油罐信息、加油站督查情况、本信息、油机信息、油罐信息、加油站督查情况、 督查图片、加油站电子地图等信息查询、维护的管督查图片、加油站电子地图等信息查询、维护的管 理系统。该管理系统放在安徽省石油公司内网上,理系统。该管理系统放在安徽省石油公司内网上, 采用网站的形式使用该管理系统,有助于各分公司采用网站的形式使用该管理系统,有助于各分公司 随时查看加油站基础信息,便于对加油站信息的统随时查看
5、加油站基础信息,便于对加油站信息的统 计、查询等。全系统共分为加油站信息管理、人的计、查询等。全系统共分为加油站信息管理、人的 管理、费用管理三个大块。管理、费用管理三个大块。 编写可行性研究报告编写可行性研究报告 第9页/共140页 软件教研室 加油站基础信息管理模块(提供加油 站设备和经营产品的基本信息,如加 油机、油枪和油品的对应关系信息和 油罐相关数据信息-罐容表等) 加油站人员管理模块(提供加油 站人员和班组信息);并客户信 息管理功能 1销售数据管理 2库存数据管理 3进油数据管理 4预收款加油管理 5计帐加油管理 6代储代付管理 7加油站资金管理 8发票管理 9润滑油管理 10I
6、C卡加油管理 数据采集客户端(自 动采集加油机和液位 仪数据) 为ERP和二次物流提 供经营数据 日常 业务 管理 非日 常业 务管 理 1月末盘点 2价格调整 3季节变号 4损溢调整 5油抢校检 6更还主板 7乱码管理 8自用油管理 报表生成(交接班表、销售日报表、付油日报 表、商品盘点月报表、月商品盘点附表、油品 分罐保管表、库存商品明细分类帐表,其他一 些相关业务表) 加油站管理人员 ME管理人员 地市管理人员 省公司管理人员 虚线为相关功能 实线为管理功能 第10页/共140页 软件教研室 数据流图是一种图形化技术,它描述信息流 和数据从输入移动到输出的过程中所经受的 变换 第11页/
7、共140页 软件教研室 第12页/共140页 软件教研室 第13页/共140页 软件教研室 第14页/共140页 软件教研室 抽取数据的源点和终点信息抽取数据的源点和终点信息 分析问题描述,重点提取问题描述中源点和终点信分析问题描述,重点提取问题描述中源点和终点信 息,同时分析与源点和终点有关的各类高抽象度的息,同时分析与源点和终点有关的各类高抽象度的 加工和数据流以及数据存储信息。加工和数据流以及数据存储信息。 处理顺序是:处理顺序是: 1.首先抽取数据的源点和终点信息首先抽取数据的源点和终点信息 2.抽取加工点的信息抽取加工点的信息 3.最后考虑数据流和数据存储信息最后考虑数据流和数据存储
8、信息 (数据流图与程序流不同,程序流图表示的是控制,而数据流图与程序流不同,程序流图表示的是控制,而 数据流图描述的是数据的流向。数据流图描述的是数据的流向。) 第15页/共140页 软件教研室 进一步分解数据流图的加工,数据流和储存信息进一步分解数据流图的加工,数据流和储存信息 分析问题描述,重点细化加工点,处理顺序是: 1. 分析上层加工点的信息,细化加工点信息 2.分析数据流和数据存储信息,细化数据流和数据 存储信息 3.对加工点、数据流和数据存储进行多层次的优化 第16页/共140页 软件教研室 细化结束的准则:是当涉及到如何具体实现细化结束的准则:是当涉及到如何具体实现 一个功能时就
9、不应该再细化了。一个功能时就不应该再细化了。 细化一致性准则:当把一个处理细化为一些子细化一致性准则:当把一个处理细化为一些子 处理时,细化前和细化后的数据流必须相同。处理时,细化前和细化后的数据流必须相同。 层次编号准则:对数据流图中的元素进行编号层次编号准则:对数据流图中的元素进行编号 处理时应该能够反映出元素的层次和分解关系。处理时应该能够反映出元素的层次和分解关系。 数据分解简化性准则:数据流图中的元素不能数据分解简化性准则:数据流图中的元素不能 太多,如果太多就需要进行分层描述处理。太多,如果太多就需要进行分层描述处理。 第17页/共140页 软件教研室 所谓语法分析方法是通过对软件
10、需求的文本描述 的分析,选取出其中的动词和名词。其中动词通 常表示为应用中的加工过程描述;而名词通常被 描述为外部实体(方框)、数据或控制对象(箭 头)、或数据存储(双线表示)。这些名词和动 词之间是相互关联的。 第18页/共140页 软件教研室 加油站电子帐表系统加油站电子帐表系统是根据是根据加油站加油站日常工作日常工作 流程开发,适用于加油站流程开发,适用于加油站进进、销销、付付、存存管管 理的服务模块。系统可以根据理的服务模块。系统可以根据加油站加油站录入录入的的 日常日常顾客顾客消费消费数据,结合数据,结合油库油库的的进货进货数据,数据, 自动自动生成生成各种各种报表报表和和帐表帐表。
11、 第19页/共140页 软件教研室 加油站电子帐表系统加油站电子帐表系统 这个数据流图只是一个高层的系统逻辑模型,它反映这个数据流图只是一个高层的系统逻辑模型,它反映 了目标系统要实现的功能了目标系统要实现的功能 0层层: 顾客顾客 事物处事物处 理理 油库油库 第20页/共140页 软件教研室 第21页/共140页 软件教研室 第22页/共140页 软件教研室 第23页/共140页 软件教研室 数据字典是关于数据信息的集合,也就是对数据流 图中包含的所有元素的定义的集合。 第24页/共140页 软件教研室 第25页/共140页 软件教研室 第26页/共140页 软件教研室 存折格式存折格式
12、存折户名所号帐号开户日性质(印密)1 存取行50 户名2字母24 所号“001”.“999” 帐号“00000001”.“99999999” 开户日年月日 性质“1”.“6” 注:“1”表示普通户,“5”表示 工资户等 印密“0” 注:印密在存折上不显示 存取行日期(摘要)支出存入余额操作复 核 第27页/共140页 软件教研室 加油站员工信息表 字段名称字段类型值域备注 序号数值型 加油站编号字符型 外键 员工编号字符型 主键 姓名字符型 性别字符型男、女 年龄数值型 职位字符型 是否正式工字符型是、否 是否列入劳资报表字符型 列入劳资报表用工、由劳务公司派遣、其他员工 是否住站字符型是、否
13、 文化程度字符型 小学、初中、高中、中专、大专、本科、研究生 入职时间(年月日)日期型 上报时间(年月日)日期型 备注字符型 第28页/共140页 软件教研室 1.代码行技术:代码行技术的优缺点,估算代码 行比较困难.如果有类似的经历也许可以比较简 单但成本有高估的可能; 2.任务分解技术:这是目前应用比较多的一种方 法; 3.自动估计成本技术; 第29页/共140页 软件教研室 1.货币的时间价值; 2.投资回收期; 3.纯收入; 4.投资回收率; 第30页/共140页 软件教研室 1.可行性研究的意义在哪里? 2.可行性研究的粒度如何? 3.可行性研究的种类和可行分析的不同侧重点? 4.数
14、据流图是否仅仅应用于可行研究? 5.甲古文公司的产品BC4J怎么念? 第31页/共140页 软件教研室 确定软件设计的约束、软件同其它系统元素 的接口细节和逆向需求 定义软件的其它有效性需求,如出错处理等 基本要求基本要求 需求分析研究的对象是软件项目的用户要求 准确地表达被接受的用户要求 确定被开发软件系统的系统元素 将功能和信息结构分配到这些系统元素中 建立四类模型(数据模型、功能模型、行为 模型和层次模型) 第32页/共140页 软件教研室 第33页/共140页 软件教研室 需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型, 解决目标系统的 “做什么” 的问题。通常软件开
15、发项目是要实现目标系统 的物理模型。目标系统的具体物理模型是由它的逻辑模型经实例化,即具体 到某个业务领域而得到的 第34页/共140页 软件教研室 获取 需求 的方 法 访谈 调查表 情景分析 功能 分析 数据流图 数据字典 IPO图 使用说明书 建立快速原形 第四代开 发语言 可重用的 软件构件 形式化 规格说明 第35页/共140页 软件教研室 头脑风暴头脑风暴:其基本概念是指一组人沉迷于一种 “自由发言”的境界中,在无约束的环境下进 行某个方面的自由思考,目的是产生新的想法。 人种论人种论:要求观察者只有靠完全溶入到工作中 ,才能彻底地了解各种实践、问题和所关注的 事物等。 需求剥离需
16、求剥离:当存在一份客户的需求文档或规格 说明时,或者存在一份可能相似的、原有产品 的规格说明书时,使用需求剥离技术将单个需 求可以从原始中抽取(剥离)出来,并加入到 新的文档中。 第36页/共140页 软件教研室 主要创建的模型是: 数据模型数据模型:主要采用ERD图描述,描绘数据对 象及数据对象之间的关系。 功能模型功能模型:主要采用数据流图描述,描述当数 据在软件系统中移动时被变换的逻辑过程,指 明系统具有的变换数据的功能。 行为模型行为模型:采用状态转换图描述,指明了作为 外部事件结果的系统行为。为此,状态转换图 描述了系统各种行为模式(状态)和在不同状 态间转换的方式。 第37页/共1
17、40页 软件教研室 系统描述系统描述 分析模型分析模型 设计模型设计模型 第38页/共140页 软件教研室 第39页/共140页 软件教研室 实例:如操作的人员;报表;打印;报警信息;地理位置等实例:如操作的人员;报表;打印;报警信息;地理位置等 数据对象是对软件必须理解的复合信息的抽象。所谓 复合信息是指具有一系列不同性质或属性的事物。总 之可以由一组属性来定义的实体都可以被认为是数据 对象。 第40页/共140页 软件教研室 实例:如汽车的属性(生产厂家、品牌、型号、发动机号等)实例:如汽车的属性(生产厂家、品牌、型号、发动机号等) 数据属性定义了对象的性质。通过这些性质可以标识 该系统具
18、有的特点。 第41页/共140页 软件教研室 联系的方式:联系的方式: 1.一对一(一对一(1:1) 2.一对多(一对多(1:N) 3.多对多(多对多(M:N) 数据联系定义了数据对象之间相互连接的方式。 第42页/共140页 软件教研室 建立建立ER图的过程:图的过程: 第第1层层提取所有的实体(对象)和对象之间的关提取所有的实体(对象)和对象之间的关 第第2层层建模他们之间关系的整体模型建模他们之间关系的整体模型 第第3层层进一步描述所有实体、关系的属性信息进一步描述所有实体、关系的属性信息 第43页/共140页 软件教研室 places generates consists of lis
19、ts (1,1) selected from 第44页/共140页 软件教研室 数据流图让软件工程师能够建模同时建模信 息模型和功能模型。 第45页/共140页 软件教研室 第46页/共140页 软件教研室 状态转换图是描述系统的状态如何相应外部的 信号进行推移的一种图形表示。 注:状态迁移图的优点注:状态迁移图的优点: 状态之间的关系能够直观地捕捉到 由于状态迁移图的单纯性,能够机械地分析许多情况,可很容易地建立分析工具 状态1 状态变量1 活动表 初始事件结束事件 第47页/共140页 软件教研室 第48页/共140页 软件教研室 re ad in g lo cke d se le cti
20、n g p assw o rd e n te re d co m p arin g p assw o rd = in co rre ct 在 并发处理过程中使用封锁和解除封锁机制保持数据不被破坏; 冗余性设计:针对同一问题,由两个开发者采用不同的程序设计风格不同 的算法设计软件,当两者运行结果之差不在允许范围内时,利用检错系统予 以纠正,或使用表决技术决定一个正确结果。 第62页/共140页 软件教研室 5.可靠性设计可靠性设计 可靠性设计也叫做质量设计可靠性设计也叫做质量设计。在运行过程中,为了适应环境的变化 和用户新的要求,需经常对软件进行改造和修正。在软件开发的一 开始就要确定软件可靠性
21、和其它质量指标,考虑相应措施,以使得 软件易于修改和易于维护 第63页/共140页 软件教研室 概要设计阶段完成时应编写以下文档: 概要设计说明书 数据库设计说明书 用户手册 制定初步的测试计划 第64页/共140页 软件教研室 可追溯性可追溯性:确认该设计是否复盖了所有已确定的软件需求,软件每 一成份是否可追溯到某一项需求 接口接口:确认该软件的内部接口与外部接口是否已经明确定义。模块 是否满足高内聚和低耦合的要求。模块作用范围是否在其控制范围 之内 风险风险:确认该设计在现有技术条件下和预算范围内是否能按时实现 实用性实用性:确认该设计对于需求的解决方案是否实用 技术清晰度技术清晰度:确认
22、该设计是否以一种易于翻译成代码的形式表达 可维护性可维护性:确认该设计是否考虑了方便未来的维护 质量质量:确认该设计是否表现出良好的质量特征 各种选择方案各种选择方案:看是否考虑过其它方案,比较各种选择方案的标准 是什么 限制限制:评估对该软件的限制是否现实,是否与需求一致 其它具体问题其它具体问题:对于文档、可测试性、设计过程.等进行评估 第65页/共140页 软件教研室 核心概念: 软件结构; 程序结构; 模块化; 信息隐蔽; 模块的独立性; 自顶向下,逐步细化; 抽象化; 第66页/共140页 软件教研室 软件的体系结构通过一个划分过程来完成。该划分过 程从需求分析确立的目标系统的模型出
23、发,对整个问 题进行分割,使其每个部分用一个或几个软件成份加 以解决,整个问题就解决了 注:软件结构包括两部分。程序的模块结构和数据的 结构 第67页/共140页 软件教研室 程序结构表明了程序各个部件(模块)的组织 情况,是软件的过程表示。 第68页/共140页 软件教研室 软件系统的模块化是指整个软件被划分成若干单独命 名和可编址的部分,称之为模块。这些模块可以被组 装起来以满足整个问题的需求。 注:软件的复杂性并不是随着分解模块的增多而变的越来越容 易,相反随着模块的增加由于交互的复杂,变的更加复杂。 第69页/共140页 软件教研室 “模块”,又称“组件”。它一般具有如下三个基 本属性
24、: 功能:描述该模块实现什么功能 逻辑:描述模块内部怎么做 状态:该模块使用时的环境和条件 在描述一个模块时,还必须按模块的外部特性外部特性与内部特性内部特性分别描述 模块的外部特性模块的外部特性: :模块的模块名、参数表、其中的输入参数和输出参数 ,以及给程序以至整个系统造成的影响 模块的内部特性模块的内部特性: :完成其功能的程序代码和仅供该模块内部使用的数据 第70页/共140页 软件教研室 模块独立性, 是指软件系统中每个模块只涉及软件要求 的具体的子功能, 而和软件系统中其它的模块的接口是 简单的。 注:例如, 若一个模块只具有单一的功能且与其它模块没有太多 的联系, 则称此模块具有
25、模块独立性 一般采用两个准则度量模块独立性。即模块间耦合和模块内聚 第71页/共140页 软件教研室 是模块之间的互相连接的紧密程度的度量。 第72页/共140页 软件教研室 第73页/共140页 软件教研室 如果两个模块之间没有直接关系,它们之间的联 系完全是通过主模块的控制和调用来实现的,这 就是非直接耦合。这种耦合的模块独立性最强。 非直接耦合(Nondirect Coupling) 第74页/共140页 软件教研室 数据耦合数据耦合 (Data Coupling)(Data Coupling) 如果一个模块访问另一个模块时,彼此之间是通 过简单数据参数 (不是控制参数、公共数据结构 或
26、外部变量) 来交换输入、输出信息的,则称 这种耦合为数据耦合。 第75页/共140页 软件教研室 标记耦合标记耦合 (Stamp Coupling)(Stamp Coupling) 如果一组模块通过参数表传递记录信息,就是标 记耦合。这个记录是某一数据结构的子结构,而 不是简单变量 第76页/共140页 软件教研室 控制耦合控制耦合 (Control Coupling)(Control Coupling) 如果一个模块通过传送开关、标志、名字等控制 信息,明显地控制选择另一模块的功能,就是控 制耦合。 第77页/共140页 软件教研室 外部耦合(外部耦合(External CouplingEx
27、ternal Coupling) 一组模块都访问同一全局简单变量而不是同一全 局数据结构,而且不是通过参数表传递该全局变 量的信息,则称之为外部耦合。 第78页/共140页 软件教研室 公共耦合(公共耦合(Common CouplingCommon Coupling) 若一组模块都访问同一个公共数据环境,则它们 之间的耦合就称为公共耦合 第79页/共140页 软件教研室 内容耦合内容耦合 (Content Coupling) (Content Coupling) 如果发生下列情形,两个模块之间就发生了内容 耦合 (1) 一个模块直接访问另一个模块的内部数据; (2) 一个模块不通过正常入口转到
28、另一模块内部; (3) 两个模块有一部分程序代码重迭(只可能出现 在汇编语言中); (4) 一个模块有多个入口。 第80页/共140页 软件教研室 标志一个模块内各个元素彼此结合的紧密程度。 第81页/共140页 软件教研室 第82页/共140页 软件教研室 功能内聚功能内聚 一个模块中各个部分都是完成某一具体功能必不 可少的组成部分,或者说该模块中所有部分都是 为了完成一项具体功能而协同工作,紧密联系, 不可分割的。则称该模块为功能内聚模块。 第83页/共140页 软件教研室 信息内聚信息内聚 这种模块完成多个功能,各个功能都在同一数据结构上操 作,每一项功能有一个唯一的入口点。这个模块将根
29、据不 同的要求,确定该执行哪一个功能。由于这个模块的所有 功能都是基于同一个数据结构(符号表),因此,它是一 个信息内聚的模块。 第84页/共140页 软件教研室 通信内聚通信内聚 如果一个模块内各功能部分都使用了相同的输入数 据,或产生了相同的输出数据,则称之为通信内聚 模块。通常,通信内聚模块是通过数据流图来定义 的。 第85页/共140页 软件教研室 过程内聚过程内聚 使用流程图做为工具设计程序时,把流程图中的 某一部分划出组成模块,就得到过程内聚模块。 例如,把流程图中的循环部分、判定部分、计算 部分分成三个模块,这三个模块都是过程内聚模 块 第86页/共140页 软件教研室 时间内聚
30、时间内聚 时间内聚又称为经典内聚。这种模块大多为多功能 模块,但模块的各个功能的执行与时间有关,通常 要求所有功能必须在同一时间段内执行。例如初始 化模块和终止模块。 第87页/共140页 软件教研室 逻辑内聚逻辑内聚 这种模块把几种相关的功能组合在一起,每次被调 用时,由传送给模块的判定参数来确定该模块应执 行哪一种功能。 第88页/共140页 软件教研室 巧合内聚巧合内聚 巧合内聚又称为偶然内聚。当模块内各部分之间没 有联系,或者即使有联系,这种联系也很松散,则 称这种模块为巧合内聚模块,它是内聚程度最低的 模块。 第89页/共140页 软件教研室 模块功能的完善化模块功能的完善化 一个完
31、整的模块应当有以下几部分: 执行规定的功能的部分; 出错处理的部分。当模块不能完成规定的功能时,必须回送出 错标志,出现例外情况的原因。 如果需要返回一系列数据给它的调用者,在完成数据加工或结 束时,应当给它的调用者返回一个结束状态标志。 消除重复功能,改善软件结构消除重复功能,改善软件结构 完全相似:在结构上完全相似,可能只是在数据类型上不一 致。此时可以采取完全合并的方法。 局部相似:找出其相同部分,分离出去,重新定义成一个独 立的下一层模块。还可以与它的上级模块合并。 第90页/共140页 软件教研室 模块的作用范围应在控制范围之内模块的作用范围应在控制范围之内 模块的控制范围包括它本身
32、及其所有的从属模块。 模块的作用范围是指模块内一个判定的作用范围,凡是受这个判 定影响的所有模块都属于这个判定的作用范围。 如果一个判定的作用范围包含在这个判定所在模块的控制范围之 内,则这种结构是简单的,否则,它的结构是不简单的。 尽可能减少高扇出结构,随着深度增大扇入尽可能减少高扇出结构,随着深度增大扇入 如果一个模块的扇出数过大,就意味着该模块过分复杂,需要协 调和控制过多的下属模块。应当适当增加中间层次的控制模块。 第91页/共140页 软件教研室 避免或减少使用病态联接避免或减少使用病态联接 模块的大小要适中模块的大小要适中 模块的大小,可以用模块中所含语句的数量的多少来衡量。把模
33、块的大小限制在一定的范围之内。通常规定其语句行数在50 100左右,保持在一页纸之内,最多不超过500行。 第92页/共140页 软件教研室 设计功能可预测的模块,但要避免过分受限制的模块设计功能可预测的模块,但要避免过分受限制的模块 一个功能可预测的模块,不论内部处理细节如何,但对相同的输 入数据,总能产生同样的结果。但是,如果模块内部蕴藏有一些 特殊的鲜为人知的功能时,这个模块就可能是不可预测的。对于 这种模块,如果调用者不小心使用,其结果将不可预测。所谓过 分限制是指由于对于局部数据结构进行了过分的要求,是模块的 功能过分局限,降低了模块的灵活性。 软件包应满足设计约束和可移植性软件包应
34、满足设计约束和可移植性 为了使得软件包可以在某些特定的环境下能够安装和运行,对软 件包提出了一些设计约束和可移植的要求。例如,设计约束有时 要求一个程序段在存储器中覆盖自身。当这种情况出现时,设计 出来的软件程序结构不得不根据重复程度、访问频率、调用间隔 等等特性,重新加以组织。 第93页/共140页 软件教研室 自顶向下,逐步细化自顶向下,逐步细化 将软件的体系结构按自顶向下方式,对各个层次的过程 细节和数据细节逐层细化,直到用程序设计语言的语句 能够实现为止,从而最后确立整个的体系结构。 逐步求精的主要目的是集中精力处理好当前急需处理的 主要问题,而推迟对其它细节的处理 第94页/共140
35、页 软件教研室 抽象化抽象化 抽象概念与模块化和逐步求精是密切相关的,模块抽象概念与模块化和逐步求精是密切相关的,模块 是一定抽象描述的体现,逐步求精一般只能够理解是一定抽象描述的体现,逐步求精一般只能够理解 为一个过程,即是一个由顶向下的细化过程,为一个过程,即是一个由顶向下的细化过程,而抽而抽 象即可以理解为一个过程也可以理解为一种状态象即可以理解为一个过程也可以理解为一种状态。 理解为过程时他表示从下向上的对于事物共性的抽理解为过程时他表示从下向上的对于事物共性的抽 取过程,而暂时忽略掉他们之间的差异,取过程,而暂时忽略掉他们之间的差异,抽象同时抽象同时 也可以理解为一种状态,表示一种使
36、用问题环境语也可以理解为一种状态,表示一种使用问题环境语 言描述的,较容易被人接受的描述体系。言描述的,较容易被人接受的描述体系。 第95页/共140页 软件教研室 由 parnas 方法提倡的信息隐蔽是指,每个模 块的实现细节对于其它模块来说是隐蔽的。也 就是说,模块中所包含的信息(包括数据和过 程)不允许其它不需要这些信息的模块使用。 第96页/共140页 软件教研室 首先研究、分析和审查数据流图。从软件的需求规格 说明中弄清数据流加工的过程,对于发现的问题及时解 决。 然后根据数据流图决定问题的类型。数据处理问题典 型的类型有两种:变换型和事务型。针对两种不同的类 型分别进行分析处理。
37、由数据流图推导出系统的初始结构图。 利用一些启发式原则来改进系统的初始结构图,直到 得到符合要求的结构图为止。 修改和补充数据词典。 制定测试计划。 第97页/共140页 软件教研室 输入流 外部表示 变换流 内部表示 输出流 外部表示 第98页/共140页 软件教研室 事物中心 触发事物 活动事物1 活动事物2 活动事物3 活动事物n 第99页/共140页 软件教研室 结构图反映程序中模块之间的层次调用关系和 联系,它以特定的符号表示模块、模块间的调 用关系和模块间信息的传递。 第100页/共140页 软件教研室 第101页/共140页 软件教研室 第102页/共140页 软件教研室 变换型
38、数据处理问题的工作过程大致分为三步,即取得数据, 变换数据和给出数据。 相应于取得数据、变换数据、给出数据,变换型系统结构图 由输入、中心变换和输出等三部分组成。 第103页/共140页 软件教研室 它接受一项事务,根据事务处理的特点和性质,选择分派一 个适当的处理单元,然后给出结果。 在事务型系统结构图中,事务中心模块按所接受的事务的类 型,选择某一事务处理模块执行。各事务处理模块并列。每个事 务处理模块可能要调用若干个操作模块,而操作模块又可能调用 若干个细节模块。 第104页/共140页 软件教研室 重画数据流图; 区分有效(逻辑)输入、有效(逻辑)输出和中心变 换部分; 进行一级分解,
39、设计上层模块; 进行二级分解,设计输入、输出和中心变换部分的中 、下层模块; 第105页/共140页 软件教研室 在选择模块设计的次序时,必须对一个模块的全部直接下属模块都设计完成 之后,才能转向另一个模块的下层模块的设计。 在设计下层模块时,应考虑模块的耦合和内聚问题,以提高初始结构图的质 量。 使用“黑箱”技术: 在设计当前模块时,先把这个模块的所有下层模块定义 成“黑箱”,在设计中利用它们时,暂时不考虑其内部结构和实现。在这一步定 义好的“黑箱”,在下一步就可以对它们进行设计和加工。这样,又会导致更多 的“黑箱”。最后,全部“黑箱”的内容和结构应完全被确定。 在模块划分时,一个模块的直接
40、下属模块一般在5个左右。如果直接下属模 块超过10个,可设立中间层次。 如果出现了以下情况,就停止模块的功能分解: 当模块不能再细分为明显的子任务时; 当分解成用户提供的模块或程序库的子程序时; 当模块的界面是输入输出设备传送的信息时; 当模块不宜再分解得过小时。 第106页/共140页 软件教研室 第107页/共140页 软件教研室 在很多软件应用中,存在某种作业数据流,它可 以引发一个或多个处理,这些处理能够完成该作业 要求的功能。这种数据流就叫做事务。 与变换分析一样,事务分析也是从分析数据流图 开始,自顶向下,逐步分解,建立系统到结构图。 第108页/共140页 软件教研室 识别事务源
41、 利用数据流图和数据词典,从问题定义和需求分析的结果中,找出各种需要处理的 事务。通常,事务来自物理输入装置。有时,设计人员还必须区别系统的输入、中 心加工和输出中产生的事务。 规定适当的事务型结构 在确定了该数据流图具有事务型特征之后,根据模块划分理论,建立适当的事务型 结构。 识别各种事务和它们定义的操作 从问题定义和需求分析中找出的事务及其操作所必需的全部信息,对于系统内部产 生的事务,必须仔细地定义它们的操作 注意利用公用模块 在事务分析的过程中,如果不同事务的一些中间模块可由具有类似的语法和语义的 若干个低层模块组成,则可以把这些低层模块构造成公用模块。 对每一事务,或对联系密切的一
42、组事务,建立一个事务处理模块; 如果发现在系统中有类似的事务,可以把它们组成一个事务处理模块。 对事务处理模块规定它们全部的下层操作模块 对操作模块规定它们的全部细节模块 第109页/共140页 软件教研室 变换分析是软件系统结构设计的主要方法。一般,一个大 型的软件系统是变换型结构和事务型结构的混合结构。所 以,我们通常利用以变换分析为主,事务分析为辅的方式 进行软件结构设计。 第110页/共140页 软件教研室 第111页/共140页 软件教研室 1.软件设计与软件需求有什么不同 概要设计说明书2 概要设计说明书1 第112页/共140页 软件教研室 1.软件工程的主要的研究内容,与其他计
43、算机相关课 程之间的关系? 2.说说我们目前上过的主要软件工程分析方法? 3.说说面向结构软件工程生命周期的各个阶段和其主 要的目的。 第113页/共140页 软件教研室 1.确定软件各个组成部分内的算法以及各部分的 内部数据组织; 2.选定某种过程的表达形式来描述各种算法; 3.进行详细设计的评审; 第114页/共140页 软件教研室 为在需求分析阶段所确定的数据对象选择逻辑表示, 需要对不同结构进行算法分析,以便选择一个最有效的 结构;设计对于这种逻辑数据结构的一组操作,以实现 各种所期望的运算。 确定对逻辑数据结构所必需的那些操作的程序模块( 软件包),以便限制或确定各个数据设计决策的影
44、响范围 。 第115页/共140页 软件教研室 1.用于软件的系统化方法也适用于数据。 2.确定所有的数据结构和在每种数据结构上施加的操作。 3.应当建立一个数据词典并用它来定义数据和软件的设 计。 4.低层数据设计的决策应推迟到设计过程的后期进行。 5.数据结构的表示只限于那些必须直接使用该数据结构 内数据的模块才能知道。 6.应当建立一个存放有效数据结构及相关操作的库。 7.软件设计和程序设计语言应当支持抽象数据类型的定 义和实现。 第116页/共140页 软件教研室 图形工具(程序流程图程序流程图、N-SN-S图图、问题分析图,问题分析图, PADPAD) ; 表格工具(判定表判定表 )
45、; 语言工具(ProgressDesignLanguage,PDL) 第117页/共140页 软件教研室 程序流程图程序流程图 第118页/共140页 软件教研室 N-SN-S图图 第119页/共140页 软件教研室 问题分析图问题分析图(PAD)(PAD) 第120页/共140页 软件教研室 判定表判定表 判定表用于表示程序的静态逻辑 在判定表中的条件部分给出所有的两分支判断的列表,动作部分给出相应的处理 要求将程序流程图中的多分支判断都改成两分支判断 第121页/共140页 软件教研室 对应流程图的判定表对应流程图的判定表 第122页/共140页 软件教研室 PDLPDL语言语言 PDL是一种用于描述功能模块的算法设计和加工细节的语言。称 为设计程序用语言。它是一种伪码。 伪码的语法规则分为“外语法”和“内语法”。 PDL具有严
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 山东交通学院《专业表现技法》2023-2024学年第二学期期末试卷
- 湖南交通工程学院《形势与政策(3)》2023-2024学年第一学期期末试卷
- 江苏省南京联合体【栖霞、江宁、雨花】2025年初三全真英语试题模拟试卷(17)含答案
- 武威职业学院《现代生物医学与诺贝尔奖》2023-2024学年第一学期期末试卷
- 江苏航运职业技术学院《课程论》2023-2024学年第二学期期末试卷
- 西南财经大学天府学院《生物技术创新与创业》2023-2024学年第二学期期末试卷
- 2025国际航空运输合同样本
- 厦门医学院《动画电影制作解析》2023-2024学年第二学期期末试卷
- 江苏省苏锡常镇四市2025届高三下学期3月份月考语文试题含解析
- 长沙幼儿师范高等专科学校《小动物疾病学》2023-2024学年第一学期期末试卷
- 青岛版(2017)小学四年级科学下册4.14《不同环境中的植物》课件
- 直击重点的2024年ESG考试试题与答案
- 2025年审计监察面试题及答案
- 2025年河南应用技术职业学院单招职业技能测试题库完美版
- nginx面试题及答案100道
- 综合与实践+白昼时长规律的探究教案+2024-2025学年人教版数学七年级下册
- 非营利组织离任审计报告范文
- 家电行业品质部门的质量提升职责
- 抖音服装网店创业计划书
- 小学教师招聘-《小学教育学》押题密卷1
- 《InSAR干涉测量》课件
评论
0/150
提交评论