软件需求与软件需求规约

合集下载

第2章-软件需求与软件需求规约

第2章-软件需求与软件需求规约
2. 需求发现技术。 3. 规约需求的三种语言。 4. 需求在软件开发中的作用。
6
(3)应用
针对一个小型简单的系统,运 用合适的需求求发现技术,按 一定要求的规格说明格式,以 限定的自然语言给出该系统的 需求规约。
7
软件需求及系统/产品(需求)规约
不论是自顶向下的软件开发,还是自底 向上的软件开发,正确定义问题,是解决 问题的前提.
1
课 名:
软件工程
2
2
第1章 第2章 第3章 第4章 第5章 第6章 第7章 第8章
绪论 软件需求与软件需求规约 结构化方法 面向对象的方法——UML 面向对象的方法——RUP 软件测试 软件生存周期过程与管理 集成化能力成熟度模型(CMMI)
3
第2章 软件需求与软件需求规约
软件需求以一种技术的形 式,描述一个产品/系统应该 具有的功能、性能和其他性 质。
第一个问题:依据需求工程人员的技能和产品、合同的 实际情况,往往需要“组合”地使用这些技术来开发 初始需求。
第二个问题:在任意特定的环境中,在实施上述任何一 项技术时,还都可以辅以诸如原型构造等其他方法, 例如,在举行小组会时可以使用原型,方便人员之间 的交流。
第三个问题:执行需求发现这项活动的人,其技能水平 对这项活动的成功具有重大的影响。
--硬件限制(Hardware limitations),例如:处理速度 、信号定序需求、存储容量、通讯速度以及可用性等;
--与其它应用接口(Interfaces to other applications) ,如,当外部系统处于一个特定状态时,禁止新系统某些 操作
--并发操作(Parallel operations),例如,可能要求从/ 自一些不同的源,并发地产生或接收数据。对此,必须清 晰地给出有关时间的描述。

自考软件工程名词解释

自考软件工程名词解释

、术语解释1. 过程域 :是一个业务域中一束相关实践,当它们一起得以实现时,就满足被认为对该过程域的改善具有重要作用的一组条件。

2. 过程改善 : 是指人为设计的一个活动程序,其目的是改进组织的过程性能和成熟度,并改进这一程序的结果,用于描述该过程域必须呈现的一些独有特征 ,用于描述实现制度化的该过程必须呈现的特征 ,这些专用实践被认为对于达到该过程域的专用目标是重要活动,即期望以专用 ,这些共用实践被认为对于达到该过程域相关的共用目标是重要活动7.能力等级 : 是指单一过程域中已达到的过程改善,能力等级是为了管理,对过程改善程序所设定的几个“台阶”8. 成熟度等级 : 是指达到预先定义的一组过程域所有目标的一种过程改善等级 9. 软件 :软件是指计算机系统中的程序及其文档10. 软件工程 : 软件工程是应用计算机科学理论和技术以及工程管理原则和方法,按预算和进度实现满足用户要求的软件产品的工程,或以 此为研究对象的学科11. 软件危机 :软件生产率、软件质量远远满足不了社会发展的需求,成为社会,经济发展的制约因素,人们通常把这一现象称为“软件危 机” 12. 软件危机 : 软件生产率、软件质量远远满足不了社会发展的需求,成为社会,经济发展的制约因素,人们通常把这一现象称为“软件危 机” 13. 软件需求 : 软件需求以一种技术形式,描述了一个产品 /系统应该具有的功能、性能和其它性质。

14. 功能需求 : 功能需求规约了系统或系统构件必须执行的功能 15. 非公能需求 :非公能需求是性能、外部接口、设计约束和质量属性这4 类需求的统称16. 需求规约 :需求规约是一个软件项 /产品 /系统所有需求陈述的正式文档,它表达了一个软件产品/系统的概念模型17. 需求分析 : 一般来说,分析是系统地使用信息,对一个问题的估算。

软件需求分析是这一概念的特化,即系统化地使用“数据流” 、“加 工”、“数据存储”、“数据源”和“数据潭”等术语所表达的信息,对待建系统“是什么”给出一个估算一一系统概念模型18. 软件设计 :在需求分析的基础上,定义满足需求所需要的结构,即针对给定的问题,给出该问题的软件解决方案,确定“怎么做”的问 题。

02333软件工程简答知识点

02333软件工程简答知识点

第一章绪论简述软件危机与软件工程的概念以及提出软件工程概念的目的。

201804 201810(1)软件生产率、软件质量远远满足社会发展的需求,成为社会、经济发展的制约因素,把这一现象称为软件危机;(2)软件工程是应用计算机科学理论和技术以及工程管理原则和方法,按预算和进度实现满足用户要求的软件产品的工程,或以此为研究对象的学科;(3)软件工程概念的提出是倡导以工程的原理、原则和方法进行软件开发,以期解决出现的软件危机。

简述软件工程的概念与发展201404发展:60年代末—80年代初,主要围绕系统实现技术、软件质量和软件工程管理;80年代以来,主要表现为软件复用技术、软件生产管理的研究和实践。

简述计算机软件的概念,以及提出软件工程概念的目的。

201704 2016101.计算机软件一般是指计算机系统中的程序及其文档。

2.其中,程序是计算机任务的处理对象和处理规则的描述;3.文档是为了理解程序所需的阐述性资料。

4.软件工程概念的提出是倡导以工程的原理、原则和方法进行软件开发,以期解决出现的软件危机。

简述软件开发的本质及其涉及到的问题。

201904 201504本质:不同抽象层术语之间的“映射”,以及不同抽象层处理逻辑之间的“映射”。

问题:(1)如何实现这样的映射,这是技术层面上的问题;(2)如何管理这样的映射,以保障映射的有效性和正确性。

这是管理层面上的问题。

简述软件开发的本质及其基本途径。

201710 201510本质:实现问题空间的概念;处理逻辑到解空间的概念;处理逻辑之间的映射。

途径:系统建模。

简述何谓系统模型以及软件开发中所涉及的系统模型分类。

模型是待建系统的任意抽象。

该抽象是在特定意图下所确定的角度和抽象层次对物理系统的一个描述,描述其中的成分和成分之间所具有的特定语义的关系,还包括对该系统边界的描述;系统模型分为两类:概念模型和软件模型。

软件模型又可进步分为设计模型、实现模型和部署模型等。

软件工程术语

软件工程术语

软件工程术语软件工程术语1. 软件工程软件工程是一门关于系统化、规范化、可靠化和高效化地开发和维护软件系统的学科。

它涵盖了从软件需求分析、设计、编码、测试到部署和维护的整个过程。

2. 软件需求软件需求是指软件系统的功能、性能和质量等方面的要求。

它是软件工程开发过程的第一步,通过需求分析和需求规约的过程来明确软件系统的需求。

3. 软件设计软件设计是指在软件需求分析的基础上,根据需求来设计软件系统的结构、模块、接口等。

软件设计要考虑软件的可扩展性、可维护性和可重用性,以及满足用户需求的功能和性能。

4. 软件编码软件编码是指根据软件设计的要求,将设计好的软件系统转化为计算机程序的过程。

编码要求代码清晰易懂,结构良好,符合编程规范和标准。

5. 软件测试软件测试是指通过运行软件系统的测试用例来验证软件系统的正确性和可靠性,并发现和修复软件中的错误。

软件测试可以通过手动测试和自动化测试来进行。

6. 软件部署软件部署是指将开发好的软件系统安装到目标环境中,并进行配置和调试,使其能正常运行。

软件部署要考虑到系统的稳定性、安全性和性能等方面的要求。

7. 软件维护软件维护是指在软件系统已经投入使用后,对软件系统进行更新、修复和优化等工作的过程。

软件维护可以包括纠正错误、增加新功能、提高性能等。

8. 面向对象面向对象是一种软件开发的方法论,通过将系统中的数据和操作封装为对象,实现数据的抽象、封装、继承和多态等特性。

面向对象能够提高软件的灵活性、可复用性和可维护性。

9. 设计模式设计模式是一套被反复使用、多数人知晓的、经过优化的解决某一类问题的模板。

设计模式可以提供软件开发中的一些问题的解决方案,使得软件系统更加健壮和可扩展。

10. 敏捷开发敏捷开发是一种以迭代、循序渐进的方式进行软件开发的方法。

它强调团队合作、快速响应变化和持续集成等原则,以提高软件的灵活性和适应性。

以上是一些常见的软件工程术语,通过了解和掌握这些术语,可以更好地理解和应用软件工程的相关知识和方法。

软件工程-课程目录-大纲视图(全国高等教育自学考试指定教材-计算机网络专业-独立本科)

软件工程-课程目录-大纲视图(全国高等教育自学考试指定教材-计算机网络专业-独立本科)

第一章绪论1.1 软件工程概念的提出与发展1.2 软件开发的本质1.3 本章小结第二章软件需求与软件需求规约2.1 需求与需求获取2.1.1需求定义2.1.2 需求分类2.1.3 需求发现技术2.2 需求规约2.2.1 需求规约定义2.2.2 需求规约(草案)格式2.2.3 需求规约(规格说明书)的表达2.2.4 需求规约的作用2.3 本章小结第三章结构化方法3.1 结构化需求分析3.1.1 基本术语1.数据流2.数据存储3.数据源和数据谭3.1.2 系统功能模型表示数据流图(Dataflow Diagram)3.1.3 建模过程1.建立系统环境图, 确定系统语境2.自顶向下, 逐步求精, 建立系统的层次数据流图3.定义数据字典数据流条目给出所有数据流的结构定义数据存储条目给出所有数据存储的结构定义数据项条目给出所有数据项的类型定义4.描述加工(1)结构化自然语言(2)判定表(3)判定树3.1.4 应用中注意的问题(1)模型平衡问题(2)信息复杂性控制问题3.1.5 需求验证3.2 结构化设计3.2.1 总体设计1.总体设计的目标及其表示(1)Yourdon提出的模块结构图(2)层次图(3)HIPO图2.总体设计步骤(1)变换型数据流图——变换设计(2)事物型数据流图——事物设计3.模块化及启发式规则(1)模块化1)耦合①内容耦合②公共耦合③控制耦合④标记耦合⑤数据耦合2)内聚①偶然内聚②逻辑内聚③时间内聚④过程内聚⑤通信内聚⑥顺序内聚⑦功能内聚(2)启发式规则1)改进软件结构, 提高模块独立性2)力求模块规模适中3)力求深度、宽度、扇出和扇入适中4)尽力使模块的作用域在其控制域之内5)尽力降低模块接口的复杂度6)力求模块功能可以预测3.2.2 详细设计1.结构化程序设计2.详细设计工具(1)程序流程图(2)盒图(N-S图)(3)PAD图(Problem Analysis Diagram)(4)类程序设计语言IPO图、判定树和判定表等也可以作为详细设计工具3.3 本章小结第四章面向对象方法——UML 4.1 UML术语表4.1.1 表达客观事物的术语1.类与对象1)类的属性(Attribute)2)类的操作3)关于类语义的进一步表达①详细叙述类的职责(Responsibility)②通过类的注解和/或操作的注解, 以结构化文本的形式和/编程语言, 详述注释整个类的语义和/或各个方法③通过类的注解或操作的注解, 以结构化文本形式, 详述注释各个操作的前置条件和后置条件, 甚至注释整个类的不变式④详述类的状态机⑤详述类的内部结构⑥类与其他类的协作4)类在建模中的主要用途①模型化问题域中的概念(词汇)②建立系统的职责分布模型③模型化建模中使用的基本类型2.接口(Interface)(1)采用具有分栏和关键字《interface》的矩形符号来表示(2)采用小圆圈和半圆圈来表示3.协作(Collaboration)4.用况(Use Case)5.主动类(Action Class)6.构件(Component)7.制品(Artifact)8.节点(Node)4.1.2 表达关系的术语1.关联(Association)(1)关联名(Name)(2)导航(3)角色(Role)(4)可见性(5)多重性(Multiplicity)(6)限定符(Qualifier)(7)聚合(Aggregation)(8)组合(Composition)(9)关联类(10)约束①有序(ordered)②无重复对象(set)③有重复对象(bag)④列表(list)或序列(sequence)⑤只读(readonly)2.泛化(Generalization)①完整(Complete)②不完整(Incomplete)③互斥(Disjoint)④重叠(Overlapping)3.细化(Realization)4.依赖①绑定(Bind)②导出(Derive)③允许(Permit)④实例(InstanceOf)⑤实例化(Instantiate)⑥幂类型(Powertype)⑦精化(Refine)⑧使用(Use)可模型化以下各种关系(1)结构关系1)以数据驱动2)以行为驱动(2)继承关系(3)精化关系(4)依赖关系4.1.3 表达组合信息的术语——包1)访问(Access)2)引入(Import)4.2 UML模型表达格式1.类图(Class Diagram)(1)模型化待建系统的概念(词汇), 形成类图的基本元素(2)模型化待建系统的各种关系, 形成该系统的初始类图(3)模型化系统中的协作, 给出该系统的最终类图(4)模型化逻辑数据库模式2.用况图(Use Case Diagram)所包含的内容(1)主题(Subject)(2)用况(Use Case)(3)参与者(Actor)(4)关联、泛化与依赖模型化工作1)关于系统/业务语境的模型化①系统边界的确定②参与者与用况的交互③参与者的语义表达④参与者的结构化处理2)关于系统/业务需求的模型化①确定系统/业务的基本用况②用况的结构化处理③用况的语义表达3.状态图(1)状态1)名字2)进入/退出效应(Effect)①entry②exit③状态内部转移3)do动作或活动4)被延迟的事件(2)事件1)信号(Signal)事件2)调用(Call)事件3)时间事件4)变化事件(3)状态转移①源状态②转移触发器③监护(guard)条件④效应(effect)⑤目标状态实际应用中, 使用状态图的作用①创建一个系统的动态模型②创建一个场景的模型4.顺序图(1)术语解析1)消息2)对象生命线3)聚焦控制(the Focus of Control)(2)控制操作子1)选择执行操作子(Operator for Optional Execution)2)条件执行操作子(Operator for Conditional Execution)3)并发执行操作子(Operator for Parallel Execution)4)迭代执行操作子(Operator for Iterative Execution)4.3 本章小结第五章面向对象方法——RUP5.1 RUP特点1.以用况为驱动2.以体系结构为中心3.迭代增量式开发5.2 核心工作流5.2.1 需求获取1.列出候选需求2.理解系统语境(1)业务用况模型(2)业务对象模型3.捕获系统功能需求(1)活动1: 发现并描述参与者(2)活动2: 发现并描述用况(3)活动3: 确定用况的优先级(Priority)(4)活动4: 精化用况(5)活动5: 构造用户界面原型1)用户界面的逻辑设计2)物理用户界面的设计3)开发用户界面原型并演示为了执行该用况, 用户怎样使用该系统(6)活动6: 用况模型的结构化5.2.2 需求分析1.基本术语(1)分析类(Analysis Class)1)边界类(Boundary Classes)2)实体类(Entity Classes)3)控制类(Control Classes)(2)用况细化(Use Case Realization)(3)分析包(Analysis Package)2.分析模型的表达3.分析的主要活动(1)活动1: 体系结构分析(Architectural Analysis)1)任务1: 标识分析包2)任务2: 处理分析包之间的共性3)任务3: 标识服务包4)任务4: 定义分析包的依赖5)任务5: 标识重要的实体类6)任务6: 标识分析包和重要实体类的公共特性需求(2)活动2: 用况分析1)任务1: 标识分析类①标识实体类②标识边界类③标识控制类2)任务2: 描述分析(类)对象之间的交互(3)活动3: 类的分析1)任务1: 标识责任2)任务2: 标识属性①关于实体类属性的标识②关于边界类属性的标识③关于控制类属性的标识3)任务3: 标识关联和聚合①关于关联的标识②关于聚合的标识③关于泛化的标识(4)活动4: 包的分析4.小结(1)关于分析模型1)分析包2)分析类3)用况细化(2)关于分析模型视角下的体系结构描述(3)用况模型和分析模型比较(4)分析模型对以后工作的影响1)对设计中子系统的影响2)对设计类的影响3)对用况细化[设计]的影响5.2.3 设计1.设计层的术语(1)设计类(Design Class)(2)用况细化[设计](3)设计子系统(4)接口(Interface)2.设计模型、部署模型以及相关视角下的体系结构描述(1)设计模型及其视角下的体系结构描述1)子系统结构2)对体系结构有意义的设计类3)对体系结构有意义的用况细化[设计](2)部署模型及该模型视角下的体系结构描述3设计的主要活动(1)活动1: 体系结构的设计1)任务1: 标识节点和它们的网络配置2)任务2: 标识子系统和它们的接口①标识应用子系统②标识中间件和系统软件子系统③定义子系统依赖④标识子系统接口3)任务3: 标识在体系结构方面有意义的设计类和它们的接口4)任务4: 标识一般性的设计机制①标识处理透明对象分布的设计机制②标识事务管理的设计机制(2)活动2: 用况的设计1)标识参与用况细化的设计类2)标识参与用况细化的子系统和接口(3)活动3: 类的设计1)任务1: 概括描述设计类2)任务2: 标识操作3)任务3: 标识属性4)任务4: 标识关联和聚合5)任务5: 标识泛化6)任务6: 描述方法7)任务7: 描述状态(4)活动4: 子系统的设计1)任务1: 维护子系统依赖2)任务2: 维护子系统所提供的接口3)任务3: 维护子系统内容4.RUP设计小结1)RUP设计的突出特点2)关于RUP的设计方法①给出用于表达设计模型中基本成分的4个术语, 包括子系统, 设计类, 接口, 用况细化[设计]②规约了设计模型的语法, 指导模型的表达③给出了创建设计模型的过程以及相应的指导3)RUP的设计模型①设计子系统和服务子系统②设计类(其中包括一些主动类), 以及他们具有的操作、属性、关系及其实现需求。

软件工程软件需求分析

软件工程软件需求分析

软件工程软件需求分析软件需求分析是软件工程的一个重要过程,它是软件开发的基础。

软件需求分析是在软件工程生命周期中的需求工程阶段进行的,旨在识别和详细描述待开发软件系统的功能、性能、接口、约束等需求。

本文将从软件需求分析的定义、目的、过程和相关方法等方面进行详细阐述。

一、软件需求分析的定义软件需求分析是指对于待开发软件系统的需求进行系统化和详细的分析,以便于理解用户需求和系统规范,并将之转化为可行的技术规范。

软件需求分析旨在为软件开发过程提供指导,确保开发出满足用户需求且具备高质量的软件系统。

二、软件需求分析的目的1.确定软件系统的功能:通过软件需求分析,可以明确软件系统应该具备的功能,以满足用户的需求。

2.确定软件系统的性能:软件需求分析还可以确定软件系统的性能要求,如响应速度、可靠性、扩展性等。

3.确定软件系统的接口:软件需求分析可以明确软件系统与其他系统、硬件或用户之间的接口要求。

4.确定软件系统的约束:软件需求分析可以识别软件系统的约束条件,如预算、时间、人力等。

5.为软件开发过程提供指导:通过对需求的详细分析,可以为软件开发过程提供指导,确保开发出满足用户需求的高质量软件系统。

三、软件需求分析的过程1.需求收集:需求收集是软件需求分析的起点,它包括与用户沟通、文档分析、现场观察等方法,旨在收集用户对软件系统的需求。

2.需求分析:需求分析是对收集到的需求进行整理、划分、概述的过程。

它包括需求分类、需求建模、需求验证等步骤。

3.需求规约:需求规约是将需求转化为可执行的技术规范的过程。

它包括需求描述、需求确认、需求文档编写等步骤。

4.需求追踪:需求追踪是确保软件系统开发过程中需求的一致性和完整性的过程,它包括需求跟踪、变更控制、配置管理等步骤。

四、软件需求分析的方法1.采访法:通过与用户进行面对面的交流,提问并记录用户需求。

采访法可以确保准确收集到用户的需求,但可能存在信息偏差的问题。

2.文档分析法:通过阅读相关文档,如需求文档、用户手册等,获取对软件系统需求的理解。

5 软件需求与软件需求规约


半形式化的规约 即以半形式化符号体系(包括术语表、标准化的表达格 式等)来表达需求规约。因此,半形式化规约的编制应遵循一 个标准的表示模板(一些约定)。
其中:
--术语表明确地标识了一些词,可以基于某一种自然语言 --标准化的表达格式(例如例如数据流图、状态转换图、实 体关系图、数据结构图以及过程结构图等)标识了一些元 信息,支持以更清晰的方式系统化地来编制文档.
软件工程
第五讲 软件需求与软件需求规约
朱建凯
三、软件需求及系统/产品(需求)规约
定义问题的基本要素是”需求”
需求的基本性质 必要的(Necessary)。 无歧义的(Unambiguous)。 可测试的(testable)。 可跟踪的(Traceable)。 可测量的(Measurable)。
-- 硬件接口 (Hardware interfaces) :如果软件系统必须与 硬件设备进行交互,那么就应说明所要求的支持和协议类型。 --软件接口(Software interfaces):允许与其它软件产品进行 交互,如,数据管理系统、操作系统或数学软件包。 --通讯接口(Communications interfaces):规约待开发系统 与通讯设施(如,局域网)之间的交互。如果通讯需求包含了系 统必须使用的网络类型(TCP/IP,WindowsNT,Novell),那 么有关类型的信息就应包含在SRS中。
注:大型复杂项目和一些有能力的组织,在开发需求
文档时,往往使用系统化的需求分析技术和工具。其中
一些方法提供了系统化、自动化的功能,逐一验证单一 需求所具有的五个性质,并进一步验证需求规约是否具 有以上四个性质。
3)需求规约格式实例 ××××××系统需求规格说明书 1.引言 1.1 编写目的 说明编写本需求分析规格说明书的目的。 1.2背景说明 (1)给出待开发的软件产品的名称; (2)说明本项目的提出者、开发者及用户; (3)说明该软件产品将做什么,如必要,说明不做什么。 1.3术语定义 列出本文档中所用的专门术语的定义和外文首字母组词的 原词组。 1.4参考资料 列出本文档中所引用的全部资料,包括标题、文档编号、 版本号、出版日期及出版单位等,必要时注明资料来源。

简述需求规约的 3 种基本形式

需求规约的 3 种基本形式需求规约是软件开发过程中非常重要的一环,它描述了系统或软件的功能和性能要求。

在需求规约中,有三种基本形式,分别是:功能需求、非功能需求和约束条件。

1. 功能需求功能需求描述了系统或软件应该具备的功能和行为。

它包括了用户对系统的期望以及系统应该做出的响应。

功能需求可以细分为以下几个方面:1.1 用户角色和用例用户角色指使用系统或软件的不同用户类型,而用例则是对于每个用户角色来说所执行的操作序列。

用例可以通过流程图、状态图等方式来描述。

1.2 功能特性功能特性是指系统或软件所提供的具体功能模块。

例如,在一个电商网站中,购物车、下单、支付等都是功能特性。

1.3 输入输出输入输出描述了系统或软件所接受和生成的数据格式和内容。

例如,在一个学生管理系统中,学生信息作为输入,成绩报表作为输出。

1.4 界面设计界面设计包括了用户与系统进行交互时所见到的界面元素和布局。

良好的界面设计能够提高用户体验和工作效率。

1.5 数据处理和算法数据处理和算法描述了系统或软件对输入数据的处理方式。

例如,在一个音乐播放器中,数据处理和算法包括了音频解码、播放队列管理等。

2. 非功能需求非功能需求描述了系统或软件除了功能外的其他要求。

它主要关注系统的性能、安全性、可靠性、可用性等方面。

2.1 性能需求性能需求描述了系统或软件在特定条件下应该具备的性能指标。

例如,响应时间、并发用户数、吞吐量等。

2.2 安全需求安全需求描述了系统或软件应该具备的安全保障措施。

例如,用户认证、访问控制、数据加密等。

2.3 可靠性需求可靠性需求描述了系统或软件在长时间运行中不出现故障的要求。

例如,系统的平均故障时间间隔(MTBF)、故障恢复时间(MTTR)等。

2.4 可用性需求可用性需求描述了系统或软件对用户友好程度的要求。

例如,界面易用性、帮助文档完整性等。

2.5 兼容性需求兼容性需求描述了系统或软件与其他系统或平台之间的兼容性要求。

软件工程——精选推荐

软件⼯程⾃学考试软件⼯程02333 知识总结归纳(全8章)第⼀章绪论1968年的NATO会议上⾸次提出了软件⼯程这⼀术语。

软件⼯程是⼀门研究软件开发的学科。

软件⼯程概念提出的⽬的:为了倡导以⼯程的原理、原则和⽅法进⾏软件开发,以解决出现的“软件危机”。

简单分析软件⼯程概念的提出与发展:(1)软件⼯程概念的提出20世纪60年代以来,随着计算机的⼴泛应⽤,软件⽣产率、软件质量远远满⾜不了社会发展的需求,成为社会、经济发展的制约因素,这就是“软件危机”,⽽为了解决软件危机从⽽提出了软件⼯程概念。

(2)软件⼯程的发展历程,⼤体分两个时期。

1.第⼀个时期20世纪60年代末到80年代初,软件系统的规模、复杂性以及在关键领域的⼴泛应⽤,促进了软件的⼯程化开发和管理。

这⼀时期主要围绕软件项⽬,开展了有关开发模型、开发⽅法和⽀持⼯具的研究。

2.第⼆个时期20世纪80年代以来,围绕对软件⼯程过程的⽀持,开展了⼀系列有关软件⽣产技术,特别是软件复⽤技术和软件⽣产管理的研究和实践。

软件是对⼀个特定问题域的抽象,是被开发出的⼀种逻辑实体,⽽不是⼀种“有形”的物理部件。

软件开发既有技术上的问题,⼜有管理上的问题。

⽂档是了解程序所需的阐述性资料。

在软件开发中,分层的基本动机是为了控制开发的复杂性。

软件:计算机软件⼀般是指计算机系统中的程序及其⽂档。

模型:待建模系统的任意抽象,其中包括所有的基本能⼒、特性或其他⼀些⽅⾯,⽽没有任何冗余的细节。

简述实施软件开发的基本途径:软件开发的基本途径是问题建模。

常⽤的建模⼿段有:结构化⽅法、⾯向对象⽅法以及诸多⾯向数据结构⽅法等。

计算机任务的处理对象和处理规则的描述是程序。

软件⼯程:是应⽤计算机科学理论和技术以及⼯程管理原则和⽅法,按预算和进度实现满⾜⽤户要求的软件产品的⼯程,或以此为研究对象的学科。

软件开发的本质:不同抽象层术语之间的“映射”,以及不同抽象层处理逻辑之间的“映射”。

在软件⽣产的程序系统时代由于软件规模扩⼤和软件复杂性提⾼等原因导致了软件危机。

需求规约的主要内容

需求规约的主要内容
需求规约是软件工程中的一个重要概念,它用于明确软件系统的需求,以便开发团队能够理解和满足用户的期望。

需求规约的主要内容包括以下几个方面:
1. 简介:需求规约的简介部分通常包括项目的背景和目标,以及该规约的目的和范围。

这有助于读者了解项目的背景和预期结果。

2. 功能需求:功能需求是指软件系统应具备的各种功能和行为。

在需求规约中,功能需求需要被详细描述,包括功能的描述、输入和输出、性能要求、边界条件等。

这些功能需求可以按照模块、子系统或整个系统的层次进行组织和描述。

3. 非功能需求:非功能需求是指软件系统除了功能外的其他要求,例如性能、可靠性、安全性、可维护性等。

在需求规约中,非功能需求需要明确描述,并给出相应的度量标准和测试方法。

4. 用户界面需求:用户界面需求描述了软件系统与用户交互的方式和要求,包括界面的布局、颜色、字体、交互方式等。

这些需求可以通过原型、界面设计图等形式进行说明。

5. 数据需求:数据需求描述了软件系统与数据的交互,包括数据的格式、存储方式、访问权限等要求。

这些需求通常涉及到数据库的设计和管理。

6. 约束和限制:约束和限制是指对软件系统开发和实施过程中的限制条件,包括时间、成本、技术限制、法律法规等。

需求规约中应明确这些约束和限制,并确保开发团队能够在其范围内完成开发任务。

以上是需求规约的主要内容,通过对这些内容的详细描述,可以帮助开发团队准确理解用户的需求,并为软件系统的开发提供清晰的指导。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

除了对要执行的功能给出一个陈述外,还应规约如下内容: 关于该功能输入的所有假定,或为了验证该功能输入, 有关检测的假定。 功能内的任一次序,这一次序是与外部有关的。 对异常条件的响应,包括所有内外部所产生的错误。 需求的时序或优先程度。 功能之间的互斥规则。 系统内部状态的假定。 为了该功能的执行,所需要的输入和输出次序。 用于转换或内部计算所需要的公式。
设计约束 设计约束限制了系统或系统构件的设计方案。就约束的本身 而言,对其进行权衡或调整是相当困难的,甚至是不可能的。它 们必须予以满足。这一性质,是与其它需求的最主要差别。为了 满足功能、性能和其它需求,许多设计约束将对软件项目规划、 所需要的附加成本和工作产生直接影响。例如:
•系统必须用C++或其他面向对象语言编写。系统用户接口需要菜单。 •任取10秒,一个特定应用所消耗的可用计算能力平均不超过50%。 •必须在对话窗口的中间显示错误警告,其中使用红色的、14点加粗Arial 字体。
小组会(Group session) 举行客户和开发人员的联席会议,与客户组织的一些代表 共同开发需求。其中: -通常是由开发组织的一个代表作为首席需求工程师或软 件工程项目经理,主持这一会议。但还可以采用其它形式, 这依赖于其应用领域和主持人的能力。主持人的作用主要是 掌握会议的进程。 -必须仔细地选择该小组的成员,不仅要考虑他们对现存 的和未来运行环境的理解程度,还要考虑他们的人品。
--内存约束(Memory constraints):描述易失性存储和永久 性存储的特性和限制,特别应描述它们是否被用于与一个系统 中其它处理的通讯。 --操作(Operation):规约用户如何使系统进入正常和异常的 运行以及在系统正常和异常运行下如何与系统进行交互。应该 描述在用户组织中的操作模式,包括交互模式和非交互模式; 描述每一模式的数据处理支持功能;描述有关系统备份、恢复 和升级功能方面的需求。 --地点需求(Site adaptation requirements):描述系统安 装以及如何调整一个地点,以适应新的系统。
4)需求发现 常用的发现初始需求的技术,包括: 自悟(Introspection) 需求人员把自己作为系统的最终用户,审视该系统并提出问 题:“如果是我使用这一系统,则我需要…” 适用条件:需求工程师不能直接与用户进行交流,自悟是乎 是一种比较有吸引力的方法,可能确实是必须的。 成功条件:若使自悟是成功的,需求人员必须具有比最终用 户还要多的应用领域和过程方面的知识,并具有良好的 想象能力。
注1:
功能需求是整个需求的主体,即没有功能需求,就没有非 功能需求,即性能需求、外部接口需求、设计约束和质求而言,可以是一对多的,例如: 功能1 功能2 性能x 功能3 性能x ...
性能需求 性能需求(Performance requirement)规约了一个系统或 系统构件必须具有的性能特性。例如: • 系统应该在5分钟内计算出给定季度的总销售税。 •系统应该在1分钟内从100000条记录中检索出一个销售定单。 • 该应用必须支持100个Windows 95/NT工作站的并行访问。 注:性能需求隐含了一些满足功能需求的设计方案,经常 对设计产生一些关键的影响。例如:排序,关于花费 时间的规约将确定哪种算法是可行的。
针对产品开发,为确定其相关的设计约束,一般需要考虑以下10 个方面: --法规政策(Regulatory policies); --硬件限制(Hardware limitations),例如:处理速度、信号 定序需求、存储容量、通讯速度以及可用性等; --与其它应用的接口(Interfaces to other applications), 如,当外部系统处于一个特定状态时,禁止新系统某些操作; --并发操作(Parallel operations),例如,可能要求从/自一 些不同的源,并发地产生或接收数据。对此,必须清晰地给出有 关时间的描述;
可见, 在任何软件开发活动中,第一步都是: --调查、确定在一个系统需求规约中的系统需求; --调查、确定在一个软件需求规约(SRS)中的软件需 求。 即:不论是采用自顶向下的软件开发,还是采用自底向上的软 件开发, 软件需求是软件开发的工作基础。
2 需求与需求获取 1)定义 一个需求是一个有关“要予构造”的陈述,描述了待开 发产品/系统(或项)功能上的能力、性能参数或者其 它性质。 A requirement is a statement that has been constructed to describe a necessary functional capability,performance parameter, or other property of the intended product(or item).
外部接口需求 外部接口需求(External interface requirement)规约了 系统或系统构件必须与之交互的硬件、软件或数据库元素。它 也可能规约其格式、时间或其他因素。 例如: 账户接收系统必须为月财务状况系统提供更新信息,如在“ 财务系统描述”第4修订版中所描述的。 引擎控制系统必须正确处理从飞行控制系统接收来的命令, 符合接口控制文档B2-10A4,修订版C的1到8段的规定。
外部接口分为以下几类: --系统接口(System interfaces):描述一个应用如何与系统的 其他应用进行交互。 --用户接口(User interfaces):规约了软件产品和用户之间接 口的逻辑特性。即规约 对给用户所显示的数据,对用户所要求 的数据以及用户如何控制该用户接口。 --硬件接口(Hardware interfaces):如果软件系统必须与硬件 设备进行交互,那么就应说明所要求的支持和协议类型。 --软件接口(Software interfaces):允许与其它软件产品进行交 互,如,数据管理系统、操作系统或数学软件包。 --通讯接口(Communications interfaces):规约待开发系统与 通讯设施(如,局域网)之间的交互。如果通讯需求包含了系统必 须使用的网络类型(TCP/IP,WindowsNT,Novell),那么有关 类型的信息就应包含在SRS中。
质量属性
质量属性(Quality attribute)规约了软件产品必须具有 的一个性质是否达到质量方面一个所期望的水平。例如: 属性 可靠性 存活性 可维护性 用户友好性 安全性 可移植性 描述
软件系统在指定环境中没有失败而正常运行的概率。 当系统的某一部分系统不能运行时,该软件继续运行或支 持关键功能的可能性。 发现和改正一个软件故障或对特定的范围进行修改 所要求的平均工作。 学习和使用一个软件系统的容易程度。 在一个预定的时间内,使软件系统安全的可能性。 软件系统运行的平台类型。
2)什么样的陈述可以作为需求 --需求的基本性质 IEEE标准830-1998要求单一需求必须具有5个基本性质: 必要的(Necessary)。是要求的吗? 无歧义的(Unambiguous)。只能用一种方式解释吗? 可测的(testable)。可以对它进行测试吗? 可跟踪的(Traceable)。可以从一个开发阶段到另一 个阶段对它进行跟踪吗? 可测量的(Measurable)。可以对它进行测量吗? 注:确定一个需求是否满足以上五个性质是复杂耗时的过程.
三、软件需求及系统/产品(需求)规约
--定义问题的基本要素是什么? --定义问题的基本格式是什么?
特别地:
--软件为解决系统集成所遇到的问题,尤其是开发 周期后期中所发现的问题,提供了灵活性。 --软件为软/硬件接口中所出现的问题,提供了低成 本解决途径, 即修改软件与修改硬件相比可大大节省费 用。 但要认识到:“软件是容易修改的,但修改正确是很 难的”。 由此可见,软件通常是任何系统中最为复杂的部分。 在系统创建时,软件的开发经常成为最大的技术挑战。
例如: 系统必须有能力支持100个以上的并发用户,每个用户可 以处理附录A中操作任务的任选组合,平均响应时间应该 小于1秒,最大响应时间应小于5秒。 其中:功能-可以处理附录A中操作任务的任选组合 性能-有能力支持100个以上的并发用户 平均响应时间应小于1秒,最大响应时间应小于5秒。 必须在对话窗口的中间显示错误警告,其中使用红色的、 14点加粗Arial字体。 其中:功能-能显示错误警告 设计约束-在对话窗口的中间显示,并使用红色的、14点加 粗Arial字体。
--审计功能(Audit functions),规约软件系统必须满足的数 据记录准则或事务记录准则。如,如果用户察看或修改数据, 那么就可能要求该系统为了以后复审,记录该系统的动作; --控制功能(Control functions):可以对系统的管理能力进 行远程控制、可以对其他外部软件以及内部过程进行控制; --高级语言需求(Higher order language requirements); --握手协议(Signal handshake protocols):通常用于硬件 和通讯控制软件,特别当给出特定的时间约束时,一般就要把 “握手协议”作为一项约束; --应用的关键程度(Criticality of the application),许 多生物医学、航空、军事或财务软件属于这一类; --安全考虑(Safety and security considerations)。
其次,了解需求工作在系统工程中的位置
图 工程活动和产品流
摘自《软件工程最佳实践-项目经理的指南》
附注:
•系统工程过程是一组集成的、有序的活动和决策,把一个定 义的需求转化未一个可操作的、生存周期优化的系统,该系 统实现了组件的集成并达到最佳的平衡。
——《US Airforce.Technical Reviews and Audits for systems, Equipment, and Computer programs. JointPolicy Coordination Group on Computer Resource Management, Washington DC》
相关文档
最新文档