软件工程(三)之需求分析
2015-09-13 17:53
225 查看
开篇前言
软件的需求分析是发现、求精、建模和规约的过程。通俗点说就是需求分析就是准确的回答“系统必须做什么”的问题。提到需求分析过程数据流图,数据词典,实体-关系图,状态图这几种图形,在我们传统的软件分析中占据了非常重要的地位。这里我们就对这些内容进行总结理解。数据流图
数据流图表示数据在系统中逻辑流向和逻辑转换过程。数据流图使用四种基本图形符号:圆框代表加工;箭头代表数据的流向,数据名称标在箭头的边上。方框表示数据的源点和终点。横线代表数据文件和数据库。
上图中表示银行取款过程中的流程图
根据上面的图形可以知道各种操作的时候各种数据进行的交换。
数据词典
根据上面的数据流图只能大概的表示数据的流向系统之间的分解,并没有表达每个数据和加工之间的具体含义,而数据词典就是描述了软件中每个数据和加工的具体的含义,这样从而保持了数据遭系统中的一致性。比如刚刚结束的机房管理系统的数据词典
名字:用户 别名:账户信息 描述:机房计算机的使用者 定义:用户号+密码+班级+学号 +姓名+性别+账户余额+备注+用户类型+用户使用状态 位置:用户信息数据库(student.sys) |
个人比较
数据流图只是把整个系统进行分解,但是对于系统之间各个名词表示的内容没有进行介绍。但是数据词典对里面中的各类中文英文名词进行了介绍。两者之间对于软件的需求的阶段起到了举足轻重的作用。实体关系图(E-R)图
在建立数据模型的时候需要用到(E-R)图。在自考数据库原理中有过对(E-R)图的介绍,当提到这种关系图的时候不得不提到数据对象,属性,和关系。数据对象就是带描述的对象比如说是学生,那么年龄,年级,籍贯等就是人这个数据对象的属性,学生和年龄1:1的联系称之为关系。
状态转换图
状态转换图就是通过描绘系统的状态以及引起系统状态转换的事件来表示系统的行为。状态转换图就是描述事件和状态之间关系的图形。例子:
有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。其规格说明如下:若投入5角钱或1元钱的硬币,押下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。若售货机没有零钱找,则一个显示〖零钱找完〗的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示〖零钱找完〗的红灯灭,在送出饮料的同时退还5角硬币。
1) 分析这一段说明,列出原因和结果
原因:
1.售货机有零钱找
2.投入1元硬币
3.投入5角硬币
4.押下橙汁按钮
5.押下啤酒按钮
结果:
21.售货机〖零钱找完〗灯亮
22.退还1元硬币
23.退还5角硬币
24.送出橙汁饮料
25.送出啤酒饮料
2) 画出因果图,如图所示。所有原因结点列在左边,所有结果结点列在右边。建立中间结点,表示处理的中间状态。中间结点:
11. 投入1元硬币且押下饮料按钮
12. 押下〖橙汁〗或〖啤酒〗的按钮
13. 应当找5角零钱并且售货机有零钱找
14. 钱已付清
3) 转换成判定表:
注:1.最后例子引自:http://www.51testing.com/html/31/165731-210147.html
里面还有很多的实例,大家可以点开链接进行查看。
2.此篇博客系博主第一次接触软件工程进行的总结,里面的错误还望各位大神的指正。
相关文章推荐
- hdu 5441 Travel 离线带权并查集
- Shape of HDU 几何问题判断多边形凹凸性
- Android 没有SD卡,利用手机存储下载、自动安装,解决Parse error when parsing manifest问题
- Implement Stack using Queues -- leetcode
- 第二周项目3 体验复杂度(1)
- Quora cqa问题抓取
- hdu4888 Redraw Beautiful Drawings
- UITableViewCell
- 如何使用iOS 8 指纹识别,代码、示例
- 交通灯
- 数据结构—判断两个链表是否相交,寻找两个链表的相交节点
- Android中联系人和通话记录详解(1)
- [转载]逐步建设企业DevOps能力
- ReactJS实践(一)—— FrozenUI React化之Loading组件
- Windows消息队列,UI线程,窗口以及消息处理方式总结
- 编译器实践的重要性-专家评说
- hdu 5438 Ponds 拓扑排序
- 使用ueditor,controller.jsp总报错
- JQuery学习笔记 选择器 - 代码练习
- Spring MVC @ResponseBody 提示 406 The resource identified by this request……