ソースコード品質概論 なぜソースの品質を追求するのか

Slides:



Advertisements
Similar presentations
CMU2005 海外エンジニアリングワークショップ参加報告書 1 「真の要求を見極めろ!」: teamB 要求定義をどう捉えるか ● 要求定義とは何か? 製品には、顧客の望むことを正しく反映させる必要がある。 そのために必要なものが要求仕様である。 すなわち、要求仕様とは、顧客と製品を結ぶものであり、これを作ることが要求定義である。
Advertisements

34-2 今 日 の ポ イ ン ト今 日 の ポ イ ン ト 現代社会とストレスと糖尿 病 1.1. ストレスによる 血糖コントロールへの影響 2.2. QOL障害によるストレ ス 3.3. 糖尿病とうつ 4.4. ひとことアドバイス 5.5.
オープンソースの諸問題 於: OSSAJ オープンソースビジネスセミナー 2005 年 5 月 30 日(月) 風穴 江(かざあな こう) TechStyle 編集長、コラムニスト
テスト環境の見直しで貴社の開発が劇的に変わる!! 納期や品質の向上の決め手は、テスト環境の最適化にあります。
企画書作成ソフトウェアの開発 佐々木研究室 05k1134 吉村祥平.
プロジェクト演習Ⅱ インタラクティブゲーム制作
SSP in a Nutshell #1.5 最近の新機能よせあつめ
Windows Workflow Foundation of .NET Framework 3.0
本日のスケジュール 14:45~15:30 テキストの講義 15:30~16:15 設計レビュー 16:15~16:30 休憩
明智中学校の紹介 明智教室 中学3年  原田 沙也加 明智中学校の紹介 明智教室 中学3年 原田沙也加です。よろしくお願いします。
プログラマのレベルアップ.
○○したら、 受託開発が180°変わった Creators Meet Up.
WordPressの基礎.
OpenOffice.org で版管理 西木 毅 第2回関西OpenOffice.org勉強会 大阪電気通信大学
CODE::BLOCKSで 無料で簡単 Windowsアプリ開発
オープンソースのDarwin は Mac OS Xに何をもたらすのか
MOT今後の活動について 2007/1/17 右立 真輝.
LCGTの文書管理のための 新しいシステム
情報処理学会・経営情報学会 連続セミナー第3回 情報システム構築アプローチ 主旨
市販のソフトウェアが これほど脆弱な理由 (それをどのように解決するか).
クリックしながら前に進んでください.
情報学部のWebサイトを考える 2007年5月14日 石上隆達.
井上 謙次 / deq kenz at oct.zaq.ne.jp
PHP Framework Update symfony 編 株式会社ディノ 月宮紀柳.
さとりすと Satori Ghost Editor 里々ゴーストの統合開発環境を作ったよ page: 1/25
共同ローカリゼーション フレームワーク 井上 謙次.
「ビジネスで成功する人たちは“本当に良いトレーニング法”を知っている?
コンピュータ概論B課題 - PowerPoint -
リファクタリングのための 変更波及解析を利用した テスト支援ツールの提案
UNIXについて 松野秀平.
Java ソフトウェア部品検索システム SPARS-J のための リポジトリ自動更新機能の実現
続・WebApplication研究 2001年度秋学期大岩研究会2 第一回 ~紹介~.
大規模アドホックネットワークにおける 階層的な名前解決法
繰り返しのない二元配置の例 ヤギに与えると成長がよくなる4種類の薬(A~D,対照区)とふだんの餌の組み合わせ
MPIによる行列積計算 情報論理工学研究室 渡邉伊織 情報論理工学研究室 渡邉伊織です。
迷宮師 コードレビュー チームカテキン.
ソフトウェア工学 第五回 知能情報学部 新田直也.
59円でマクドナルドは儲かっているか? マクドナルドから見た現代の企業 丹野忠晋 02/09/28.
Windows 2000 拡張カーネルの技術紹介 2018年6月10日 黒翼猫.
ソースコードの変更履歴における メトリクス値の変化を用いた ソフトウェアの特性分析
Javaソースコード蓄積・ 検索システムSPARS-Jの概要
Microsoft MVP for Development Tools – Visual C++
Microsoftのマルチプラットフォーム戦略
XP Extreme Programming.
Microsoft MVP for Development Tools – Visual C++
WEBアプリケーションの開発 2002年度春学期 大岩研究会2.
次ページボタンではなく、 画面をクリックする 「PPTアニメーション機能」 でご覧下さい。
コンピュータ概論B課題 - PowerPoint -
B-TACEのための肝癌結節の分類.
ユーザ・インタフェース 小テスト 第5回.
オープンソース開発支援のための ソースコード及びメールの履歴対応表示システム
次ページボタン ではなく、 画面をクリックする 「PPT アニメーション機能」で ご覧下さい。
Microsoft MVP for Development Tools – Visual C++
次ページボタン ではなく、 画面をクリックする 「PPT アニメーション機能」で ご覧下さい。
第二回 Javaの開発環境 04A2029           古賀慎也.
ビジネス プロジェクトの計画 発表者名 | 会社名.
コードクローンの理解支援を目的としたコードクローン周辺コードの解析
Virtualizing a Multiprocessor Machine on a Network of Computers
第1章 いよいよプログラミング!! ~文章の表示 printf~
プロジェクト演習 知能情報学部 新田直也.
人を幸せにするアプリケーションの開発 2004年度春学期 大岩研究プロジェクト2 2004年4月8日(木) 発表:武田林太郎.
企業システム戦略を成功させる! ドキュメント・レビュー実践法 企業システム戦略家 青島 弘幸.
Kinjo-Gakuin Univ. © 2007 Motohiro HASEGAWA
おいしそうです。.
生物統計学・第14回 全体を眺める(6) -相関ネットワーク解析-
テクニカル・ライティング 第4回 ~文章の設計法「KJ法」について~.
関数の変更履歴と呼び出し関係に 基づいた開発履歴理解支援システム
プロジェクト演習Ⅱ インタラクティブゲーム制作
ETロボコン2009 コード品質評価プロジェクト ~高品質プログラミングのススメ~ 九州地区 特別プロジェクト 2009/6/13
古いサーバーが 金食い虫になっているかも? こんな会社 はご注意! 1 追加、追加でサーバーが増えている
Presentation transcript:

ソースコード品質概論 なぜソースの品質を追求するのか tk-engineering.com

まず初めに なぜ、今更「概論」なのか 色々なところで「くソース」について語ってきました しかし、それが「何故悪いのか」という視点が若干あいまいなままでした(反省)。 そこで改めて「ソースの品質」について定義し、それが何故悪いのかを明らかにします。

An apology サンプルソースは一行もありません! コーディングネタもありません。 では、気を取り直して行ってみましょう。

ソースコードの品質とは まず、品質とは…(大雑把なまとめ) 機能性 機能要件を満たす事 信頼性 故障しないこと(≒エラーで落ちないこと) 機能性 機能要件を満たす事 信頼性 故障しないこと(≒エラーで落ちないこと) 使用性 利用者にとって使いやすいこと 効率性 応答速度や、リソースの有効利用 保守性 拡張、修正がしやすいこと 移植性 配布、他システムとの共存利用 この辺りの話にかかわります ここを掘り下げていきます

ソフトウェアの保守性 保守(=maintain)とは… ソフトウェアを維持するために必要な作業 それらに合わせるために必要な作業 「気が変わった」とか 法改正に伴う変更とか 会社合併とか 新しいバージョンのOSのリリースとか その他諸々、なにひとつ「変化しない」ものはありません それらに合わせるために必要な作業

保守とは ライフサイクルの中でもっとも長い期間 新規構築の期間より保守の期間が長いのが 一般的

保守とは-2 保守性が悪いと… 保守に必要な工数が増大する →経済的に問題 →士気の問題 例:価格は安いが燃費の悪い車は良い車? 保守要員は永く同じプロジェクトにとどまる傾向があるので 飽きる!! 新規構築の方が注目される、或いは技術的に面白そうなので、やる気が出ない!! 過去のソースを解析するという作業は多くの場合、 楽しくない!

さらに悪いことに… エンドユーザから簡単に見えることでも、やたらと時間がかかるので、お客さんも嬉しくない。 儲からないので、経営側も嬉しくない。 がんばって解析してもあまり喜んでもらえないし、技術的挑戦もないので、技術者も嬉しくない。 こうして誰も幸福にしないシステム ができあがる。

そうならないためには… 保守性を考慮したシステムを作る! まず、「何が保守性を向上させるのか」 を考えましょう。 というか、「保守性を低下させるものは何か!」 を考えたほうが面白い!!

保守性を低下させるものは… Developerの立場で考えてみると… これらが何処から生まれるか… 保守性を考慮しない設計 保守性を考慮しない実装 これらが何処から生まれるか… 単なる無知 納期に追われる「デスマーチ」や「やっつけ」 その他諸々 せめて無知はなんとかしようよ…

保守性の高いシステムは… 「早い」「安い」「使える」な機能改良 誰でも保守できれば… 簡単に直せれば… 突然の法改正でも安心! →お客さんも幸福 誰でも保守できれば… →経営的にもアレコレ嬉しい。 →技術者も新しい技術のプロジェクトに移れる。 簡単に直せれば… 夢の「定時退社」!な日々がくるかも… 要するに、みんな幸せ!!(一応理想は高く…)

究極の目標は… 「直しやすい」 「誰でも直せる」 これが、我々の目標です。 っていうか、「我々」って誰!? そんなシステムを実装、設計の視点から… これが、我々の目標です。 っていうか、「我々」って誰!?

キャッチコピー 「後は頼んだ!」 →誰でも直せる。 →すぐ直せる。 「カンファレンスのため休みます。」 そういう活動にも取れる時間を!

と、大きく出てみましたが… 要するに、「くソース」を笑いましょう。 そして、何故それが笑えるかを考えましょう。 それを肴に楽しいひと時を過ごしましょう。 以上!!