11.1.软件系统分析与设计-结构化分析与设计

在这里插入图片描述

软件生命周期

瀑布模型是一个经典的软件生命周期模型,一般将软件开发分为:可行性分析(计划)、需求分析、软件设计(概要设计、详细设计)、编码、测试、运行维护等几个阶段
在这里插入图片描述

需求工程

软件需求:是指用户对系统在功能、行为、性能、设计约束等方面的期望。是指用户解决问题或达到目标所需的条件或能力,是系统或系统部件要满足合同、标准、规范或其他正式规定文档所需具有的条件或能力,以及反映这些条件或能力的文档说明

分为需求开发和需求管理两大过程,如下所示:
在这里插入图片描述

软件需求分类

  • 业务需求:反映企业或客户对系统高层次的目标要求,通常来自项目投资人、客户、市场营销部门或产品策划部门。通过业务需求可以确定项目视图和范围。
  • 用户需求:描述的是用户的具体目标,或用户要求系统必须能完成的任务。即描述了用户能使用系统来做什么。通常采取用户访谈和问卷调查等方式,对用户使用的场景进行整理,从而建立用户需求。
  • 系统需求:从系统的角度来说明软件的需求,包括功能需求、非功能需求和设计约束等。
    • 功能需求:也称为行为需求,规定了开发人员必须在系统中实现的软件功能,用户利用这些功能来完成任务,满足业务需要
    • 非功能需求:指系统必须具备的属性或品质,又可以细分为软件质量属性(如可维护性、可靠性、效率等)、性能需求以及其他非功能需求。
    • 设计约束:也称为限制条件或补充规约,通常是对系统的一些约束说明,例如必须采用国有自主知识产权的数据库系统,必须运行在UNIX操作系统之,又比如涉及到金钱的要精确到小数点后面2位等人为规定的或约束。

需求获取

需求获取:是一个确定和理解不同的项目干系人的需求和约束的过程
常见的需求获取法包括:

  • 用户访谈:1对1-3,找有代表性的用户进行访谈,对提问者的水平是有要求的。其形式包括结构化(有剧本)和非结构化(随意发挥)两种。
  • 问卷调查:用户多,无法一一访谈,收集到的需求不够精准,比较杂乱,比较考验问卷编写者的水平采样:从种群中系统地选出有代表性的样本集的过程,类似于数学中的数统计。样本数量=0.25*(可信度因子/错误率)2
  • 情节串联板:一系列图片,通过这些图片来把需求给进行叙述出来,这样虽然生动,但是耗时
  • 联合需求计划(JRP):通过联合各个关键用户代表、系统分析师、开发团队代表一起,通过有组织的会议来讨论需求。
  • 需求记录技术:任务卡片、场景说明、用户故事、Volere白卡。

需求分析

需求分析:一个好的需求应该具有无二义性、完整性、一致性、可测试性、确定性、可跟踪性、正确性、必要性等特性,因此,需要分析人员把杂乱无章的用户要求和期望转化为用户需求,这就是需求分析的工作

常见的需求分析任务包括:

  • 绘制系统上下文范围关系图(数据流图DFD)
  • 创建用户界面原型
  • 分析需求的可行性
  • 确定需求的优先级
  • 为需求建立模型
  • 创建数据字典
  • 使用QFD(QFD:质量功能部署,把需求和QFD进行关联)

结构化的需求分析

结构化特点:自顶向下,逐步分解,面向数据。
三大模型:功能模型(数据流国)、行为模型(状态转换四)、数据拱型(E-R国)以及数据字典。
在这里插入图片描述

数据流图

数据流图DFD基本图形元素:外部实体、加工、数据存储、数据流
在这里插入图片描述

  • 数据流:由一组固定成分的数据组成,表示数据的流向。在DFD中,数据流的流向必须经过加工
  • 加工:描述了输入数据流到输出数据流之间的变换,数据流图中常见的
    三种错误如图所示
    • 加工3.1.2有输入但是没有输出,称之为“黑洞”
    • 加工3.1.3有输出但没有输入。称之为“"奇迹”。
    • 加工3.1.1中输入不足以产生输出,我们称之为“灰洞”。
  • 数据存储:用来存储数据。
  • 外部实体(外部主体):是指存在于软件系统之外的人员或组织,它指出系统所需数据的发源地(源)和系统所产生的数据的归宿地(宿)。
    在这里插入图片描述
顶层图、0层图和1层图

在这里插入图片描述

数据字典DD

数据流图描述了系统的分解,但没有对图中各成分进行说明。数据字典就是为数据流图中的每个数据流、文件、加工,以及组成数据流或文件的数据项做出说明,即为了描述数据流图的
数据字典有以下4类条目:数据流、数据项、数据存储和基本加工。(注意这里没有描述外部实体,因为外部实体不是系统内部的内容)
加工逻辑也称为“小说明”。常用的加工逻辑描述方法有结构化语言、判定表和判定树3种。
在这里插入图片描述

需求定义和验证

需求定义(软件需求规格说明书SRS):是需求开发活动的产物,编制该文档的目的是使项目干系人与开发团队对系统的初始规定有一个共同的理解,使之成为整个开发工作的基础。SRS是软件开发过程中最重要的文档之一,对于任何规模和性质的软件项目都不应该缺少。
需求验证:也称为需求确认,目的是与用户一起确认需求无误,对需求规格说明书SAS进行评审和测试,包括两个
步骤:

  • 需求评审:正式评审和非正式评审。
  • 需求测试设计概念测试用例,设计场景来测试需求,没有代码。
    需求验证通过后,要请用户签字确认,作为验收标准之一,此时,这个需求规格说明书就是需求基线,不可以再随意更新,如果需要更改必须走需求变更流程

需求管理

定义需求基线:通过了评审的需求说明书就是需求基线,下次如果需要变更需求,就需要按照流程来一步步进行。需求的流程及状态如下图所示:
在这里插入图片描述

总体设计

数据流呈现了事务型的特性,因此采用事务型的交换方式对数据流图进行交换,得到如下的系统总体结构:
在这里插入图片描述

详细设计

以借书为例,采用程序流程图的形式描述借书模块的详细设计。分析借书的输入是读者信息和借书信息,需要读者信息的读者借书证号,借书信息给出了读者已经借阅了多少本书,如果读者借阅的书籍数目尚未超过系统的限制,则允许继续借书,并把新的借书信息写入借书文件;否则,拒绝借书。详细流程图如下
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yoyo勰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值