31、软件开发流程

30中有内存泄漏

什么是软件开发流程?

通过一系列步骤保证软件产品的顺利完成

软件产品的生命期内管理方法学

软件开发流程的本质:

开发流程与具体技术无关,开发流程是开发团队必须遵守的规则。

常见软件开发流程:

即兴模型(Build-and-Fix Model):没有规则

瀑布模型(Waterfall Model)

增量模型(Incremental Mode)

螺旋模型(Spiral Model)

敏捷模型(Agile Modeling)

即兴模型:与最终用户交流后立即开始进行开发,没有需求分析和需求发掘的过程,没有整体设计以及规划的过程,没有相关软件文档,维护性差。

瀑布模型:通过自上而下的步骤进行软件开发,每个开发步骤都是不可逆的

需求分析->架构设计->开发实现->系统测试->最终发布

增量模型:将系统功能分解为互不重叠的子功能,每次全力实现一个子功能,子功能全部完成后系统开发结束。

功能1:分析:设计:开发:测试

功能2:分析:设计:开发:测试

功能3:分析:设计:开发:测试

螺旋模型:

采用一种迭代的方法来进行系统开发,软件项目分解成多个不同的版本完成,每个版本的开发过程都需要用户参与,根据前一个版本的反馈计划下一个版本。跟用户多次交流

不足:对用户需求变化不够快,用户需求可能会改变

敏捷模型:一切从简,拥抱变化,高效工作,持续开发。

文本编辑器如何选择软件开发流程?

增量模型适合于文本编辑器的开发:需求相对固定,功能之间的耦合性弱。

第一阶段:

主窗口界面分析->主窗口界面设计->开发->测试

检查内存泄漏:linux中valgrind内存分析器:只是可疑出现内存泄漏的地方

1、initFileMenu 中new没有指定父对象

new时指定父对象:QMenu* menu=new QMenu("File(&F)",mb);

2、initEditMenu中也是

QMenu* menu=new QMenu("File(&E)",mb)

3、initFormatMenu;

QMenu* menu=new QMenu("File(&0)",mb)

4、initViewMenu

QMenu* menu=new QMenu("File(&V)",mb)

5、initHelpMenu

QMenu* menu=new QMenu("File(&H)",mb)

6、makeAction

bool MainWindow::makeAction(QAction*& action,QWidget* parent,QString text,int key)

action=new QAction(text,parent)

增加第二个参数指定父对象

小结:软件开发流程是开发团队遵守的一系列规则,软件开发的意义在于保证产品的质量和进度,业界已经存在多种开发流程模型,每一种开发流程都有特定的使用范围,课程中统一采用增量模型进行项目开发。

猜你喜欢

转载自blog.csdn.net/ws857707645/article/details/80565805
今日推荐