、GitHubのアドレス
二、PSP用フォーム
PSP2.1 | パーソナルソフトウェアプロセス段階 | 推定時間がかかる(分) | 実際の時間がかかる(分) |
プランニング | 計画 | 60 | 120 |
・見積り | •このタスクが必要と推定どのくらいの時間 | 60 | 120 |
開発 | 開発 | 1280 | 1500 |
・分析 | ・分析ニーズ | 40 | 30 |
・デザインスペック | 設計ドキュメントの生成 | 60 | 70 |
・デザインレビュー | ・デザインレビュー | 30 | 20 |
・コーディング標準 | ・コードの仕様 | 30 | 60 |
・ 設計 | ・具体的な設計 | 60 | 160 |
・コーディング | ・具体的なコーディング | 600 | 650 |
・コードレビュー | ・コードレビュー | 100 | 150 |
・テスト | ・テスト(セルフテスト、コードを変更し、変更を提出) | 360 | 360 |
報告 | レポート | 190 | 170 |
・ 試験報告書 | ・テストレポート | 120 | 120 |
・サイズ測定 | ・コンピューティングのワークロード | 30 | 20 |
・死後&プロセス改善計画 | ・後知恵、およびプロセス改善計画を提案します | 40 | 30 |
トータル | 1530 | 1790 | |
第三に、問題解決のアイデアの説明
私はプロジェクトを開発する前に、それは実際に従ったものである場合には1が、すぐにタイトルを取得するために開始した後、それが直接pycharmプログラムを開きます。しかし、私はこのプロジェクトの中心は、学習の始まりであると思いますどのように体系的
かつ科学的にソフトウェア開発、その「法の構築、」最初の3章、最初のニーズ分析を読んだ後。
まず、プログラミング言語に制限を見ていないので、私はいつも共通のPythonを選んだ:2は、分析を必要とします。プログラムファイル内の文字数、単一カウントする統計プログラムを実装する資格
単語の数、ライン、コードの行、コメントを。私は自然に正規表現であると考え、同様の機能セットを達成するためのJavaクラスを実行する前とPythonでは付属していますので
、読み取り()関数を数え、readlineの()関数を組み合わせます。そして、それは、渡されたコマンドライン引数をとりますので、この点で、私はBaiduのにように、関連するライブラリが見つかりませんどのように使用され、
argparseライブラリを簡単にコマンドライン引数を管理することができますので、私は、ライブラリの検索に行ってきましたAPIドキュメントスタンバイ。もう一つの特徴は、ディレクトリの下に要件再帰処理の対象となり
ますが、ファイルリストに直接検索した場合、まず、ファイル名を確認することで、「*」が含まと「?」:私は二つの方法を検討したファイル、すべては延長満たす
ファイルを。第二は、「*」と「?」で検出され、ファイルにマッチする正規表現として入ってくるファイル構造の名前。考慮して第一の方法は、比較的単純ではなく、
需要に合わせて非常に良い、それは第二の方法を使用することを決めました。PythonのGUIが前にそこに書かれているので、グラフィカルインタフェースは、ファイルを選択する機能を必要とするので、私はPythonでPYQ考える
T5ライブラリ関連の機能を呼び出すことができます。私はおそらくこれらのアイデアは、記録されます
3、上記の分析によって、私はおそらく、プログラムの実行のフローチャートを描きます。
次のように4、プログラミングは、深刻な影響が発生しました。
(1)統計的な複数行のコメント行の正規表現を構築するプロセスでは、テスト結果は、わずか14テストファイルの行のコメント行は、再分析やロジックによって行わ69行、で、ルームメイトが話し合うことが判明し
、理論をそのための使用の発見しましたアカウントに複数行のコメント行の行が欠落した場合を取るのreadline()関数は、修正テストをクリア。
(2). 在对一个包含中文的文件测试过程中发现在打开文件报错,查看后发现是文件编码问题,经过查阅资料有人建议将打开文件格式由u
tf-8改为ISO-8859-1,经过测试后发现没有报错。但却发现这样改后对于一个只有一个中文字符的文件进行测试,显示结果却是3个字符,
与舍友讨论后认为使用ISO-8859-1编码时一个中文字符会被认做三个码元,故会显示3个字符。这样与预期效果不符合,故只能重新想方法。
后又与舍友讨论后并测试发现是原来测试的文件不是用utf-8编码,故将测试文件转为utf-8编码成功运行无误。
四、设计实现过程
代码分为两个类,分别为功能类和界面类:
1. 功能类(WC):实现了对文件进行各项统计功能,包含以下主要函数:
CountFunc(实现统计字符数、单 词数、行数、代码行、注释行)
RecursionPro(实现通过通配符处理目录下符合条件的文件)
main(调用函数)
2.界面类(Gui):实现通过图形界面选取文件,包含以下主要函数:
choose_file(实现监听按钮被点击后获取选择的文件,实例化一个WC对象并传递参数,通过main函数调用运行并将传回的数据显示到文本框)
各函数关系图:
五、测试结果
1. 功能测试
测试文件说明: empty.c(空文件)、OneChar.c(一个字符的文件)、OneLine(一行的文件)、OneWord(一个单词的文件)、SourceFile(普通代码文件)
(1). 基本功能:
(2). 拓展功能
(3). 高级功能
六、项目总结
- 在进行项目编写时不能急于编写代码,而是应该多花时间再需求分析、代码架构上,只有先经过良好的设计,才能确保后面不会出现
代码逻辑混乱甚至某些功能无法与原来代码耦合的情况。
- 「ビルは法律で」私が恩恵を感じさせるが、私はちょうどこの本を見たことが唯一のデザイン思考の一般的な方向を示しているため、十分ではありませんが、詳細設計時に
、私はまだ非常に難しいと感じ、多くの場所は、設計する方法がわかりません。だから、将来はこれらのプラクティスの知識を構築するために他の建物についての本だけでなく、マルチライティングプロジェクトを見に行く必要があります。