个人总结

一.翻译

软件工程师应当致力于做出分析,规范,软件的设计、开发、测试和维护一个有益的和受人尊敬的职业。按照他们承诺的健康,安全和福利,软件工程师应当遵守下列八个原则:

1公众——软件工程师应当始终如一地坚持公众利益。

 

2客户和雇主——软件工程师应当采取行动的方式是最好的客户和雇主的利益与公共利益相一致。

 

3产品——软件工程师应确保他们的产品和相关的修改达到可能的最高的专业标准。

 

4判断——软件工程师应当保持完整和独立的专业判断。

 

5管理——软件工程经理和领导者应当订阅和促进一个道德的管理软件开发和维护的方法。

 

6职业——软件工程师应当推进诚信和声誉的专业符合公众利益。

 

7同事——软件工程师应当公平和支持他们的同事。

 

8自我——软件工程师应当参与终身学习关于职业的实践,促进伦理职业的实践方法。

二.自我问题解决

软件底是什么

1.软件是一种载体,是与硬件并列的一种有形的产品。

当然,我认为只要做出产品,就可以成功,至少也算是成功制造出了产品

然而事情显然不像我们设想的那么简单。

软件不仅仅是一个产品,“他”不光是一个为了解决人们需求的东西,“他”是一个有生命的“产品”。

如今的软件的评价就一个标准,有市场就是好软件,但是我觉得不是,应该从很多方面来考虑软件的好坏。

2. 软件的位置在哪?

自然界里有着一条条的食物链,这些食物链纵横交织,构成了一张网络,我们叫做生态环境。

市场也存在同样的网络,它是由一条条的价值链穿插连缀而成,我们叫做市场或者市场生态。

 

所谓软件,从本体上说,它是一些程序的集合,根据一定的规则组合在一起,为完成某种特定任务而运作。

从这个定义上,不太能看出一个软件与一把铁锹或者一架水车的区别。

 

所以,要回答软件是什么,就要先回答软件在价值链中的位置在哪里。

软件常常被拿来当做连接器,比如有一些人有同样的看法,即软件就是把硬件连接起来,与用户进行互动。但这样的观点,不能回答用铁锹铲土这个行为中,人、土、铁锹的互动与软件的运作有何区别。这种观点本质上把软件看成工具。

我并不反对软件是工具,只是工具视角局限了对软件的观察。

3.软件的突围之道

成为平台,也许是软件的一条道路。

做到极致,更好的连接硬件和用户,也许是一条道路。

扩大,开拓软件的范围,增加其能力,成为行业里的解决方案,也可能是一条道路。

软件的前途是乐观的,只是作为行业软件的开发者需要注意,现实仍然是残酷的、竞争激烈的,必须打起十二分的精神,坚持下去。

总结起来,软件是一种服务,但服务不一定是软件。

因此,从这个角度,软件可以看看,那些不是软件的服务是什么。知道自己是什么,自己还不能是什么的时候,也许路就开始有了方向。

三.总结和建议

未接触软件工程之前一直都很想学这门课程,因为觉得这门课很牛,是那些有工程师称号的高手才摆弄的东西。学了一个学期的软件工程课,终于知道了个软件工程的大概。学的时候总觉得很抽象,理解起来好像不难,但总是摸不着头脑一种很茫然的感觉。曾经以为程序就是软件,软件就是程序。学习这门课程第一个收获是,知道了二者的不同之处。以前做过的一些小型的软件比如加密软件,我也只是在程序旁边附上一个软件的说明,看来已经很接近作坊了。不过大的项目没有接触过,用软件工程的方法还是第一次。我想也是程序的不断复杂化导致了软件危机的发生,使得人们不得不探索新的解决方法。

在划分模块后明确了各自分工,渐渐形成良性循环。在学习过程中,知道了团队合作十分重要,争议固然存在,但通过讨论、协商,群策群力,在不断磨合中能够达成一致与默契。团队成员中能力各有高下,互相尊重,各取所长,不宜妄自菲薄。组长多加协调,组员积极配合,才能合作愉快。学习能力体现在能尽快接受新的知识,顺应变化,学为所用。

学习这门课程我的收获大概如下:我们为什么需要软件工程呢?上面已经给出了一些原因。专业点讲,软件工程最终是为了实现“软件制造业”的社会化,工业化大生产,提高其劳动生产效率。只有如此,软件业才能实现社会化,工业化大生产,才能“做大做强”。没有管理的设计是失败和混乱的设计,没有设计指导的编程是无序的忙碌的。根据开发的软件的规模,应该适当程度的运用软件工程化的思想,需要灵活,毕竟我们开发的软件大多数是中小型的,大型的并不多见(我是这么认为的)。但只要涉及人员间的交流和沟通,或多或少都要需要软件工程才能更有效率,工作成果更稳定。

其实开发软件,就像是解决一个逻辑问题。想想自己平时是怎样写程序的。首先是要有一个想法,即我写的这个程序是要干什么的;然后就是对要实现的核心功能大概构思一种或多种实现方法,并从中选出一种自认为是较好的;接下来就是将涉及的各种主要或次要功能分成各个模块;最后就是分模块来编码和DEBUG。在我看来,除了第一步外,其余的步骤应该是一个循环的过程。在编码的过程中,你总是需要不断地回过头来修改原先的模块设计,甚至最初选定的实现算法。具体到每一步的工作要怎样完成,是非常灵活的,只要把握住大体的方向就行。在进行分析,设计,编码,调试,维护这几部分的工作的时候,最核心的就是文档的编写。

1.可行性分析就是关于当前项目能不能干的分析结果。

2.项目描述这是在决定立项以后,对当前项目的一份扼要说明。

3.需求分析就是对客户要求的功能的定义。

4.软件设计这就是对程序的每一个模块的详细设计的说明文档。

5.开发日志我一直都认为这是文档中最有趣的部分。开发日志相当于编码阶段的文档,它的形式可以很随意,主要是记录一些在写程序时突然萌发的灵感,或对代码的一些微小的修改,或对程序结构的一些微小变动等,还要对上述这些修改变动作些说明。

6.测试分析用于指出程序存在或潜在的缺陷和错误,以及程序性能的数字描述。

对于这门课的建议则是,其实我们课上的一些理论应该可以更好的去融入到实际操作上,可以将上课的学时分成理论和实际操作,让我们更好的去体会什么是软件开发,软件测试,真正理解软件工程的意义。

posted @ 2016-06-04 17:25  亦木佳哥  阅读(161)  评论(1编辑  收藏  举报