下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

什么是软件设计师

作者:课课家教育     来源: http://www.kokojia.com点击数:984发布时间: 2019-03-14 08:58:22

标签: 软件设计师软件设计师

  想要研究一个行业的技术问题,首先要从该行业的设计师的感受入手,软件行业也是一样。但软件设计师的概念与其他行业却有所不同,这里,让我们分析一下软件设计师的角色。

  在传统工业领域内,无论是电子、机械还是建筑行业,设计师的工作职责不但可以得到明确的定义,同时,这种定义的准确性在实际工作中基本都可以得到保证。在这些行业,产品的设计与制造从阶段和人员分工上有着明显的界限,一个电路设计师不会去参与电路板的制作,一个机械设计师不会去参与一个零件的加工,一个建筑设计师也不会去参与大楼的建设,他们都有着一个明确的输出结果——设计图纸。不可否认,在这些行业的最初阶段,也有一些杰出的设计师亲手制作出了自己设计的产品,但其全面工业化与标准化的道路很快都得到了实现,从工业化的需求出现到具体实施,不但“顺理”,而且能尽快“成章”。

  然而,在软件行业,问题就复杂得多。让我们先看看软件行业设计师概念的发展。

  我们应该还记得,在软件开发工具最初发展的阶段(这里是指软件开始普及到各行业后的阶段,不包括软件从开发语言到操作系统本身的发展阶段),那时,人们使用软件来解决本行业内手工难以解决的问题(主要是科学计算),但很明显是一个辅助的手段,在该行业的所有工作中也占着并不太多的比重,软件的规模也停留在“程序”的阶段。这时,“软件设计师”的概念并不清晰,基本上等同于“开发者”,无论在哪个行业,软件程序员都必须首先成为那个行业的领域专家,然后再去学习程序设计语言。从另一个角度来讲,“开发者”是一个层次很高的工作,其构思与实现的过程自然地交融在一起,其间的界限也是由“开发者”本人根据自己的喜好安排与调整,很难进行明显的业务分割。

  随着软件技术及计算机学科本身的发展,以及其在各行各业的不断普及,人们已经慢慢地使用它来解决更多的问题,包括计算、推理、显示、控制、绘图、通信等多个方面。于是,软件的规模不断扩大,结构化与模块化的方法开始普及。这时,对于大型软件系统,开发者们往往需要专门进行系统分析与设计,而这种分析与设计的结果,通常最有意义的部分主要集中在系统结构、模块划分、部分复杂专业算法的流程图、接口定义及公用的数据结构上,而对每个模块的详细设计,对很多开发者来讲还是融合在其编制程序的过程中,由自己灵活调整的;虽然有些项目组曾经要求“开发者”在编制程序之前对其模块流程进行详细的设计,但这些设计通常在开发结束后就被修改得面目全非了。看来,在这个阶段,要求“开发者”在模块编程之前递交详细的设计细节意义并不是很大(又有谁会详细地检查这些还没有实现的设计细节的正确性呢?)。这时候,“软件设计师”的概念还不是很明确,所谓的设计师也只能是“领域的业务设计师+程序员”,他首先仍然必须是领域专家,也很少见到有将模块设计好然后交给别人去开发的情况。

  再后来,部分独特领域的软件企业经过多年的经验,逐渐在一定程度上实现了将设计与编程人员分离开来的模式。“软件设计师”的概念真正出现了,它与电子、机械、建筑行业的设计师有着同样的职责,可以只输出一种经过严格约束,并有着明显业务领域特色的设计说明与流程,而交给别人去实现,达到了很高的软件生产效率。

  现在,很多人认为,那些企业的模式才是软件业应该实现的最终模式,大家都曾经尝试去实现它。同时,软件开发工具也进一步发展了,可视化的第四代开发语言出现了,面向对象技术出现了。人们似乎看到了软件业标准化的曙光。但是,这次,人们发现,个别企业的经验并不像当年传统工业标准化普及的那么顺利,成功者的模式除了给我们一种对结果的向往以外,在具体方法上,几乎很少有能直接运用与推广的。而可视化的开发工具除了在界面、通信、数据库访问等能将专门的软件业务统一抽象出来共同使用等方面实现了标准化以外,在我们最关心的业务方面,还是无能为力。于是,这个阶段,虽然“软件设计师”的概念出现了,职责清楚了,但事实上,在大部分企业与项目中,“软件设计师”仍然还是担负着程序员与设计者的双重身份。

  到目前为止,虽然大家对新方法、新技术的出现及其成效还是充满了期望,但要想在整个软件业找到能使设计者与程序员分开的普及模式仍然是不太可能。大多数企业只是对“系统分析员”与“软件工程师”做了明显的界定,“系统分析员”的职责在不同的企业区别较大,其工作范围涉及需求分析、功能设计、软件结构设计、接口设计等内容,有相当部分的“系统分析员”要承担一定程度的系统设计工作,但他们一般不参与编程与模块详细设计的工作;而绝大多数软件工程师则同时承担模块详细设计与编程的工作。

  他们在任务完成前后也大多都要上交一些规定的“设计文档”,虽然很多的软件企业都力图想让这些文档在指导与约束技术开发方面起到最大的作用(日本软件企业在这一点做的最好,欧美、印度及中国现在很多企业也做得很好),但还是在很多情况下这些文档了基本上都是开发完成后的总结(就这一点也不是所有的企业都能做好),以作为企业防止人员流动带来损失的手段,而不是开发过程的指导与依据。这一点与其他行业是有较大不同的,如在机械行业,我想,是不会允许出现先生产产品,再设计图纸的现象的(即使允许,也不太可能实现)。

  这就是软件设计师的特殊之处,至少目前为止是这样。

  

赞(24)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程