技術的負債は,ソフトウェア開発において開発コストを優先するために,最適でない解法を採用することを指しており,ソフトウェア進化を阻害する要因のひとつとして知られている.技術的負債の新しい点に,全ての進化阻害要因を解消すべき悪影響とみなすわけではなく,一定の負債を受け入れ悪影響とならないよう管理するものとして取り扱う点がある.本論文では,こういった達成阻害要因のとらえ方の発展も含め,これまでに議論されてきた 技術的負債およびその周辺技術について概観し, 技術的負債は設計,コードの品質に関するこれまでの技術とどのような関係にあるのかを解説する.
本論文は,整合性確認の容易な業務記述を作成するための5原則を提供する.我々は,地域防災計画の整合性検査に関して平塚市と共同研究を行っている.整合性検査が問題になるのは,例えば,県の地域防災計画改定に合わせた市の地域防災計画の定期的改訂においてである.この際,項目ごとの局所的な修正が計画全体の不整合を招く場合があり,その確認が困難でコストが大きいことが問題となっている.共同研究の目的は,そもそも不整合が起こりにくく,起こっても容易に発見できるような業務の記述方法を開発して,計画改訂作業の効率化を図ることにある.本論文は,業務の記述方法に関する5原則を提示し,共同研究で考察した事例に基づいて説明する.整合性確認が困難な事例を問題点として示し,それに対する原則の適用方針と適用結果を示す.5つの原則を立てるにあたっては,いわゆる「オントロジー」,形式手法,遷移系,仕様と実現の表現などの情報科学における概念を用いた.これらの原則について,平塚市の地域防災計画担当者からは「いずれの原則についても有効であり,今後の改訂への取り入れを検討したい」との評価を得た.
プログラムの出力から入力を求めることを逆計算という.本論文では同期的データフロープログラミングにおける逆計算を扱い,特に,順計算と逆計算の両方を逐次的に行えるという性質を保証しながらプログラムを構成する手法について議論する.同期的データフロープログラムは,全ての入力を読み込んで出力を返して停止するのではなく,時間的な列として順に与えられる入力に対して出力を返し続けなければならない.したがってその逆計算の手法は一般的なパラダイムのものと異なる.本論文では同期的データフロープログラミングのパラダイムを列の変換としてモデル化し,それに対する逐次的な逆計算の概念を定義する.さらに,逐次的な逆計算が可能なシステムを単射部分関数を用いて構成する方法を定義することで,逐次的な逆計算のための制約を部分関数の単射性に帰着する.この議論は逐次的な逆計算を保証する同期的データフロー言語の設計の指針になりうる.
オープンソース・ソフトウェアやプログラミング演習における学生のソースコードなどを対象としたプログラム解析を行うときには,構文規則を必ずしも満たさないソースコードの構文解析や構文木の操作が必要となる.その基盤環境として TEBA を開発し,字句列に対するパターン変換を実現するための中心的なモジュールである RewriteTokens をプログラム解析に利用してきた.しかし,素朴に解析ツールを作ると,爆発的に発生するバックトラックの抑制やモジュールの設計時の見通しの甘さにより書換え規則が複雑化し,可読性や保守性の低下といった問題を招いていた.そこで,これまでの経験に基づき,字句列のパターンに対する新しい適合エンジンを実装し,パターンの記述方法を改善した.その結果,パターンの記述しやすさが大幅に改善され,自然とバックトラックを抑制できるようになった.本論文では,その設計方法を紹介するとともに,最初の設計における失敗原因を議論する.
組込みソフトウェアの大規模化・複雑化に伴い,高い信頼性を保ちつつ豊富な機能を実装する手法が必要とされている.プロセッサごとに機能を分割して実装する方法はコストや面積,電力等の観点から不利であるため,仮想化技術を利用して同一のプロセッサ上で複数のソフトウェアを動作させる試みが幅広く研究されている.特にARM社のTrustZone拡張は2種類のOSを動作させるデュアルOS環境を実現することができる.アプリケーションプロセッサにおいてデュアルOS環境に応用した例は多いものの,マイクロコントローラに対して適用した例は少ない.本研究ではTrustZone機能を実装したARMv8-Mアーキテクチャ上で動作するデュアルOS環境 SafeG-Mを提案する.提案手法は既存のリアルタイムOSに小規模な変更を加えることで実現され,評価実験においてわずかなオーバヘッドで動作することが示された.
要求仕様書の理解において,目次に記載の章節タイトルにそって内容を確認することは一般的である.実際の要求仕様書には,章節タイトルと記述内容が一致しない場合があり,目次情報だけでは,重要要求が要求仕様書のどこに記述されているのかを短時間で適切に把握することは困難である.本研究では,自然言語処理技術の一つである自動要約技術を活用し,要求仕様書から重要要求を特定し,ページ毎の話題の出現率に相当するPage Trendを算出する手法と,Page Trendに基づいて記述状況を可視化する手法を提案する.本稿では,文書中の単語の重要性を表す統計量であるtf-idf値を用いて,重要単語に着目した場合の記述状況と,提案するPage Trendによる記述状況を比較し,提案手法の有効性について考察する.