




已阅读5页,还剩87页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
知识回顾 软件生命周期的六个阶段是什么 第2章可行性研究与需求分析 2 1可行性研究 2 1 1可行性研究的目的2 1 2可行性研究的内容2 1 3可行性研究的步骤2 1 4可行性研究的文档 2 1 1可行性研究的目的与意义 可行性研究的目的不在于提出解决问题的方案 而在于研究解决问题的必要性和可能性 2 1 2可行性研究的内容 1 经济可行性2 技术可行性3 社会可行性 可行性研究的内容 经济可行性研究的研究内容包括以下几项 可行性研究的内容 技术可行性研究的研究内容包括以下几项 可行性研究的内容 社会可行性研究的研究内容包括以下几项 2 1 3可行性研究的步骤 典型的可行性研究的步骤如图所示 可行性研究的步骤 1 确定系统的目标系统分析人员要详细地阅读各种相关资料 并对用户和市场进行调查 从而确认目标系统要完成的任务 同时 还要明确进行项目开发时的一切限制和约束 以及可以使用的各种资源 可行性研究的步骤 2 分析研究正在运行的系统对现有系统功能特点的充分了解是成功开发新系统的前提 对现有系统的研究包括阅读和分析各种文档资料 观察系统的运行状况和实地操作系统 收集和分析用户对现有系统的意见等 可以说 现有系统是开发目标系统时重要的信息来源 可行性研究的步骤 3 设计新系统的高层逻辑模型一般来说 新系统应该完成现有系统的功能 并对现有系统中存在的问题进行改善或修复 在分析研究了现有系统的基础上 就可以大体把握新系统的功能和结构 然后从较高层次上建立新系统的逻辑模型 可行性研究的步骤 4 提出可行的解决方案并对其进行评估和比较基于新系统的高层逻辑模型 系统分析人员可以从技术的角度提出多种解决方案 并从经济 社会和技术等多个方面对各种解决方案进行比较和评估 可行性研究的步骤 5 选择合适的解决方案在上述研究的基础上 回答该软件产品是否能够解决存在的问题 是否能够带来预期的效果和价值的问题 如果该软件开发项目没有必要性和可能性 则应立即停止 并给出详细的理由 如果有开发该软件产品的必要性和可能性 那么应该从上述的多个解决方案中选取出最合适 最可行的解决方案 列举出选择该方案的原因 从经济可行性 社会可行性和技术可行性三个方面对该方案进行可行性研究 可行性研究的步骤 6 撰写可行性研究报告项目背景管理概要候选方案系统描述经济可行性分析 社会可行性分析 技术可行性分析可行性研究的结论可以按计划进行软件项目的开发 需要进行调整或改善后才能进行项目的开发该软件项目不具有可行性 立即停止 2 1 4可行性研究的文档 提交给用户的最终可行性研究报告 纸质或者电子版 案例 编写软件计划书某中学需要开发一套图书管理系统 目标是实现对图书的自动管理 节省人力资源 要求本系统适用性强 还能应用于部分小型书店 功能要求 1 图书馆管理人员可完成图书入库录入 可通过条形码 进行分类汇总 2 借书时 记录借书日期 以及将相应的信息录入数据库以供检索使用 还书时对借书记录进行注销 并把相应的信息录入数据库以供检索使用 3 用户可查询在馆书目 以及用户的借书记录 还可提供预约借书服务 2 2需求分析 为什么需要需求分析 开发人员往往急于求成希望对开发进行指导希望开发人员对用户的要求理解希望用户理解开发人员测试部门有理可依 需求分析谁来做 系统分析员系统分析员的素质 专业素质沟通能力组织 协调能力写作能力一定的成本核算知识 利用软件范围作为指南 软件需求分析试图实现如下几个目标 1 揭示系统信息的流程与结构 为软件的开发打下基础 2 确定接口细节 深入描述软件功能 确定设计的约束 规定软件的检验需求 3 建立并保持与用户以及软件需求者的联系 以便实现上述两项目标 2 2 1软件需求分析的目标 2 2 2需求分析阶段的任务 1 确定对系统的综合需求 1 系统功能需求明确系统必须完成的所有功能 2 系统性能需求包括响应时间 精度指标 安全性等 3 运行需求集中表现为对系统运行时所处环境需求 如软硬件运行环境限定需求等 4 将来可能会提出的需求目的是在设计过程中对系统将来可能的扩充和修改做准备 以便需要时能比较容易进行这种扩充和修改 更有利于系统维护 2 分析系统的数据需求分析系统的数据需求 是通过系统的信息流归纳抽象出数据元素组成 数据逻辑关系 数据字典格式和数据类型 并以输入 处理 输出的结构方式表示 因此 必须分析系统的数据需求 这是软件需求分析的一个重要任务 2 2 2需求分析阶段的任务 3 获得系统的逻辑模型 1 确定目标系统与当前系统的逻辑差别 2 将变化部分看作新的处理步骤 对功能图 一般是数据流图 及对象图进行调整 3 由外及里 对变化的部分进行分析 推断其结构 获得目标系统的逻辑模型 通常用数据流图 数据字典和主要的处理算法描述这个逻辑模型 2 2 2需求分析阶段的任务 4 修正系统开发计划经过需求分析阶段的工作 分析员对目标系统有了更深入 更具体的认识 因此可以对系统的成本和进度做出更准确的估计 在此基础上对开发计划进行修正 2 2 2需求分析阶段的任务 5 开发原型系统 当用户本身对需求的了解不太清晰的时候 开发人员通常采用建立原型系统的方法对用户需求进行挖掘 2 2 2需求分析阶段的任务 2 2 3软件需求分析的步骤 第一步 获取需求识别问题 1 研究资料法 2 问卷调查 3 用户访谈 4 实地观察 2 2 3软件需求分析的步骤 第二步 分析需求建立模型第一步结束后 分析员应该能够总结出如下几点 1 系统会产生和使用什么数据 2 系统必须完成什么功能 3 将定义什么界面 4 会应用什么约束等 在此基础上 分析员创建系统模型 以便可以更好地理解数据流和控制流 处理功能 操作行为及信息内容 常用的数据模型有数据流图 结构化的设计 E R图 结构化的设计 用例图 面向对象的设计 2 2 3软件需求分析的步骤 第三步拟订软件需求分析文件软件需求分析完成后 这一阶段应交付的文件有 1 软件需求说明书 或软件规格说明书 2 初步的用户手册3 确认实施计划4 数据要求说明书 2 2 3软件需求分析的步骤 第四步需求验证 复审1 验证 几个必须回答的问题 1 所规定的软件目标和任务与系统的目标和任务相符合吗 2 与所有系统成分的重要接口都已经被描述了吗 3 研制项目的信息流和信息结构充分确定吗 4 图表都清楚吗 每一个图表在不加补充说明的情况下能理解吗 5 主要功能在规定范围内吗 每一功能都已充分地加以说明了吗 6 设计的限制条件是现实的吗 2 2 3软件需求分析的步骤 7 开发的技术风险是什么 8 考虑过软件需求的其他方案吗 9 检验标准详细制定了吗 他们能否确认系统是成功的 10 有没有遗漏 重复或者不一致的地方 11 与用户或需求者的联系充分吗 12 用户复审了初步的用户手册吗 13 软件计划中的估算如何受到影响 2 2 3软件需求分析的步骤 2 复审 规则 1 着重于说服性的连接词 如当然 因此 明确的 显然的等 并问 为什么 2 观察含糊的术语 如一些 有时 经常 通常 一般 大多数等 并进行澄清 3 当给出了不完整的列表时 确定已理解了所有项 关键是查找 等 如此这样 4 查找蕴含了确定性的语句 如 总是 每次 所有 无 永不 等 然后要求证明它们 5 当某术语被明确地定义在某处时 力图用该定义去替换其他地方出现的该术语 6 当用语句描述某结构时 画图以帮助理解 7 当描述计算时 至少试验一个例子 软件需求分析的步骤总结 常用的数据模型有数据流图 结构化的设计 E R图 结构化的设计 用例图 面向对象的设计 2 3需求分析常用的方法 软件需求分析方法很多 重点介绍以下两种方法结构化分析方法面向对象分析方法 数据流图 结构化需求分析采用的是 自顶向下 由外到内 逐层分解 的思想 开发人员要先画出系统顶层的数据流图 然后再逐层画出低层的数据流图 顶层的数据流图要定义系统范围 并描述系统与外界的数据联系 它是对系统架构的高度概括和抽象 底层的数据流图是对系统某个部分的精细描述 2 3 1结构化分析方法 特点 自顶向下 逐层分解 描述工具 数据流图数据字典E R图 2 3 1结构化分析方法 数据流图 数据流图 DataFlowDiagram DFD 是描述系统中数据流的图形工具 是一种用来表示信息流和信息变换过程的图解方法 可以标识一个系统的逻辑输入和逻辑输出 以及把逻辑输入转换为逻辑输出所需的加工处理 数据流图把软件系统看成是由数据流联系的各种功能的组合 在需求分析的过程中 可以用来建立目标系统的逻辑模型 数据流图的图符四种基本图形符号 数据的源点或终点 加工 数据处理 数据存储 数据流 文件名 图c 数据流图 画数据流图的基本原则 数据流图中所有的符号必须是前面所述的四种基本符号和附加符号 数据流图的主图 顶层 必须含有前面所述的四种符号 缺一不可 数据流图主图上数据流必须封闭在外部实体之间 外部实体可以是一个 也可以是多个 加工 变换数据处理 至少有一个输入数据流和一个输出数据流 反映出此加工数据的来源与加工的结果 任何一个数据流子图必须与他父图上的一个加工相对应 父图中有几个加工 就可能有几张子图 两者的输入数据流和输出数据流必须一致 即所谓 平衡 图上的每个元素都必须有名字 流向数据存储或从数据存储流出的数据流除外 分层的数据流图 画数据流图的步骤 第一步 先找外部实体 可以是人 物或其他软件系统 找到了外部实体 则系统与外部世界的界面就得以确定 系统的源点和终点也就找到了 第二步 找出外部实体的输入和输出数据流 第三步 在图的边上画出系统的外部实体 第四步 从外部实体的输出流 源点 出发 按照系统的逻辑需要 逐步画出一系列变换数据的加工 直到找到外部实体处所需的输入流 终点 形成数据流的封闭 第五步 按照上述原则进行检查和修改 最后按照上述步骤画出所有子图 画数据流图的注意事项 画数据流图时 只考虑数据流的静态关系 不考虑其动态关系 如启动 停止等与时间有关的问题 也不考虑出错处理问题 画数据流图时 只考虑常规状态 不考虑异常状态 这两点一般留在设计阶段解决 画数据流图不是画程序流程图 二者有本质的区别 数据流图只描述 做什么 不描述 怎么做 和做的顺序 而程序流程图表示对数据进行加工的控制和细节 不能期望数据流图一次画成 而是要经过各项反复才能完成 描绘复杂系统的数据流图通常很大 对于画在几张纸上的图很难阅读和理解 一个比较好的方法是分层的描绘这个系统 在分层细画时 必须保持星系的持续性 父图和子图要平衡 每次只细画一个加工 例1分析下面父图和子图是否平衡 父图与子图的平衡 例2分析下面父图和子图是否平衡 画数据流图的用途 基本目的是利用它作为交流信息的工具 供有关人员审查确认 供用户理解和评价 数据流图应该分层 超过9个时应该画分图 另一个用途是作为分析和设计的工具 描述系统所完成的功能辅助物理系统的设计时 以定时要求为指南 画出许多组自动化边界 对应不同的物理系统 导出更详细的设计步骤 面向数据流的设计方法 数据流图 案例1 绘制考试管理系统的顶层及底层数据流图 某单位进行招聘考试 应聘者报名后 单位的招聘委员会将每位应聘者的基本情况输入系统 招聘考试结束后 招聘委员会需要将应聘者的成绩输入系统 并按照成绩对应聘者进行排序 将成绩单发放给每位应聘者 并发放录用通知书 数据流图 该考试管理系统顶层和底层的数据流图分别如下图 课堂练习 绘制旅行公司为旅客预订机票的数据流图要求 1 旅行公司根据预定单准备预订机票 在预订机票时要查询航班目录信息 2 预订好机票后要根据费用来记账 并写入记账文件 账单交给旅客 3 同时根据航班准备好机票 并把机票交给旅客 画基本系统模型由若干个数据源点 终点和一个处理组成 机票预订系统的基本系统模型 机票预定系统功能级数据流图 细化 描绘系统的主要功能 功能级DFD 对系统的主要功能还可以进一步细化 描述工具 数据流图数据字典E R图 2 3 1结构化分析方法 数据字典 用数据流图来表示系统的逻辑模型直观且形象 但是缺乏细节描述 也就是说它没有准确和完整地定义各个图元 可以用数据字典 datadictionary DD 来对数据流图做出补充和完善 数据字典包含4类条目数据流数据存储数据项数据加工以上4个条目按照一定规则组织起来构成数据字典 数据字典 定义规则时 常用的符号如下表所示 数据字典 例如 某教务系统的学生成绩库文件的数据字典描述可以表示为以下形式 文件名 学生成绩库记录定义 学生成绩 学号 姓名 课程代码 成绩 必修 选修 学号 由6位数字组成姓名 2 4个汉字课程代码 8位字符串考试成绩 0 100文件组织 以学号为关键字递增排列 案例2 写出机票预订系统的数据字典 数据流条目 订票单 姓名 住址 电话 航班号 日期 起点 终点航班 日期 航班号 姓名机票 姓名 日期 航班号 座位等级 起点 终点 费用航班号 Y6100 Y8100起点 或终点 城市名城市名 北京 上海 广州 长春 合肥 山西 数据存储条目 航班目录文件 航班号 起点 终点 时间 组织 按航班号升序排列记账文件 旅客 航班 机票价 机场建设费 组织 按旅客名字的拼音字母顺序排列 描述工具 数据流图数据字典E R图 2 3 1结构化分析方法 E R图 E R图E R图以实体 联系和属性三个基本概念概括数据的基本结构 实体就是现实世界中的事物 多用矩形框来表示 框内含有相应的实体名称 E R图 比如 在一个教务系统中 学生 就是一个实体 如下图所示 E R图 属性多用椭圆形表示 并用无向边与相应的实体联系起来 表示该属性归某实体所有 可以说 实体是由若干个属性组成的 每个属性都代表了实体的某些特征 学生实体的属性如下图所示 E R图 联系用菱形表示 并用无向边分别与有关实体连接起来 以此描述实体之间的关系 实体之间存在着三种联系类型 分别是一对一 一对多 多对多 它们反映到E R图中就为相应的联系类型 即1 1 1 n和m n E R图 一对一联系是指甲实体的任何一个实例只能对应到乙实体的一个实例 并且乙实体的任何一个实例只能对应到甲实体的一个实例 比如 在一个座位分配系统中 学生 实体和 座位 实体之间的关系就是一对一的 如下图所示 E R图 一对多联系是指甲实体的任何一个实例能够对应到乙实体的多个实例 而乙实体的任何一个实例只能对应到甲实体的一个实例 比如 在一个住宿管理系统中 一个 学生 只能分配到一间 宿舍 而一间 宿舍 可以容纳多个 学生 如下图所示 E R图 多对多联系是指甲实体的任何一个实例能够对应到乙实体的若干个实例 而乙实体的任何一个实例也可以对应到甲实体的若干个实例 比如 在一个选课系统中 一个 学生 可以选修若干门 课程 同时一门 课程 也可以被若干个 学生 选修 如下图所示 案例3 一个完整的高校教学管理系统E R图 案例4借阅系统E R图 2 5面向对象的软件工程方法 面向对象的基本概念面向对象的软件工程方法的特征与优势 面向对象的基本概念 近年来 为了克服传统软件工程方法存在的复用性和可维护性差以及难以满足用户需要等缺点 面向对象的思想越来越受到人们的欢迎和重视 面向对象的思想提倡运用人类的思维方式 从现实世界中存在的事物出发来构造软件 它建立在 对象 概念的基础上 以对象为中心 以类和继承为构造机制 来设计和构造相应的软件系统 面向对象的基本概念 相对于传统的软件工程思想而言 面向对象的思想更符合人类的思维逻辑 它淡化了计算机的观点 以现实世界中的模型作为构造软件系统的依据 面向对象的基本概念 1 对象对象可以是客观世界中存在的事物 也可以是概念化的实体 它由一组属性和操作组成 属性是用来描述对象静态特征的数据项 是对客观世界实体所具有性质的抽象 操作是用来描述对象动态特征 2 类类是对对象的抽象 是对具有相同属性和相同操作的一组相似对象的定义 通常情况下 很多对象都有相似的特征 把本质特征相同的事物划分为一类 即将多个对象抽象为类 面向对象的基本概念 谈到类的概念 就必须知道什么是类的实例 实例是由某个特定的类描述的一个具体的对象 比如 对于 教师 类 某位教师 王一 就是类的一个实例 对于 学生 类 某位学生 李二 就是该类的一个实例 面向对象的基本概念 3 封装封装是指把对象的属性和操作结合在一起 组成一个封闭又独立的单元封闭指外界不能直接访问对象的内部信息 独立是指对象是一个不可分割的整体 它的存在不依赖于外部可以说 类是数据封装的工具 而对象是封装的实现 面向对象的基本概念 4 继承继承表示类之间层次关系 它使得某类对象可以自动拥有另外一个或多个对象的全部属性和操作 比如 某系统已经定义了一个学生类 现在还需要定义一个研究生类 由于研究生也属于学生的一种 它具有学生所有的一切属性和操作 这时就可以采用继承的方法 使研究生类直接获得学生类的一切属性和操作 在这个系统中 研究生类就叫做子类或派生类 学生类就叫做父类或基类 子类可以把父类定义的内容自动作为自己的部分内容 同时再加入新的内容 面向对象的基本概念 继承简化了定义一个新类的过程 有利于人们对事物的认识和描述 达到了软件复用的目的 面向对象的基本概念 5 多态多态是一种使父类中定义的属性或操作被子类继承后 可以有不同的实现的机制 换句话说 多态允许属于不同类的对象对同一消息做出不同的响应 面向对象的基本概念 比如 先定义一个父类 几何图形 它具有 计算面积 的操作 然后再定义一些子类 如 三角形 长方形 和 圆形 它们可继承父类 几何图形 的各种属性和操作 并且在各自的定义中要重新描述 计算面积 的操作 这样 当有计算几何图形面积的消息发出时 对象会根据类的类型做出不同的响应 采用不同的面积计算公式 多态这种机制极大地减少了软件设计中的冗余信息 提高了软件的可复用性和可扩展性 面向对象的软件工程方法的特征与优势 2 面向对象的软件工程方法的优点 符合人类的思维习惯 稳定性好 可复用性好可维护性好 基于以上这些优点 面向对象的软件工程方法越来越受到人们的青睐 2 6面向对象需求分析方法 面向对象的需求分析示意图 用例模型 用例用例描述用例图 用例是指系统中的一个功能单元 可以描述为操作者与系统之间的一次交互 用例可大可小 但必须是完整的 用例可实现一个具体的用户目标 可进行独立的功能检测用例可以有一个名字 一般根据其在系统中的功能或职责命名在分析用例名称是否合适之时 一个简单有效的方法是将操作者和其用例连在一起读 看是否构成一个完整场景或句子 比如 游客浏览图书 游客登录注册 都是一个完整的场景 而 游客图书 就不是一个完整场景或句子用例的实例是系统的一种实际使用方法 用例描述就是使用文字来描述用例功能包含有 用例名称用例激活前的前置条件用例行为执行结束后的后置结果 用例案例1 取款 该用例的实例
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年互联网+延续护理服务试题
- 2025年大理护理职业学院考试试题
- 英语试题及答案
- 投递高级试题及答案
- 2025年工业生产领域策划协作框架协议
- 2025年城市绿化策划用地协议书
- 2025年创新策划合作联盟协议标准范本
- 2025年姜堰市股权互换协议
- 企业法律风险的预防的现状及总体形势
- 人防工程施工中的进度控制与工期管理
- 2025年安全月安全有奖答题考试题库(附答案)
- 浙江省宁波市2025年八年级下学期期末数学试题及答案及答案
- 北京历史文化街区风貌保护与更新设计导则
- 国能集团工会工作报告
- GB 7718-2025食品安全国家标准预包装食品标签通则
- 2025中考语文常考作文押题(10大主题+10篇范文)
- 安全工程安全系统工程课程设计
- 保险精算业中英翻译术语及表达式词库
- 一次函数应用题
- 英语课题评审书
- 农村催人泪下祭文2篇
评论
0/150
提交评论