在为Web应用程序创建软件需求规范时,我正在寻找一些指导/书籍。为了灵感,我已经阅读了一些基于桌面应用程序的规范文档我读过的文档捕获了用例中的系统功能要求,这些用例往往是面向数据的,用例围绕应用程序要执行的各种CRUD操作。
我喜欢这种结构,但我发现很难将它与我的Web应用程序需要做的事情结合起来,主要是阅读数据而不是操纵它。我已经开始编写一些用例,但是它们都倾向于归结为“搜索项目”,“更改搜索结果视图”或“用户选择构面以优化搜索结果”。这对我来说听起来不太合适,让我想知道我是否会以正确的方式解决这个问题。
基于Web和基于桌面的应用程序之间是否存在规划差异?
答案 0 :(得分:1)
根据我的经验,将所有规格都归结为CRUD并没有错。大多数时候,任何应用程序都不仅仅是“一个简单的CRUD应用程序”。需求在不断发展,系统的不同部分往往会发生分歧并获得一些特定的逻辑。
即使一遍又一遍地重复相同的CRUD句子,实际上将它们写下来并考虑它(而不是复制和粘贴)通常会发现隐藏的要求。
答案 1 :(得分: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 (Not a standard)
CSS 3 (Not a standard)
Web Content Accessibility Guidelines 2.0
Symantec Internet Security Threat Report Volume XIV
Symantec Internet Security Threat Report Volume XV
OWASP Top 10
SEO
阅读完本文后,您应该开始了解网络的基本技术是如何运作的。只有在这一点上,您才能准备好开发一致的Web应用程序。还有许多其他技术正在发挥作用,但这些是基础知识,一旦您熟悉了基础知识,您就会知道在哪里可以寻找更多信息。
答案 2 :(得分:0)
基本上你可以采用与桌面应用程序相同的方法,虽然你可能会做一些补充,因为我们的应用程序通常往往有不同类型的请求。首先,阅读一些关于用例的好东西,有不同的用例级别,这可能是你的用例的解决方案,这似乎是不正确的。如果CRUD重复是问题,也不要忘记用例泛化和参数化用例。有一点,在Web应用程序中通常比在桌面应用程序中更重要的是可用性方面。这是因为网络的性质 - 如果您的应用程序无法使用,那么人们就不会使用您的服务并转到下一个谷歌搜索结果。所以我认为对规范的一个很好的补充是人物角色 - 只是为你的用例找到一些可能的人类演员实例,并尝试考虑他们可能想要经常使用你的网络应用程序实现的一些目标,并介绍他们将如何实现他们使用您的网络应用程序(并尝试使其非常容易)。另一个重要的事情是信息架构 - 您将在Web应用程序中提供信息的方式。这包括导航,一些基本布局,但不一定是设计,只是有关在Web应用程序中查找内容的位置的信息。这可以使用一些快速原型制作工具来完成。