「トップエスイーからのアウトカム ~ ソフトウェア工学の現場から」連載一覧
-
2019/03/12
外部Webサービスを利用したWebAPI設計のリスクを軽減――Webサービスの仕様変更を検出する
社会人エンジニア向けの教育プログラム「トップエスイー」から、エンジニアの皆さんに対して有用な情報をお届けするコーナーです。近年のWebサービス開発においては、開発期間の短縮を目指し、コアテクノロジー以外は外部Webサービスを利用します。しかし、外部Webサービスはドキュメントやリリース情報が不足しているため、記述されていない仕様による問題がおきることがあり、運用時にこれらの問題の検知が遅れると大きな損失が発生します。そこで、記述されていない仕様の検出までの時間を最小化することで、運用時に迅速な...
-
2019/02/12
SPAの保守開発を効率化――画面遷移理解を支援する
社会人エンジニア向けの教育プログラム「トップエスイー」から、エンジニアの皆さんに対して有用な情報をお届けするコーナーです。Webブラウザ上で稼働するアプリケーションでは、一度のダウンロードで複数のページ要素を持つ構成をとることができ、こうした実装手法は「SPA(シングルページアプリケーション)」と呼ばれます。ページ遷移が素早く行え、ユーザーにダウンロード待ちをさせることなく利用できることから、UXの改善にも効力があります。しかしながら、実際のページ遷移はコード内に潜み、どんなページ遷移をするか...
-
2018/11/30
要件定義書がしっかり読まれているかを測定――視線情報を機械学習にかけ、要件定義書レビューの評価を行う
社会人エンジニア向けの教育プログラム「トップエスイー」から、エンジニアの皆さんに対して有用な情報をお届けするコーナーです。上流工程ではドキュメントを作成しますが、記述に不備があると後々の工程まで響きます。その一方で、ドキュメントの評価は人間に委ねられています。ここで、人間は実際にドキュメントを読んで、問題点の抽出などが十分に行われているかという疑問が出ます。その回答として、レビュアーの視線を測定することで、十分なレビューをしたかどうかを判定する方法を探りました。視線を測定するアイトラッカの出力...
-
2018/10/26
コードとしてITインフラを定義する――自動化を超えた継続的改善の実現とは
社会人エンジニア向けの教育プログラム「トップエスイー」から、エンジニアの皆さんに対して有用な情報をお届けするコーナーです。ITインフラの分野では長らく装置産業的なアプローチが主流でした。いわゆる物理的なモノであるハードウェアを対象として、それを人がコントロールしていく考え方です。しかし、ソフトウェアの活用領域が広がるに従い、ITインフラの分野にも大きな変化が訪れています。その代表例が「コードによってITインフラを制御する」という考え方です。これはスクリプトやツールによる自動化と混同されがちです...
-
2018/10/02
クラウド上での運用を効率化――環境を提供する仕組みをサービスとして捉える「PaaSaaS」
社会人エンジニア向けの教育プログラム「トップエスイー」から、エンジニアの皆さんに対して有用な情報をお届けするコーナーです。クラウドでのコンピュータ―利用は広く行われていますが、要求は次第に高くなってきています。また、用途も広がるにつれて、ニーズをサービスとして手軽に利用できる必要性も高まってきます。今回は、そうしたサービスを提供するプラットフォームを開発した事例を紹介します。
-
2018/09/03
スクラムとウォーターフォールの違いはどこにあるのか? シミュレート可能なモデルを構築して検証する
社会人エンジニア向けの教育プログラム「トップエスイー」から、エンジニアの皆さんに対して有用な情報をお届けするコーナーです。ソフトウェアを開発するにあたり「ウォーターフォールモデル」と「アジャイル開発」は比較対象として取り上げられ、どちらが優れているのか、あるいはどちらが正しいのかという議論がよく見られますが、果たして比較可能な対象でしょうか。これらに限らず、さまざまな開発手法の違いを客観的に比較することができないだろうか、といった疑問を持ちました。客観的な基準があれば、何を採用するのかといった...
-
2018/06/04
組み合わせテストにおける最適な因子数――カバレッジとミューテーションスコアの収束をもとに推定する
社会人エンジニア向けの教育プログラム「トップエスイー」から、エンジニアの皆さんに対して有用な情報をお届けするコーナーです。今回は、ソフトウェアの単体テストにおいて、テストがコードをどれだけ網羅したかを計測した「コードカバレッジ」とテストケース自体の品質を数値化した「ミューテーションスコア」に着目して、組み合わせテスト技法における最適な因子の組み合わせ数を自動算出する方法の検証例を紹介します。
-
2018/02/20
ソフトとハードが混在したシステムの性能をシミュレーション――時間オートマトンプロセスモデルによる並行性能検証
社会人エンジニア向けの教育プログラム「トップエスイー」から、エンジニアの皆さんに対して有用な情報をお届けするコーナーです。IoTデバイスが広く使われるにしたがって、ハードウェアはさまざまな機能を持つようになりました。デバイスを含めたシステム全体では、ソフトウェアだけでなく、ハードウェアも含めた並行動作が随所で発生します。筆者はこうした並列システムにおいて、必要な性能を発揮できているのか検証するモデル検証を修了制作で実施しました。その結果をもとに、並行システムでの設計の難しい部分をモデル化で解決...
-
2017/12/27
モデル駆動開発におけるモデル変換の役割
社会人エンジニア向けの教育プログラム「トップエスイー」から、エンジニアの皆さんに対して有用な情報をお届けするコーナーです。「モデル駆動開発(MDD:Model-Driven Development)」(注:MDDはOMGの商標になっています)は、分析・設計・実装・テストといった開発の成果をモデルとして作成し、モデル変換を繰り返し適用することによってプロセスを進める開発手法です。このとき使われるモデル変換は、モデルに付加情報を加えて異なる視点のモデルやコードを得る技法です。皆さんの中には、このよ...
-
2017/11/07
「形式手法」の“論理の力”による開発効率と品質の向上事例
社会人エンジニア向けの教育プログラム「トップエスイー」から、エンジニアの皆さんに対して有用な情報をお届けするコーナーです。ところで、形式手法という言葉はご存じでしょうか? 一般には「数理論理学に基づき、効率よく高品質なソフトウェアを開発するための手法の総称」などといわれます。とはいえ「数理論理学」といわれてもなかなか実感ができないと思います。さらに「総称」と述べましたが、セミナーや書籍などで勉強した方も、その中の一つの手法や観点のみに触れたのではないかと思います。本記事ではAmazon Web...
-
2017/08/23
Webベース監視制御システムにおける状態同期の信頼性評価とその検証
社会人エンジニア向けの教育プログラム「トップエスイー」での講義や制作結果などからエンジニアの皆さんに対して有用な情報をお届けするコーナーです。今回も、受講生による修了制作での取り組みを紹介します。監視制御を行うWebアプリケーションに対し、Spinを用いてモデル検査を行った結果、開発環境でのテストでは検出できなかった問題点が見つかり品質向上に貢献できたという内容です。モデル検査自体は古くから行われていて、分野によっては広く使用されていますが、一般には導入コストがかかることもあって、普及している...
-
2017/06/21
Androidアプリケーション開発におけるActivityの肥大化を防ぐデザインパターン
社会人エンジニア向けの教育プログラム「トップエスイー」での講義や制作結果などからエンジニアの皆さんに対して有用な情報をお届けするコーナーです。今回は、受講生が修了制作で取り組んだ内容を紹介します。テーマは「Androidアプリケーション開発におけるデザインパターン」です。Androidアプリケーション開発をしていると、Androidアプリケーション開発固有の問題に直面することが多々あります。今回はそのうちの1つの問題を解決するデザインパターンを提示します。パターンの紹介はもちろん、どのようにし...
-
2017/05/23
システムの網羅的なテストができるモデル検査 実課題を扱ったモデル検査のコンテスト「MoCCon」を振り返る
社会人エンジニア向けの教育プログラム「トップエスイー」での講義や制作結果などからエンジニアの皆さんに対して有用な情報をお届けするコーナーです。今回は、形式手法の1つであるモデル検査について説明します。モデル検査はモデルチェッキングとも呼ばれ、形式手法の中でもツールによる自動化が比較的進んでおり、数学や論理学に詳しくない人でもモデル作成や検査の処理に取り組みやすく、理解しやすい技術です。トップエスイーでは、その有用性に着目してモデル検査に関する講義や演習を充実させるなど、教育に力を入れています。...
-
2017/03/30
ソフトウェアのテスト品質を効果的に測定するミューテーション解析
社会人エンジニア向けの教育プログラム「トップエスイー」での講義や制作結果などからエンジニアの皆さんに対して有用な情報をお届けするコーナーです。開発したソフトウェアのテストを実施することは当然のこととして、効率的にテストを実施できるようにテストコードを記述して単体テストを行う手法など、さまざまなテスト手法が提唱されています。その作成したテストそのものが、本当にバグを発見する能力を持っているのか、すなわちテストそのものの品質は確かなのかということが問題となります。今回説明するミューテーション解析は...
-
2017/03/08
機械学習による分析過程を把握しつつ、支援ツールによる自動化で的確な分析結果を得る(後編)
社会人エンジニア向けの教育プログラム「トップエスイー」での講義や制作結果などからエンジニアの皆さんに対して有用な情報をお届けするコーナーです。前回と今回の2回にわたり、機械学習を取り上げています。前回は機械学習によるデータ分析のプロセスと注意点について解説しました。今回は分析結果の評価についてと、筆者がトップエスイーの修了制作で作成した、一連のデータ分析プロセスを自動化するツール「MALSS」について解説します。MALSSはデータ分析を自動化するだけでなく、分析者の知識習得も支援することができ...