macchinettaフレームワークを基盤とした アプリケーション開発 … ·...
TRANSCRIPT
![Page 1: Macchinettaフレームワークを基盤とした アプリケーション開発 … · 2019-07-08 · 稿では,Web系業務アプリケーションの開発効率を向上す](https://reader033.vdocuments.mx/reader033/viewer/2022060209/5f046cd47e708231d40de795/html5/thumbnails/1.jpg)
NTT技術ジャーナル 2016.1214
Macchinettaフレームワークを主軸としたソフトウェア開発の生産性向上
アプリケーション開発の効率化に向けた取り組み
NTTグループでは,所有するネットワークやお客さまの情報を管理するシステム,さまざまな業務向けのアプリケーション(業務AP)を開発するために,膨大な規模のソフトウェア開発が行われており,その開発の効率化は大きな課題となっています.昨今のソフトウェア開発では,すべてのソフトウェアを一から作成したり,すべてを手作業で開発することは,ほとんどありません.ソフトウェア開発を効率化するための基盤となるフレームワークや,ソフトウェア開発の自動化などを行う開発ツールを,設計 ・ 製造 ・ テストといった工程の中で適切に使うことにより,各開発会社や個々の開発者は生産性の向上を図っています.
しかし,個々が使うフレームワークや開発ツールが異なっていると,業務APのつくり方や運用方法が違うために,利用するフレームワークなどを理解する初期学習や,システムに新しい
フレームワークを適用する移行や,他システムと協調して動作させるための連動などに大きなコストがかかってしまう問題があります.仮に同じフレームワークを用いても,バージョンが異なっているだけで,連動するときに不具合が生じることもあります.また,NTTグループの開発は大規模であることが多いので,各社で独自にツールを開発することもあります.そういったツールやノウハウを共有できないのは,生産性向上の点で問題です.
そこで,これらの問題を解決するために,NTTソフトウェアイノベーションセンタでは,業務AP開発の基盤となるAPフレームワークを開発しました.さらに,そのフレームワークを基盤としてさらなる業務APの開発効率化のために,開発ツール群を共通化し,それらの共通化された技術を持つ人材育成の支援に取り組んでいます.
業務APフレームワークの整備:Macchinettaフレームワーク
業務APを開発する際には,「APフ
レームワーク」と呼ばれる基盤ソフトウェアを利用することが一般化しています. APフレームワークとは,ハードウェアやOS,ミドルウェアなどで構成されるソフトウェア動作環境と,業務APの間を取り持つソフトウェアです.APフレームワークの共通機能を利用することにより生産性を向上でき,フレームワークの決まり事に従って開発することで担当者ごとの差異を減少させ品質を均質化し,フレームワークを共通知識として持つことにより,システム理解が容易になり維持管理を効率化できるといったメリットがあります.
しかし,APフレームワークの利用には,以下の課題がありました.まず,メリットを享受するために,APフレームワークの定める決まり事を学習し,実開発でのさまざまなノウハウを習得する必要がありました.また,さまざまなフレームワークがつくられており,選択が必要でした.特に,NTTグループ内でも,類似のAPフレームワークを展開し,その技術開
ソフトウェア開発 APフレームワーク OSS
Macchinettaフレームワークを基盤としたアプリケーション開発の効率化
NTTソフトウェアイノベーションセンタでは,新たなソフトウェア開発技術を研究開発し,整備していくことによって,NTTグループ全体のソフトウェア開発の安定化・生産性の向上を実現するための取り組みを実施しています.本稿では,Web系業務アプリケーションの開発効率を向上するために開発したMacchinettaフレームワークについて説明し,さらにそのフレームワークを基盤とし,自動化を中心とした開発ツール群を共通化するMacchinettaツールスイートと,これらの共通化された技術を習得し,効率的な開発を支える人材を供給するMacchinetta人材プールの取り組みについて紹介します.
鈴す ず き
木 源げ ん ご
吾 /金かなまる
丸 朗あきら
/岩いわつか
塚 卓た く や
弥
堅か た だ
田 淳じゅんや
也 /岡お か だ
田 敏さとし
/持も ち だ
田 誠せいいちろう
一郎
夏なつかわ
川 勝かつゆき
行 /本もとはし
橋 賢け ん じ
二 /菱ひ し き
木 孝たかのり
紀
金か ね こ
子 武たけひこ
彦 /田た な べ
邉 憲け ん じ
二 /出いづもと
本 浩ひろし
酒さ か い
井 美み よ た か
代孝 /山やました
下 克かつゆき
行 /磐い わ き
城 洋ようすけ
介
NTTソフトウェアイノベーションセンタ†1
NTTデータ†2
NTTコムウェア†3
† 1 † 1 † 1
† 1 † 1 † 1
† 1 † 2 † 2
† 2 † 2 † 2
† 3 † 3 † 3
![Page 2: Macchinettaフレームワークを基盤とした アプリケーション開発 … · 2019-07-08 · 稿では,Web系業務アプリケーションの開発効率を向上す](https://reader033.vdocuments.mx/reader033/viewer/2022060209/5f046cd47e708231d40de795/html5/thumbnails/2.jpg)
NTT技術ジャーナル 2016.12 15
特集
発 ・ 保守費用が各社で重複しているという課題がありました.
そこで,これらの課題を解決し,初期学習コストを低減し,保守費用の重複を避けるため,NTTソフトウェアイノベーションセンタは,NTTグループ共通で利用できる新しいAPフレームワークとして,Macchinettaフレームワークを開発しました(1)(図 ₁ ).
Macchinettaフレームワークは,基本方針としてグローバル標準のオープンソースソフトウェア(OSS)を採用し,独自技術に縛られず種々のITシステムに幅広い適用を可能にしています.Macchinettaフレームワークは,複数の業務APで安定して利用できるよう組合せ検証がされた,共通機能と
して必要なOSSスタック推奨モデルと,業務APフレームワークを利用した開発を円滑に実施するための技術文書から構成されています(図 ₂ ).オンライン処理向け,バッチ処理向け,クライアント開発向けといった対象を拡充していくことにより,広い分野の業務APに活用できるような整備がされています.
Macchinettaフレームワークは,NTTソフトウェアイノベーションセンタから,システム開発を実施するNTTグループ会社に提供されており,すでに100件以上の案件で利用実績があります.
特にNTTデータとNTTコムウェアにおいては,案件導入を積極的に推進
することに加え,案件に適用して得られた知見やノウハウをフレームワークにフィードバックしており,緊密な協力関係を構築して適用を進めています.NTTデータはビジネスで必要な独自のライブラリなども合わせて,TERASOLUNA Server Framework for Java (5.x) として社内展開しており,多くのビジネス系の大規模なソフトウェア開発に適用され,大きな実績を上げています.また,NTTコムウェアではNTTグループ向けの案件を中心に多くの適用実績を上げています.
AP
基盤の提供
人材の供給
ハードウェア・OS・ミドルウェア
Macchinettaツールスイート(開発ツール群)
開発を効率化するツール群の提供
設計支援ツール
製造自動化支援ツール
テスト自動化ツール
設計要件定義 製造 テスト
AP開発
教育資材
Macchinettaを活用した開発プロジェクト
教育資材に基づく研修で開発ノウハウを習得 認定制度による
技術レベルの見える化
技術者レベル高
…
…
…
Lv.3
Lv.2
Lv.1
低
Macchinetta人材プール(Macchinetta認定技術者)
Macchinettaフレームワーク
図 1 AP開発の効率化に向けた取り組み
![Page 3: Macchinettaフレームワークを基盤とした アプリケーション開発 … · 2019-07-08 · 稿では,Web系業務アプリケーションの開発効率を向上す](https://reader033.vdocuments.mx/reader033/viewer/2022060209/5f046cd47e708231d40de795/html5/thumbnails/3.jpg)
NTT技術ジャーナル 2016.1216
Macchinettaフレームワークを主軸としたソフトウェア開発の生産性向上
開発ツール群の共通化:Macchinettaツールスイート
現代のソフトウェアの開発においては,設計 ・ 製造 ・ テストといったすべての工程で,作業をできるだけ自動化し,作業効率を向上するためのさまざまな開発ツールを利用することが一般的になっています.そのような開発ツールを,各社バラバラに独自に開発すると同じ機能を重複して開発してしまったり,ツールどうしがうまく連携できなかったりという問題が発生してしまいます.仮に市中技術を活用したとしても,採用する技術が各社で異な
ると,NTTグループ全体としての学習コストが増大してしまいます.そこで,私たちは開発ツールを整理 ・ 選定し,重複した開発の排除 ・ ノウハウ分散の防止に取り組んでいます.その選定された開発ツール群をMacchinettaツールスイートと呼んでいます.
Macchinettaツールスイートの開発にあたり,市中ツールや,既存ツールの有効性を評価し,採用すべき開発ツールのリストアップを行いました.さらに,それらの開発ツールの機能を詳細に比較し,機能の重複の有無を確認しました.そのうえで,採用すべきか否か,また開発を継続するべきかな
どの取捨選択を行い,Macchinettaツールスイートを選定しました.選定された開発ツールの種類とその概要,ソフトウェア開発工程との関係を表に示しました .このように,設計から製造,テストに至るまですべての工程を支援する開発ツールが整備されており,NTTグループ内で共通化することができました.
これらの整備した開発ツールを活用することにより,広範囲のプロジェクトで生産性向上などのメリットを得ることができますが,適用するプロジェクトの特性や条件によっては,十分な効果を引き出せないこともあります.
Macchinettaフレームワーク
ハードウェア・OS・ミドルウェア
AP
Macchinettaフレームワーク資材の構成
・業務APフレームワークの共通機能として,複数のAPで安定して利用できる検証済みのスタック・具体的には,複数のOSS製品から選定・検証を実施
OSSスタック推奨モデル(複数のOSSの組合せ) ・業務APフレームワークを用い,
チームでの設計から製造,試験工程作業を円滑に実施するための利用技術・具体的には,作業要領・規約やサンプルAPなどを作成
技術文書
開発者が作成しないといけない部分を極小化
【品質均一化】フレームワークの決まり事に従って開発することで開発者ごとの差異が減少
【維持管理効率化】フレームワークの共通知識によりシステム理解が容易に
【生産性向上】
種々の共通機能の提供により開発部分を削減
フレームワークが「考えないで良いこと」「つくらなくて良いこと」
を提供
図 2 Macchinettaフレームワークの概要
![Page 4: Macchinettaフレームワークを基盤とした アプリケーション開発 … · 2019-07-08 · 稿では,Web系業務アプリケーションの開発効率を向上す](https://reader033.vdocuments.mx/reader033/viewer/2022060209/5f046cd47e708231d40de795/html5/thumbnails/4.jpg)
NTT技術ジャーナル 2016.12 17
特集
そこで,開発技術の進歩も見据えながら,今後もツールの目利き,統合,開発を実施し,さらに,各社が適用した利用ノウハウを蓄積 ・ 共有し,そのノウハウを最大限に活用してツールの開発などにフィードバックしていきます.
共通化された技術を利用する人材の育成:Macchinetta人材プール
技術の共通化には,人材の確保という観点での大きなメリットがあります.技術の共通化が行われる以前は,技術ごとに特定の技術者が必要となるために,繁忙期には技術者の確保が困難になり開発コストが増加したり,技術ごとに開発会社が固定してしまうなどの問題点がありました.しかし,これまで述べたようなフレームワークやツールといった共通化された開発技術
を基盤とすれば,技術を教育するコストが削減されるため,人材の調達がこれまでよりも容易になると考えられます.このように,共通化された技術を持つ優秀な人材が育成された環境を私たちはMacchinetta人材プールと呼び,そのような人材を育成するための支援につながる取り組みを進めてい ます.
その取り組みの 1 つとして,共通化した技術の教育資材の整備に取り組んでいます.質の高い技術者を育成するためには,フレームワークなどの技術を実際に自分の手を動かし,つくって学ぶことが有効です.しかし,現状では,一般の市販の入門書やインターネット上の解説記事などの大量の情報から,適切な情報を自力で抜き出し学んでいく必要があるために,時間がか
かり効率が悪いという問題がありました.また, 1 つの開発プロジェクトにかかわる開発者は数百人規模になることもあり,その教育は容易ではありません.そこで,私たちはその課題を解決し,人材育成の効率を向上させるために,Macchinettaフレームワークの教育資材を整備しました.
Macchinettaフレームワークの教育資材は,Javaの基礎知識を保有する入門者を対象としており,基礎知識の教示とプログラミング演習問題の実施体験を提供できるようにつくられています.よく使われる機能をピックアップし,学習効果の高い順番に並べ,推奨する実装方法や規約を平易に解説することにより,知識の早期習得を可能としています.また,手を動かしてつくって学べる演習問題と解答を整備することにより,開発の疑似体験による実践的な知識習得が可能になっています.これにより容易にMacchinetta人材を育成できるようになります(図 3 ).この教育資材は,すでにNTTグループ会社に提供されて,Macchinettaフレームワークを適用する開発プロジェクトにかかわる開発会社への教育プログラムとして利用されており,教育の効率の大きな向上に貢献しています.
今後の展開
ソフトウェア開発を取り巻く環境は日々進化しています.クラウドサービスが提供するシステム基盤を活用し,
表 Macchinettaツールスイート(一部)
ツール種類 対象工程 用途概要
画面設計支援ツール 設計 画面の設計情報から,ソースコード・設定ファイル ・設計書を自動生成する統合開発環境
コード自動生成ツール 設計〜製造 ビジネスロジックの設計情報からソースコードを自動生成
単体テストコード作成支援ツール 単体テスト ソースコードに対する単体テストコード,テ
ストデータを自動生成結合テスト項目作成支援ツール 結合 ・総合テスト 結合テストケース表を自動生成
継続的インテグレーション支援ツール
単体〜結合・総合テスト
繰り返し行われるビルド・テスト・デプロイを自動化し,継続的インテグレーションを支援
ソースコード診断ツール 製造〜単体テスト ソースコードに内在するメモリリーク等の問題を発見
テスト実行自動化ツール 結合・総合テスト 画面操作を伴うテスト実行の自動化
データベースアクセスコード作成支援ツール 製造 データベースアクセスコード作成の入力補助
![Page 5: Macchinettaフレームワークを基盤とした アプリケーション開発 … · 2019-07-08 · 稿では,Web系業務アプリケーションの開発効率を向上す](https://reader033.vdocuments.mx/reader033/viewer/2022060209/5f046cd47e708231d40de795/html5/thumbnails/5.jpg)
NTT技術ジャーナル 2016.1218
Macchinettaフレームワークを主軸としたソフトウェア開発の生産性向上
自前のシステム基盤の構築が不要な時代になってきています.また,利用環境は多様化しており,端末,OS,ブラウザなど多彩なクライアント環境に対応する必要があります.さらに,開発現場からも難易度が高い技術領域に対して利用技術を整備することが期待されています.私たちは,それに伴いフレームワークやツールスイートの動作環境や適用範囲を拡大し,より高い生産性向上を実現すべく研究開発を行っていく予定です.また,これらの環境の変化により,システムを新しいフレームワークや環境に適応させる移行の機会や重要性がさらに増しています.そこで,移行の生産性を上げるための手順やツールの整備が,今後必要になってくると考えています .
Macchinettaの基盤は,さまざまなOSSにより構成されていますが,よ
り質の高いサポートを提供し,フレームワークやツールの信頼性を向上するために,OSSの改善に積極的に関与していきます.バグを修正するパッチを提供することによる品質改善に加えて,新規機能の提案も行っていき,OSSコミュニティと連携した研究開発に取り組みます.特にOSSのフレームワークとして重要なSpring(2)には,NTTグループ各社と協調して,積極的に改善に貢献していく予定です.
人材の育成の観点では,Macchinettaの認定制度の整備 ・ 運用を検討しています.認定制度を整備することにより,技術者とその技術レベルを明確に見える化でき,人材の調達をより容易にすることにつながります.
■参考文献(1) 特集:“ソフトの開発効率化や生産性向上を
目指してOSSによる業務APフレームワーク開発に着手,” ビジネスコミュニケーション,
Vol.51, No.9, pp.4-7, 2014.(2) NTTデータ:“Spring徹底入門 Spring Framework
によるJavaアプリケーション開発,” 翔泳社, 2016.
Macchinetta人材
育成
入門者(Javaの基礎知識保有者)
Macchinettaフレームワークの教育資材
Q演習問題の説明
演習問題への取り組み(プログラミング体験)
次の項目へA
解答の説明
基礎知識の教示
図 3 Macchinettaフレームワークの教育資材
(上段後列左から) 岡田 敏/ 鈴木 源吾/ 金丸 朗/ 夏川 勝行
(上段前列左から) 持田 誠一郎/ 堅田 淳也/ 岩塚 卓弥
(中段左から) 菱木 孝紀/ 金子 武彦/ 出本 浩/ 田邊 憲二/ 本橋 賢二
(下段左から) 酒井 美代孝/ 磐城 洋介/ 山下 克行
私たちは,さまざまなソフトウェア開発の進化に追随しつつ,フレームワークの整備を今後も進めていくことによって,NTTグループのソフトウェア開発の生産性向上につながるよう研究開発を進めていきます.
◆問い合わせ先NTTソフトウェアイノベーションセンタ ソフトウェア開発技術プロジェクトTEL 03-6712-9697FAX 03-6712-8372E-mail macchinetta lab.ntt.co.jp