我必须为一个学校项目记录我的程序,并且我们有一个称为“问题域”的部分,但是我不知道在本部分中讨论什么。
所以问题是:在问题领域应该讨论什么?
我必须为一个学校项目记录我的程序,并且我们有一个称为“问题域”的部分,但是我不知道在本部分中讨论什么。
所以问题是:在问题领域应该讨论什么?
Answers:
我为电信设备编写嵌入式软件。我的问题域是以太网,语音和视频协议。换句话说,所有与我正在编程的语言无关的东西,但是我仍然必须理解才能编写软件。如果您要建立一个销售摄影服务的网站,则问题域是摄影和电子商务。如果为军用飞机编写固件,则问题域是武器,传感器和控制系统。拿照片吗
并非每个人都编写编译器,错误跟踪器,框架或其他直接的计算机软件包。
有些人为沙石行业编写软件。有些人编写了监视炼油厂折射塔的软件。有些人编写软件来控制塑料食品袋的制造。有些人编写软件来填充番茄酱数据包。
这些都是问题领域,为了编写好的软件,您需要了解一些有关领域的知识,例如,预拌混凝土。
伊恩·布雷(Ian K. Bray)在他的《需求工程简介》(p9)一书中将问题域定义如下:
存在问题的宇宙的那部分。
例如,对于电梯控制系统,它将包括任何现有的硬件(电梯,电动机,按钮,指示器,传感器等),建筑物特征(楼层和电梯井道的数量),使用,用户的特征,客户的电梯使用策略(例如,是否应该劝阻用户不要在短途使用电梯?)等等。
如上所述,在电梯控制问题领域内,问题是“需要一种控制系统,该系统将更有效地利用该建筑物中的电梯”。在实践中,我们通常将问题细化为一整套子问题,但目前,仅注意为了解决问题,解决方案系统显然有必要在问题域内产生某些影响。这些期望的效果构成了要求。
因此,问题领域同样可以被视为新的解决方案系统(有时简称为SS)将在其中运行并产生所需效果的部分。由于基于软件的解决方案系统通常称为应用程序,因此问题域可以称为应用程序域。