検索キーワード: 「HTTPリクエスト」


【オブジェクト指向】継承、コンポジションの違いと使用方法

まずはじめに、オブジェクト指向言語とはソフトウェアの考え方で「さまざまな処理を部品ごとに分けて、それらを1つにまとめプログラミングしていくという考え方」を表しています。よく自動車の例が挙げられていますが、ほとんど同じですがここでは自動販売機を例にあげてみます。まずは自動販売機の動作をおさらいしてみますが、「お金を入れる」→「購入できる飲み物のボタンが光る」→「ボタンが押されたら飲み物が出てくる」というようなものが共通の動作としてあると思います。この共通の動作を色々な自動販売機に流用していくというのがオブジェクト指向の考え方です。「お金を入れる」処理を1000円ガチャなどに流用すると、小銭が使えなくお札のみ使用できるという処理を1から作らずに応用して作成することができます。こういった考え方をプログラムに落としたものがオブジェクト指向といいます。今回はその中で、「継承」、「コンポジション」についてそれぞれの違いと使用方法について簡単に説明していきます。

初心者

C言語は将来性がある?C言語の特徴も解説!

現在ではプログラミングを身につけることによって、収入面やキャリア面が向上すると言われています。キャリアアップや転職を考えている上で、どのプログラミングを選択したら良いか悩んでいる方もいらっしゃるのではないでしょうか。その中でも、C言語は汎用性が高く需要も高いプログラミング言語です。しかし、C言語の特性やメリットを理解していないと、自身が思うようなキャリアアップへ繋がらないことも事実です。今回は、C言語をキャリアアップへ最大限に活かすために、C言語の基本や特徴をご紹介します。

初心者

【なぜ注目?】Kotlinの特徴と将来性を徹底解説

プログラミング言語の学習は、自身のキャリアに大きな影響を及ぼす重要な選択です。特にKotlinという言語は、その魅力や将来性から多くの注目を浴びています。こちらの記事では、Kotlinの特徴や魅力、将来性に焦点を当てて解説していきます。

学習・スキル

【エンジニア向け】Rubyの特徴と将来性を徹底解剖

プログラミング言語の学習を進めるにあたって、各言語の特徴や需要、将来性を知ることは非常に重要です。その中でも、Rubyは独自の特徴と将来性を持つ言語として注目されています。本記事では、Rubyの特徴、将来性、メリット、デメリット、そしてRubyエンジニアの年収について詳しく解説します。

学習・スキル

【エンジニア向け】TypeScriptの特徴と将来性を徹底解剖

プログラミングの世界は日々進化し、新たな言語やツールが登場します。その中でも、TypeScriptは近年急速に注目を浴びている言語の一つです。エンジニアとしてのスキルアップや、将来性を考える上で、TypeScriptの特徴や魅力について知っておくことは非常に重要です。この記事では、TypeScriptがどのような言語で、なぜ多くの開発者に支持されているのか、そして将来性やメリット、デメリットについて詳しく解説します。自分のキャリアにおける次の一手を考える際に、TypeScriptがどれだけ有望かを理解し、活用の可能性を探ってみましょう。

学習・スキル

【初心者向け】Packet Tracerでネットワークを学ぶ(DNS)

DNS(Domain Name System)はドメイン名とIPアドレスを関連付けて管理するサービスです。 ネットワークはIPアドレスを使って通信のやりとりを行いますがIPアドレスでは人がIPアドレスがどこの宛先を指定しているのか分かりません。なのでIPアドレスの代わりとしてドメイン名を使用します。

詳細設計(内部設計)(インフラ)

Pythonの基本構文

Python(パイソン)とは、1991年にオランダ人のGuido van Rossum(グイド・ヴァン・ロッサム)氏が開発したプログラミング言語です。アプリケーションの開発、人工知能、データ解析など様々な用途に使用でき、少ないコード量で簡潔に書けるため、読み間違えや書き間違い起こりづらいのが特徴です。文法がシンプルでわかりやすく初心者でも取り掛かり易い言語です。

開発環境関連(PG/バックエンド)

【ソフトウェアテスト】状態遷移テスト

何かの操作を行うと何かのアクションを実行して実行後の状態になり、実行後の状態からさらに次の操作を行うとまたアクションを返すといったように、ソフトウェアに限らず何かしらの機能を持つものは、機能を使う前と機能を使った後でそれぞれ状態が変わります。状態が仕様想定どおりに遷移しているかどうかを確認する技法として、状態遷移テストがあります。

テスト(運用・保守・サポート)

【ソフトウェアテスト】欠陥分析手法について

「【ソフトウェアテスト】不具合報告のインシデントレポートについて」記事で記載したとおり、インシデントはチケット作成して報告されたのち、内容を分析して対応をし、作成から完了に至るまで管理します。そうして蓄積されたインシデントレポートは、報告対応されたそのレポート自体が、以降で類似の現象を検出した際の資料として用いられる面もありますが、内容を分析することで、今後の開発品質向上を目指すための判断材料として活用することができます。いずれのインシデントレポートも、何かしら問題があったから作成されているものであり、問題点は解決した時点で完了とはせずに、内容を振り返って同じ轍を踏まないように以降の活動を随時改善していくことが肝要です。近年のアジャイル化が進んでいるプロジェクトなどの場合は、直近の開発内容に対するインシデントレポート単体を都度分析するような時間も設けられずに次々進んでいくことがありますが、プロジェクト全体としてインシデントレポートを統合管理し、アジャイル開発の各プロジェクト進行とは別途で機会を設けて、振り返りと共に不具合分析を行うことは、高品質な開発を目指す上で必要な活動です。ソフトウェア開発現場の現状として、プロジェクト形式もインシデントレポート形式もさまざまある状況なので、欠陥分析の手法もこれが絶対という唯一のものではなく、状況や期間などに合わせて必要な手法でアプローチをすべきです。統計的内容に基づく分析、インシデントごとの要因に基づく分析、その両面からの分析など、どのような面からアプローチするかによって用いる手法もさまざまあります。

テスト(運用・保守・サポート)

【ソフトウェアテスト】シナリオテスト

シナリオテストはユーザー視点で利用場面を想定し、操作フロー、入力値、発生する正常系挙動異常系挙動など、ユーザーが利用する一連の流れを想定したうえで発生しうるストーリーを元にテストを実施する手法です。ブラックボックステスト技法はさまざまあり、あくまで無数に存在しうるテストケースから粒度や対象を整理抽出してより広く浅いテストケースを目指すようなものがほとんどです。しかし、複数機能をもつシステムを実際に利用する際には、複数回の遷移を繰り返したりシステムが何重にも関連したりするので、1つの機能を対象としたテストや、2つ3つの機能間の関連をテストしただけでは、再現し得ないような組み合わせでの不具合が発生する懸念は常にあります。フリーチェックやモンキーチェックなどと呼ばれるものも、結局は「ユーザーなら再現しうる」可能性を想定して実行するものですが、それを数値や手順を明確にしてより詳細にテストし、かつ明示することでその内容をテストの履歴としたり、テストの要件自体もレビューなどで評価対象とできることがこのシナリオテスト手法の利点と考えられます。また、ユーザーのストーリーを元にテストするという点から、よりユーザーサイドでの視点から評価できるため、単純に欠陥を検出するのみならず、UI/UXの評価検討なども実施することができます。

テスト(運用・保守・サポート)

【ソフトウェアテスト】ソフトウェア開発とテスト活動について②

「【ソフトウェアテスト】テストレベルについて ①」記事に記載のとおり、開発ライフサイクルモデルには形式や期間によってさまざまなモデルがあり、テストを実施するタイミングもモデルによってさまざまです。先に挙げた開発工程の例である要件定義→設計→開発→テスト→リリース/保守を一連の流れとする開発ライフサイクルも、このフローを開発期間の流れとして実施するのはあくまでウォーターフォール型モデルのようなシーケンシャルな開発ライフサイクルであり、イテレーティブ開発モデルやインクリメンタル開発モデルでは、各工程とテストが同時に進行したり、無駄をなくすことを目的としてあえて一部工程を省くこともあります。V字モデルは各工程とテストが同時進行する例です。要件定義の段階で要件定義に対するテストを実施、システム設計の時点で設計された内容に対してテストを実施といったかたちで、開発完了後にようやくテストではなく、常に工程の早期段階でテストを実施します。開発完了後のテストで不具合が検出されると工程の手戻りが発生してしまい、工数に無駄が生じますが、早期にテストを実施することにより、上流工程の段階で不具合や懸念を可能な限り取り去って開発作業の手戻りを少なくし、無駄な工数の増加を防いだり、最終的な品質の向上を目指すことができます。このようにV字モデルの左側で行う開発活動に対して早期にテストを実施して効率的な開発活動を目指す手法をシフトレフトと呼びます。イテレーティブ開発モデルやインクリメンタル開発モデルとなると、さらに各工程とテストが早期段階で実施されていきます。全体的な流れをより細かく迅速に行い、それを細かく繰り返していくサイクルが、現在のソフトウェア開発形式の主流になってきています。

テスト(運用・保守・サポート)

関連タグ

カテゴリ別人気記事

もっと見る
テレワーク関連人気記事

週間人気記事

もっと見る