科目名 | Erlangを用いた組込みソフトウェア開発演習 |
---|---|
科目名(英名) | Embedded Software Development Exercise Using Erlang |
担当講師(氏名・所属) | 中田明夫、村田佳洋、佐藤康臣(広島市立大学) |
分類 | 選択 |
授業形態 | 実習 広市大 |
時数 | 12コマ |
時間数(コマ数✕1.5) | 18時間 |
授業の概要 | (この科目は前期(4月〜9月期)に実施したものです。後期(10月〜3月期)は受講できません) 関数型言語は参照透過性など並行処理に適した性質を持ったプログラミング言語であり、高性能かつ低消費電力の実現のためにマルチプロセッサ環境で動作する組込みソフトウェアの開発に有効である。本演習では、そのような関数型言語の一つであり、並行処理の記述に適した言語であるErlang言語によるプログラミングの基礎、および、実践的な開発演習を通して、組込みシステム技術者に必要な基礎知識および実践的開発能力の習得を目指す。 演習の前半ではErlang言語のプログラミングの基礎について学ぶ。 演習の後半ではErlang言語で実装された自動車のブレーキシステムシミュレータを題材に、「新しいブレーキシステムの開発」という課題に少人数によるグループワークにより取り組む。グループワークでは、「スクラム」と呼ばれる著名なアジャイルソフトウェア開発手法に基づいて開発プロジェクトを遂行する。 |
到達目標 | ・Erlangプログラミングに関する基礎知識を修得する。 ・Erlang言語で組込みソフトウェアの機能を実装し、適宜検証しながら開発を進める、プロトタイピング型プロセスを実践する知識を得る。 ・企業等において組込みソフトウェアが重要な構成要素となる製品を企画し、その企画が妥当なものであることを検証する知識を得る。 ・グループワークを通じてチームによるソフトウェア開発の方法論の基礎を習得する。 ・プロトタイプ実装を通じて、組込みソフトウェアプログラミングの応用技術を習得する。グループの一員としてソフトウェア開発プロジェクトに貢献する力を身につける。 |
難易度 | ★★ |
分野別難易度(前提知識) | Cプログラミング:★★ アジャイル:★ |
履修上の注意 (準備学習・前提知識) |
・C言語によるプログラミングの基礎を修得済みであること。 ・「スクラム」についての基礎知識を参考書等で事前に学習しておくこと。 |
授業計画・内容 | 1.オリエンテーション、Erlang言語と実行環境 2.Erlang言語によるプログラミング(1)~再帰関数の定義 3.Erlang言語によるプログラミング(2)~データ型 4.Erlang言語によるプログラミング(3)~ガード条件 5.Erlang言語によるプログラミング(4)~変数データベース 6.Erlang言語によるプログラミング(5)~アルゴリズム実装 7.「スクラム」チーム作り、製品企画演習(1) 8.中間報告(製品企画)、製品企画演習(2) 9.上流設計演習(1) 10.中間報告(上流設計)、上流設計演習(2) 11.プロトタイプ実装演習(1) 12.プロトタイプ実装演習(2)、最終成果報告 |
事前・事後学習の内容 | 事前・事後学修のためのプリントを配付する(課題を課す)。また、各講義内容ごとに、C言語での実装法について復習しておくこと。 |
成績評価の方法 | (1.~ 6.) 科目の到達目標の達成度合いを、レポート課題を通じて評価する。 (7.~12.) チームの一員として与えられた責務を全うし、より良い製品企画を提案すべく他のメンバーと協調して作業し、成果を出すことにどの程度貢献したかを評価する。 |
教科書・参考書等 | ・「プログラミングErlang」:oe Armstrong[著]榊原一矢[訳] オーム社開発局 ・「SCRUM BOOT CAMP THE BOOK」:西村直人、永瀬美穂、吉羽龍太郎[著] 翔泳社 ・スクラムガイド:http://www.scrumguides.org/ ・塹壕よりScrumとXP:http://www.infoq.com/jp/minibooks/scrum-xp-from-the-trenches ・スクラム基本のキ:http://www.slideshare.net/nawoto/summary-of-scrum-guide |
キーワード | 関数型プログラミング、Erlang、並行処理、組込みソフトウェア、アジャイルソフトウェア開発、スクラム |
科目一覧
(ただいま期間外)関数型言語による並行処理指向で高速な組込みソフトウェア開発技術
Erlangを用いた組込みソフトウェア開発演習
- 基盤
- 実習