上这门课之前,我⼀直对软件开发的认识存在误区,认为软件就是程序,软件的开发就是编写程序,只要编完了程序,⼀切也就ok了,片面的认识让我觉得,只要精通一门编程语言,就可以写程序了。⼀个⼈,只要会编程,就能写软件,就是程序员;⼀个公司,只要招聘⼀些程序员,就能开发好的软件产品。只要有⼏个有经验的程序员,再找些兼职的⼤学⽣,就能组成⼀个软件公司。
但是通过了《软件⼯程》这门课的学习,我认识到了我的错误。软件开发其实不仅仅是编写程序,软件是思想在硬件上的载体和体现,处理的是逻辑和信息。唯有对软件和软件的开发过程,有充分的认识,才能更好的开发出,过程受控、质量受控的软件产品。
软件开发的阶段中需要注意到的有很多,
1.需求分析
在确定软件开发可行性的情况下,对软件需要实现的各个功能进行详细需求分析。需求分析阶段是一个很重要的阶段,这一阶段做的好,将为整个软件项目的开发打下良好的基础。“唯一不变的是变化本身”,同样软件需求也是在软件爱你开发过程中不断变化和深入的,因此,我们必须定制需求变更计划来应付这种变化,以保护整个项目的正常进行。
2.软件设计
此阶段中偶要根据需求分析的结果,对整个软件系统进行设计,如系统框架设计、数据库设计等。软件设计一般分为总体设计和详细设计。还的软件设计将为软件程序编写打下良好的基础。
3.实现
此阶段是将软件设计的结果转化为计算机可运行的程序代码。在程序编码中必定要制定统一符合标准的编写规范。以保证程序的可读性、易维护性。提高程序的运行效率。
4.软件测试
在软件设计完成之后要进行严密的测试,一发现软件在整个软件设计过程中存在的问题并加以纠正。整个测试阶段分为单元测试、组装测试、系统测试三个阶段进行。测试方法主要有白盒测试和黑盒测试。
团队合作在一个企业的作用是至关重要的,一个好的团队的总体力量,超过每一个个体力量的总和。
在软件开发的过程中,团队开发是常见的操作方式。开发软件是一项相当复杂和繁琐的过程,需要有非常精密的思维才可以完成。我觉得之所以要在这个过程中提倡团队开发,主要原因有三。
- 第一,软件开发的过程复杂,而团队方式可以使其简单许多,遇到问题的时候可以大家一起想。特别是在一个较大型的软件工程项目中,一个人的力量和智慧显然是不够的。第二,团队操作在很大程度上可以实现优势的互补。
例如在做软件的时候,一方面需要实现强大的功能,一方面需要有良好美观的界面,这两个方面就需要两个分别擅长其中一项的人来进行合作。第三,团队合作在很大程度上培养了人与人之间的沟通和理解能力。有些人技术相当好,但是却不能很好地与人沟通,团队中,只有通过频繁地相互交流,个别人在研发过程中遇到的困难才能最快、最有效地得到解决。
对比第一次的学习计划,个人感觉没有完全落实,有客观原因也有主观原因,实战训练方面计划没有严格落实,导致软件运用不熟练。我在团队中担任了开发的角色。在数据库应用方面得到了进展。