学习软件开发已经有几个星期了,说实话,学到的知识虽然挺多,但是要我学以致用还是十分困难的。我们小组也大概讨论了一下要定一个什么目标,学了这么久,就是想着最后总要的出来个结果啊!我们决定吧,不是有人已经把那啥二手书贩卖系统么,就暂时这么想啦,也没想着能做出来,尽量朝这个方向看吧。
软件开发就有设计和实现。
一、图形建模的分析方法
俗话说,一图胜千言,我们做事情,都可以从用图形来帮助我们来了解概念。比如下面这个思维导图。
思维导图形式灵活,适用于很多鼓励探索、发散思维的场合。但是也缺乏严格的语义和语法。
二、奇特的设计方法
形式化的设计方法、文学化编程。
三、从spec到现实,这就是具体的执行步骤。还有我们开发人员的标准工作流程。
开发软件不仅仅需要前期分析,也需要个人的技术和过硬的流程设计以及团队合作。为了防止软件有过多bug,开发时与其同步的单元测试也是很重要。有些软件大抵都开发了几年了还没有发布,就是在忙着写单元测试啊!单元测试应该在最基本的功能上验证程序的正确性,单元测试也必须由最熟悉代码的人来写。在单元测试后机器的状态也应该保持不变才好,一个单元测试运行时间也要快。下一步则是回归测试了,在软件项目中,一个模块或功能以前是正常工作的,但是在一个新的构建中出了问题,那么这个模块就出现了一个退步。这时候一旦有关的测试用例通过,我们就得到了此模块的功能基准线。程序质量很重要,效能也重要,谁都想把自己的软的写的又好跑得又快。我们可以选择两种分析方法:抽样和代码注入。抽样就是当程序运行时平台会时不时看一看这个程序运行在哪个函数内,并记录下来。程序结束后,平台就会得到一个关于程序运行时间的大致分布。这种方法简单粗暴,不需要改动程序,运行较快。很快可以找到瓶颈。而第二种就是将代码加到每一个函数中,这样程序的一举一动都会被记录在案。但是大大增加了时间。
比如单元测试的代码:
namespace Demouser
{ public class user
{public user(string useremail)
{
m_email=useremail;}
private string m_email;
}
}
作为一枚程序猿或工程师,我们无时无刻都需要学习,当然也在成长,每个人都要清楚地知道直接的定位,能为这个团队做些什么。不要求一个人面面俱到,只希望每个人能扬长避短,互补不足就好。团队合作尤其重要,两人结对编写代码,找出bug也很关键。这很锻炼两个人的默契。每个人都有每个人的个性,编程风格不尽相同,这就需要俩人的磨合啦。结对开发后两人都可以进行代码复审,两人检查错误,总比一个人来得强吧。我们可以分为驾驶员和领航员,反正就是俩老司机。俩人要不断的更换角色,这个代码是两个人的任务,都要尽心参与,要不就会给另外一个带来麻烦和负担。
两人的合作也分为很多阶段。萌芽阶段、磨合阶段、规范阶段、创造阶段。。一步一步循序渐进。最终做出成功的软件!
。