欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    第三章 软件工程 需求分析.ppt

    • 资源ID:80586969       资源大小:3.15MB        全文页数:88页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第三章 软件工程 需求分析.ppt

    第三章第三章 需求分析需求分析鄢煜尘鄢煜尘图像处理与智能系统实验室图像处理与智能系统实验室结构化分析设计过程结构化分析设计过程阶段阶段关键问题关键问题结束标准结束标准问题定义问题定义问题是什么?问题是什么?关于规模和目标的报告书关于规模和目标的报告书可可行行性性研研究究有可行的解吗?有可行的解吗?系统的高层逻辑模型系统的高层逻辑模型数据流图数据流图成本成本/效益分析效益分析需求分析需求分析系系统统必必须须做做什什么么?系统的逻辑模型系统的逻辑模型数据流图数据流图数据字典数据字典算法描述算法描述软件工程第三章 需求分析22023/1/4 引言引言 软件需求分析是软件开发早期的一个重要阶段。它软件需求分析是软件开发早期的一个重要阶段。它在问题定义和可行性研究阶段之后进行。需求分析的基在问题定义和可行性研究阶段之后进行。需求分析的基本任务是软件人员和用户一起完全弄清用户对系统的确本任务是软件人员和用户一起完全弄清用户对系统的确切要求。这是关系到软件开发成败的关键步骤,也是整切要求。这是关系到软件开发成败的关键步骤,也是整个系统开发的基础。个系统开发的基础。什么是需求什么是需求IEEE(电气和电子工程师电气和电子工程师协会)协会):用户解决问题或达到目标所需要的条件用户解决问题或达到目标所需要的条件或能力或能力系统或系统部件要满足合同、标准、规范或其他正式规系统或系统部件要满足合同、标准、规范或其他正式规定文档所要具有的条件定文档所要具有的条件或能力或能力反映反映上面两条的文档说明上面两条的文档说明通俗定义:通俗定义:需求是指明系统必须实现什么的规约,它描述了系需求是指明系统必须实现什么的规约,它描述了系统的行为、特性或属性,是在开发过程中对系统的约束统的行为、特性或属性,是在开发过程中对系统的约束需求分析的目的需求分析的目的需求分析是一项软件工程活动,其目的是:需求分析是一项软件工程活动,其目的是:清楚地理解所要解决的问题,完整地获取用户要求;清楚地理解所要解决的问题,完整地获取用户要求;刻划出软件的功能和性能;刻划出软件的功能和性能;指明软件与其他系统元素的接口;指明软件与其他系统元素的接口;建立软件必须满足的约束。建立软件必须满足的约束。-准确地回答准确地回答“系统必须做什么系统必须做什么?”软件工程第三章 需求分析5需求分析的重要性需求分析的重要性开发软件系统最为困难的部分就是准确说明开发软件系统最为困难的部分就是准确说明开发什么。最为困难的概念性工作便是编写开发什么。最为困难的概念性工作便是编写出详细技术需求,这包括所有出详细技术需求,这包括所有面向用户、面面向用户、面向机器和其它软件系统的接口向机器和其它软件系统的接口。同时这也是。同时这也是一旦做错,将会最终给系统带来极大损害的一旦做错,将会最终给系统带来极大损害的部分,而且以后再对它进行修改也极为困难部分,而且以后再对它进行修改也极为困难。软件工程第三章 需求分析6真的很重要吗?真的很重要吗?例:例:一个很好的例子:用在欧洲航天局太空火箭一个很好的例子:用在欧洲航天局太空火箭Ariane-5Ariane-5上上的嵌入式软件。的嵌入式软件。19961996年年6 6月月4 4日,该火箭第一次飞行投入使用,日,该火箭第一次飞行投入使用,刚工作约刚工作约4040秒,飞行便开始偏离其轨道。沿着秒,飞行便开始偏离其轨道。沿着ArianeAriane地面控地面控制器的方向飞行,火箭最终被摧毁。火箭摧毁,损失的不仅制器的方向飞行,火箭最终被摧毁。火箭摧毁,损失的不仅是火箭本身,还有它携带的四个人造卫星。总损失达到是火箭本身,还有它携带的四个人造卫星。总损失达到500500 millionmillion美元。美元。最后查明原因:在最后查明原因:在Ariane-5Ariane-5飞行轨道的需求文档中,没飞行轨道的需求文档中,没有分析其飞行路线,认为和有分析其飞行路线,认为和Ariane-4Ariane-4一样。一样。需求分析的困难需求分析的困难 1、客户客户说不清楚需求;说不清楚需求;有些客户对需求只有朦胧的感觉,当然说不清楚具体的需求。有些客户对需求只有朦胧的感觉,当然说不清楚具体的需求。有些客户心里非常清楚想要什么,但却说不明白。有些客户心里非常清楚想要什么,但却说不明白。如如果果客客户户本本身身就就懂懂软软件件开开发发,能能把把需需求求说说得得清清清清楚楚楚楚,这这样样的的需需求求分分析析将将会会非非常常轻轻松松、愉愉快快。如如果果客客户户全全不不懂懂软软件件,但但信信任任软软件件开开发发方方,这这事事也也好好办办。分分析析人人员员可可以以引引导导客客户户,先先阐阐述述常常规规的的需需求求,再再由由客客户户否否定定不不需需要要的的,最最终终确确定定客客户户真真正正的的需需求求。最最怕怕的的就是就是“不懂装懂不懂装懂”或者或者“半懂充内行半懂充内行”的客户,他们会提出不切实际的需求。的客户,他们会提出不切实际的需求。2、需求需求自身经常变动;自身经常变动;需求肯定会变动需求肯定会变动(1)尽尽可可能能地地分分析析清清楚楚哪哪些些是是稳稳定定的的需需求求,哪哪些些是是易易变变的的需需求求。以以便便在在进进行行系系统统设设计时,将软件的核心建筑在稳定的需求上,否则将会吃尽苦头。计时,将软件的核心建筑在稳定的需求上,否则将会吃尽苦头。(2)在在合合同同中中一一定定要要说说清清楚楚“做做什什么么”和和“不不做做什什么么”。如如果果合合同同含含含含糊糊糊糊,日日后后扯皮的事情就多。扯皮的事情就多。3、分析分析人员或客户理解有误。人员或客户理解有误。客户表达的需求,不同的分析人员可能有不同的理解。客户表达的需求,不同的分析人员可能有不同的理解。写写好好需需求求说说明明书书后后,要要请请客客户户方方的的各各个个代代表表验验证证。如如果果问问题题很很复复杂杂,双双方方都都不不太太明明白白,就有必要请开发人员快速构造软件的原型,双方再次论证需求说明书是否正确。就有必要请开发人员快速构造软件的原型,双方再次论证需求说明书是否正确。由于客户大多不懂软件,他们可能觉得软件是万能的,会提出一些无法实现的需求由于客户大多不懂软件,他们可能觉得软件是万能的,会提出一些无法实现的需求。软件工程第三章 需求分析8需求分析的困难性需求分析的困难性小故事小故事软件工程第三章 需求分析10 从前有一家汽车厂,想为年轻人设计一款新车型,企划及设从前有一家汽车厂,想为年轻人设计一款新车型,企划及设计部讨论了许久始终找不到感觉,于是对计部讨论了许久始终找不到感觉,于是对25-35岁的年轻人进岁的年轻人进行问券调查,大伙辛苦了三个月,完成了一万份的调查记录。行问券调查,大伙辛苦了三个月,完成了一万份的调查记录。市场部门摘要了调查内容反映给设计部门,重点:省油、外型市场部门摘要了调查内容反映给设计部门,重点:省油、外型酷、颜色鲜艳、马力足等。设计部门有了灵感开始设计,半年酷、颜色鲜艳、马力足等。设计部门有了灵感开始设计,半年过去了过去了!设计部门很得意的把雏型车展示给大伙看,这个时候设计部门很得意的把雏型车展示给大伙看,这个时候CEO、市场部、企划部、市场部、企划部.都傻眼了。都傻眼了。CEO开口说开口说:为什么这车没有为什么这车没有”轮子轮子”设计部回答设计部回答:市场部给的调查报告里,没说要有轮子市场部给的调查报告里,没说要有轮子市场部回说市场部回说:问卷调查中、顾客没有提到要有轮子问卷调查中、顾客没有提到要有轮子企划部生气的说企划部生气的说:你们都是白痴啊你们都是白痴啊,汽车要有轮子是基本常识,汽车要有轮子是基本常识,你们都不知道吗你们都不知道吗?原文原文地址:地址:http:/ 需求分析的目标需求分析的目标建立分析模型建立分析模型数据模型(实体数据模型(实体-关系图)关系图)功能模型(数据流图)功能模型(数据流图)行为模型(状态转换图)行为模型(状态转换图)产生正式的需求文档产生正式的需求文档本章内容本章内容3.1 需求分析的任务需求分析的任务3.2 需求获取需求获取 3.3 分析分析建模与建模与规格说明规格说明3.4 实体联系图实体联系图3.5 数据数据规范化规范化3.6 状态转换状态转换图图3.7 其他图形其他图形工具工具3.8 验证软件验证软件需求需求软件工程第三章 需求分析123.1 需求分析的任务需求分析的任务软件开发是要实现软件开发是要实现目标系统的物理模型目标系统的物理模型。需求分析的。需求分析的任务就是借助于任务就是借助于当前系统的逻辑模型导出目标系统的当前系统的逻辑模型导出目标系统的逻辑模型逻辑模型,解决目标系统,解决目标系统 “做什么做什么”的问题。的问题。软件工程第三章 需求分析13目标系统目标系统当前系统当前系统物理模型物理模型逻辑模型逻辑模型模型化模型化抽象化抽象化物理模型物理模型逻辑模型逻辑模型具体化具体化实例化实例化理理解解需需求求导导出出怎么做怎么做做什么做什么3.1 需求分析的任务需求分析的任务软件工程第三章 需求分析14需求分析的具体任务需求分析的具体任务1 确定对系统的综合要求确定对系统的综合要求 功能需求功能需求 性能需求性能需求 可靠性和可用性需求可靠性和可用性需求 出错处理要求出错处理要求 接口要求接口要求 约束约束 逆向需求逆向需求 将来可能提出的要求将来可能提出的要求软件工程第三章 需求分析15需求分析的具体任务需求分析的具体任务2 分析系统的数据要求分析系统的数据要求建立数据模型:数据字典、层次方框图、建立数据模型:数据字典、层次方框图、Warnier图图。3 导出系统的逻辑模型导出系统的逻辑模型用数据流图、实体一联系图、状态转换图、数据字典和主要的处理用数据流图、实体一联系图、状态转换图、数据字典和主要的处理算法描述这个逻辑模型算法描述这个逻辑模型4 修正系统开发计划修正系统开发计划根据在分析过程中获得的对系统的更深入更具体的了解,可以比较根据在分析过程中获得的对系统的更深入更具体的了解,可以比较准确地估计系统的成本和进度,修正以前制定的开发计划准确地估计系统的成本和进度,修正以前制定的开发计划.软件工程第三章 需求分析163.23.2 需求获取需求获取需求获取是在问题及其最终解决方案之间架设桥梁的需求获取是在问题及其最终解决方案之间架设桥梁的第一步。第一步。需求获取的目的是清楚地理解所要解决的问题,完整需求获取的目的是清楚地理解所要解决的问题,完整地获得用户的需求。地获得用户的需求。获取需求的一个必不可少的结果是对项目中描述的客获取需求的一个必不可少的结果是对项目中描述的客户需求的普遍理解。一旦理解了需求,分析者、开发户需求的普遍理解。一旦理解了需求,分析者、开发者和客户就能探索出描述这些需求的多种解决方案。者和客户就能探索出描述这些需求的多种解决方案。软件工程第三章 需求分析17需求获取过程需求获取过程需求获取包括以下活动:需求获取包括以下活动:1)1)发现和分析问题发现和分析问题 发现问题症结,并分析问题的原因发现问题症结,并分析问题的原因/结果关结果关系。系。2)2)获取需求获取需求 根据对问题的理解定义需求。根据对问题的理解定义需求。a)使用调查研究方法收集信息;使用调查研究方法收集信息;b)遵循需求获取框架,按照三个成分观察:即遵循需求获取框架,按照三个成分观察:即数据数据、过程过程和和接口接口。3)3)需求归档需求归档 以草稿形式归档调查结果。形式有用例、决策表、以草稿形式归档调查结果。形式有用例、决策表、需求表等。需求表等。软件工程第三章 需求分析18与用户沟通获取需求的方法与用户沟通获取需求的方法访谈访谈面向数据流自顶向下求精面向数据流自顶向下求精简易的应用规格说明技术简易的应用规格说明技术快速建立软件原型快速建立软件原型软件工程第三章 需求分析19(1).(1).访访 谈谈正式的访谈正式的访谈 -系统分析员将提出一些事先准备好的具体问题。系统分析员将提出一些事先准备好的具体问题。非正式的访谈非正式的访谈 -分析员将提出一些用户可以自由回答的开放性问分析员将提出一些用户可以自由回答的开放性问题,以鼓励被访问人员说出自己的想法。题,以鼓励被访问人员说出自己的想法。当需要调查大量人员的意见时,向被调查人当需要调查大量人员的意见时,向被调查人分发调查表是一个十分有效的做法。分发调查表是一个十分有效的做法。在访问用户的过程中使用在访问用户的过程中使用情景分析情景分析技术往往技术往往非常有效。非常有效。软件工程第三章 需求分析20所谓情景分析就是对用户将来使用目标系统解决所谓情景分析就是对用户将来使用目标系统解决某个具体问题的方法和结果进行分析。某个具体问题的方法和结果进行分析。情景分析技术的用处主要体现在下述两个方面:情景分析技术的用处主要体现在下述两个方面:(1)(1)它能在某种程度上演示目标系统的行为,从而便于用它能在某种程度上演示目标系统的行为,从而便于用户理解,而且还可能进一步揭示出一些分析员目前还户理解,而且还可能进一步揭示出一些分析员目前还不知道的需求。不知道的需求。(2)(2)由于情景分析较易为用户所理解,使用这种技术能保由于情景分析较易为用户所理解,使用这种技术能保证用户在需求分析过程中始终扮演一个积极主动的角证用户在需求分析过程中始终扮演一个积极主动的角色。需求分析的目标是获知用户的真实需求,而这一色。需求分析的目标是获知用户的真实需求,而这一信息的惟一来源是用户,因此,信息的惟一来源是用户,因此,让用户起积极主动的让用户起积极主动的作用对需求分析工作获得成功是至关重要的。作用对需求分析工作获得成功是至关重要的。软件工程第三章 需求分析21(2).(2).面向数据流自顶向下求精面向数据流自顶向下求精数据决定了需要的处理和算法,它是需求分析的出发点。数据决定了需要的处理和算法,它是需求分析的出发点。可行性研究阶段产生的是高层数据流图,许多具体的细节可行性研究阶段产生的是高层数据流图,许多具体的细节没有包括,许多实际的数据元素被忽略,当时分析员还不没有包括,许多实际的数据元素被忽略,当时分析员还不需要考虑这些细节,现在是定义这些数据元素的时候了。需要考虑这些细节,现在是定义这些数据元素的时候了。自顶向下求精过程软件工程第三章 需求分析22使用传统的访谈或面向数据流自顶向下求精方法定义使用传统的访谈或面向数据流自顶向下求精方法定义需求时,用户处于被动地位而且往往有意无意地与开需求时,用户处于被动地位而且往往有意无意地与开发者区分发者区分“彼此彼此”。由于不能像同一个团队的人那样。由于不能像同一个团队的人那样齐心协力地识别和精化需求,这两种方法的效果有时齐心协力地识别和精化需求,这两种方法的效果有时并不理想。并不理想。问题:问题:软件工程第三章 需求分析23 这种方法提倡用户与开发者密切合作,共同标识这种方法提倡用户与开发者密切合作,共同标识问题,提出解决方案要素,商讨不同方案并指问题,提出解决方案要素,商讨不同方案并指定基本需求。定基本需求。(3).简易的应用规格说明技术 -一种面向团队的需求收集法软件工程第三章 需求分析24使用简易的应用规格说明技术使用简易的应用规格说明技术分析需求的典型过程分析需求的典型过程1.1.初步的访谈,通过用户对基本问题的回答,初步确定初步的访谈,通过用户对基本问题的回答,初步确定待解决的问题的范围和解决方案。待解决的问题的范围和解决方案。2.2.开发者和用户分别写出开发者和用户分别写出“产品需求产品需求”。3.3.开发者和用户开会讨论,共同创建一张意见一致的组合开发者和用户开会讨论,共同创建一张意见一致的组合列表。列表。4.4.把与会者分成更小的小组,每个小组的工作目标是为每把与会者分成更小的小组,每个小组的工作目标是为每张列表中的项目制定小型规格说明。小型规格说明是对张列表中的项目制定小型规格说明。小型规格说明是对列表中包含的单词或短语的准确说明。列表中包含的单词或短语的准确说明。5.5.每个小组向全体与会者展示他们制定的小型规格说明,每个小组向全体与会者展示他们制定的小型规格说明,讨论,以创建出意见一致的确认标准。讨论,以创建出意见一致的确认标准。6.6.由一名或多名与会者根据会议成果起草完整的软件需求由一名或多名与会者根据会议成果起草完整的软件需求规格说明书。规格说明书。软件工程第三章 需求分析25(4).(4).快速建立软件原型快速建立软件原型正如第正如第1 1章已经讲过的,快速原型就是快速建立起章已经讲过的,快速原型就是快速建立起来的旨在演示目标系统主要功能的可运行的程序。来的旨在演示目标系统主要功能的可运行的程序。快速建立软件原型是最准确、最有效、最强大的需快速建立软件原型是最准确、最有效、最强大的需求分析技术。求分析技术。快速原型应具备的特性是快速原型应具备的特性是“快速快速”、“容易修改容易修改”。软件工程第三章 需求分析26快速构建和修改原型,快速构建和修改原型,通常使用下述通常使用下述3 3种方法和工具:种方法和工具:(1)第四代第四代技术技术包括包括众多数据库查询和报表语言、程序和应用系统生成器以众多数据库查询和报表语言、程序和应用系统生成器以及其他非常高级的非过程语言。能快速生成可执行的代码。及其他非常高级的非过程语言。能快速生成可执行的代码。(2)可重用的软件可重用的软件构件构件使用使用一组已有的软件构件(也称为组件)来装配(而不是从一组已有的软件构件(也称为组件)来装配(而不是从头构造)原型。头构造)原型。(3)形式化规格说明和原型形式化规格说明和原型环境环境在在交互式环境交互式环境下,用自动工具把基于形式语言的规格说明翻下,用自动工具把基于形式语言的规格说明翻译成可执行的程序代码。译成可执行的程序代码。软件工程第三章 需求分析273.3分析建模与规格说明分析建模与规格说明1 分析建模分析建模什么是模型?什么是模型?为了理解事物而对事物做出的一种抽象,是对事物的一种为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义无歧义的的书面描述。书面描述。模型通常由模型通常由一组图形符号一组图形符号和组织这些符号的和组织这些符号的规则规则组成。组成。软件工程第三章 需求分析28模型的作用模型的作用在建模过程中了解系统。在建模过程中了解系统。通过抽象降低复杂性。通过抽象降低复杂性。有助于回忆所有的细节。有助于回忆所有的细节。有助于开发小组间的交流。有助于开发小组间的交流。有助于与用户的交流。有助于与用户的交流。为系统的维护提供文档为系统的维护提供文档软件工程第三章 需求分析29结构化分析方法建立的需求模型结构化分析方法建立的需求模型结构化分析(结构化分析(Structured Analysis,SA)是)是面向数据流进行分析的方法,主要建立以下几种面向数据流进行分析的方法,主要建立以下几种模型:模型:实体关系图实体关系图(Entity-Relationship Diagram,E-R图图)来创建来创建数据数据模型模型,描述系统中所有重要的数据对象;,描述系统中所有重要的数据对象;数据流图(数据流图(Data Flow Diagram,DFD):用来创建:用来创建功能模型功能模型,描述了信息流和数据转换。描述了信息流和数据转换。状态转换图状态转换图(State-Transition Diagram,STD)用来创建用来创建行行为模型为模型,描述系统状态如何响应外部事件,而进行转换。,描述系统状态如何响应外部事件,而进行转换。软件工程第三章 需求分析30面向对象面向对象分祈方法(分祈方法(OOA)所建立的摸型)所建立的摸型对象模型对象模型(Object model):定义实体,描述系统的静态:定义实体,描述系统的静态结构,定义结构,定义“对谁做对谁做”动态模型动态模型(Dynamic model):描述对象之间的交互过程,描述对象之间的交互过程,规定规定“何时做何时做”功能模型功能模型(Functional model):描述内部数据的处理,描述内部数据的处理,指明系统应指明系统应“做什么做什么”软件工程第三章 需求分析313.33.3 分析建模与规格说明分析建模与规格说明2.2.软件需求规格说明软件需求规格说明(SRS)(SRS)Software Requirement Specification 通常用自然语言通常用自然语言+模型,完整、准确、具体地描述模型,完整、准确、具体地描述系统的数据要求、功能需求、性能需求、可靠性和系统的数据要求、功能需求、性能需求、可靠性和可用性要求、出错处理需求、接口需求、约束、逆可用性要求、出错处理需求、接口需求、约束、逆向需求以及将来可能提出的要求。向需求以及将来可能提出的要求。软件需求规格说明书,是需求分析阶段得出的最主软件需求规格说明书,是需求分析阶段得出的最主要的文档。要的文档。软件工程第三章 需求分析32软件需求说明书的软件需求说明书的编写编写(GB856TGB856T8888)1 1 引言引言 1.1 1.1 编写目的编写目的 1.2 1.2 背景背景 1.3 1.3 定义定义 1.4 1.4 参考资料参考资料 2 2 任务概述任务概述 2.1 2.1 目标目标 2.2 2.2 用户的特点用户的特点 2.3 2.3 假定和约束假定和约束软件工程第三章 需求分析33软件需求说明书的软件需求说明书的编写编写(GB856TGB856T8888)3 3 需求规定需求规定 3.1 3.1 对功能的规定对功能的规定 3.2 3.2 对性能的规定对性能的规定 3.2.1 3.2.1 精度精度 3.2.2 3.2.2 时间特性要求时间特性要求 3.2.3 3.2.3 灵活性灵活性 3.3 3.3 输人输出要求输人输出要求 3.4 3.4 数据管理能力要求数据管理能力要求 3.5 3.5 故障处理要求故障处理要求 3.6 3.6 其他专门要求其他专门要求4 4 运行环境规定运行环境规定4.1 4.1 设备设备4.2 4.2 支持软件支持软件4.3 4.3 接口接口4.4 4.4 控制控制软件工程第三章 需求分析343.4 3.4 实体实体-联系图联系图(ER)(ER)Entity Relationship DiagramERER图图 -是用来建立数据模型的工具。是用来建立数据模型的工具。数据模型数据模型 -是一种面向问题的数据模型,是按是一种面向问题的数据模型,是按照用户的观点对数据建立的模型。它描述了从用照用户的观点对数据建立的模型。它描述了从用户角度看到的数据,反映了用户的现实环境,而户角度看到的数据,反映了用户的现实环境,而且与在软件系统中的实现方法无关。且与在软件系统中的实现方法无关。数据模型中包含数据模型中包含3 3种相互关联的信息:数据对象种相互关联的信息:数据对象(实体)、数据对象的属性及数据对象彼此间相(实体)、数据对象的属性及数据对象彼此间相互连接的关系。互连接的关系。软件工程第三章 需求分析35(1).(1).数据对象数据对象数据对象数据对象:是对软件必须理解的复合信息的抽象。是对软件必须理解的复合信息的抽象。复合信息复合信息:是指是指具有一系列不同性质或属性的事物具有一系列不同性质或属性的事物,仅有单个值的事物仅有单个值的事物(例如,宽度例如,宽度)不是数据对象。不是数据对象。可以由可以由一组属性来定义的实体一组属性来定义的实体都可以被认为是数据都可以被认为是数据对象。对象。如:外部实体、事物、行为、事件、角色、单位、地点或结构如:外部实体、事物、行为、事件、角色、单位、地点或结构等。等。数据对象彼此间是有关联的。数据对象彼此间是有关联的。软件工程第三章 需求分析36(2).(2).属属 性性属性定义了数据对象的属性定义了数据对象的性质性质。必须把一个或多个属性定义为必须把一个或多个属性定义为“标识符标识符”,也就是说,也就是说,当我们希望找到数据对象的一个实例时,用标识符属性当我们希望找到数据对象的一个实例时,用标识符属性作为作为“关键字关键字”(通常简称为通常简称为“键键”)。应该根据对所要解决的问题的理解,来确定特定数据对应该根据对所要解决的问题的理解,来确定特定数据对象的一组合适的属性。象的一组合适的属性。如:如:学生具有学生具有学生具有学生具有学号学号学号学号、姓名姓名姓名姓名、性别性别性别性别、年龄年龄年龄年龄、专业专业专业专业(其它略)(其它略)(其它略)(其它略)等属性;等属性;等属性;等属性;课程具有课程具有课程具有课程具有课程号课程号课程号课程号、课程名课程名课程名课程名、学分学分学分学分、学时数学时数学时数学时数等属性;等属性;等属性;等属性;教师具有教师具有教师具有教师具有职工号职工号职工号职工号、姓名姓名姓名姓名、年龄年龄年龄年龄、职称职称职称职称等属性。等属性。等属性。等属性。软件工程第三章 需求分析37(3).(3).联联 系系数据对象数据对象彼此之间相互连接的方式彼此之间相互连接的方式称为联系,也称为关系。称为联系,也称为关系。联系可分为以下联系可分为以下3 3种类型种类型:a.a.一对一联系一对一联系(11)(11)如:一个部门有一个经理,而每个经理只在一个部门任职,则部门与经理的联如:一个部门有一个经理,而每个经理只在一个部门任职,则部门与经理的联系是一对一的。系是一对一的。b.b.一对多联系一对多联系(1N)(1N)如:某校教师与课程之间存在一对多的联系如:某校教师与课程之间存在一对多的联系“教教”,即每位教师可以教多门课,即每位教师可以教多门课程,但是每门课程只能由一位教师来教。程,但是每门课程只能由一位教师来教。c.c.多对多联系多对多联系(MN)(MN)如:学生与课程间的联系如:学生与课程间的联系(“学学”)是多对多的,即一个学生可以学多门课程,是多对多的,即一个学生可以学多门课程,而每门课程可以有多个学生来学。而每门课程可以有多个学生来学。联系也可能有属性。联系也可能有属性。如:学生如:学生“学学”某门课程所取得的成绩,既不是学生的属性也不是课程的属性。某门课程所取得的成绩,既不是学生的属性也不是课程的属性。由于由于“成绩成绩”既依赖于某名特定的学生又依赖于某门特定的课程,所以它是学既依赖于某名特定的学生又依赖于某门特定的课程,所以它是学生与课程之间的联系生与课程之间的联系“学学”的属性。的属性。软件工程第三章 需求分析38(4).(4).实体实体-联系图的符号联系图的符号ERER图图中包含了中包含了实体实体(即数据对象即数据对象)、关系关系和和属性属性等等3 3种基本成分。种基本成分。通常用通常用矩形框矩形框代表实体;代表实体;用连接相关实体的用连接相关实体的菱形框菱形框表示关系;表示关系;用用椭圆形或圆角矩形椭圆形或圆角矩形表示实体表示实体(或关系或关系)的属性;的属性;并用并用直线直线把实体把实体(或关系或关系)与其属性连接起来。与其属性连接起来。软件工程第三章 需求分析39举举 例例图图3.2 3.2 某校教学管理某校教学管理ERER图图对象教师属性学生属性课程属性联系属性关系软件工程第三章 需求分析40如何建立实体如何建立实体联系图?联系图?1、在需求收集的过程中,列出应用软件或业务过程涉及到的所有、在需求收集的过程中,列出应用软件或业务过程涉及到的所有“事物事物”,将其演化成数据对象;,将其演化成数据对象;2、一次考虑一个对象,定义这个对象和其他对象之间是否存在连接;、一次考虑一个对象,定义这个对象和其他对象之间是否存在连接;3、如果存在连接,应创建一个或多个关系;、如果存在连接,应创建一个或多个关系;4、对每一个关系,确定其关联类型;、对每一个关系,确定其关联类型;5、重复步骤(、重复步骤(2)到步骤()到步骤(4),直到定义了所有关系。,直到定义了所有关系。6、定义每个实体的属性;、定义每个实体的属性;7、形式化并复审实体关系图;、形式化并复审实体关系图;8、重复步骤(、重复步骤(1)到()到(7),直到数据建模完成。,直到数据建模完成。软件工程第三章 需求分析41 规范化的目的是:规范化的目的是:规范化的目的是:规范化的目的是:消除数据冗余消除数据冗余消除数据冗余消除数据冗余,即消除表格中数据的重复;,即消除表格中数据的重复;,即消除表格中数据的重复;,即消除表格中数据的重复;消除多义性消除多义性消除多义性消除多义性,使关系中的属性含义清楚、单一;,使关系中的属性含义清楚、单一;,使关系中的属性含义清楚、单一;,使关系中的属性含义清楚、单一;使关系的使关系的使关系的使关系的“概念概念概念概念”单一化单一化单一化单一化,让每个数据项只是一个,让每个数据项只是一个,让每个数据项只是一个,让每个数据项只是一个简单的数或字符串,而不是一个组项或重复组;简单的数或字符串,而不是一个组项或重复组;简单的数或字符串,而不是一个组项或重复组;简单的数或字符串,而不是一个组项或重复组;方便操作方便操作方便操作方便操作。使数据的插入、删除与修改操作可行并。使数据的插入、删除与修改操作可行并。使数据的插入、删除与修改操作可行并。使数据的插入、删除与修改操作可行并方便;方便;方便;方便;使关系模式更灵活使关系模式更灵活使关系模式更灵活使关系模式更灵活,易于实现接近自然语言的查询,易于实现接近自然语言的查询,易于实现接近自然语言的查询,易于实现接近自然语言的查询方式。方式。方式。方式。3.5 数据规范化数据规范化如如 何何 规规 范范 化?化?规范化规范化规范化规范化 -将将将将数据的逻辑结构数据的逻辑结构数据的逻辑结构数据的逻辑结构归结为满足一定条件归结为满足一定条件归结为满足一定条件归结为满足一定条件的的的的二维表二维表二维表二维表(关系)。即:(关系)。即:(关系)。即:(关系)。即:1.表格中每个信息项必须是一个不可分割的数据表格中每个信息项必须是一个不可分割的数据表格中每个信息项必须是一个不可分割的数据表格中每个信息项必须是一个不可分割的数据项,不可是组项。项,不可是组项。项,不可是组项。项,不可是组项。2.2.表格中每一列表格中每一列表格中每一列表格中每一列 (列表示属性列表示属性列表示属性列表示属性)中所有信息项必须中所有信息项必须中所有信息项必须中所有信息项必须是同一类型,各列的名字是同一类型,各列的名字是同一类型,各列的名字是同一类型,各列的名字 (属性名属性名属性名属性名)互异,列的次互异,列的次互异,列的次互异,列的次序任意。序任意。序任意。序任意。3.3.3.3.表格中各行表格中各行表格中各行表格中各行 (行表示元组行表示元组行表示元组行表示元组)互不相同,行的次序互不相同,行的次序互不相同,行的次序互不相同,行的次序任意。任意。任意。任意。学号学号姓名姓名性性别别年年级级专业专业001张张 三三男男2008通工通工002李李 四四女女2009电科电科用教学管理例说明如何规范化有三个实体型,即有三个实体型,即课程课程、学生学生和和教师教师,用三个关系保存它们的信息:用三个关系保存它们的信息:学生学生(学号学号,姓名,性别,年龄,年级,姓名,性别,年龄,年级,专业,籍贯专业,籍贯)教师教师(职工号职工号,姓名,年龄,职称,职,姓名,年龄,职称,职务,工资级别务,工资级别)课程课程(课程号课程号,课程名,学分,学时,课程名,学分,学时,课程类型课程类型)为表示实体型之间的联系,又建立两个关系:为表示实体型之间的联系,又建立两个关系:选课选课 (学号,课程号学号,课程号,听课出勤率,作业,听课出勤率,作业完成率,分数完成率,分数)教课教课 (职工号,课程号职工号,课程号,授课效果,授课效果)这五个关系,组成了这五个关系,组成了数据库的模型数据库的模型。在每个关系中,属性名下加下划线指明在每个关系中,属性名下加下划线指明关键关键字字。并规定关键字能唯一地标识一个元组。并规定关键字能唯一地标识一个元组。通常用通常用“范式范式(Normal Forms)(Normal Forms)”定义消除数据冗余的程度。第定义消除数据冗余的程度。第一范式一范式(1 NF)(1 NF)数据冗余程度最大,第五范式数据冗余程度最大,第五范式(5 NF)(5 NF)数据冗余程数据冗余程度最小。度最小。但是:但是:1、范式级别越高,存储同样数据就需要分解成更多张表,因此,“存储自身”的过程也就越复杂。2、随着范式级别的提高,数据的存储结构与基于问题域的结构间的匹配程度也随之下降,因此,在需求变化时数据的稳定性较差。3、范式级别提高则需要访问的表增多,因此性能(速度)将下降。从实用角度看来,在大多数场合选用第三范式都比较恰当。所以,从实用角度看来,在大多数场合选用第三范式都比较恰当。第第 一一 范范 式式每个属性值都必须是原子值,即仅仅是一个简单值而每个属性值都必须是原子值,即仅仅是一个简单值而不含内部结构。不含内部结构。如:如:学生学生(学号学号,姓名,性别,年龄,年级,专业,籍贯,姓名,性别,年龄,年级,专业,籍贯)教师教师(职工号职工号,姓名,年龄,职称,职务,工资级别,姓名,年龄,职称,职务,工资级别)课程课程(课程号课程号,课程名,学分,学时,课程类型,课程名,学分,学时,课程类型)第第 二二 范范 式式满足第一范式条件,而且每个非关键字属性都由整个满足第一范式条件,而且每个非关键字属性都由整个关键字决定关键字决定(而不是由关键字的一部分来决定而不是由关键字的一部分来决定)。如:如:选课选课 (学号,课程号学号,课程号,听课出勤率,作业完成率,分数听课出勤率,作业完成率,分数 )教课教课 (职工号,课程号职工号,课程号,授课效果授课效果 )第第 三三 范范 式式符合第二范式的条件,每个非关键字属性都仅由关键符合第二范式的条件,每个非关键字属性都仅由关键字决定,而且一个非关键字属性不能仅仅是对另一个字决定,而且一个非关键字属性不能仅仅是对另一个非关键字属性的进一步描述非关键字属性的进一步描述(即一个非关键字属性值不即一个非关键字属性值不依赖于另一个非关键字属性值依赖于另一个非关键字属性值)。如:如:教师教师教师教师(职工号职工号职工号职工号,姓名,年龄,职称,职务,姓名,年龄,职称,职务,姓名,年龄,职称,职务,姓名,年龄,职称,职务,工资工资工资工资)-工资依赖于职称或职务工资依赖于职称或职务工资依赖于职称或职务工资依赖于职称或职务教师教师教师教师(职工号职工号职工号职工号,姓名,年龄,职称,职务,姓名,年龄,职称,职务,姓名,年龄,职称,职务,姓名,年龄,职称,职务,工资级别工资级别工资级别工资级别)3.63.6 状态转换图状态转换图状态转换图状态转换图(简称为状态图简称为状态图)通过描绘系统的通过描绘系统的状态状态及引起系统状态转换的及引起系统状态转换的事件事件,来表示系统的来表示系统的行为行为。此外,状态图还指明了作。此外,状态图还指明了作为特定事件的结果系统将做哪些动作为特定事件的结果系统将做哪些动作(例如,处例如,处理数据理数据)。1).1).状状 态态状态状态是任何可以被观察到的是任何可以被观察到的系统行为模式系统行为模式,一个状态代表,一个状态代表系统的一种行为模式。系统的一种行为模式。状态规定了系统对事件的响应方式。状态规定了系统对事件的响应方式。系统对事件的响应,既可以是做一个系统对事件的响应,既可以是做一个(或一系列或一系列)动作,也可动作,也可以是仅仅改变系统本身的状态,还可以是既改变状态又做以是仅仅改变系统本身的状态,还可以是既改变状态又做动作。动作。初态初态 (即初始状态即初始状态)状态状态 终态终态 (即最终状态即最终状态)中间状态中间状态一张状态图中只能有一个初态,而终态则可以有0至多个。2).2).事事 件件事件是在某个特定时刻发生的事情,它是对引起事件是在某个特定时刻发生的事情,它是对引起系统做动作或系统做动作或(和和)从一个状态转换到另一个状态从一个状态转换到另一个状态的外界事件的抽象。的外界事件的抽象。例如,内部时钟表明某个规定的时间段已经过去,例如,内部时钟表明某个规定的时间段已经过去,用户移动或点击鼠标等都是事件。用户移动或点击鼠标等都是事件。简而言之,简而言之,事件就

    注意事项

    本文(第三章 软件工程 需求分析.ppt)为本站会员(qwe****56)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开