在过去的几个学期中,我一直在学习一些软件设计课程,尽管我看到了很多形式化的好处,但我觉得它并没有告诉我有关程序本身的任何信息:
- 即使它讨论了程序可以做什么,也无法从用例规范中看出程序将如何运行。
- 即使需求文档可能包含质量需求,您也无法从需求文档中得知任何有关用户体验的信息。
- 时序图很好地描述了软件如何作为调用堆栈工作,但是非常有限,并且可以从整体上高度了解整个系统。
- 类图非常适合描述系统的构建方式,但是对帮助您确定软件的功能却毫无用处。
底线到底在哪里:程序的外观,操作方式以及所提供的经验?从中进行设计不是更有意义吗?弄清楚程序应该如何通过原型工作并努力实现它,这不是更好吗?
我知道我可能正遭受理论家教授工程学的困扰,但是我需要问,他们在行业中这样做吗?人们如何弄清楚该程序实际上是什么,而不是应该遵循的程序?人们制作了很多原型,还是他们大多使用UML之类的正式工具,而我只是还没有掌握使用它们的习惯?