我在一家在嵌入式设备领域做用户界面的公司做CS硕士论文。作为其中的一部分,我正在开发一个库来集成一个特定的设备。我的C++库封装了设备驱动程序,并在Qt框架中集成了该设备的特性,以便它可以与各种基于Qt/QML的应用程序一起使用。
到目前为止,我已经编写了许多说明和详细的API文档(使用DO2)。但我不知道如何正确格式化所有的信息,以提供一个良好的概述,我的工作在论文中。简单地使用API文档是没有意义的,因为1)它太详细了,2)并没有对事物的结构和工作方式给出一个正式的概述。
据我所知,我至少要描述一下我正在开发的软件产品的以下方面:
我怀疑这是否足够,甚至是正确的,这就是我寻求帮助的原因。我找不到一步一步的教程,我可以遵循。我也不知道我要走多深。
我问过我的教授关于硬件级的东西,他说他不想在论文中看到这一点,我应该专注于我正在开发的东西。
但是,由于Qt框架本身有一个庞大而复杂的结构,这种限制只起了一点作用。例如,如果我使用一个QVector3D,是否需要详细描述它是什么以及它是如何管理的,或者我是否可以假设一个简单的“三维向量容器”就足够了?
坦率地说,我们研究过各种与软件体系结构相关的东西,如模式等,但我们从未被教过如何正式地描述软件系统。我以前所做的只是简短的实验室报告和API文档+一些关于性能的评估统计。
发布于 2017-01-10 15:47:04
考虑使用4+1体系结构视图来描述软件的体系结构。
意见摘要如下:
开发视图:从软件开发人员的角度来看的实现视图。UML图(例如包图)可以用来表示这个视图。
逻辑视图:它提供功能视图,描述系统向最终用户提供的功能。UML图(例如类图和活动图)可以用来表示逻辑视图。
物理观点:它揭示了系统工程师的观点。它也被称为部署视图。可以使用部署图来描述视图。
Process视图:它捕获动态方面(并发性、运行时行为等)关于系统的。活动图适用于视图。
场景:场景(或用例)描述对象之间和进程之间的交互序列。
发布于 2017-01-10 15:27:04
你需要图表。一个好的图表比一堵墙的文字更好,并且可以粘贴到任何文件中(包括论文)。UML类图是一个明显的起点。如果其他UML图对您有用,就添加它们--例如包图、用例图或序列图。如果需要的话,可以使用其他非UML类型的图表。
一旦你有了图表,你就可以把它们周围的单词写出来。
发布于 2017-01-17 13:10:46
这个问题有多个正确的答案,所以我将把@Tushar给出的一个作为正确的答案。
在我的例子中,两种模式的混合非常适合。到目前为止,我一直在使用分层体系结构模型。当我浏览更多信息并找到.Net微框架时,我收到了对我的案件的“正确答案”的确认:

我的系统有一个非常类似的布局(除了我使用的是Qt而不是.NET )。但是,该模型不包括建议的4+1视图模型所包含的内容,即场景视图。因此,我要做的是使用层模型来描述我的系统的一般结构,添加UML (主要是活动和序列)图,以显示输入和输出是如何处理的,最后但并非最不重要的是,添加一节描述我的软件提供的特性的场景。
我发现分层模型是相对简单的(与4+1视图模型不同,在这种模型中,您必须指定很多通常不会花在论文中的东西),但是提供了一个系统的很好的概述,特别是在硬件和软件之间的交互方面。
https://softwareengineering.stackexchange.com/questions/339864
复制相似问题