Software quality 功能膨胀-多少是太多?

Software quality 功能膨胀-多少是太多?,software-quality,Software Quality,我是一名计算机科学专业的学生,正在设计一个项目,我开始想知道什么是好的例子,什么是软件,什么是硬件,哪些是好的例子,哪些是好的软件,哪些是好的硬件,哪些是功能丰富的,哪些是对普通用户有用的功能,哪些是对新用户来说太吓人的。还有谁能推荐一些好的技巧/书籍来设计功能丰富但不“臃肿”的高质量应用程序 “让一切尽可能简单,但不要简单。”-阿尔伯特·爱因斯坦 “完美不是在没有什么可以补充的时候,而是在没有什么可以带走的时候。”-安托万·德·圣埃克苏佩里 我不想轻率,但这些引语确实是最好的建议。简单的设计

我是一名计算机科学专业的学生,正在设计一个项目,我开始想知道什么是好的例子,什么是软件,什么是硬件,哪些是好的例子,哪些是好的软件,哪些是好的硬件,哪些是功能丰富的,哪些是对普通用户有用的功能,哪些是对新用户来说太吓人的。还有谁能推荐一些好的技巧/书籍来设计功能丰富但不“臃肿”的高质量应用程序

“让一切尽可能简单,但不要简单。”-阿尔伯特·爱因斯坦

“完美不是在没有什么可以补充的时候,而是在没有什么可以带走的时候。”-安托万·德·圣埃克苏佩里


我不想轻率,但这些引语确实是最好的建议。简单的设计应该是你的目标。实现简单并不是件容易的事!相反,这相当困难,但却是可能的

试着换一种方式思考问题。而不是

在它膨胀之前,我可以添加多少内容

试一试

在为用户提供卓越体验的同时,我能包含的最少功能和元素是什么


下面是一组关于以下主题的演示文稿中的幻灯片:


首要的任务应该是使应用程序易于使用。除此之外,我所能说的就是,当心为想象中的用户编写功能:在开始编码之前,确保有人确实需要它。

1:您的用户需要什么,想要什么,还有什么

2:您有时间实施哪些功能


你的问题很笼统。哪些特征构成膨胀?这取决于你是在写防病毒扫描程序、操作系统还是文字处理器。

在“好”和“太多”之间没有明确的界限。 然而,这取决于你想做什么

如果您正在开发SDK,我建议将您的实现拆分为几个小库(而不是一个大的SDL库,这里有SDL核心、
SDL\u Mixer
SDL\u Image
等)

如果您正在开发应用程序,请保留基于模块的系统和插件机制。 这样,可以更容易地添加新功能,并且更容易检测到膨胀


你可能会达到一个点,你会增加一些新的特性,一些人会认为“伟大”和其他的“膨胀”。否则,您的应用程序可能会达到这样的程度:一些人将其称为“功能差”,而另一些人将其称为“刚好够用”。

这不是一个确切的引用,但其思想是这样的:

一个软件是完美的,不是当没有更多的添加,而是当没有更多的删除

从本质上讲,软件越简单、越切题越好

要获得优秀软件设计的示例,请看一下当今流行的程序。谷歌应用程序将是一个好地方。也许是Skype。嘿,即使是这样。:)

如果你想要恐吓,去CAD的世界。例如,检查一下。这是一个免费的3D设计软件。有人告诉我这是个好工具,但UI有太多的按钮/面板/菜单等,让小兔子都哭了。不幸的是,我不能说这是否是一个“坏”用户界面的好例子。三维设计是一个非常复杂的过程,所有这些工具可能都在正确的位置。但这绝对是吓人的。:)


一个糟糕的用户界面设计通常可以在随硬件附带的硬件软件中找到。不幸的是,我不能给你举一个简单的例子。

直接回答你的问题:几乎所有的微软产品。我在这里表明了我的偏见,但微软有一个强烈的倾向,即保留他们的代码库,并在功能之上添加功能,直到应用程序的原始功能几乎消失在积垢堆下

以微软Word为例;虽然您仍然可以打开它并开始键入,但如果您想对文档的某个部分重新编号,而不必对其余部分进行编号,那就太糟糕了。如果您想要生成包含对附录的引用的目录,则上天禁止。这类东西是文字处理器的必备品,Word支持它,它只是以一种方式支持它,如果没有手册、几杯咖啡和绷带来阻止你的头撞在桌子上流血,你就无法完成它


微软并不是唯一一家这样做的公司;这件事经常发生,各种各样的产品;但我发现,它们是最严重的违规者。

我总是倾向于将项目设计成尽可能可扩展的框架。限制因素包括性能、复杂性或第三方限制。
这样,您可以在完成基本结构后添加其他特性。用户还可以添加所需的功能

这对于GUI应用程序来说可能不是很好,因为GUI应用程序在没有太多配置的情况下应该具有良好的可用性,但对于我开发的那些LIB,我坚持使用这种方法。(他们被其他喜欢拥有高度可修改的软件的程序员使用)


开发一个功能丰富的应用程序/库并不难。但它是为了开发一个应用程序,其他开发人员/用户可以轻松扩展该应用程序,以满足他们自己的需求。

开发一个范围广泛的插件系统,以便您可以随时添加和取出内容。问题解决了。要是那像写意大利面条代码一样简单就好了