翔泳社の公式通販SEshopは全国送料無料!
ヘルプ 新規会員登録 ログイン
SEshop

組込みソフトウェア開発のためのリバースモデリング

SESSAME WG2(著)

商品番号
113740
販売状態
品切れ
納品形態
宅配便にてお届け
発売日
2007年03月16日
出荷開始日
2007年03月17日
ISBN
9784798113746
判型
A5
ページ数
232
キーワード
プログラミング  オブジェクト指向  開発

2,640円(税込)(本体2,400円+税10%)
送料無料

240pt (10%)
ポイントの使い方はこちら

初回購入から使えるポイント500円分プレゼント

現在、本商品は販売しておりません。

※1点の税込金額となります。 複数の商品をご購入いただいた場合のお支払金額は、 単品の税込金額の合計額とは異なる場合がございますので、予めご了承ください。

既存のソースコードを活用した上で新たな価値を吹き込み洗練させる
組込みソフトウェア開発の現実解!

組込みエンジニア教科書シリーズ第4弾。本書は、第1弾 『組込みソフトウェア開発のための構造化モデリング』 でご紹介した構造化手法の考え方に基づいた組込みソフトウェアの設計を、ソースコードからリバースして行うという方法を紹介します。
組込みソフトウェア開発の現場では、引き継ぐべきソースコードが存在することが非常に多いものです。そのソースコードを活用したうえで、効率的な開発の行い、良質なソフトウェアをつくりだすために、ソースコードからモデルを作成するのが「リバースモデリング」です。
ソースコードからのリバース方法とソースコードのリファクタリング、体系的な保守である再利用とプロダクトラインの概要、リアルタイムOS上への搭載方法、ソースコードが劣化していく原因を分析しプロセスを改善する方法などについて解説します。

Chapter 1 はじめに

1-1 本書について
  1-1-1 本書の適用範囲
1-2 大規模化・短納期化・複数機種化に対処する
  1-2-1 大規模化への対応
  1-2-2 短納期化への対応
  1-2-3 複数機種化への対応
1-3 リバースモデリングとは
  1-3-1 ソフトウェアの全体構造を把握する
  1-3-2 ソフトウェアを管理可能な粒度にする
  1-3-3 ソフトウェア固定部と変動部を分離する
  1-3-4 ソフトウェアの時間側面を把握する
  1-3-5 ソフトウェア疲労に気づき、改善する
1-4 本書の活用方法
  1-4-1 本書の読み進め方
1-5 リバースモデリングの活用
  1-5-1 リバース設計
  1-5-2 リファクタリング
  1-5-3 リユース
  1-5-4 リアルタイム設計
  1-5-5 システム思考
  1-5-6 リバースからフォワードへ

Chapter 2 課題説明

2-1 話題沸騰ポット(GOMA-3015)の要求仕様
2-2 話題沸騰ポットの開発経緯
2-3 話題沸騰ポットのソースコード
2-4 話題沸騰ポット開発の方針

Chapter 3 失敗事例

3-1 失敗パターン 1:設計不在
  3-1-1 大きなファイルと大きな関数
  3-1-2 入り組んだ依存関係や呼び出し関係
3-2 失敗パターン 2:設計と実装の乖離
  3-2-1 ドキュメントとソースコードの一貫性の欠如
  3-2-2 設計情報の埋没
3-3 失敗パターン 3:時間経過による劣化
  3-3-1 ファイルと関数の肥大化
  3-3-2 無意味なソースコード断片
  3-3-3 コンパイルスイッチの複雑化
3-4 まとめ

Chapter 4 リバース設計

4-1 リバース設計で何をするのか
4-2 成果物の抽象度を上げる
  4-2-1 関数呼び出し関係を図解する
  4-2-2 ファイルの依存関係を図解する
4-3 分析モデリングのモデルと整合させる
4-4 設計と実装を同期させる
  4-4-1 トップダウンアプローチ
  4-4-2 ボトムアップアプローチ
  4-4-3 変換アプローチ
4-5 まとめ

Chapter 5 リファクタリング

5-1 目指すのは「自然な姿」
5-2 リファクタリングの対象
5-3 リファクタリングで何をするのか
  5-3-1 モデルを描く
  5-3-2 分離する
  5-3-3 凝集させる
  5-3-4 独立させる
5-4 リファクタリングするとき
  5-4-1 リファクタリング候補
  5-4-2 リファクタリングするタイミング
5-5 リファクタリングの事例
  5-5-1 1つのモジュールに複数の機能が入っている場合
  5-5-2 フラグ渡しをしている場合
  5-5-3 グローバルデータを使っている場合
5-6 まとめ

Chapter 6 リユース

6-1 固定と変動を明確にする
  6-1-1 固定部と変動部の分離
  6-1-2 変動部と変動点
  6-1-3 変動部の実現方法
6-2 変動部の事例
  6-2-1 コンパイルスイッチ
  6-2-2 構成ファイル(コンフィグファイル)
6-3 変動点を管理する
6-4 変動点マップの事例
  6-4-1 コンパイルスイッチ―コンポーネントマップ
  6-4-2 機能―機種マップ
  6-4-3 機種―機能―コンポーネントの管理
6-5 プロダクトラインを考慮する
  6-5-1 変動点を戦略的に管理する
6-6 まとめ

Chapter 7 リアルタイム設計

7-1 構造設計と実装設計
  7-1-1 構造設計
  7-1-2 実装設計
7-2 モデルから実装設計を行う
  7-2-1 起動周期を分析する
  7-2-2 制御スレッドを分析する
  7-2-3 ターミネータの仕様を決める
  7-2-4 タスクへ分割する
7-3 リアルタイムOSの活用
  7-3-1 リアルタイムOSのメリット、デメリット
  7-3-2 リアルタイムOSの導入と移行
  7-3-3 リアルタイムOS上のアプリケーションプログラムの構築
  7-3-4 デバイスドライバ
7-4 まとめ

Chapter 8 設計品質

8-1 複雑さへの対処
  8-1-1 分離と階層(トップダウン)
  8-1-2 抽象化
  8-1-3 俯瞰
  8-1-4 図解
  8-1-5 対話
8-2 設計の品質
  8-2-1 モジュール分割
  8-2-2 凝集度
  8-2-3 結合度
  8-2-4 システム形状
8-3 まとめ

Chapter 9 システム思考

9-1 ソフトウェア開発を取り巻く環境
  9-1-1 もぐらたたき現象
  9-1-2 ゆでがえる現象
  9-1-3 メンタルモデル
9-2 プロセス改善とシステム思考
  9-2-1 システム思考とは
  9-2-2 時系列変化グラフ
  9-2-3 因果ループ図
9-3 事例 1:ソフトウェア疲労モデル
  9-3-1 時系列変化グラフ
  9-3-2 因果ループ図
9-4 事例 2:学習意欲の低下モデル
  9-4-1 時系列変化グラフ
  9-4-2 因果ループ図
9-5 現場での適用について
9-6 まとめ

Appendix A 定石・格言 一覧

Appendix B 用語辞書

Appendix C 表記法の説明

Appendix D ポットの分析モデルと設計モデル

参考文献

各種問い合わせは以下のリンクからご連絡ください

感想・レビュー

たいそ さん

2019-11-13

2007年。「設計主導のフォワードエンジニアリング」と「実装主導のリバースエンジニアリング」があるんやね。設計と実装を同期させる必要性はわかっていてもできていないことが多いが逆方向についての解説を今まであまり見かけなかった気がする。「分割」という語がよく出てきた。設計、リファクタリング、コンパイルスイッチ設計(変動点)、といった場面での最適な分割について気を付けようと思う。「再利用にとって重要なのは、固定部分を作って利用するよりも、変動部分を明確にして管理することのほう。」

grenoui さん

2016-05-01

9章のシステム思考が意外と面白い

coco さん

2013-12-29

基本的な内容で、分かりやすく、取っ掛かりとしてはいいと思います。

関連商品

いきなりプログラミング Python

2,420円(税込)

2024.06.25発売

いきなりプログラミング Python【PDF版】

2,420円(税込)

2024.06.25発売

おすすめ特集

プログラミング入門書大特集

翔泳社のプログラミング書籍の中から、入門・初級者向けの書籍をピックアップ!

Linuxおすすめ本特集

【Linux本特集】入門~達人レベルまで!クラウド時代の必須知識Linuxを学ぶおすすめの本

ライティングおすすめ本

ライティングのスキルアップにおすすめの本。Webライティングやコピーライティングなど

マネー本特集

お金と経済の基礎知識から、資産形成・投資術、お金教育や介護まで。暮らしに役立つマネー本

インテリア本特集

おしゃれな部屋作りのヒントやインテリアの基礎知識、色使い、うつわや洋食器の知識まで、幅広い書籍をご紹介

事務職におすすめの本

Excel、日商簿記、業務の自動化を実現するRPAやPythonの技術など、事務職としてステップアップしたい人に!

特集をもっと見る