第16回組込み適塾

  • D01-09
リバースモデリング【演習】

講義日時:2023年7月20日 9:30~17:30

講義概要

 本講義は、読みにくい・テストしにくい・引き継ぎにくい等の問題を抱えたソースコードを管理している方、あるべき姿のアーキテクチャと現実のソースコードのギャップを解消したいと考えている方に是非受講して頂きたい内容になっています。 ソースコードを改善する技術として「リファクタリング」のスキルを習得できます。しかし、大きな誤解を持っている方が多いと講師は考えます。本講義を受講して頂くことで、正しいリファクタリングを理解し、さらに設計図を活用することで、的確にソースコードを改善できるようになります。

講師

所属
タイムエンジニアリング
講師名
阿部哲
組込みからWebアプリ・基幹・業務システムまでの幅広い業界で、ソフトウェアエンジニアリングを駆使して、企業の経営課題から開発現場の技術課題まで解決する案件に数多く従事。  「ソフトウェアに携わる技術者・管理者が、スマートに開発業務を行うには?」を常に考え、楽しく豊かな社会づくりに貢献したいと考えている。要求分析技法・アーキテクチャ設計技法・構造化/オブジェクト指向分析設計技法・リファクタリング・リバース設計を得意とする。

講義内容

章・節 タイトル 内容
1 設計とは コーディングする前に行う設計の大切さ
2 ソースコードの可視化 ソースコードの構造を設計図で見える化し、良し悪しを確認
3 リファクリング モジュールを分割することで保守しやすく改善するスキル
3.1. 関数リファクタリング 保守しやすい関数に改善するスキル
3.2. ファイルリファクタリング 保守しやすいファイルに改善するスキル
4. 個人演習 ソースコードをリファクタリングするスキル習得を確認
5. グループ演習 リファクタリングによる効果を図面などを活用し議論
6. 発表会 グループで作成した図面・その他役に立った事などを発表

受講要件

【受講要件】
  • C言語のプログラミングができる(基本的な文法が分かり、コンパイルエラーを自力で取り除けること)
    (※ 個人演習はC言語のプログラミングを行います)
    リファクタリングの知識はC言語以外のプログラミング言語にも適用可能です。
【事前学習のポイント】
  • 担当されている製品、システムのソースコードにおいて、抱えている課題を事前に整理して下さい。

受講にあたって必要な準備

■ 集合研修
  • ・ 筆記具 (コーディングのためのPCは会場で準備しています)

オンライン講義に変更になった場合に必要な準備

■ 講義を聴講するために必要なもの
  • ・ 思考整理のため、メモを記録するための筆記具
  • ・ 思考整理、メモ用のノート類
  • ・ グループディスカッションのためのマイク・カメラ類
■ 個人演習に必要なもの
  • ・ C言語ソースコードをコンパイル・リンクする環境
    • -Cygwin
    • -WSL
    • -GNU
    • -VisualStudioC++
    • ※ その他環境の場合でも一般的なC言語ソースコードのコンパイルリンクが出来れば可能と考えます。  その他環境を利用する場合、念のためにご連絡頂けると幸いです。
    • ※ 環境準備が困難な場合は、Webアプリケーションによるコーディングも可能です        
      但し、ネットワーク環境によってはアクセス不可の場合があるため、受講予定場所のネットワーク環境にて、https://paiza.io/ja/projects/new、にアクセス可能であることを事前にご確認下さい。
  • ・ 設計図を作成するためのアプリケーション
    • -Microsoft PowerPointまたはExcel
    • -PowerPointまたはExcel同等のその他アプリケーション
      (但し、設計図の提出が必要であるため、PDFや画像ファイルに出力できること)
    • -draw.io(https://app.diagrams.net/)        
      企業によってはアクセス制限があるかもしれませんので注意して下さい
    • -その他設計図を書けるツール
      (但し、設計図の提出が必要であるため、PDFや画像ファイルに出力できること)
    • ※ 手書きで設計図を作成することも可能。
      但し、設計図の提出が必要であるため、スキャナやカメラによるPDFや画像ファイルへの変換ができること
■ グループ演習に必要なもの
・ グループで作図するために、オンラインホワイトボード ”miro”を使用します。     
  “miro”に接続可能なパソコンやネットワーク環境。(事前に接続の確認をお願いいたします。)     
  ブラウザはChromeを推奨します。      
 (※事情により”miro”へのアクセスができない場合はご連絡ください)     

講義に関連する解説記事・参考文献・図書等

  • 特にありません。