您好,欢迎访问三七文档
1软件工程第二章需求分析授课老师:清华大学计算机系殷人昆yinrk432@sina.compasswordqhdxjsjx2系统分析基于计算机的系统的系统元素包括硬件、软件、人、数据库、文档和过程。系统分析的目标1)识别用户要求2)评价系统的可行性3)进行经济分析和技术分析4)把功能分配给硬件、软件、人、数据库和其它系统元素34)建立成本和进度限制5)生成系统规格说明可行性研究可行性研究从经济可行性、技术可行性、法律可行性和用户操作可行性等方面研究可行性。4可行性研究的步骤1)确定项目的规模和目标2)研究当前正在运行的系统3)建立新系统的高层逻辑模型4)导出和评价各种方案5)推荐可行的方案6)编写可行性研究报告5软件需求分析需求分析的任务是发现、求精、建模和需求定义的过程。包括:1)需求获取2)需求建模3)需求定义(规格说明、规约)4)需求评审5)需求管理需求分析研究的对象是用户的要求。61、需求获取需求获取是在问题及其最终解决方案之间架设桥梁的第一步。需求获取的目的是清楚地理解所要解决的问题,完整地获得用户的需求。获取需求的一个必不可少的结果是对项目中描述的客户需求的普遍理解。一旦理解了需求,分析者、开发者和客户就能探索出描述这些需求的多种解决方案。7软件需求的层次1)业务需求反映了组织或客户对系统、产品高层次的目标要求,它们一般在项目视图和范围文档中给予说明。2)用户需求描述用户使用软件需要完成哪些任务,它们可通过使用实例图或脚本说明加以阐明。3)功能―非功能需求定义了开发者必须实现的软件功能,而非功能需求如表所示:8性能要求实时性;其他时间要求,如响应时间、处理时间、包传送时间等;资源配置要求;精确度、处理量等要求可靠性要求有效性;数据完整性安全保密要求安全性;保密性运行要求使用频度、运行期限;控制方式;对操作员要求产品要求物理要求系统的规模等开发类型实用性开发或试验性开发项目估算开发工作量估计开发方法质量控制标准;里程碑和评审;验收标准优先顺序权衡各种质量目标要求,排定优先实现次序过程要求可维护性可理解性、可测试性、可修改性、可移植性9需求获取过程需求获取包括以下活动:1)发现和分析问题发现问题症结,并分析问题的原因/结果关系。2)获取需求根据对问题的理解定义需求。a)使用调查研究方法收集信息;b)遵循需求获取框架,按照三个成分观察:即数据、过程和接口。3)需求归档以草稿形式归档调查结果。形式有用例、决策表、需求表等。102、需求建模需求建模是为了分析需求,以确定项目的确切需求。需求建模遵循三个原则:划分:描述需求的整体–部分关系;抽象:描述需求的一般化–特殊化关系;投影:描述需求的多维视图;定义系统模型要区分逻辑模型和物理模型。常用模型有数据建模和过程建模。113、需求定义又称需求规格说明或需求规约。需求定义的主要目的是分析需求草稿和模型,解决其中存在的二义性和不一致性,系统地准确地表达系统需求,形成需求规格说明。包括系统应提供的功能和服务;非功能需求;系统开发或运行的限制条件;与系统互连的其他系统的信息。124、需求评审又称需求验证。需求评审的目的是确保需求编写正确。可能的错误有:不正确的系统模型;排版错误或语法错误;互相矛盾的需求;有二义性或用词不当的需求;没有遵循文档编制规范要求的质量标准。135、需求管理需求管理就是管理需求变化的过程。需求管理涉及需求变更如何被处理的策略、规程和过程。它规定了应如何提交一个需求变更请求?如何分析需求变更对范围、进度和成本的影响?如何批准或驳回需求变更?如果批准了变更,改变更如何实现?14常用的分析方法面向数据流的结构化分析方法(SA)面向数据结构的Jackson方法(JSD)面向数据结构的结构化数据系统开发方法(DSSD)面向对象的分析方法(OOA)等15结构化分析方法最初只是着眼于数据流,自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。扩充后,将建模技术扩展到数据建模、功能建模和行为建模,以实体-关系图、数据流图和控制流图、状态-迁移图为工具,数据字典为核心,从不同视点建立系统的分析模型。结构化分析方法16结构化分析的分析模型实体—关系图状态—迁移图数据流图数据对象描述加工规格说明数据字典控制规格说明17数据建模数据模型包括三种互相关联的信息:数据对象,描述对象的属性,描述对象间相互连接的关系。在需求分析阶段描述数据对象和它们之间的关系,使用了E-R图。例如,在教学管理中,一个教师可以教授零门、一门或多门课程,每位学生也需要学习几门课程。因此,教学管理中涉及的对象有学生、教师和课程。18教学数据模型学号姓名专业性别……学生职工号姓名专业职称年龄教师课程号课程名学分学时……课程学号课程号成绩选课19实例的关联有三种:一对一(1:1);一对多(1:m);多对多(n:m)。这种实例的关联称为“基数”,基数表明了“重复性”。教师学生教授基数:一位教师基数:多位学生参与度:必须参与度:可选20XY一个X与一个Y相关联一个X与一个或多个Y相关联XY一个X与零个或一个Y相关联XY一个X与零个,一个或多个Y相关联XY一个X与一个Y或Z相关联XYZ一个X与一个Y与Z相关联XYZ21功能建模和数据流最初,结构化分析方法仅讨论数据流建模,目标系统被表示成如图所示的数据变换流程图。系统的功能体现在核心的数据变换中。外部实体外部实体外部实体外部实体目标系统输入信息输入信息输出信息输出信息顶层数据流图(上下文环境图)22分层的数据流图23实例考务处理系统的功能(1)对考生送来的报名单进行检查;(2)对合格的报名单编好准考证号后将准考证送给考生,并将汇总后的考生名单送给阅卷站;(3)对阅卷站送来的成绩单进行检查,并根据考试中心制定的合格标准审定合格者;(4)制作考生通知单(含成绩及合格/不合格标志)送给考生;(5)按地区进行成绩分类统计和试题难度分析,产生统计分析表。24顶层数据流图考生考务处理系统考试中心阅卷站不合格报名表报名表准考证考生通知单合格标准错误成绩单考生名单25根据考务处理业务,画出顶层数据流图,以反映最主要业务处理流程及系统与外界的关系。经过分析,考务业务处理的主要功能应当有登记报名单、统计成绩两个主要数据流。输入的源点和输出终点是考生、考试中心和阅卷站。然后从输入端开始,根据考务业务工作流,画出数据流流经的各加工框,逐步画到输出端,得到第0层数据流图。261登记报名表2统计成绩统计分析表第0层数据流图考生名册27第一层数据流图(a)1.1检查报名表准考证1.2编准考证号码不合格报名表考生名册考生名单合格报名表1.3登记考生合格报名表28第一层数据流图(b)2.1检查成绩单2.2审定合格者考生名册正确成绩单2.3制作通知单2.4分析统计成绩2.5分析试题难度试题得分表考生通知单难度分析表合格标准分类统计表成绩单错误成绩单经审定的成绩单29行为建模行为建模给出需求分析方法的所有操作原则,但只有结构化分析方法的扩充版本才提供这种建模的符号。在描述各个数据对象的行为,采用状态迁移图。30状态迁移图例如,有关处理器分配的进程状态迁移。t2t3t4t1运行就绪等待31数据字典数据字典是结构化分析方法的核心,与各模型的图形表示配合,能清楚地表达数据处理的要求。词条描述——对于在模型中每一个被命名的图形元素,均加以定义,其内容有:名字,别名或编号,分类,描述,定义,位置,其它,等32(1)数据流词条描述数据流名:说明:简要介绍它产生的原因和结果数据流来源:来自何方数据流去向:去向何处数据流组成:数据结构数据量流通量:数据量,流通量(2)数据元素词条描述33类型:数字(离散值,连续值),文字(编码类型)长度:取值范围:相关的数据元素及数据结构:(3)数据文件词条描述数据文件名:简述:存放的是什么数据输入数据:输出数据:34数据文件组成:数据结构存储方式:顺序,直接,关键码存取频率:(4)加工逻辑词条描述加工名:加工编号:反映该加工的层次简要描述:加工逻辑及功能简述输入数据流:输出数据流:35加工逻辑:简述加工程序,加工顺序(5)数据源及数据谭词条描述名称:外部实体名简要描述:什么外部实体有关数据流:数目:36数据结构的描述符号含义举例=被定义为+与x=a+b[...,...]或[...|...]或x=[a,b],x=[a|b]{...}或m{...}n重复x={a},x=3{a}8(...)可选x=(a)“...”基本数据元素x=a..连结符x=1..937存折=户名+所号+帐号+开户日+性质+(印密)+1{存取行}50户名=2{字母}24所号=001..999帐号=00000001..99999999开户日=年+月+日性质=“1”..“6”注:“1”表示普通户,“5”表示工资户等印密=“0”注:印密在存折上不显示存取行=日期+(摘要)+支出+存入+余额+操作+复核38软件需求规格说明的基本原则:功能与实现分离,描述要“做什么”而不是“怎样实现”。要求使用面向处理的规格说明语言,从而得到“做什么”的规格说明。如果目标软件只是一个大系统中的一个元素,那么整个大系统也包括在规格说明的描述之中。规格说明必须包括系统运行的环境。需求规格说明的原则39系统规格说明必须是一个认识的模型,而不是设计或实现的模型。规格说明必须是可操作的。规格说明必须容许不完备性并允许扩充。规格说明必须局部化和松散的耦合。当信息被修改时,只要修改某个单个的段落,能够很容易地加入和删去一些段落。
本文标题:软件工程讲义-02
链接地址:https://www.777doc.com/doc-6983860 .html