软件工程课程第七章-需求

  1. 什么是需求

需求是对系统必须做什么或它需要具有什么特性的简单声明。(重点是分析阶段的业务用户需求、随着项目从分析到设计再到实现,需求会随着时间的推移而变化)

  1. 功能性和非功能性需求
  1. 功能性需求
  1. 系统应提供的服务说明、系统应如何对特定的输入作出反应,以及系统在特定情况下应如何表现
  2. 说明系统不应该做什么
  1. 非功能性需求
  1. 对系统提供的服务或功能的限制,如时间限制、对开发过程的限制、标准等
  2. 通常适用于系统作为一个整体,而不是单个的特性或服务。
  1. 功能性需求详述
  • 一个系统的功能需求描述了这个系统应做什么
  • 这些需求取决于正在开发的软件类型软件的预期用户,以及组织在编写需求时所采取的一般方法
  • 功能性需求举例
  1. 用户应能够搜索所有诊所的预约名单。
  2. 该系统应为每个诊所生成一份当天预约的患者名单。
  3. 使用该系统的每个员工都应由其八位数的员工编号进行唯一标识。
  1. 非功能性需求详述
  1. 与紧急的系统属性有关,如可靠性、响应时间和存储占用率
  2. 定义系统实现的约束,例如I/O设备的功能或与其他系统接口中使用的数据表示。
  3. 非功能需求通常比个别功能需求更重要
  4. 这些要求的实现可以分散到整个系统中:
  1. 非功能性需求可能会影响系统的整体体系结构,而不是影响单个组件。
  2. 一个单一的非功能需求,如安全需求,可能会产生许多相关的功能需求,以定义所需的新系统服务。
  1. 非功能性需求的类型

  1. 功能性需求和非功能性需求之间没有明显的区别

需求是功能性需求还是非功能性需求取决于:

在需求文档中包含的详细级别上

存在于系统客户和系统开发人员之间的信任程度

  1. 产品需求示例
  1. 系统服务X的可用性应为999/1000或99.9%。

(这是一个可靠性要求,这意味着在该服务的每1000个请求中,必须满足999个。)

  1. 系统Y应每秒至少处理8次事务。

(这是一个性能要求。)

  1. 系统Z的可执行代码应限制在512k字节以内。

(这是一个资源需求,它指定了系统的最大内存大小。)

  1. 过程需求示例
  1. 要使用的开发过程必须被明确地定义,并且必须符合ISO 9000标准
  2. 该系统必须使用XYZ系列CASE工具套件进行开发。
  3. 必须每两周制作一次在每个确定的系统组件所花费的管理报告。
  4. 必须指定系统开发指定灾难恢复计划。
  1. 外部需求示例
  1. 医疗数据系统该组织的数据保护工作人员必须证明所有数据都是根据数据保护法规进行维护的。
  2. 使用子公司主要语言来生成子公司报告
  1. 需求工程
  • 需求工程定义:发现分析记录检查这些服务和约束条件的过程。
  • 需求工程的任务
  1. 起始启发阶段):要建立基本的理解,包括存在的问题,谁需要解决方案,所期望解决方案的性质,与项目利益相关者和开发人员之间达成初步交流合作的效果。
  2. 获取(导出):从所有利益相关者中引出需求(有效整理需求)
  3. 细化(精化):创建一个识别数据、功能和行为需求的分析模型
  4. 协商:对开发人员和客户实际可行的可交付系统达成一致
  5. 规格说明:可以是一份写好的文档,一套图形化的模型,一个形式化的数学模型,一组使用场景,一个原型或上述各项的任意组合。(文档化
  6. 确认(正式的技术评审是最主要的确认机制-检查)内容或解释上的错误;需要进一步澄清的地方;丢失的信息;不一致性(这是建造大型产品或系统时遇到的主要问题);冲突的需求或者不可实现(不能达到)的需求
  7. 需求管理:需求的变更的要求贯穿于系统的整个生命周期。需求管理用于帮助项目组在项目进展中标识、控制和跟踪需求以及需求变更的一组活动
  • 启动阶段(Inception)(会找利益相关者
  1. 确认利益相关者(直接或间接的从正在开发的系统中获益的人):在开始阶段,需求工程师应该创建一个人员列表,列出那些有助于获取需求的人员。最初的人员列表将随着接触的利益相关者人数的增多而增加,因为每个利益相关者都将被询问“你认为我还应该和谁交谈”。
  2. 识别多重观点
  3. 协同合作
  4. 首次提问

①谁是这个工作的幕后需求

②谁将用这个解决方案

③一个成功的解决方案的经济效益是什么?

④你需要的解决方案有其他来源吗?

  • 确定利益相关者的案例
  1. 确定精神卫生保健患者信息系统的利益相关者
  1. 信息被记录在系统中的患者
  2. 负责评估和治疗病人的医生
  3. 协调与医生的咨询并进行一些治疗的护士
  4. 管理病人预约的医务人员
  5. 负责安装和维护系统的IT人员
  6. 医疗道德经理,必须确保系统符合当前病人护理的道德准则。
  7. 从系统中获取管理信息的医疗保健经理
  8. 负责确保系统信息能够得到维护和保存,以及记录保存程序已得到妥善执行的医疗记录工作人员
  1. ATM利益相关者

①银行部门的客户②其他银行的代表 ③银行业务经理④柜台工作人员⑤“数据库”管理员 ⑥ “安全部经理” ⑦市场部⑧软硬件维护工程师⑨银行监管机构

  • Eliciting Requirements(获取需求)

  • 协作性的收集需求
  • 会议由软件工程师和利益相关者共同举办和参与
  • 制定筹备和参与会议的规则
  • 建议拟定一个会议议程,这个议程既要足够正式,使其涵盖所有的要点,但也不能太正式,以鼓励思维的自由交流。
  • 由一个“主持人”(可以是客户,开发人员或其他人)控制会议
  • 采用“方案论证手段”(可以是工作表,活动挂图,不干胶贴纸,电子公告牌,聊天室或虚拟论坛)
  • 协作收集需求的目标是:标识问题、提出解决方案的相关元素、协商不同方法以及确定一套解决需求问题的初步方案。
  1. 获取需求的方式
  • 访谈
  • 问卷调查
  • 分析资料
  • 实地考察
  • 选择合适的方式:信息的深度、信息的广度、信息的整合度、用户参与度、花费(开销)

  1. 质量功能部署(QFD
  • 将客户要求转化成软件技术需求的技术
  • 从软件工程过程中最大化客户的满意度
  • 功能部署-确定系统所需的每个功能的“价值”(由客户感知)
  • 价值分析-确定需求的相对优先级
  • 常规(正式)需求:在会议中向客户陈述一个产品或系统时的目标,如果这些需求存在,客户就会满意。
  • 期望需求:在产品和系统中客户没有清晰表达的基础功能,缺少了这些将会引起客户不满
  • 兴奋需求:超出客户预期的需求,当这些需求存在时令人非常满意
  1. 获取需求:
  1. 用户场景:(用例)-标识使用情况的线程
  2. 获取工作产品(Elicitation Work Products)
  • 要求和可行性的陈述。
  • 系统或产品范围的界限说明。
  • 参与需求获取的客户、用户和其他利益相关者的列表
  • 系统技术环境的描述。
  • 需求列表(最好按功能组织)以及每个需求适用的领域限制。
  • 一系列使用场景,有助于深入了解系统或产品在不同运行环境下的使用。
  • 任何能够更好地定义需求的原型。
  1. 细化需求,建立需求模型

掌握各类元素的特点

需求模型的元素:

  • 基于场景的元素
  • 用例-参与者”和系统之间交互的描述
  • 用例图(作为输入)
  • 活动图/泳道图
  • 基于类的元素:类图。每个使用场景都意味着当一个参与者和系统交互时所操作的一组对象,这些对象被分成类-具有相似属性和共同行为的事物集合UML
  • 行为元素:行为图、状态图。基于计算机的系统行为能够对所选择的设计和所采用的实现方法产生深远影响。
  • 面向流的元素:数据流图
  1. 简要用例的示例

用户暗示她希望订购被选中的商品。

该系统将显示用户以前存储的账单和运输信息。

用户将确认现有的账单和发货信息应用于此订单。

该系统将显示订单的成本金额,包括适用的税收和运费。

用户将确认订单信息是否准确。

该系统将为用户提供一个针对订单的跟踪ID。

  1. 协商(细化)需求(Negotiating Requirements)
  • 确定主要的利益相关者(这些人将参与协商)
  • 确定每个利益相关者的“获胜条件”(获胜的条件并不总是很明显的)
  • 协商(细化):朝着一系列能导致“双赢”的要求而努力

用例图

  1. 规格说明
  2. 确认
  3. 需求管理
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
教务管理系统(软件工程课程设计)- 目录 第一章 问题定义 4 1.1问题定义 4 第二章 可行性研究 5 2.1系统概述 5 2.2.1可行性分析 5 第三章 需求分析 5 3.1功能需求 5 3.2性能需求 6 3.3环境需求 7 3.4相关信息和数据 8 第四章 总体设计 12 4.1系统功能描述 12 4.2 数据流图与数据字典 14 4.2.1数据流图 14 4.2.2查询功能流程图 16 4.2.3数据字典 17 4.3软件结构图 20 4.4 数据库设计 21 4.4.1数据库需求分析 21 4.4.2数据库逻辑结构设计 21 第五章 详细设计 23 5.1 系统界面设计 23 5.2系统主要算法设计: 25 第六章 编码 26 6.1 Delphi 开发环境 26 第七章 测试 26 主要参考文献: 27 第一章 问题定义 1.1问题定义 1.所需资源: 硬盘>80G,内存>256,处理器一般以上水平即可。 2.系统名为:教务管理系统 (1),本处理的信息主要有三大类:学生信息、教师信息、成绩数据。本系统主要着 手于以上三大部分,建立数据库以及对数据的各种操作功能。 对于学生信息,由于需要经常性地进行各种查询。例如:查询一个班级中团员的人数 ,男女生的人数等等。教导处在每一届学生进校时必须进行分班,设置学号;每一届学 生毕业,要进行学生信息备份; 对于教师信息,学校教导处跟据老师所教班的成绩对教师的成绩成行考核,可以进行 同科的纵横向比较。(由于对教师方面不太了解只有这些) 对于成绩管理,课任教师要进行本科目成绩登记,计算平均分、优秀率、及格率;教 导处要分段统计学生人数及所占比列,每学期进行学生成绩备份;学校领导则可通过查 询工具来了解学生成绩情况。 (2),以上各类信息目前还处于手工或半手工的管理状态,效率低,可靠性差。 如果采用计算机进行以上各类信息的管理,必将大大提高工作效率,对各类信息的维护 及了解起到积极的作用。因此一个功能完备的学校信息管理系统的开发都非常有必要。 第二章 可行性研究 2.1系统概述 本系统将采用面向对象的软件开发方法,以SQL 2000作为后台数据库,配合功能强大的SQL查询语句,用Delphi便捷地开发教学管理信息 系统的应用程序。 2.2.1可行性分析 A 技术可行性:对Delphi能够运用自如,对SQL语句熟练掌握运用。 B 经济可行性:开发费用合理 C 操作可行性:能够良好的解决用户需要的问题 第三章 需求分析 3.1功能需求 3.1.1系统目标 通过本系统可以帮助教务处管理人员利用计算机快速方便的对学生学籍、成绩、 异动、证件进行管理、输入、输出、查询、统计等操作,使散乱的信息档案能够具体化 、直观化、合理化。 3.1.2处理范围 管理员通过用户名与密码登录。一旦通过系统授予特权,可以修改学生考试成绩 ,查看或者删除以往日志记录。 教务处可以对学生的各种信息进行添加、删除、修改、查询、统计、打印等操作 。 可以提供上网平台,学生可以在线查询个人学籍信息、考试成绩。 3.2性能需求 1快速响应:软件响应时间,更新处理时间,要求尽可能的快;同样要求查询学籍 和成绩响应的结果尽可能的快,在2分钟内出现结果。 2适应性强:对常用的操作系统、浏览器,可以不加修改直接使用;需借助其他软 件进行操作的部分,用提供稳定的多余一种的与其他软件的接口;当数据的精度、结构 与其他软件接口发生变化时,要求软件适应性强,灵活性大。当软件出现运行错误时, 应有明确的提示,并尽可能的挽救用户已输入的数据。最后,系统硬件提供定期的数据 备份功能。 3可扩充性:当使用到一定阶段时,数据和功能提供升级和更新。 4可靠度高:在各项数据的输入,输出及传输过程中要求保持数据的准确,当系统 发生故障时,处理系统能及时备份数据库,避免数据流失 友好的用户界面及操作的灵活性:系统提供浏览器界面,便于用户实现各种查询 、发送操作。在系统操作工程中体现简单、方便、灵活的特点。为确认信息的传送双方 在系统中传送信息的可靠性及安全性,采用认证方法,将信息及时反馈给用户,这样预 防了信息的丢失及错发现象。 开放行及可扩展行:软件设计采用变准花接口,硬件平台采用标准网络接口,采 用互联式数据库互联式接口,使系统与其他系统更容易实现连接。网络上运行TCP/IP协 议,易于计算机间的互联。采用模块化、结构化设计、使系统的网络扩充、功能增加、 业务扩展更容易实现。 3.3环境需求 软年环境: WEB服务器端:Windows 2003 Server , IIS6.0 、SSL5.0 数据库服务器:SQL Server 2008 客户端运行环境:Windows XP或者win7系列、IE8.0等 硬件环境: WEB服务器端:主频2GHz及

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值