GitHubのプロジェクト住所:
https://github.com/hhz-hhz/Sudoku_software_engineer.git
個々のプロジェクトのソフト工学の基礎 - 数独1
個々のプロジェクトのソフト工学の基礎 - 数独2
個々のソフトウェア基盤技術 - 数独3
第四に、テスト段階
1、手順のテスト設計ドキュメントのように試験しました。
しかしSolvingSudoku.cppで:
インラインブールCheckingForDFS(INT nは、INTキー)とインラインINT SolvingByDFS(INT N)グローバル配列が使用されているので、そう個別にテストする方法はありません。
GeneratingSudoku.cpp中:
インラインボイドMovingStep()は、上記の場合と同様であるので、テストする方法はありません。
グローバル変数は、ソフトウェア開発のための欠点ことがわかります。
図2に示すように、ユニットテスト:unittestのフォルダを見るテストコード
3、テストコードカバレッジ:
4、完全なパフォーマンステストユニットテストの後:
1)1000000 -C:最終テストで生成
2)Dは、-s:\数独\デバッグ\ sudokutest.txt:最後の1000年の解決
V.の概要と最適化フェーズ
1、その後の最適化
最終的解決、視点から百万最終時間を生成するために時間がかかり、ニーズの数はほぼ同じですが、最終的に百万を解決し、まだ長い時間がかかるとき、そのパフォーマンス分析表だけでは1000年を解決する、いくつかを解決するための必要性について最適化するための唯一の方法は、あなたが数独を解決するための簡単な方法をしたいことがあります。そして、ファイルも改善する必要が方法をお読みください。
2、PSP形態
3、後知恵
1)、プロジェクト設計の進捗状況について
ので、ユニットテスト自体はので、いくつかの時間を推定し、緊急性のために、その時間の先に正確な推定のためにそれが必要である、VSとの深い十分に理解しません。
2)プロジェクトの経験のために
经过这一次的体验,认识到编程并不是全部,提前的准备和后期的设计对于项目而言都是必要的。前期对于需求进行一个足够的分析,后期才能够不去花费力气。就像这次,我在测试的时候一度不明白怎么进行单元测试,看到的例子都是由C++完成的,虽然中间有用到C++的函数,但是最终的形式并不是对象,所以中途想将它变成C++的对象的方式,但是这时发现再想改它很困难,由于时间紧张,就并没有将其进行修改,但是中间有经过数次的尝试,所以在前期分析好需求,制定好计划,是对于项目而言一件重要的事。
3)、对于代码规范
在进行前的代码规范设计的时候,有很认真的去查过资料,所以这次是按照代码规范来的,虽然有些地方不够规范,但是对于重要的函数、变量,都提前进行了命名的设计,所以再此后的代码实现的时候会很轻松的找到自己书写的函数和变量,命名规范也很容易让我联想起它们的作用。
之后又进行了代码分析,之前的概念里warning不是一件重要的事,但是经过这次的代码分析,可以看出不够严谨的代码可能会对程序带来安全隐患。所以对于warning还是需要去理睬的。
4)、对于编译器的用法
经过这一次的项目开发,我对于编译器的认识又上了一个层次,像性能分析、单元测试等,之前也都是没操作过的,并且在这一次的实验中几乎是每一个关于操作这些新东西的错误都遇到过,所以对于以后的使用也有了一个较大的帮助。
5)、关于代码托管
由于不够熟练使用github,前期都是通过自己的备份,后期看到要求后,慢慢地去使用,发现代码托管对于代码的备份,代码的一致性都有很大的帮助
4、运行结果图
1)生成终局
2)、求解简单数独
3)、求解多个数独