(公文写作)科技交流与科
技写作论文
\documentclass[11pt,a4paper,oneside]{article}
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage{CJK}
\begin{document}
\begin{CJK*}{GB}{gbsn}
\title{浅谈软件需求}
\author{柴其栋,李俊德,李明哲,胡宇鹏,杨硕,严海威,王慧民,李克宁,
朱鲁青}
\maketitle
\begin{abstract}
软件需求是(1)用户解决问题或达到目标所需的条件或权能(Capability)。(2)系
统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或权
能。(3)壹种反映上面(1)或(2)所描述的条件或权能的文档说明。
\end{abstract}
\vspace{1mm}\noindent\textbf{Keywords:}MVC,Struts2,Spring,Hibernate,S
SH,JAVAEE
\section{内容摘要}
本篇论文的内容主要有软件需求的定义,软件需求的发展,软件需求的层次,
软件需求的过程,软件需求的方法,以及软件需求说明书的格式。
\vspace{1mm}\noindent\textbf{Keywords:}MVC,Struts2,Spring,Hibernate,S
SH,JAVAEE
\section{软件需求的发展}
需求工程是随着计算机的发展而发展的,于计算机发展的初期,软件规模不
大,软件开发所关注的是代码编写,需求分析很少受到重视。后来软件开发
引入了生命周期的概念,需求分析成为其第壹阶段。随着软件系统规模的扩
大,需求分析和定义于整个软件开发和维护过程中越来越重要,直接关系到
软件的成功和否。人们逐渐认识到需求分析活动不再仅限于软件开发的最初
阶段,它贯穿于系统开发的整个生命周期。80 年代中期,形成了软件工程的
子领域——需求工程(requirementengineering,RE)。进入 90 年代以来,需
求工程成为研究的热点之壹。从 1993 年起每俩年举办壹次需求工程国际研
讨会(ISRE),自 1994 年起每俩年举办壹次需求工程国际会议(ICRE),于 1996
年 Springer-Verlag发行了壹新的刊物——《RequirementsEngineering》。
壹些关于需求工程的工作小组也相继成立,如欧洲的
RENOIR(RequirementsEngineeringNetworkofInternationalCooperatingRe
searchGroups),且开始开展工作。
\begin{figure}[t]
\centering
{\includegraphics[height=,width=]{images/}}\v
space{-2mm}
\caption{
.}\label{fig2}
\end{figure}
\section{软件需求的层次}
软件需求包括三个不同的层次—业务需求、用户需求和功能需求—也
包括非功能需求。
1.业务需求(businessrequirement)反映了组织机构或客户对系统、产
品高层次的目标要求,它们于项目视图和范围文档中予以说明。
2.用户需求(userrequirement)文档描述了用户使用产品必须要完成的
任务,这于使用实例(usecase)文档或方案脚本(scenario)说明中予以说明。
3.功能需求(functionalrequirement)定义了开发人员必须实现的软件
功能,使得用户能完成他们的任务,从而满足了业务需求。所谓特性(feature)
是指逻辑上关联的功能需求的集合,给用户提供处理能力且满足业务需求。
作为补充,软件需求规格说明仍应包括非功能需求,它描述了系统展现给用
户的行为和执行的操作等。它包括产品必须遵从的标准、规范和合约;外部
界面的具体细节;性能要求;设计或实现的约束条件及质量属性。所谓约束
是指对开发人员于软件产品设计和构造上的限制。质量属性是通过多种角度
对产品的特点进行描述,从而反映产品功能。多角度描述产品对用户和开发
人员均极为重要。值得注意的壹点是,需求且未包括设计细节、实现细节、
项目计划信息或测试信息。需求和这些没有关系,它关注的是充分说明你究
竟想开发什么。
\begin{figure}[t]
\centering
{\includegraphics[height=,width=]{images/}}\v
space{-2mm}
\caption{
.}\label{fig2}
\end{figure}
\section{软件需求过程}
软件需求工程主要包括俩个方面:需求开发和需求管理。
需求开发可进壹步分为:需求获取、需求分析、编写需求规格和需求验
证四个阶段。各阶段说明如下:
1.需求获取:这壹阶段的核心任务就是确定三个层次的需求,对于业
务层要强调明确业务总目标及使用范围,对于用户层,要强调明晰用户工作
流程,对于功能层仍要收集系统运行环境的限制等非功能性需求。不同的时
间、不同的用户会由于不同的业务目标及使用范围而提出不尽相同的需求,
同时由于没有约定提出方式也会有各不相同的表现形式。针对上述问题,首
先要确定用户代表且对其于需求中的主次地位于以划分;其次要确定需求的
整个开发过程,最后仍要明确不同层次的需求要以约定的形式出具文档,以
备双方的交流及问题检查。
2.需求分析:这壹阶段的核心任务就是确定且完善需求。初期阶段所
获得的大量需求往往是不系统、不完整甚至个别需求是错误的、不必要的,
只有通过提炼、分析和仔细审查需求,彼此沟通,采用适当的表现形式,比
如绘制业务目标关联图、绘制功能结构示意图、编制数据字典、编写用户实
例等,明白需求含义且找出其中的错误、遗漏或不足的地方,尤其是应采用
特定符号标识需求优先级。
3.这壹阶段的任务强调将已收集且做分析处理的需求经编制整理形成
规范化的可视文档,即软件需求规格说明书。
4.本阶段是需求开发工作的最后阶段,要确定于第三阶段所编制的需
求文档是否和预期结果壹致,是否符合高质量需求的评价标准。这项工作能
够通过评审来完成。评审能够根据用户代表的个人偏好、习惯予以审查需求,
也能够遵循行业质量控制办法制定严格的步骤进行审查,这主要取决于项目
的大小、需求及各个部分的重要程度。
\begin{figure}[t]
\centering
{\includegraphics[height=,width=]{images/}}\v
space{-2mm}
\caption{
.}\label{fig2}
\end{figure}
\section{软件需求方法}
软件需求分析方法大体分为如下四类:传统分析,结构化分析,信息工程,
面向对象分析。
1.传统分析就是毫无章法的进行需求分析。
2.结构化分析是壹种单纯的由顶向下逐步求精的功能分解方法。分析员
首先用上下文图表(称为数据流图 DFD)表示系统的所有输入/输出,然后反
复地对系统求精,每次求精均表示成壹更详细的 DFD 从而建立关于系统的壹
个 DFD 层次。为保存 DFD 中的这些信息,使用数据字典来存取关联的定义、
结构及目的。SA 方法是目前实际应用效力广泛的需求工程技术。它具有较好
的分别、抽象能力,为开发小组找到了壹种中间语言,易于软件人员所掌握。
但它离应用领域尚有壹定的距离,难以直接应用领域术民和软件设计也有壹
段不小的距离因而为开发小组的思想交流带来了壹定的困难。
3.信息工程采纳了结构化方法的各种技术,且根据信息系统开发特点进
行更为严格,全面的改进,改进策略规划,数据建模和自动化工具。从信息
角度开发系统,客观世界被描述为数据和数据属性及其相互关系。
4.面向对象分析把分析建立于系统对象以及对象间交互的基础之上,使
得我们能以 3 个最基本的方法框架——对象及其属性、分类结构和集合结构
来定义和沟通需求。面向对象的问题分析模型从 3 个侧面进行描述,即对象
模型(对象的静态结构)、动态模型(对象相互作用的顺序)和功能模型(数据
变换及功能依存关系)。需求工程的抽象原则、层次原则和分割原则同样适
用于面向对象方法,即对象抽象和功能抽象原则是壹样的,也是从高级到低
级、从逻辑到物理,逐级细分.每壹级抽象均重复对象建模(对象识别)壹动
态建模(事件识别)壹功能建模(操作识别)的过程,直到每壹个对象实例于物
理(程序编码)上全部实现为止。
\begin{figure}[t]
\centering
{\includegraphics[height=,width=]{images/}}\v
space{-2mm}
\caption{
.}\label{fig2}
\end{figure}
\section{软件需求说明书}
软件需求说明书的编制是为了使用户和软件开发者双方对该软件的初始规
定有壹个共同的理解,使之成为整个开发工作的基础。编制软件需求说明书
的内容要求如下:
引言
1.1 编写目的
说明编写这份软件需求说明书的目的,指出预期的读者。
1.2 背景
说明:
a.待开发的软件系统的名称;
b.本项目的任务提出者、开发者、用户及实现该软件的计算中心或计算机
网络;
C.该软件系统同其他系统或其他机构的基本的相互来往关系。
1.3 定义
列出本文的原词组。
1.4 参考资料
列出用得着的参考资料,如:a.本项目的经核准的计划任务书或合同、上
级机关的批文;b.属于本项目的其他已发表的文件;c.本文件中各处引用
的文件、资料、包括所要用到的软件开发标准。列出这些文件资料的标题、
文件编号、发表日期和出版单位,说明能够得到这些文件资料的来源。
任务概述
2.1 目标
叙述该项软件开发的意图、应用目标、作用范围以及其他应向读者说明的有
关该软件开发的背景材料。解释被开发软件和其他有关软件之间的关系。如
果本软件产品是壹项独立的软件,而且全部内容自含,则说明这壹点。如果
所定义的产品是壹个更大的系统的壹个组成部分,则应说明本产品和该系统
中其他各组成部分之间的关系,为此可使用壹张方框图来说明该系统的组成
和本产品同其他各部分的联系和接口。
2.2 用户的特点
列出本软件的最终用户的特点,充分说明操作人员、维护人员的教育水平和
技术专长,以及本软件的预期使甩频度。这些是软件设计工作的重要约束
2.3 假定和约束
列出进行本软件开发工作的假定和约束,例如经费限制、开发期限等。
需求规定
3.1 对功能的规定
用列表的方式(例如 IPO 表即输入、处理、输出表的形式),逐项定量和定
性地叙述对软件所提出的功能要求,说明输入什么量、经怎样的处理、得到
什么输出,说明软件应支持的终端数和应支持的且行操作的用户数。
3.2 对性能的规定
3.2.1 精度
说明对该软件的输入、输出数据精度的要求,可能包括传输过程中的精度。
3.2.2 时间特性要求
说明对于该软件的时间特性要求,如对:a.响应时间;b.更新处理时间;
c.数据的转换和传送时间;d.解题时间;等的要求。
3.2.3 灵活性
说明对该软件的灵活性的要求,即当需求发生某些变化时,该软件对这些变
化的适应能力,如:
a.操作方式上的变化;b.运行环境的变化;c.同其他软件的接口的变化;
d.精度和有效时限的变化;e.计划的变化或改进。对于为了提供这些灵活
性而进行的专门设计的部分应该加以标明。
3.3 输人输出要求
解释各输入输出数据类型,且逐项说明其媒体、格式、数值范围、精度等。
对软件的数据输出及必须标明的控制输出量进行解释且举例,包括对硬拷贝
方案(正常结果输出、状态输出及异常输出)以及图形或显示方案的描述。
3.4 数据管理能力要求
说明需要管理的文卷和记录的个数、表和文卷的大小规模,要按可预见的增
长对数据及其分量的存储要求作出估算。
3.5 故障处理要求
列出可能的软件、硬件故障以及对各项性能而言所产生的后果和对故障处理
的要求。
3.6 其他专门要求
如用户单位对安全保密的要求,对使用方便的要求,对可维护性、可补充性、
易读性、可靠性、运行环境可转换性的特殊要求等。
运行环境规定
4.1 设备
列出运行该软件所需要的硬设备。说明其中的新型设备及其专门功能,包括:
a.处理器型号及内存容量;b.外存容量、联机或脱机、媒体及其存储格式,
设备的型号及数量;c.输入及输出设备的型号和数量,联机或脱机;d.数
据通信设备的型号和数量;e.功能键及其他专用硬件
4.2 支持软件
列出支持软件,包括要用到的操作系统、编译(或汇编)程序、测试支持软
件等。
4.3 接口
说明该软件同其他软件之间的接口、数据通信协议等。
4.4 控制
说明控制该软件的运行的方法和控制信号,且说明这些控制信号的来源。
\begin{thebibliography}{8}
\bibitem{mvc}
刘伟琴.
\newblock软件需求(第 2版).
\bibitem{struts_01}
金芝.
\newblock软件需求工程:原理和方法.
\bibitem{struts_hibernate}
陆丽娜.
\newblock软件需求.
\bibitem{web_mvc}
骆斌.
\newblock需求工程:软件建模和分析.
\bibitem{struts2_02}
科维兹,胡辉良.
\newblock使用软件需求.
\bibitem{struts2_03}
劳森,刘晓晖.
\newblock软件需求.
\bibitem{struts_spring}
孙学涛.
\newblock需求分析.
\bibitem{ssh}
索姆维拉,赵文耘.
\newblock需求工程.
\end{thebibliography}
\end{CJK*}
\end{document}