Download presentation
Presentation is loading. Please wait.
1
高速開発
2
高速化するものとしないもの 半導体の集積度 ネットワーク速度 ? ソフトウェアの生産性 2000 2010 *あくまでもイメージです
3
「最も優秀なプログラマと最低の成績のプログラマのあいだには約10倍にあたる生産性の違いがある。」
とある開発ベンダーの社長 いやー、100倍くらい違うんじゃないかな?
4
(スターを作るのではなく、一般のプログラマの生産性を底上げする)
ソフトウェア開発の効率化 プログラマの 生産性向上 (スターを作るのではなく、一般のプログラマの生産性を底上げする) 部品化・再利用 ライブラリ フレームワーク Webサービス 組織 コミュニティ DevOps ソーシャルプログラミング 開発手法 マッシュアップ アジャイル ルールベース開発
5
HTML/JavaScript+HTTP
Webアプリケーション HTML/JavaScript+HTTP ブラウザー (Ajax)
6
Webサービスとマッシュアップ XML+SOAP/REST 複数のサービスをAPIベースで連携させて新たなサービスを提供する
旅行サイト XML = ソフトウェア間の通信に用いるデータ形式を自由に定義できるマークアップ言語 SOAP/REST =ソフトウェア同士がメッセージ(オブジェクト)を交換するためのプロトコル 通信フォーマットと手順の標準化により、Webアプリ間の通信が容易になった (Webサービスとしての利用が可能) 複数のサービスをAPIベースで連携させて新たなサービスを提供する →マッシュアップ ブラウザー (Ajax)
7
クラウド時代のマッシュアップ開発 マッシュアップ 自社サービス (サービスロジック、UX) クラウドサービス API マッシュアップ開発
IT の深い知識がなくても、既存のWebサービスAPIを組み合わせて、短期間でアプリケーション開発を行うこと。新しい開発技法として注目されている。 マッシュアップ クラウドサービス API 自社サービス (サービスロジック、UX) OSSパッケージ API 様々なWebサービスやBaaSなどのサービス、豊富なOSSなどにより、新たなプログラミングをせずにアプリケーションを開発することが可能になってきた
8
BaaS (Backend as a Service)/MBaaS
アプリケーション BaaS モバイルサービスを構築する際に共通して必要となる機能をサービスとして用意し、パッケージで提供する ミドルウェア ユーザー管理 SaaS BaaS OS プッシュ通知 PaaS ソーシャルメディア連携 IaaS ハードウェア 課金・決済処理 同期・共有・バックアップ BaaSは元々モバイル向けサービスとして発表されたが、最近ではモバイル用のBaaSをMBaaSと呼ぶこともある ユーザー間のチャット ロケーション連携
9
Bitnami - OSS on Amazon -
10
JavaScript開発フレームワーク PC向け jQuery prototype.js モバイル向け jQuery Mobile iUI
jQuery以前に人気があったJavaScriptライブラリ Ruby on Railsに含まれていた (現在はjQuery) モバイル向け jQuery Mobile jQueryのモバイル版 モバイル向けフレームワークの本命 iUI 機能は多くないが、手軽にスマホ向けサイトを構築可能 jQTouch Sencha製開発フレームワーク Sencha Touch JavaScriptを中心にページを記述 パフォーマンスが良く、高機能 Wink toolkit JavaScriptを中心にページを記述 3Dエフェクトなどが豊富に用意されている
11
DevOps (Development-Operations)
従来型 運用チーム 開発チーム ウォーターフォール型 開発と運用が衝突することが多い Dev Ops 開発・運用チーム アジャイル型 開発(Development)と運用(Operations)が協力し、要求に対してより柔軟かつスピーディに対応する
12
仮想マシンのデプロイを自動化してDevOpsを加速するOSSベースのツール
デプロイを自動化する構成管理ツール 仮想マシンのデプロイを自動化してDevOpsを加速するOSSベースのツール Bcfg2 Pythonベースの構成管理ツール (2003?~) 米アルゴンヌ国立研究所が開発 CFEngine GNU オープンソース構成管理フレームワーク (1993~) Puppet Rubyベースの自動化ツール (2005~) CFEngineを参考に開発 多くの企業で導入されている Chef Rubyベースの自動化ツール (2009~) CFEngine、Puppetを参考に開発 IBM、MS、AWSがサポートを表明
13
HTMLとネイティブのハイブリッド開発環境
Webアプリ HTML JavaScript ネイティブ アプリ OS ハードウェア PhoneGap Titanium ブラウザー HTML+JavaScriptでネイティブアプリを開発 OS デバイス固有の機能にもアクセス可能 ハードウェア HTML5環境が整備されるまでの橋渡し
14
ネイティブアプリとWebアプリ ネイティブ アプリ Webアプリ OS OS ハードウェア ハードウェア デバイスに最適化した設計が可能
ObjectiveC Webアプリ HTML C++, Java JavaScript C#, VB ブラウザー Safari, Chrome, IE OS iOS OS iOS Android Android Windows Phone Windows Phone ハードウェア スマホ ハードウェア スマホ タブレット タブレット PC PC デバイスに最適化した設計が可能 デバイス毎に開発の必要無し 動作が高速で使いやすい アプリマーケットを迂回可能 デバイス毎に開発が必要 速度、機能、互換性などは発展途上
15
MEAP (Mobile Enterprise Application Platform)
16
BRMS
17
BRMSとは Business Rules Management System ビジネス上の様々なルールをプログラム化せずにシステムに実装
(ルールエンジン、推論エンジン) ルール ルールベース (ルールリポジトリ、ナレッジベース) プログラム化=ハードコード ・ルールをソフトウェア仕様として 定義しなおす必要がある ・コーディングが必要 ・ルール追加・修正のたびにテスト が必要となる ルールベース=BRMS ・ルールを自然言語に近い形で記述 ・担当者がルールを作成できる ・ルールの齟齬などをシステムが自動チェック ・コーディングの必要無し ・都度テストを行う必要無し
18
ビジネスルールとは? ビジネス運用上の様々なポリシー、規約、制約 ビジネスルールの特徴 ビジネスルールの問題 保険加入の審査
携帯電話の料金・割引プラン 金融業における与信審査 社内決済、稟議条件など ビジネスルールの特徴 ビジネス環境によって様々に変化する 期間限定 企業の企画・営業部門が適宜決める ビジネスルールの問題 様々な条件をいちいちプログラミングするのは大変 改変の都度テストが必要になる
19
ルールベースシステムの源流 エキスパートシステム(1970年代) 問題点 適用分野 第5世代コンピュータプロジェクト
人工知能研究の一環として実用化されたシステム。人間の専門家が特定分野の専門知識に基づいて推論を行い、複雑な問題を解決する過程をエミュレートし、問題の分析結果を提供し、利用者の行動を導く指針を与える。 特定の分野の問題についての情報を蓄積したルール群と、それらをベースに推論を行う推論エンジンから構成されるプログラムであり、通常のプログラミングのようにソフトウェア開発者が設定した手続きに従うわけではない。 適用分野 会計、医療、プロセス制御、金融サービス、製造業、人事など 問題点 専門家の知識は定型化できないことが多い 問題をかなり限定しないとうまく機能しない 推論エンジンの能力不足 第5世代コンピュータプロジェクト 1982年、通産省の肝いりで開始された国家プロジェクト。米国主導の汎用コンピュータの流れを大きく変えるべく、より人間にとって使いやすい並列推論マシンを独自に生み出していこうという試み。
20
ビジネスルールの例 (携帯電話の料金プラン)
申込書審査 新規契約か? 2台目以降は50%割引 同一家族か? 家族間は通話料無料 学生か? 学生は基本料金50%割引 夏休み期間か? 夏休み中は20%割引 2台目か? 2台目割引とは併用不可
21
ルールを追加していくだけでシステムをアップデート・維持できる
申込書 BRMS 2台目以降割引(2台目以降は基本料金割引) 家族割引(同一家庭で利用の場合には通話料金無料) 学生向け割引(学生は基本料金を50%値引き) 夏休み限定割引(7-8月の2ヶ月間に契約した場合には基本料金を20%OFF) 夏休み限定割引は2台目以降割引とは併用不可 Good NG
22
BRMSのメリット 担当者が自然言語に近いコマンドを使ってルールを追加・修正・削除できる ビジネスルールをプログラムの外に出すことができる
プログラミングの必要が無い 仕様書化の必要が無い BRMSシステムがルールのコンフリクトなどをチェック 期間の設定などができる ビジネスルールをプログラムの外に出すことができる ルールの変更があれば迅速に対応できる いちいちテストする必要が無い ルールを追加していくだけでシステム構築ができる 従来型のプログラミングは必要無し ルールを一つ入れた時点で稼働開始
23
これからのプログラマ
24
開発スキルの2極分化 既存のものを組合わせる 「マッシュアップ」開発 基幹系業務ソフト、インフラ、フレームワークをゼロから開発
既存のサービスやOSSを利用してビジネスロジックの実装やUI/UXの向上を追求 マッシュアップ用のサービスやフレームワークを開発・OSSコミュニティに参加 業務を熟知し、利用者の目線でシステムを開発 コミュニケーション能力、想像力、おもいやり インフラやフレームワークをゼロから開発 プログラミング能力、先見性、論理性、技術力 多能工プログラマ/エンドユーザー 技術だけでは無く業務でお客様と会話し交渉できるプログラマまたはユーザー テクノロジー・スペシャリスト テクノロジーに精通し技術開発そのものができるプログラマ
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.