已阅读5页,还剩225页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 第五章电子商务网站系统分析与设计 2 网站系统分析的特点 网站成为信息系统中重要和关键部分 将原来的管理变为浏览器 服务器模式扩展到电子商务功能 新的营销管理方式新系统会涉及业务流程的重组系统管理方式变化为网络化 3 5 1 1系统分析的任务和目标 系统调查系统调查的目的系统调查的重点是用户与现行系统的整体关系 现行系统与外部的关系 系统的能力 资源及受到哪些条件的限制 系统调查的内容 组织结构 功能业务 目标和发展战略 外部环境等等 4 5 1 1系统分析的任务和目标 网上能开展的业务分析系统业务分析是电子商务应用系统和功能模块的基础 分析发现现有的业务流程和模式 仔细研究企业自身的需求 确定上网业务 目标客户调查与分析确定网站目标客户 对网上客户现实的潜在的需求进行分析 吸引住目标客户才能成功 分析方式是分为网站建设前和开通后 5 5 1 1系统分析的任务和目标 竞争对手调查与分析了解竞争对手是否开展网络业务 洞察网上对手的情况 分析现有和潜在对手的优势和劣势 研究对手的网络运营情况和电子商务效果 确定竞争对手了解竞争对手的电子商务战略和主要网上业务一定要有战略意识地考察对手的网站 电子商务网站的市场定位市场定位的主要工作竞争性分析 确定本企业优势竞争对手网站内容结构与运行效果分析 确定本企业网站架构新产品开拓分析 确定未来发展方向 6 5 1 2系统分析工具 组织结构与功能分析了解组织的目标及战略规划了解组织机构及其各部分的功能了解相关部门职能上的各种联系分析组织机构的合理性分析组织机构设置的合理性发现其中的问题提出改进的意见 7 8 组织 业务关系图 9 业务功能分析 层次结构图又称为组织机构图 系统必须设定要实现的功能 功能要以组织结构为背景来识别和调查 因为每个组织都是一个功能机构 都有各自不同的功能 调查时要按部门的层次关系进行 然后用归纳法找出它的功能 形成各层次的功能结构 组织结构与功能结构又不完全一致 各组织 各部门的功能 由于各种原因 有可能重叠 许多功能可能还需要多个部门协力完成 一个部门的功能也不能不是惟一的 可能需要完成多种功能 把各部门的功能以及相互之间的功能合作关系用一张二维表格绘制出来 就是组织 功能关系表 10 业务功能分析 以组织结构图为背景分析清楚各部门的功能后 分层次将其归纳 整理 形成各层次的功能结构图 自上而下逐层归纳 整理 形成以系统目标为核心的整个系统的功能结构图 现行的系统的许多功能多数由手工完成 手工处理慢 处理功能分得较细 环节又多 甚至由于某些历史原因造成一些不合理的处理设置 那么 在分析归纳过程中 就要把不合理的流程取消 把功能相信或工作顺序相近的处理功能尽量合并 还人分析归纳后的功能是否能达到新系统目标以及应设置的功能是否已经具备等 经分析后的系统功能结构一般是多层次的树型结构 一般最后一级功能是不能再分割的 11 业务功能分析 12 业务流程图例 业务处理单位 业务处理功能描述 报表表格制作 数据文件存档 收集 统计数据 信息传递过程 13 例1 业务流程图绘制图表 14 例2 某领料业务流程图绘制举例 15 数据流程图DataFlowDiagram 16 1 数据流程图的四个基本成分 数据存储 或 数据流 或 外部项 或 数据处理 加工 17 1 数据流 表示数据和数据流向 由一组固定成分的数据组成如 选课单 由 学号 姓名 课程编号 课程名 等成分组成数据流可从加工流向加工 也可在加工与数据存储或外部项之间流动 两个加工之间可有多股数据流数据流的命名用名词 不要使用意义空洞的名词尽量使用现实系统已有名字 18 数据流 图示 与 或 19 画数据流时需注意的问题 不要把控制流作为数据流如 下图中读下张卡属于控制流 不应画出 不要标出激发条件 合法卡片 卡片信息 读入卡片 卡片校验 读下张卡 工资单 工资率 计算工资 每月1号 职工档案 20 2 加工 表示对数据进行的操作 如 处理选课单 产生发票 等加工的编号 说明这个加工在层次分解中的位置 分层DFD 加工的命名顶层的加工名就是整个系统项目的名字尽量最好使用动宾词组 也可用主谓词组不要使用空洞的动词 21 加工的命名 无意义的名字 较好的命名 22 3 数据存储 表示需要保存的数据流向 如 学生档案 课程设置 等数据存储与加工的方向 读出 写入 分层数据流程图中 数据存储一般局限在某一层或某几层命名方法与数据流相似 商品库存 商品目录 23 4 外部项 位于系统之外的信息提供者或使用者 称为外部项 即存在于系统之外的人员或组织 如 学务科 等说明数据输入的源点 数据源 或数据输出的终点 数据终点 起到更好的理解作用 但不是系统中的事物 24 数据流程图的基本符号 数据源或外部实体 处理过程 数据存储 数据流向 25 S 2 1 3 2 2 2 1 2 3 3 1 3 2 顶层 0层 1层 基本系统模型 系统的子功能 DFD的分层表示 26 2 画分层DFD 1 先画出顶层DFD 2 自顶向下画出各层DFD分解原则 分解后的软件成分有相对独立功能一次分解不要加入细节过多由外向里画DFD 报名单 合格报名单 检验报名单 27 2 画分层DFD 3 先考虑稳定状态 忽略系统的工作条件 即怎么开始 怎么结束的 4 忽略琐碎的枝节 如出错处理等 5 随时准备重画 28 3 画分层DFD的指导原则 1 父图 子图平衡 2 局部数据存储 3 编号 4 分解的程度 29 父图 子图平衡 父图 子图平衡 模型分解时必须保持父图的输入输出数据流和子图输入输出数据流相同 30 父图 子图平衡 31 父图 子图平衡 32 顾客 供应商 1 处理业务 订货单 发货单 订货单 发货单 配件库存 汽车配件公司 第一层数据流程图 例3 数据流程图绘制举例 33 顾客 供应商 销售 订货单 发货单 配件库存 汽车配件公司 第二层数据流程图 1 1 采购 1 2 订货单 发货单 到货通知 会计 1 3 收据 应付款通知 向供应商的订货单 34 顾客 采购 编辑订货单 订货单 配件库存 汽车配件公司 第三层数据流程图 1 1 1 确定顾客订货 1 1 3 产生暂存订货单 1 1 5 对照暂存订货单 1 1 6 业务员 开发货单并修改库存 1 1 4 不合格 顾客 D2 D3 可发订货 不满足的订货 登录新顾客数据 1 1 2 暂存订货单 D4 到货通知 新顾客 编制销售和库存报表 1 1 8 销售历史 D5 应收款明细账 D10 配件库存 D3 合格的订货单 检索库存 1 1 7 经理 询问库存 库存状态 35 例4 百货商店顶层流程图 36 百货商店业务处理一级分解 37 销售处理二级流程图 38 采购处理二级流程图 39 会计处理二级流程图 40 数据源或终点 处理过程 41 分解的程度 分解的深度与层次 按功能情况定 一般设深度为3 5如超过5个加工最好分解画 否则容易出错 42 实例 图书馆管理系统 购入新书读者借书读者还书图书注销查询统计 43 一 系统功能说明 44 购入新书 新书编卡片 包括 类目录号 流水号 唯一 书名 作者 内容摘要 价格 购书日期等信息 写入图书目录文件 45 读者借书 填借书单 包括 读者号 欲借图书分类目录号 检查读者号有效性 无效 拒借读者号有效 检查借书是否超数 已达5本 拒绝借未超 可借 登记图书分类目录号 读者号 借阅日期等 写回借书文件中 46 读者还书 根据图书流水号 从借书文件中读出与该书相关的借阅记录 查明借书日期 还书日期 求借书时间 再重写回借书文件中 超过期限罚款 47 图书注销 从借阅图书文件中删除相关记录丢失图书时从图书文件中删除相关记录并罚款 48 查询统计 查询某读者情况查询某图书借阅情况统计图书借阅情况 49 二 数据流程图 50 顶层数据流图 图书管理人员 图书管理系统 读者 图书管理要求 查询要求 查询结果 罚款单 51 处理查询 2 处理要求 1 查询要求 图书管理要求 罚款单 统计表 图书情况 读 者 情 况 0层数据流图 目录文件 借书文件 52 要求类型处理 图书管理要求 无效输入 1 1 新书入库 1 2 还 入库单 罚款单 一层数据流图 a 1 5 注销图书 1 3 还书 1 4 目录文件 借书单 书 单 注销单 借书 借书文件 罚款单 53 查询类别处理 查询要求 2 1 读者查询 2 2 统 查询的读者情况 统计表 一层数据流图 b 图书查询 借书文件 要 查询的图书情况 2 3 图书统计 2 4 计 求 读者文件 目录文件 读者情况 图书情况 54 二层数据流图 1 3 检查借书单 借书单 1 3 1 审定借书限额 1 3 2 无效借书单 借书文件 读者文件 有效借书单 登记借书信息 1 3 3 合格借书单 超额借书单 55 二层数据流图 1 4 审定还书期限 还书单 1 4 1 修改借书信息 1 4 2 借书文件 未超期还书单 计算超期罚款 1 4 3 还书单 超期还书单 罚款单 56 二层数据流图 1 5 分类 注销单 1 5 1 修改目录 1 5 2 借书文件 目录文件 图书处理注销单 计算罚款 1 5 3 图书丢失注销单 罚款单 57 5 2电子商务网站系统设计 5 2 1系统设计的步骤 确定电子商务网站功能定位确定网站的收费对象和收费规则确定网站栏目的功能确定网站的信息流和控制流网站的后台管理网站的数据库设计 58 5 2 2系统设计的任务和目标 系统设计的任务相关设计的概念系统设计又称为物理设计 是开发管理信息系统的第二阶段 系统设计通常可分为两个阶段进行 首先是总体设计 其任务是设计系统的框架和概貌 并向用户单位和领导部门作详细报告并认可 在此基础上进行第二阶段 详细设计 这两部分工作是互相联系的 需要交叉进行 本章将这两个部分内容结合起来进行介绍 系统设计是开发人员进行的工作 他们将系统设计阶段得到的目标系统的逻辑模型转换为目标系统的物理模型 该阶段得到工作成果 系统设计说明书是下一个阶段系统实施的工作依据 系统设计的主要任务总体设计 59 5 2 2系统设计的任务和目标 系统设计的任务系统设计的主要任务系统设计的主要任务是进行总体设计和详细设计 下面分别说明它们的具体内容 1 总体设计总体设计包括系统模块结构设计和计算机物理系统的配置方案设计 系统模块结构设计系统模块结构设计的任务是划分子系统 然后确定子系统的模块结构 并画出模块结构图 在这个过程中必须考虑以下几个问题 如何将一个系统划分成多个子系统 每个子系统如何划分成多个模块 如何确定子系统之间 模块之间传送的数据及其调用关系 如何评价并改进模块结构的质量 60 系统模块结构设计配送管理信息系统贷记管理信息系统仓储管理信息系统结算管理信息系统客户管理信息系统决策支持信息系统报关管理信息系统行政管理信息系统统计管理信息系统财务管理信息系统合同管理信息系统 61 5 2 2系统设计的任务和目标 系统设计的任务系统设计的主要任务系统设计的主要任务是进行总体设计和详细设计 下面分别说明它们的具体内容 1 总体设计计算机物理系统配置方案设计在进行总体设计时 还要进行计算机物理系统具体配置方案的设计 要解决计算机软硬件系统的配置 通信网络系统的配置 机房设备的配置等问题 计算机物理系统具体配置方案要经过用户单位和领导部门的同意才可进行实施 开发管理信息系统的大量经验教训说明 选择计算机软硬件设备不能光看广告或资料介绍 必须进行充分的调查研究 最好应向使用过该软硬件设备的单位了解运行情况及优缺点 并征求有关专家的意见 然后进行论证 最后写出计算机物理系统配置方案报告 从我国的实际情况看 不少单位是先买计算机然后决定开发 这种不科学的 盲目的做法是不可取的 它会造成极大浪费 因为 计算机更新换代是非常快的 就是在开发初期和在开发的中后期系统实施阶段购买计算机设备 价格差别就会很大 因此 在开发管理信息系统过程中应在系统设计的总体设计阶段才具体设计计算机物理系统的配置方案 62 5 2 2系统设计的任务和目标 系统设计的任务系统设计的主要任务 2 详细设计在总体设计基础上 第二步进行的是详细设计 主要有处理过程设计以确定每个模块内部的详细执行过程 包括局部数据组织 控制流 每一步的具体加工要求等 一般来说 处理过程模块详细设计的难度已不太大 关键是用一种合适的方式来描述每个模块的执行过程 常用的有流程图 问题分析图 IPO图和过程设计语言等 除了处理过程设计 还有代码设计 界面设计 数据库设计 输入输出设计等 3 编写系统设计说明书系统设计阶段的结果是系统设计说明书 它主要由模块结构图 模块说明书和其它详细设计的内容组成 63 系统设计的目的 系统设计的目的是在保证实现逻辑模型功能的基础上 尽可能提高目标系统的简单性 可变性 一致性 完整性 可靠性 经济性 系统的运行效率和安全性 将分析阶段所获得的系统逻辑模型 转换成一个具体的计算机实现方案的物理模型 包括计算机物理系统配置方案报告和一份系统设计说明书 64 系统设计的主要工作 总体设计代码设计和设计规范的制定系统物理配置方案设计数据存储设计 包括数据库设计 数据库安全保密设计计算机处理过程设计 包括输出设计 输入设计 处理流程图设计及编写程序设计说明书等 65 5 2 3系统设计的方法 结构化设计的方法结构化设计 StructuredDesign SD 方法是使用最广的一种设计方法 该方法适合于软件系统的总体设计和详细设计 特别是将一个复杂的系统转换成模块化结构系统 该方法具有它的优势 结构化设计方法具有以下特点 相对独立 功能单一的模块结构结构化设计的基本思想是将系统设计成由多个相对独立 功能单一的模块组成的结构 由于模块之间相对独立 每一模块就可以单独地被理解 编写 测试 排错和修改 从而有效地防止错误在模块之间扩散蔓延 提高了系统的质量 可维护性 可靠性等 因此 大大简化了系统研制开发的工作 块内联系大 块间联系小 的模块性能标准 模块内部联系要大 模块之间联系要小 这是结构化设计中衡量模块 相对独立 性能的标准 事实上 块内联系和块间联系是同一件事的两个方面 系统中各组成成分之间是有联系的 若把联系密切的成分组织在同一模块中 块内联系高了 块间联系自然就少了 反之 若把密切相关的一些组成成分分散在各个模块中 势必造成很高的块间联系 这将影响系统的可维护性 所以 在系统设计过程中一定要以结构化设计的模块性能标准为指导 采用模块结构图的描述方式结构化设计方法使用的描述方式是控制结构图 模块结构图 66 模块结构图是用于描述系统模块结构的图形工具 它不仅描述了系统的子系统结构与分层的模块结构 还清楚地表示了每个模块的功能 模块结构图的五种基本符号 67 68 模块 模块是可以组合 分解和更换的单元 是组成系统 异于处理的基本单位 调用 在模块结构图中 用连接两个模块的箭头表示调用 箭头总是由调用模块指向被调用模块 但是应该理解成被调用模块执行后又返回到调用模块 69 数据 当一个模块调用另一个模块时 调用模块可以把数据传送到被调用模块处处理 而被调用模块又可以将处理的结果送回调用模块 在模块之间传送的数据 使用与调用箭头平行的带空心圆的箭头表示 并在旁边标上数据名 70 控制信息 为了指导程序下一步的执行 模块间有时还必须传送某些控制信息 例如 数据输入完成后给出的结束标志 文件读到末尾产生的文件结束标志等 控制信息与数据的主要区别是前者只反映数据的某种状态 不必进行处理 在模块结构图中 用带实心圆的箭头表示控制信息 转接符号 模块结构图在一张图面上画不下 需要转接到另外一张纸上 或为了避免图上线条交叉时 都可使用转接符号 圆圈内加上标号 71 系统流程图 系统流程图 SystemFlowchart 是描绘系统物理模型的传统工具 它的基本思想是用图形符号以黑盒子形式描绘系统里面的每个部件 程序 文件 数据库 表格 人工过程等 表达信息在各个部件之间流动的情况 系统流程图表达的是系统各部件的流动情况 而不是表示对信息进行加工处理的控制过程 系统流程图的作用表现在以下几个方面 1 制作系统流程图的过程是系统分析员全面了解系统业务处理概况的过程 它是系统分析员做进一步分析的依据 2 系统流程图是系统分析员 管理员 业务操作员相互交流的工具 3 系统分析员可直接在系统流程图上画出可以有计算机处理的部分 4 可利用系统流程图来分析业务流程的合理性 72 系统流程图的符号 73 用系统流程图描述现行系统工作流程该图是用系统流程图表示的人工销售教材的一个物理模型 这是一个纯人工操作的系统 信息流始于学生 又终于学生 74 信息系统流程图模块结构图主要从功能的角度描述了系统的结构 但在实际工作中许多业务和功能都是通过数据存储文件联系起来的 而这个情况在模块结构图中未能反映出来 系统流程图可以反映各个处理功能与数据存储之间的关系 系统流程图以新系统的数据流图和模块结构图为基础 首先找出数据之间的关系 即由什么输入数据 产生什么中间输出数据 可建立一个临时中间文件 最后又得到什么输出信息 然后 把各个处理功能与数据关系结合起来 形成整个系统的信息系统流程图 75 76 处理流程图信息系统流程图对每一处理功能只是列出其处理功能名称 而处理流程图则使用各种符号具体地规定了处理过程中的各个细节 包括程序名和文件名 处理流程图实际上是系统流程图的展开可具体化 属于详细设计的内容 应和处理功能的模块设计一起进行 作为一个相对独立的部分 各个处理功能有自己的输入和输出 其设计过程也要从输入格式开始 进而设计输出格式 文件格式等 下图是工资管理子系统中建立扣款文件处理功能的处理流程图 77 78 四 IPO图IPO图是对每个模块进行详细设计的工具 它是输入加工输出 INPUTPROCESSOUTPUT 图的简称 它是由美国IBM公司发起并完善起来的一种工具 在系统的模块结构图形成过程中 产生了大量的模块 在进行详细设计时开发者应为每一个模块写一份说明 IPO图就是用来说明每个模块的输入 输出数据和数据加工的重要工具 目前常用的IPO图的结构如图5 26所示 IPO图的主体是算法说明部分 该部分可采用结构化语言 判定表 判定树 也可用N S图 问题分析图和过程设计语言等工具进行描述 要准确而简明的描述模块执行的细节 在IPO图中 输入 输出数据来源于数据词典 局部数据项是指个别模块内部使用的数据 与系统的其它部分无关 仅由本模块定义 存贮和使用 注释是对本模块有关问题作必要的说明 开发人员不仅可以利用IPO图进行模块设计 而且还可以利用它评价总体设计 用户和管理人员可利用IPO图编写 修改和维护程序 因而 IPO图是系统设计阶段的一种重要文档资料 79 N S图简介N S图也被称为盒图或CHAPIN图 流程图由一些特定意义的图形 流程线及简要的文字说明构成 它能清晰明确地表示程序的运行过程 在使用过程中 人们发现流程线不一定是必需的 为此 人们设计了一种新的流程图 它把整个程序写在一个大框图内 这个大框图由若干个小的基本框图构成 这种流程图简称N S图 80 81 82 IPO图的主体是算法说明部分 该部分可采用结构化语言 判定表 判定树 也可用N S图 问题分析图和过程设计语言等工具进行描述 要准确而简明的描述模块执行的细节 在IPO图中 输入 输出数据来源于数据词典 局部数据项是指个别模块内部使用的数据 与系统的其它部分无关 仅由本模块定义 存贮和使用 注释是对本模块有关问题作必要的说明 开发人员不仅可以利用IPO图进行模块设计 而且还可以利用它评价总体设计 用户和管理人员可利用IPO图编写 修改和维护程序 因而 IPO图是系统设计阶段的一种重要文档资料 83 IPO图的处理过程描述较为困难 因为对于一些处理过程较为复杂的模块 用自然语言描述其功能十分困难 并且对同一段文字描述不同的人还可能产生不同的理解 目前用于描述模块内部处理过程有如下几种方法 结构化英语方法决策树方法判定表方法算法描述语言这几种方法各有其长处和不同的适用范围 在实际工作中究竟用哪一种方法 需视具体的情况和设计者的工作习惯而定 84 结构化英语结构化英语的特点是专门用来描述一个功能单元逻辑要求的 它不同于自然英语语言 也区别于任何一种特定的程序语言 是一种介于两者之间的语言 结构化英语的特点它受结构化程序设计思想的影响 由三种基本结构构成 即顺序结构 判断结构和循环结构 结构化英语的关键词结构化英语借助于程序设计的基本思想 并利用其中少数几个关键词来完成对模块处理过程的描述 85 这几个关键词是 IF THEN ELSE SO AND OR 例 IFcustomerdoesmorethan 50 000businessTHENIFthecustomerwasn tindebttousthelast3monthsTHENdiscountis15 ELSE wasindebttous IFcustomerhasbeenwithusformorethan20yearsTHENdiscountis10 ELSE 20yearorless sodiscountis5 ELSE customerdoes 50 000ORLess sodiscountinnil 86 决策树用决策树来描述一个功能单元逻辑处理过程 其基本思路与结构化英语一脉相承 是结构化英语的另一种表现形式 而且是更为直观方便的表现形式 如图5 27 87 3 判断表判断表是另外一种表达逻辑判断的工具 与结构化英语和决策树方法相比 判断表的优点是能够把所有的条件组合充分地表达出来 但其缺点是判断表的建立过程较为繁杂 且表达方式不如前两者简便 4 算法描述语言算法描述语言是一种具体描述算法细节的工具 它只能面向读者 不能直接用于计算机 算法描述用于在形式上非常简单 它类似程序用于 非常适合于那些以算法或逻辑处理为主的模块功能描述 1 语法形式算法描述语言的语法不是十分严格 它主要由符号与表达式 赋值语句 控制转移语句 循环语句 其它语句构成 算法描述语言的符号命名 数学及逻辑表达式一般与程序书写一致 赋值用箭头表示 语句可有标识 标识可是数字也可是具有实际意义的单词 例 循环语句的累加可以表示为 loop i i 1 88 2 控制转移语句无条件转移语句用 GOTO 语句标识表示 条件转移语句用 IFCTHENS1ELSES2 其中C S1和S2可以是一个逻辑表达式 也可以是一对花括号 括起来的语句序列 如果C为 真 则S1被执行 如果C为 假 则执行S2 例 IF工龄 THEN工资 工资 50ELSE 工资 工资 20 3 循环语句循环语句有两种形式 WHILE语句的形式为 WHILECDOS 其中C和S同上 如果C为 真 且在每次执行S之后都要重新检查C 如果C为 假 控制就转到紧跟在WHILE后面的语句 FOR语句的形式为 FORi initTOlimitBYstepDOS 其中i是循环控制变量 init limit和step都是算术表达式 而S同上 每当S被执行一次时 i从初值加步长 直到i limit为止 4 其它语句在算法描述中 还可能用到其它一些语句 因为它们都是用最简明的形式给出的 故很容易知道它们的含义 例 EXIT 退出RETURN 返回READ INPUT 读 输入 WRITE OUTPUT PRINT 写 输出 打印 89 控制流程图 FC 控制流程图 FLOWCHART 简称FC 又称框图 它是历史最悠久 最常使用的程序细节描述工具 框图的三种基本成分处理步骤 用矩形框表示 条件判断 用菱形框表示 控制流 用箭头表示 图5 28就是使用这三种成分所表示的程序基本结构 可以把它们进行组合和嵌套 建立各种复杂的框图以表示程序的复杂逻辑关系 90 91 框图的缺点 从四十年代到七十年代中期 框图一直是软件设计的主要工具 随着结构化程序设计的出现 逐步暴露出框图的许多缺点 有许多人建议停止使用它 目前虽然还有许多人在使用着 然而总的趋势是越来越多的人不再使用框图了 框图的主要缺点在于 它并不能引导设计人员用结构化设计方法进行详细设计 人们可以使用箭头实现向任何位置的转移即 GOTO语句 如果使用不当时 框图就可能非常难懂 而且无法进行维护 因此 箭头是框图中的一个隐患 使用时必须十分小心 框图的质量在很大程度上取决于设计人员的水平 92 3 框图的例子框图的优点是清晰易懂 便于初学者掌握 例如 图5 29描述了在数组K中找出最大数 MAXIMUM 和次大数 SECOND 的详细处理过程 图6 2 13中 数组变量 1 2 N 用来存贮N个原始数据 I是循环变量 最后找出的最大数和次大数分别放在变量MAXI和S中 93 94 问题分析图 PAD 问题分析图 PROBLEMANALYSISDIAGRAM 简称PAD 由日本日立公司二村良彦等人于1979年提出 是一种支持结构化程序设计的图形工具 可以用来取代前面所述的控制流程图 问题分析图仅仅具有顺序 选择和循环这三种基本成分 如图5 30所示 正好与结构化程序设计中的基本程序结构相对应 95 a 顺序 b 选择 c 循环 96 问题分析图有逻辑结构清晰 图形标准化等优点 更重要的是它引导设计人员使用结构化程序设计方法 从而提高了程序的质量 同时 通过比较确定的规则可以由问题分析图直接产生程序 这就为程序设计的自动化开辟了光辉的前景 97 图5 29的控制流程图可以用问题分析图表示成图5 31 显然该图要比图5 29简单 清晰得多 问题分析图的一个独到之处在于 以问题分析图为基础 按照一个机械的变换规则就可以编写出计算机程序 该规则称为 走树 TREEWALK 顺着问题分析图所呈的树形结构移动 如图5 31所示 依次将遇到的PAD基本成分变换成相应的程序结构 由图5 31通过 走树 可机械地产生如下的FOXPROW程序 98 MAXIMUM K 1 SECOND 0I 2DOWHILEISECONDIFK I MAXIMUMSECOND MAXIMUMMAXIMUM K I ELSESECOND K I ENDIFENDIFI I 1ENDDO MAXIMUM SECOND由于FOXPROW具有数组功能 为说明简单起见 这里采用FOXPROW来书写程序 99 七 过程设计语言 PDL 过程设计语言 PROCESSDESIGNLANGUAGE PROGRAM DESIGNLANGUAGE或PROGRAMDESCIPTIONLANGUAGE 简称PDL 是一个笼统的名字 目前有许多种不同的过程设计语言 过程设计语言用于描述模块中算法和加工的具体细节 以便在开发人员之间比较精确地进行交流 过程设计语言由外层语法和内层语法构成 外层语法描述结构 采用与一般编程语言类似的确定的关键字 如IFTHENELSE WHILEDO等 内层语法描述操作 可以采用任意的自然语句 英语或汉语 例如 下面是一个用过程设计语言描述的算法 其中外层语法IFTHENELSE是确定的 而内层操作 X的平方根为实数 则是不确定的自由格式 IFX不是负数THENRETURN X的平方根为实数 ELSERETURN X的平方根为复数 100 由于过程设计语言同程序很相似 所以也称为伪程序或伪代码 但它仅仅是对算法的一种描述 是不可执行的 另外 同上一章介绍的结构化语言相比 过程设计语言则更详尽地描述了算法的细节 事实上 结构化语言和过程设计语言的基本思想是一致的 只是侧重点不同 前者用在系统分析阶段描述用户需求 它是给用户看的 可以描述的比较抽象 后者用在详细设计阶段描述模块的内部算法 这些算法是给编程人员看的 应该详细 具体 过程设计语言主要用于描述系统中属于计算型的下层模块 同问题分析图等图形工具相比 过程设计语言具有以下优点 同自然语言 英语 很接近 易于理解 易于被计算机处理并存贮 例如用行编辑或字处理软件就可以方便地对它进行修改编辑 可以从它自动产生程序 例如目前已研制出从PDL C产生C语言源程序的自动工具 但是过程设计语言也有它的不足之处 它的不足之处在于它不如图形描述直观 及英语使用的准确性要求较高 101 5 2 4总体架构设计 系统从整体到部分的最高层次的划分一个系统通常是由元件组成的 而这些元件如何形成 相互之间如何发生作用 则是关于这个系统本身结构的重要信息 详细地说 就是要包括架构元件 ArchitectureComponent 联结器 Connector 任务流 Task flow 所谓架构元素 也就是组成系统的核心 砖瓦 而联结器则描述这些元件之间通讯的路径 通讯的机制 通讯的预期结果 任务流则描述系统如何使用这些元件和联结器完成某一项需求 102 建造一个系统所作出的最高层次的 以后难以更改的 商业的和技术的决定 在建造一个系统之前会有很多的重要决定需要事先作出 而一旦系统开始进行详细设计甚至建造 这些决定就很难更改甚至无法更改 显然 这样的决定必定是有关系统设计成败的最重要决定 必须经过非常慎重的研究和考察 103 架构设计应考虑的因素 模块构架设计可以从程序的运行时结构和源代码的组织结构方面考虑 1 程序的运行时结构方面的考虑 1 需求的符合性 正确性 完整性 功能性需求 非功能性需求 2 总体性能 内存管理 数据库组织和内容 非数据库信息 任务并行性 网络多人操作 关键算法 与网络 硬件和其他系统接口对性能的影响 3 运行可管理性 便于控制系统运行 监视系统状态 错误处理 模块间通信的简单性 与可维护性不同 4 与其他系统接口兼容性 5 与网络 硬件接口兼容性及性能 6 系统安全性 7 系统可靠性 8 业务流程的可调整性 9 业务信息的可调整性10 使用方便性11 构架样式的一致性 104 源代码的组织结构方面的考虑 1 开发可管理性 便于人员分工 模块独立性 开发工作的负载均衡 进度安排优化 预防人员流动对开发的影响 利于配置管理 大小的合理性与适度复杂性 模块独立性 层次性是为了保证项目开发成员工作之间的相对独立性 模块联结方式应该是纵向而不是横向 模块之间应该是树状结构而不是网状结构或交叉结构 这样就可以把开发人员之间的通信 模块开发制约关系减到最少 同时模块独立性也比较利于配置管理工作的进行 现在有越来越多的的软件开发是在异地进行 一个开发组的成员可能在不同城市甚至在不同国家 因此便于异地开发的人员分工与配置管理的源代码组织结构是非常必要的 105 2 便于人员分工 开发工作的负载均衡不仅仅是开发出来的软件系统需要负载均衡 在开发过程中开发小组各成员之间工作任务的负载均衡也是非重要的 所谓工作任务的负载均衡就是通过合理的任务划分按照开发人员特点进行分配任务 尽量让项目组中的每个人每段时间都有用武之地 这就需要在构架设计时应当充分考虑项目组手头的人力资源 在实现客户需求的基础上实现开发工作的负载均衡 以提高整体开发效率 106 3 便于人员分工 进度安排优化 进度安排优化的前提是模块独立性并搞清楚模块开发的先后制约关系 利用工作分解结构对所有程序编码工作进行分解 得到每一项工作的输入 输出 所需资源 持续时间 前期应完成的工作 完成后可以进行的工作 然后预估各模块需要时间 分析各模块的并行与串行 顺序制约 绘制出网络图 找出影响整体进度的关键模块 算出关键路径 最后对网络图进行调整 以使进度安排最优化 有个家喻户晓的智力题叫烤肉片策略 约翰逊家户外有一个可以同时烤两块肉片的烤肉架 烤每块肉片的每一面需要10分钟 现要烤三块肉片给饥肠辘辘急不可耐的一家三口 问题是怎样才能在最短的时间内烤完三片肉 一般的做法花20分钟先烤完前两片 再花20分钟烤完第三片 有一种更好的方法可以节省10分钟 大家想想 107 4 便于人员分工 预防员工人员流动对开发的影响人员流动在软件行业是司空见惯的事情 已经是一个常见的风险 作为对这一风险的有效的防范对策之一 可以在构架设计中考虑到并预防员工人员流动对开发的影响 主要的思路还是在模块的独立性上 追求高内聚低耦合 组件化是目前流行的趋势 5 利于配置管理 独立性 层次性 利于配置管理与利于人员分工有一定的联系 除了逻辑上的模块组件要利于人员分工外 物理上的源代码层次结构 目录结构 各模块所处源代码文件的部署也应当利于人员分工和配置管理 尽管现在配置管理工具有较强大的功能 但一个清楚的源码分割和模块分割是非常有好处的 6 大小的合理性与适度复杂性大小的合理性与适度复杂性可以使开发工作的负载均衡 便于进度的安排 也可以使系统在运行时减少不必要的内存资源浪费 对于代码的可阅读性和系统的可维护性也有一定的好处 另外 过大的模块常常是系统分解不充分 而过小的模块有可能降低模块的独立性 造成系统接口的复杂 108 2 可维护性 与运行可管理性不同 便于在系统出现故障时及时方便地找到产生故障的原因和源代码位置 并能方便地进行局部修改 切割 可维护性与运行可管理性不同 3 可扩充性 系统方案的升级 扩容 扩充性能 系统在建成后会有一段很长的运行周期 在该周期内 应用在不断增加 应用的层次在不断升级 因此采用的构架设计等方案因充分考虑升级 扩容 扩充的可行性和便利4 可移植性 不同客户端 应用服务器 数据库管理系统 不同客户端 应用服务器 数据库管理系统 如果潜在的客户使用的客户端可能使用不同的操作系统或浏览器 其可移植性必须考虑客户端程序的可移植性 或尽量不使业务逻辑放在客户端 数据处理的业务逻辑放在数据库管理系统中会有较好的性能 但如果客户群中不能确定使用的是同一种数据库管理系统 则业务逻辑就不能数据库管理系统中 达到可移植性一定要注重标准化和开放性 只有广泛采用遵循国际标准 开发出开放性强的产品 才可以保证各种类型的系统的充分互联 从而使产品更具有市场竞争力 也为未来的系统移植和升级扩展提供了基础 109 5 需求的符合性 源代码的组织结构方面的考虑 从源代码的组织结构看需求的符合型主要考虑针对用户需求可能的变化的软件代码及构架的最小冗余 同时又要使得系统具有一定的可扩展性 110 五 写系统构架设计文档应考虑的问题 构架工作应该在需求开发完成约80 的时候开始进行 不必等到需求开发全部完成 需要项目经理以具体的判断来评估此时是否足以开始构建软件构架 给出一致的轮廓 系统概述 一个系统构架需要现有概括的描述 开发人员才能从上千个细节甚至数十个模块或对象类中建立一致的轮廓 构架的目标应该能够清楚说明系统概念 构架应尽可能简化 最好的构架文件应该简单 简短 清晰而不杂乱 解决方案自然 构架应单先定义上层的主要子系统 应该描述各子系统的任务 并提供每个子系统中各模块或对象类的的初步列表 构架应该描述不同子系统间相互通信的方式 而一个良好的构架应该将子系统间的通信关系降到最低 成功构架的一个重要特色 在于标明最可能变更的领域 应当列出程序中最可能变更的部分 说明构架的其他部分如何应变 复用分析 外购 缩短软件开发周期 降低成本的有效方案未必是自行开发软件 可以对现有软件进行复用或进行外购 应考虑其对构架的影响 111 五 写系统构架设计文档应考虑的问题 除了系统组织的问题 构架应重点考虑对于细节全面影响的设计决策 深入这些决策领域 外部软件接口 兼容性 通信方式 传递数据结构 用户接口 用户接口和系统层次划分 数据库组织和内容 非数据库信息 关键算法 内存管理 配置策略 并行性 安全性 可移植性 网络多人操作 错误处理 要保证需求的可追踪性 即保证每个需求功能都有相应模块去实现 构架不能只依据静态的系统目标来设计 也应当考虑动态的开发过程 如人力资源的情况 进度要求的情况 开发环境的满足情况 构架必须支持阶段性规划 应该能够提供阶段性规划中如何开发与完成的方式 不应该依赖无法独立运行的子系统构架 将系统各部分的 依赖关系找出来 形成一套开发计划 112 系统总体架构的评定 可靠性安全性可升级性可定制化可扩展性可维护性客户体验市场时机 113 电子商务网站架构设计 逻辑架构 软件系统中的组件之间的关系 114 物理架构 软件组件是怎样放到硬件上的 115 系统架构 系统的非功能性特征系统架构的设计要求架构师具备软件和硬件的功能和性能的过硬知识 这一工作无疑是架构设计工作中最为困难的工作 此外 从每一个角度上看 都可以看到架构的两要素 元件划分和设计决定 首先 一个软件系统中的元件首先是逻辑元件 这些逻辑元件如何放到硬件上 以及这些元件如何为整个系统的可扩展性 可靠性 强壮性 灵活性 性能等做出贡献 是非常重要的信息 其次 进行软件设计需要做出的决定中 必然会包括逻辑结构 物理结构 以及它们如何影响到系统的所有非功能性特征 这些决定中会有很多是一旦做出 就很难更改的 116 5 2 5用户界面设计 系统架构的设计要求架构师具备软件和硬件的功能和性能的过硬知识 这一工作无疑是架构设计工作中最为困难的工作 此外 从每一个角度上看 都可以看到架构的两要素 元件划分和设计决定 首先 一个软件系统中的元件首先是逻辑元件 这些逻辑元件如何放到硬件上 以及这些元件如何为整个系统的可扩展性 可靠性 强壮性 灵活性 性能等做出贡献 是非常重要的信息 其次 进行软件设计需要做出的决定中 必然会包括逻辑结构 物理结构 以及它们如何影响到系统的所有非功能性特征 这些决定中会有很多是一旦做出 就很难更改的 117 UI含义UI即UserInterface 用户界面 的简称 UI设计则是指对软件的人机交互 操作逻辑 界面美观的整体设计 好的UI设计不仅是让软件变得有个性有品味 还要让软件的操作变得舒适 简单 自由 充分体现软件的定位和特点 118 目前在国内UI还是一个相对陌生的词 即便是一些设计人员也对这个词不太了解 我们经常看到一些招聘广告写着 招聘界面美工 界面美术设计师等等 这表明在国内对UI的理解还停留在美术设计方面 认为UI的工作只是描边画线 缺乏对用户交互的重要性的理解 另一方面在软件开发过程中还存在重技术而不重应用的现象 许多商家认为软件产品的核心是技术 而UI仅仅是次要的辅助 这点在人员的比例与待遇上可以表现出来 但这不是UI设计真正的价值体现 只是UI设计发展的一个必经过程 我们以物质产品手机行业为例 当手机刚刚进入市场的时候不但价格贵的惊人 而且除了通话以外没有什么其他功能 由于当时的主导是技术 所以大家都把精力放在信号 待机时间 寿命等方面 对于产品的造型 使用的合理性很少关心 事过境迁 如今技术已经完全的达到用户的需求 于是商家为了创造卖点 提高争力 非常重视产品的外观设计 除此之外还频频推出短信 彩屏 和铉 彩信 摄像头等等 这样一来产品的美观 个性 易用 易学 人性化等等都成了产品的卖点 软件产品与物质产品的发展是相同的 过去由于计算机硬件的限制 编码设计成为软件开发的代名词 美观亲和的图形化界面与合理易用的交互方式都没有得到充分的重视 实际上这个时期的软件叫作软件程序 而不是软件产品 UI设计在中国现状 119 UI设计在中国现状 现今随着计算机硬件的飞速发展 过去的软件程序已经不能适应用户的要求 软件产品在激烈的市场竞争中 仅仅有强大的功能是远远不够的 不足以战胜强劲的对手 幸运的是在国内一些 远瞩的民族企业已经开始意识到UI给软件产品带来的巨大卖点了 例如金山公司的影霸 词霸 毒霸 网镖 由于重视UI的开发与地位 才使得金山产品在同类软件产品中首屈一指 联想软件的UI部门积极开展用户研究与使用性测试 将易用与美观相结合 推出的双模式电脑 幸福系列等成功UI范例 为联想赢得全球消费PC第三的称号等等 等等 实践证明 各商家只要在产品美观和易用设计方面很小投入 将会有很大产出 其投入产出比 要比在功能领先性开发上的投入大得多 120 UI设计原则 设计原则用户原则信息最小量原则帮助和提示原则媒体最佳组合原则简易性原则一致性原则从用户的观点考虑原则有序性原则安全性原则灵活性原则人性化原则 121 界面分析与规范人机界面的联系媒体的功能 没有任何一种媒体在所有场合都是最优的 每种媒体都有其各自擅长的特定范围 各种媒体功能参考如下 文本 在表现概念和刻划细节时可用其表现 图形 擅长表达思想轮廓及蕴含与大量数值数据内的趋向性信息 在空间信息方面有较大优势 动画 可用来突出整个事物 特别适于表现静态图形无法表现的动作信息 视频影像 适于表现其它媒体所难以表现的来自真实生活的事件和情景 语音 能使对话信息突出 特别是在与影像 动画集合时能传递大量的信息 姿态与动作 在与别的媒体结合时具有较强的信息引用能力 可以在相关信息之间建立起时间 空间以及逻辑上的联系 122 媒体选择的结合与互补 脚本设计可根据内容需要分配表达的媒体 这里要特别注意媒体间的结合与区别 提出几条原则如下 人们在问题求解过程中的不同阶段对信息媒体有不同需要 一般在最初的探索阶段采用能提供具体信息的媒体如语音 图像等 而在最后的分析阶段多采用描述抽象概念的文本媒体 而一些直观的信息 图形 图像等 介于两者之间 适于综合阶段 媒体种类对空间信息的传递并没有明显的影响 各种媒体各有所长 媒体结合是多媒体设计中需要研究的新课题 媒体之间可以互相支持 也会互相干扰 多种媒体应密切相关 扣紧一个表现主题 而不应把不相关的媒体内容拼凑在一起 目前 媒体结合在技术上主要通过在一个窗口中提供多种媒体的信息片段 空间结合 和对声音 语音 录相等随时间变化的动态媒体加以同步实现 时间序列组合 媒体资源并非愈多愈好 如何在语义层上将各种媒体很好的 结合以更有效地传递信息 是要很好地探索的研究课题 也是应用系统人机界面设计的关键问题 123 软件界面用户心理学 认知原则的应用认知心理学 从广义上来说 就是关于认识的心理学 人类认识客观事物 主要就是通过感觉 知觉 注意 记忆 思维想象等来进行 因此 凡是研究人的认识心理过程的 都属于认识心理学 实际上 我们这里所指的认知心理学是指纯粹采用信息加工观点来研究认知心理学过程的心理学 也就是运用信息论以及计算机的类比 模拟 验证等方法来研究的的知识是如何获得 如何存贮 如何交换 如何取使用的 所以 我们这里所指的现代认知心理学实质是信息加工心理学 一般地 人们将信息加工心理学又称为狭义的认知心理学 看和听的过程构成知觉 图像和声音作为刺激的特征被接收并以抽象的方式被编码 把输入和记忆中的信息进行对比得出对刺激的解释 这一过程就是认知 人体信息处理器包括感官 短期记忆 长期记忆及与其相联系的动作处理器和认知处理器 124 每种知觉均有一个对应的短期存储器和处理器 其中认知处理器执行的工作就是我们通常所说的思维 思维的结果或被存储起来 或送至动作处理器控制行动 现代认知心理学的核心 现代认知心理学的理论实质 就是以计算机信息加工的观点来研究人的心理学活动 把人脑看作是一种如同计算机的信息加工系统 现代认知心理学两个关键的重要概念 现代认知心理学的学说内容集中体现在两个关键的重要概念上 现代认知心理学的一个重要的中心概念 就是 信息 在某种程度上说 抽掉了 信息 的概念 认知心理学的理论也就会散架解体 难以存在 现代认知心理学的另一个重要的中心概念 就是 信息加工系统 信息加工系
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 合同审批及归档流程及图表
- 统编人教版六年级语文上册第13课《桥》精美课件
- 转让宅基地协议书
- 人工挖孔桩民工劳务合同范本
- 发电机培训课件
- 煤炭购销居间标准合同范本
- 教师实习合同协议范文
- 基于云计算的2024年度企业资源规划(ERP)系统实施合同
- 猪场入股协议书范本大全
- 干货股份代持协议超简约版
- 网约车加盟方案
- 《中国古代国防》课件
- 百部红色经典:年轮
- 《国际商务谈判》课程教学大纲
- 2023骨髓腔输液技术要求
- 四渡赤水战役PPT课件模板
- 建设用地报批服务投标方案(技术方案)
- 运输车辆安全技术操作规程
- GJB438C模板-软件开发计划(已按标准公文格式校准)
- 世界遗产公约和世界遗产课件
- 房屋市政工程生产安全重大事故隐患判定标准(隐患排查表)
评论
0/150
提交评论