【ITパスポート】 #29 ソフトウェア開発手法 (マネジメント分野)

Поделиться
HTML-код
  • Опубликовано: 2 июн 2024
  • ▼Udemyで「著者が教える最短絶対合格のコース」公開中!以下のリンクからのアクセスすることで84%オフのセール価格になります。Udemyの割引セールを待つ必要がありません。
    link.it-pass.jp/udemy
    ▼無料の問題集アプリもあるよ!
    app.it-pass.jp/
    この動画では、 ソフトウェア開発手法について解説します
    ▼目次
    0:00 自己紹介
    0:12 ソフトウェア開発手法
    0:28 ウォーターフォールモデル
    1:45 RAD
    2:35 アジャイル開発
    3:43 XP
    4:07 テスト駆動開発
    4:41 ペアプログラミング
    5:06 リファクタリング
    5:55 オブジェクト指向開発
    6:48 DevOps
    7:42 リバースエンジニアリング
    8:11 試験ではこう出る!(まとめ)
    8:37 令和4年春期 問42 過去問題
    ▼内容
    今回の動画では、「ソフトウェア開発手法」について解説するよ。
    ソフトウェアには、さまざまな開発の手法がある。
    この動画では、どのようなソフトウェア開発手法があるのかを見ていこう。
    まずは、最も基本的な手法である「ウォーターフォールモデル」だ。
    ウォーターフォールモデル
    ウォーターフォールモデルとは、ソフトウェアの開発プロセスを上流工程から下流工程へ向かって一直線に順番に進める手法。
    以前の動画で、開発プロセスについて学習したね。
    ウォーターフォールモデルでは、システム要件定義が完了したらシステム設計、システム設計が完了したらプログラミングというふうに、各工程を順番に進めていく。
    滝のように、一直線に上から下へ進むことから、英語で「滝」を意味する「ウォーターフォール」という名前が付いているんだ。
    ウォーターフォールモデルのメリットは、開発のスケジュールが立てやすいこと。
    一方、デメリットは、修正作業が大変なことだ。開発の途中でシステム要件が変更されるなど、何らかの理由で手直しが必要になった場合、修正が必要な工程まで戻って、そこからまた順にやり直していく必要がある。そのため、ウォーターフォールモデルでは、少しの修正でも、大がかりな作業になってしまうことがあるんだ。
    ウォーターフォールモデルは、完成までに時間がかかる。そこで、高速に開発を進めるために考えられた手法が「RAD」だ。
    RAD
    RADとは、少人数のチームでプロトタイピングを繰り返し、短い期間でソフトウェアを開発する手法。
    RADは、「Rapid Application Development」の頭文字。「Rapid」は「速い」という意味だ。
    プロトタイピングとは、「試作」のこと。
    RADでは、「プロトタイプ」と呼ばれる試作品を作り、ユーザーの意見を取り入れながら、ソフトウェアを完成させていく。
    また、RADでは、専用の開発ツールを利用して、プログラミングをできるだけ簡単にすることで、開発を高速に行うことができるんだ。
    RADは、比較的小規模な開発に向いている手法だ。
    一方、次に紹介する「アジャイル開発」は、大規模なソフトウェアの開発にも対応できる。
    アジャイル開発
    アジャイル開発とは、短期間にソフトウェアの開発とリリースを繰り返し、ビジネス環境の変化やユーザーのニーズに柔軟に対応する開発モデル。
    先ほど解説したウォーターフォールモデルは、最初にシステム要件をきっちり決めて、順番に工程を進めていく。
    そのため、システムの完成形は開発の最終段階まで見えないし、工程の途中でシステム要件を変えることも難しい。
    一方、アジャイル開発では、綿密なシステム要件を決めずに開発を進めて、製品を素早くリリースする。
    初期の段階では製品の品質は高くないかもしれないが、リリースすることでユーザーの反応を見ることができるね。
    ユーザーの反応を取り入れてシステム要件を変更し、改善した製品をリリースする。
    これを繰り返すことで、アジャイル開発では、スピーディーで柔軟な開発ができるんだ。
    アジャイル開発には、さまざまな手法がある。その1つである「XP」を紹介しよう。
    XP
    XPとは、「eXtreme Programming」の略で、19のプラクティスが定義されたアジャイル開発の手法の1つ。
    プラクティスは、「実践方法」という意味だ。
    これらのプラクティスのうち、試験でよく出題される「テスト駆動開発」「ペアプログラミング」「リファクタリング」について解説しよう。
    テスト駆動開発
    テスト駆動開発とは、先にテストプログラムを作り、このテストを通るようにプログラムを書く開発手法。
    通常はプログラムを書いた後に単体テストを行うが、テスト駆動開発では、テストを先に作る。開発者は、「テストに合格するため」という明確な目的でプログラムを書くことができるんだ。
    また、テスト駆動開発では、プログラムが書き終わった段階でテストに合格しているということだから、不具合が少ないのもメリットだ。
    ペアプログラミング
    ペアプログラミングとは、2人のプログラマが、1台のPCを使ってソフトウェアを開発する手法。
    ペアプログラミングでは、1人がプログラムを書いているとき、もう1人はそれをチェックする。
    この役割を交代しながら作業を進めることで、コミュニケーションが取りやすくなり、効率よく品質の高いプログラムを作ることができる。
    リファクタリング
    リファクタリングとは、外部から見たプログラムの動作は変えずに、プログラム内部のソースコードを改善すること。
    リファクタリングを行っても、ユーザーが利用するときの動作には変化がない。
    しかし、開発者にとっては、プログラムの構造やソースコードを整えることで、不具合を減らしたり、メンテナンスがしやすくなったりといったメリットがあるんだ。
    以上が、XPのプラクティスに含まれる開発手法だ。これらは、ソフトウェアを開発する実践的な手法といえる。
    一方、ここからは、開発全体の考え方や手法について確認しよう。
    まずは、システム全体を効率よく開発する考え方である「オブジェクト指向開発」だ。
    オブジェクト指向開発
    オブジェクト指向開発とは、ソフトウェアを部品化することで再利用をしやすくし、開発を効率化する開発手法。
    オブジェクト指向開発では、まず「クラス」と呼ばれるひな型を定義して、その定義に基づいて「オブジェクト」と呼ばれる実体を作る。
    例えば、「ボタン」をオブジェクトとする場合、ボタンのクラスを定義することで、必要なときにいつでもボタンを生成することができるんだ。
    既存のクラスをもとに新しいクラスを作るときには、「継承」という機能によって、既存のクラスの定義や性質が引き継がれる。だから、必要なコードを追加するだけで、新たなクラスが定義できるんだ。
    次に、開発者と運用者の協力体制を重視した「DevOps」を紹介しよう。
    DevOps
    DevOpsとは、「開発担当者」と「運用担当者」が連携してシステムを開発する手法。
    DevOpsは、開発を意味する「Development」と、運用を意味する「Operations」を組み合わせた用語だ。
    開発者と運用者は、意見が対立することも多い。
    例えば、開発者は、より良いシステムを作るために、新機能を追加したいと考える。一方、運用者は、システムを安定的に稼働させるために、現状を維持したいと考える。
    DevOpsでは、このような考え方の違いから生まれる対立を、ツールなどを使って解決し、開発者と運用者が協力しあって迅速に開発を進めるんだ。
    最後に、既存のシステムやソフトウェアを理解するための技術である「リバースエンジニアリング」を紹介しよう。
    リバースエンジニアリング
    リバースエンジニアリングとは、既存のプログラムを解析して、そのプログラムの仕様や設計の情報を取り出す技術。
    例えば、既存のソフトウェアを参考にして、新たなソフトウェアを作成する場合などに利用される手法だ。
    もとのソフトウェアの仕様書などが残っていない場合に、プログラムを解析して、仕様を明らかにしていくんだ。
    試験ではこう出る!
    ・リファクタリングとは、外部から見たプログラムの動作は変えずに、プログラム内部のソースコードを改善すること。
    ・DevOpsとは、「開発担当者」と「運用担当者」が連携してシステムを開発する手法。
    ・リバースエンジニアリングとは、既存のプログラムを解析して、そのプログラムの仕様や設計の情報を取り出す技術。
    過去問題
    システムの開発側と運用側がお互いに連携し合い、運用や本番移行を自動化する仕組みなどを積極的に取り入れ、新機能をリリースしてサービスの改善を行う取組を表す用語として、最も適切なものはどれか。
    ア.DevOps
    イ.RAD
    ウ.オブジェクト指向開発
    エ.テスト駆動開発
    正解は、ア。
    「開発側と運用側」が「連携し合い」というキーワードから、DevOpsが正解だとわかる。
    DevOpsとは、「開発担当者」と「運用担当者」が連携してシステムを開発する手法だったね。
    イのRADとは、少人数のチームでプロトタイピングを繰り返し、短い期間でソフトウェアを開発する手法。
    ウのオブジェクト指向開発とは、ソフトウェアを部品化することで再利用をしやすくし、開発を効率化する開発手法。
    エのテスト駆動開発とは、先にテストプログラムを作り、このテストを通るようにプログラムを書く開発手法。
    以上が「ソフトウェア開発手法」の解説だよ。お疲れ様でした!
    ▼著者紹介 
    ・高橋 京介
    ・米サンノゼ州立大学卒業
    ・元メルカリiOSエンジニア
    ・Udemy:link.it-pass.jp/udemy
    ・問題集アプリ:app.it-pass.jp/
    ・著書
     - ITパスポート絶対合格の教科書:amzn.to/3uTyxbg
     - 基本情報技術者 絶対合格の教科書:amzn.to/3Gyz8lA
     - iPhoneアプリ開発「超」入門:amzn.to/3pIm046

Комментарии • 19

  • @hirokroun
    @hirokroun 6 месяцев назад +6

    本動画と3年分の過去問を解き、先週試験を受けてきました。620点で3科目それぞれ550点以上取ることができました。わかりやすい説明のおかげで楽しく学べました!簿記、FPとも2級を取れたので次は社労士を目指します。
    ありがとうございました!

    • @itpassport
      @itpassport  6 месяцев назад

      楽しく学べたとのお言葉嬉しいです‼️ありがとうございます😊
      次の目標に向けて頑張って下さい✨応募しています📣

    • @user-zd7qo7wf1f
      @user-zd7qo7wf1f 3 месяца назад

      ワイが取りたいの全部持っててすごい

  • @OPN_T
    @OPN_T 6 месяцев назад +1

    一週間ほど前から公開されている動画を全て視聴しました。
    聞き取りやすい声で内容もわかりやすいため、一人ではなかなか取り組めなかった勉強も意欲的に取り組めました。
    本も購入したので、不足分や不明点についてはそちらで学習したいと思います。
    無料で素晴らしい解説動画を提供いただきありがとうございます。

    • @itpassport
      @itpassport  6 месяцев назад

      分かりやすいとのコメント励みになります!
      ありがとうございます!!
      書籍のご購入もありがとうございます✨

  • @hikaridesu2519
    @hikaridesu2519 7 месяцев назад +13

    待ってました〜!週末受けて来ます!

    • @adidastaro947
      @adidastaro947 7 месяцев назад

      初めまして、こんにちは
      受かりますように!

    • @itpassport
      @itpassport  6 месяцев назад

      コメントありがとうございます😊
      返信が遅くなりすみません💦
      試験、お疲れ様でした👍

  • @adidastaro947
    @adidastaro947 7 месяцев назад +1

    こんばんは、お疲れ様です
    待ってました!

    • @itpassport
      @itpassport  7 месяцев назад +1

      さっそくのコメントありがとうございます!お待たせしました!

  • @yuuizumi1944
    @yuuizumi1944 6 месяцев назад

    絶対合格の本と過去問で合格出来ました。ありがとうございました

    • @itpassport
      @itpassport  6 месяцев назад

      合格おめでとうございます!動画と書籍をご活用いただき嬉しいです❗️
      お疲れ様でした✨

  • @user-ig4zu6pw9c
    @user-ig4zu6pw9c 7 месяцев назад

    無事受かりそうです!

    • @itpassport
      @itpassport  6 месяцев назад

      コメントありがとうございます😊
      頑張って下さい✨

  • @user-hw8hr6jd5t
    @user-hw8hr6jd5t 6 месяцев назад +1

    テクノロジ分野の方は出されますか?

    • @itpassport
      @itpassport  6 месяцев назад

      ご質問ありがとうございます!順次作成していきますね!

  • @reikafukuoka6371
    @reikafukuoka6371 7 месяцев назад +1

    有料動画はRUclipsの内容と違いますか?

    • @itpassport
      @itpassport  6 месяцев назад

      RUclipsとUdemyは別の動画になります。Udemyでは頻出用語を解説しております!

    • @user-sr6ct4jh7x
      @user-sr6ct4jh7x 3 месяца назад

      すみません質問です!
      Uemyってなにかのアプリですか?