软件设计师-软件工程03

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

软件工程2021/6/32第3章需求分析•为了开发出真正满足用户需求的软件产品,必须知道用户的需求。•对软件需求的深入理解是软件开发工作获得成功的前提和关键。•传统软件工程方法学采用结构化分析(StructuredAnalysis,SA)技术完成需求分析工作。2021/6/33第3章需求分析•需求分析是发现、求精、建模、规格说明和复审的过程。1.从宏观角度调查、分析用户所面临的问题——准确地了解用户当前的情况和需要解决的问题。2.反复求精、多次细化——充分理解用户需求,得出对目标系统的完整、准确和具体的要求。2021/6/343.为了更好理解问题,常常采用建立模型的方法。•模型,就是为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述。•模型由一组图形符号和组织这些符号的规则组成。•结构化分析就是一种建立模型的活动,通常建立数据模型、功能模型和行为模型第3章需求分析2021/6/35第3章需求分析4.写出准确的软件需求规格说明。5.对需求分析的结果(分析模型和规格说明)严格审查。2021/6/36•在分析软件需求和编写软件规格说明的过程中,软件开发者和软件用户都起着关键的、必不可少的作用。•用户与开发者之间需要尽可能多的通信、沟通。避免出现误解、遗漏、二义性。第3章需求分析2021/6/37第3章需求分析用户开发者分析师2021/6/38•结构化分析方法准则:–必须理解和表示问题的信息域——建立数据模型。–必须定义软件应完成的功能——建立功能模型–必须表示作为外部事件结果的软件行为——建立行为模型。–必须对描述信息、功能和行为的模型进行分解,用层次的方式展示细节。–分析过程应该从要素信息移向实现细节。第3章需求分析2021/6/39•3.1需求分析的任务•3.2与用户沟通获取需求的方法•3.3分析建模与规格说明•3.4实体—联系图•3.5数据规范化•3.6状态转换图•3.7其他图形工具•3.8验证软件需求•3.9小结第3章需求分析2021/6/3103.1需求分析的任务•确定对系统的综合要求–功能需求–性能需求–可靠性和可用性需求–出错处理需求–接口需求–约束–逆向需求–2021/6/3113.1需求分析的任务•分析系统的数据要求–任何软件系统本质上都是信息处理系统–建立数据模型(E-R图)–数据字典–层次方框图–Warnier2021/6/3123.1需求分析的任务•系统的逻辑模型–数据流图、E-R图、状态转换图、数据字典、算法描述•修正系统的开发计划2021/6/3133.2与用户沟通获取需求的方法•软件需求分析总是从两方或多方之间的通信开始。•用户面临的问题需要用基于计算机的方案来解决;开发者应该对用户的需求作出反应,给用户提供帮助。这样就产生了相互通信的需求。–从开始通信到真正相互理解的道路通常是充满坎坷的。–良好的通信技术有助于加快理解的过程。2021/6/3143.2.1访谈•访谈(或称为会谈)是最早开始运用的获取用户需求的技术,也是迄今为止仍然广泛使用的主要的需求分析技术。用例分析访谈简易应用规格说明技术软件原型正式非正式2021/6/3153.2.1访谈•两种基本形式——正式访谈和非正式访谈。–正式访谈中,系统分析员将提出一些事先准备好的具体问题,例如,询问客户公司销售的商品种类、雇用的销售人员数目以及信息反馈时间应该多快等。–非正式访谈中,将提出一些可以自由回答的开放性问题,以鼓励被访问的人员表达自己的想法,例如,询问用户为什么对目前正在使用的系统感到不满意。2021/6/316•当需要调查大量人员的意见时,向被调查的人员分发调查表是一个十分有效的做法。•在对用户进行访谈的过程中使用情景分析技术往往非常有效。所谓情景分析就是对用户运用目标系统解决某个具体问题的方法和结果进行分析。–某种程度演示目标系统的行为,使客户便于理解,便于挖掘需求。–使用户积极配合3.2.1访谈2021/6/3173.2.2面向数据流自顶向下求精•数据决定了需要的处理和算法,是需求分析的出发点。•结构化分析方法——面向数据流的自顶向下的逐步求精进行需求分析的方法。–高层数据流图–从输出端回溯–并逐步细节化2021/6/3183.2.2面向数据流自顶向下求精图3.1面向数据流自顶向下求精过程2021/6/319•提倡用户与开发者密切合作,共同标识问题,提出解决方案的要素,商讨不同的方法并指定基本的需求。•简易的应用规格说明技术已经成为信息系统界•简易应用规格说明方法基本准则:3.2.3简易的应用规格说明技术2021/6/320–在中立地点举行由开发者和用户双方出席的会议––提出一个议事日程,这个日程应该足够正式,以便能够涵盖所有要点;同时这个日程又应该足够–由一个“协调人”–使用一种“定义机制”(例如,工作表、图表等)。–目标是标识问题、提出解决方案要素、商讨不同的方法以及在有利于实现目标的氛围中指定初步的需求3.2.3简易的应用规格说明技术2021/6/321•软件原型——最准确、最有效、最强大的需求分析技术。•演示目标程序的主要功能。•要点——应该实现用户看得见的功能(例如屏幕显示或打印报表),省略目标系统的“隐含”功能(例如修改文件)。3.2.4快速建立软件原型2021/6/322•特性1“快速”。–目的:尽快向用户提供一个可在计算机上运行的目标系统的模型–功能:使用户和开发者在目标系统应该“做什么”这个问题上尽可能快地达成共识。•特性2“容易修改”。–如果原型的第一版不是用户所需要的,就必须根据用户的意见迅速地修改它,构建出原型的第二版,以更好地满足用户的需求。–重复“修改—试用—反馈”的过程,直至用户满意,如果修改耗3.2.4快速建立软件原型2021/6/3233.2.4快速建立软件原型•构建原型的方法和工具–第四代技术(4GT)•数据库查询和报表语言、程序和应用系统生成器–可重用的软件构件•使用一组已有的软件构件来装配原型。–形式化规格说明和原型环境•Z语言等数据结构(或数据库)软件体系结构构件(程序)过程构件(模块)2021/6/3243.3分析建模与规格说明•3.3.1分析建模•结构化分析实质上是一种创建模型的活动。•通过需求分析而建立的模型必须达到三个基本目标:–––定义一组需求,一旦开发出软件产品之后,就可以2021/6/325数据字典数据流图E-R图状态转换图处理规格控制规格说明数据对描象述说明在结构化分析过程中,导出的分析模型的形式2021/6/326•软件需求规格说明——分析阶段的最终成果。•软件需求规格说明的框架。–见《软件需求规格说明书框架.doc》•自然语言:容易书写、容易理解•形式化方法:无歧义、明确3.3.2软件需求规格说明2021/6/3273.4实体—联系图•数据模型包含三种相互关联的信息:–数据对象–描述数据对象属性–数据对象彼此间相互连接的关系2021/6/3283.4.1数据对象•数据对象是对软件必须理解的复合信息的表示。–所谓复合信息是指具有一系列不同性质或属性的事物,因此,仅有单个值的事物(例如宽度)不是数据对象。•数据对象:只封装了数据,区别于面向对象中的“类”或“对象”。2021/6/329•属性定义了数据对象的性质。•应该根据对所要解决的问题的理解,来确定特定数据对象的一组合适的属性。3.4.2属性2021/6/330•数据对象彼此之间相互连接的方式称为关系(联系)。1.一对一联系(1∶1)2.一对多联系(1∶N)3.多对多联系(M∶N)•联系也可能有属性。3.4.3联系2021/6/331•使用实体—关系图来建立数据模型,满足第一条分析准则。–把实体—关系图简称为ER图,用ER图描绘的数据模型也可以称为ER模型。•ER图中包含实体(即数据对象)、关系和属性三种基本成分。–矩形框——实体–连接相关实体的菱形框——关系–椭圆形或圆角矩形表示实体(或关系)的属性–用无向边把实体(或关系)与其属性连接起来。3.4.4实体—联系图的符号必须理解和表示问题的信息域2021/6/332某校教学管理ER图2021/6/333学生和课程之间的E-R模型(a)学生和课程之间的多对多联系E-R模型;(b)将多对多联系转换为一对多联系E-R模型选课mn学号专业年级课名课号学时学生姓名课程学分(a)1n学号专业课名课号学时学号课号n1姓名课程学生年级学分(b)选课2021/6/3343.4实体—联系图•建立系统实体模型的步骤:–对系统的数据域和功能域进行分析,确定系统中所涉及的实体。–确定系统中各实体之间的关系。–确定各实体及联系的属性。2021/6/3353.4实体—联系图•例如,在工资计算系统中,单位对职工的工作情况进行考勤,根据出勤结果、基本工资档案、奖金及扣款计算职工的实发工资。•工资系统中所涉及的实体就包括职工、出勤、奖励和扣款。2021/6/336–确定系统中各实体之间的关系。•一名职工一个月只有一条出勤记录,因此职工和出勤两个实体之间是一对一的关系;•一名职工在一个月中对应着多项扣款,如水电费、缺勤扣款、个人所得税等,因此职工和扣款之间是一对多的关系;•同理,一名职工在一个月中可以获得多项奖励,因此职工和奖金之间也是一对多的关系。–确定各实体及联系的属性。•例如,职工实体具有职工号、性别、职称、年龄、部门、基本工资等属性。3.4实体—联系图2021/6/337工资计算系统的E-R模型序号职工号奖项金额奖金序号职工号扣项金额扣款n奖励1n扣款1职工1考勤1出勤性别职工号年龄职称基本工资部门出勤时数请假时数旷工时数职工号2021/6/338思考题•请为某仓库的管理设计一个ER模型。•该仓库主要管理零件的订购和供应等事项。仓库向工程项目提供零件,并且根据需要向供应商订购零件。2021/6/339思考题答案2021/6/340思考题•某学校需要开发一个学生成绩管理系统,教务人员可以通过该系统维护学生信息、课程信息和成绩信息,学生可以随时查询自己的成绩单,该系统的实体关系图如下所示:•请问图中是否应该增加教务人员?试说明理由。2021/6/341思考题答案•不应该增加“教务人员”。•因为教务人员只是系统的一个使用者,系统不处理其属性信息。2021/6/3423.5数据规范化•第一范式–每个属性值都必须是原子值,即仅仅是一个简单值而不含内部结构•第二范式–满足第一范式的条件,而且每个非关键字属性都由整个关键字决定(而不是由关键字的一部分来决定)•第三范式–符合第二范式条件,而且一个非关键字属性不能仅仅是对另一个非关键字属性的进一步描述(即一个非关键字属性值不依赖于另一个非关键字属性值)2021/6/3433.6状态转换图•状态转换图(简称为状态图)通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。•作为特定事件的结果,系统将做哪些动作。•状态图提供了建模机制,满足第3条分析准则。必须表示作为外部事件结果的软件行为——建立行为模型2021/6/3443.6.1状态•状态是任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式。–状态规定了系统对事件的响应方式。–系统对事件的响应,既可以是做一个(或一系列)动作,也可以是仅仅改变系统本身的状态。–初态、终态、中间状态–既可以表示系统循环运行过程,也可以表示系统单程生命期2021/6/345•事件是在某个特定时刻发生的事情,它是对引起系统从一个状态转换到另一个状态的外界事件的抽象。•简而言之,事件就是引起系统状态转换的控制信息。3.6.2事件2021/6/3463.6.3符号•状态图中使用的主要符号:–初态:实心圆(只有一个)–终态:同心圆(0到多个)–中间状态:圆角矩形•名称、状态变量的名字和值、活动表–状态转换:箭头2021/6/347状态图中使用的主要符号事件名/动作表达式事件说明[守卫条件]/动作表达式2021/6/3483.6.4状态转换图示例2021/6/349思考题•复印机的工作过程大致如下:未接到复印命令时处于闲置状态,一旦接到复印命令则进入复印状态,完成一个复印命令规定的工作后又回到闲置状态,

1 / 75
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功