网络应用程序的软件需求规格说明书

4

我正在寻找一些指导/书籍,帮助我创建一个针对 Web 应用程序的软件需求规格说明。为了获得灵感,我已经阅读了一些桌面应用程序的规格文档。我所阅读的文档通过用例捕获了系统的功能需求,这些用例往往是围绕着应用程序所需执行的各种增删改查操作而展开的,因此具有相当强的数据导向性。

我喜欢这种结构,但是我发现将它与我的 Web 应用程序需要做的事情联系起来有些困难,因为我的应用程序大多数情况下只涉及到数据的读取,而不是操作。我尝试编写了一些用例,但它们都归结为“搜索项目”、“更改搜索结果的视图”或“用户选择要筛选的细分结果”。这在我的看来似乎并不完全正确,这让我怀疑自己是否正在正确地进行。

Web 应用程序和桌面应用程序之间是否存在规划上的差异?

3个回答

1
在我的经验中,让所有规格都成为CRUD其实没有什么不好。大多数情况下,任何应用程序都不仅仅是“简单的CRUD应用程序”。要求会不断演变,并且系统的不同部分往往会分化并获取一些特定的逻辑。
即使感觉重复相同的CRUD句子,实际上写下来并思考它(而不是复制和粘贴)通常会发现隐藏的要求。

0

桌面应用程序和基于Web的应用程序之间的差异是惊人的。

我建议按照以下顺序阅读这些内容,并按照相反的顺序应用这些知识,除了CSS 3、HTML 5和XHTML 1.1:
RFC 3986 - URI
RFC 2616 - HTTP 1.1
RFC 4346 - TLS 1.1
RFC 4251 - SSH Protocol
RFC 4252 - SSH Authentication
RFC 4253 - SSH Transport
RFC 2045 - MIME
RFC 4627 - JSON
HTML 4.01
XML
XHTML 1.0
XHTML 1.1
ECMAScript
CSS 2
HTML 5(不是标准)
CSS 3(不是标准)
Web内容无障碍指南2.0

Symantec互联网安全威胁报告第14卷
Symantec互联网安全威胁报告第15卷
OWASP十大安全漏洞
搜索引擎优化(SEO)

当您读完这篇文章后,您应该开始理解Web的基本技术是如何工作的。只有在此之后,您才会准备好为Web应用程序进行开发。还有许多其他技术在发挥作用,但这些都是基础知识,一旦您熟悉了基础知识,您就会知道在何处寻找更多信息。


2
那个答案是回答了哪个问题呢?:) - Gabriel Ščerbák
这个问题涉及到Web应用程序的软件要求,我提供了专门处理Web的应用层标准。假定Web应用程序将在Web上产生与应用层处理相关的内容,如果这个假设是正确的,那么提供的标准就成为必要的软件要求。 - austin cheney
我更倾向于说“必要的技术架构”,因为理论上要求用于指定系统,而不考虑技术,分析模型解决方案,架构允许系统和技术解决方案的良好设计原则。您提到的是重要文件,但SEO无法帮助我了解项目管理Web应用程序将具有哪些功能和非功能需求。 - Gabriel Ščerbák
关于项目管理目标,Web应用程序的代码构建方式与桌面应用程序相同。区别在于执行模式和满足所需技术目标所必需的知识要求。我认为很多时候人们试图使用坚实的编程最佳实践来创建Web应用程序,而没有考虑到定义Web或在线环境专有技术的标准。如果最终产品希望成功,则必须充分考虑并符合列出的标准。 - austin cheney
1
我认为这个答案完全没有抓住重点。它是关于需求规格说明的。为什么这个列表甚至包括SEO呢? - kizzx2

0

基本上,您可以使用与桌面应用程序相同的方法,尽管您可能需要进行一些补充,因为Web应用程序往往具有不同类型的要求。首先,了解有关用例的一些好东西,有不同的用例级别,这可能是您的用例不太正确的解决方案。还要不要忘记用例概括和参数化用例,如果CRUD重复是问题。在Web应用程序中比在桌面应用程序中更重要的一件事是可用性方面。这是由于Web的性质 - 人们通常可以选择不使用您的服务,并转到下一个Google结果,如果您的应用程序不可用。因此,我认为规范的一个很好的补充是角色扮演 - 只需找到您的用例的一些人类参与者的可能实例,并尝试考虑他们可能想要经常使用您的Web应用程序实现的一些目标,并展示他们将如何使用您的Web应用程序实现这些目标(当然要尽量简单易用)。另一个重要的事情是信息架构 - 您将在Web应用程序中提供信息的方式。这包括导航,一些基本布局,但不一定是设计,只是有关在Web应用程序中查找某些内容的信息。这可以使用一些快速原型工具来完成。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接