ウォーターフォール開発とアジャイル開発の違いとは?メリット・デメリットを解説!
システム開発の世界は、さまざまな開発手法がありますが、中でも「ウォーターフォール開発」と「アジャイル開発」は、その代表的なものとして多くのプロジェクトで取り入れられています。しかし、これらの開発手法を聞いたことはあっても具体的にどのように異なるのか知らない方も多いかと思います。この記事では、ウォーターフォール開発とアジャイル開発の違いを明確にし、それぞれの特徴やメリット・デメリットを詳しく解説します。さらに、最近注目されているハイブリッド開発についても触れていきますので、システム開発の手法を選ぶ選択肢の参考として、ぜひお役立てください。
初心者
【初心者用】SQLのクエリ操作基礎4
タイトル通りですが、SQL初心者がクエリ操作に関して学んだことまとめていきます。操作方法について忘れていることが分からないことが多いので、基礎を学んでいきます。
その他(PG/バックエンド)
【初心者用】PL/SQLとは
今度の案件で触ることになりそうなので、PL/SQLも触ることになりそうなので今回まとめたいと思います。SQLのクエリ操作などの基礎は全て学びなおしたのですが、PL/SQLの操作はまた別のようなので学んでいきたいと思います。
その他(PG/バックエンド)
データ分析に使用されるR言語の基礎構文をまとめてみた
R言語は、統計解析やデータ分析に特化したプログラミング言語であり、初心者でも比較的簡単に学ぶことができます。今回はR言語の初心者向けにR言語の基礎を紹介しようと思います。
製造・コーディング(PG/バックエンド)
ECUとはなにか、まとめてみた
ECUとは、車載ECUにおける「ECU」とは、Electronic Control Unit(エレクトロニックコントロールユニット)の略称で、車両のあらゆるシステムを制御する装置の総称です。主にライトやドア、キーレスエントリーシステムなどの車両のボディに関する分野からブレーキ、エンジン、ステアリングなどの制御、オーディオやナビ、GPSなどの情報に関わる分野などもECUが用いられています。現在市販されている自動車には、およそ100個以上ものECUが搭載されており、さらにはハイブリッド車や電気自動車などの環境に対応した最新の自動車にもECUがなくてはならないものとなっています。自動車に関連するECUという用語は、Engine Control Unit(エンジンコントロールユニット)として捉えられることもあります。エンジンコントロールユニットとは、エンジンにおける運転制御を電子的に行うためのマイクロコンピューターのことです。現在ではエンジン制御だけでなく、自動車のあらゆる分野で役割を担っていることから、総称としてElectronic Control Unit(エレクトロニックコントロールユニット)として扱われています。なお、エンジンコントロールユニットの呼び名であり、自動車技術者協会(SAE)および国際標準化機構(ISO)で定義されているものは、ECM(Engine Control Module)と呼ばれます。車載ECUは、自動車に装備されているあらゆる機器やシステムを制御します。この働きによって、エンジン性能の向上や燃費の低減、排出ガスのクリーン化、運転性(ドライバビリティ)の向上などを目指すのが、ECU搭載の目的です。自動車業界の大きな変革期である今、世界中の各自動車メーカーは自社が誇る最新技術を用いて自動車の環境性能や快適性能、安全性能の向上に力を注いでいます。自動運転技術など、これからの自動車においてさまざまな最新機能の司令塔を担うECUは今後の技術発展において必要不可欠なものになっています。
開発環境関連(PG/フロントエンド)
【ソフトウェアテスト】状態遷移テスト
何かの操作を行うと何かのアクションを実行して実行後の状態になり、実行後の状態からさらに次の操作を行うとまたアクションを返すといったように、ソフトウェアに限らず何かしらの機能を持つものは、機能を使う前と機能を使った後でそれぞれ状態が変わります。状態が仕様想定どおりに遷移しているかどうかを確認する技法として、状態遷移テストがあります。
テスト(運用・保守・サポート)
IT業界でエンジニアがワークライフバランスを実現する方法
IT業界は、人の入れ替わりが激しく、常に新しい技術やサービスの開発が求められるため、エンジニアの仕事は多忙であることが多いです。しかし、仕事に専念しすぎてプライベートを犠牲にしてしまい、気付いたら家族や友人との大切な時間を過ごせず、自分の仕事の仕方に疑問や不安を持つ方も多いのではないでしょうか。本記事では、エンジニアがワークライフバランスを追求するために、どういった方法がとれるのか、企業の視点と個人の視点でそれぞれ考えていきます。
働き方
【Javaフレームワークおすすめガイド】スキルアップへの第一歩
エンジニアとしての成長は、学習と実践を通じて進むものですが、その中でもプログラミング言語の選択は重要なステップです。特に、Javaという言語は幅広いアプリケーションで利用され、堅牢で拡張性の高いコードを作成することができます。しかし、Javaをより効果的に活用するためには、フレームワークの理解が不可欠です。本記事では、Javaの基礎から始めて、フレームワークの種類やそれぞれの特徴、そしてJavaエンジニアとしてのキャリアパスについて深掘りしていきます。エンジニアとしての成長において何が足りないのか、またどのようなスキルや知識が必要なのかを明確にするための第一歩として、Javaとそのフレームワークについて詳しく解説します。
学習・スキル
【ソフトウェアテスト】CFD法
CFD法はCause Flow Diagram(原因流れ図)を略したもので、原因の集合と結果をそれぞれの関係のつながりにフォーカスして図式化し、そこからデシジョンテーブルを想定してテストケースを作成する技法です。システム設計において、正常な動作の仕様を基本として異常系の仕様もエラー動作実装のため明確に定義されているべきですが、テスト実施の際には、仕様想定上の正常系・異常系動作確認はもとより、考え得る限りの準正常系テストケース網羅も必要です。そうしたケースの考慮が足りていないと、リリース後にユーザーが想定外の操作を実行して重篤な不具合につながったり、あるいは仕様の穴を付いた不正処理などを実行されたりして、プロジェクトやサービスに損失が発生したりします。原因・結果・各関係を図示して明確に関係を洗い出すことで、実装段階では考慮が漏れているような挙動についても抜けや漏れをカバーするようにテストすることができます。また、エラーに関するもののみではなく、同値分割が可能な原因が複数関連して複数の結果が想定されるというシステムで、その関係性を図にして流れを見ることで、テストケース作成がグラフィカルに把握しやすくなります。インターネットでクレジットカードを利用して決済処理を実行する際に、完了までには以下の様な結果パターンが想定されます。・カード情報入力エラー(入力したカード利用情報に問題がある)・決済処理不能エラー(登録しているカード情報の照会時にエラーが発生)・通信不良による接続タイムアウトエラー(決済実行から完了までの通信時間が規定の時間内に処理されないことによるエラー)・決済完了上記4パターンの結果を返すまでの原因は、細部まで書き出すと煩雑になります。・複数の入力フォームに入力した情報のどこがエラーになったか・カード情報照会時にどのような理由でエラーになったか・どのページからどのページに遷移するときにエラーになったか・何秒以上の通信待機時間を過ぎたら通信エラーで処理するか等これらを一つの枠に収めてそれぞれを線でつなぐことで関係性を整理できるのが、このCFD法の利点だと思います。
テスト(運用・保守・サポート)
【ソフトウェアテスト】直交表/ペアワイズ法 ①
本記事では直交表について記載します。さまざまな資料を調べて情報をまとめているうちに、直交表、ペアワイズ、HAYST法はそれぞれ直交表を元に関連しているようだと思ったので、直交表から順を追って記載していこうと思います。しかし、それぞれが個別の手法として確立しており、その手法を使用するシーンも違うことから、記事としては独立させたほうが適切かと思ったので、まずは直交表についてまとめたのち、続いて別の記事でペアワイズ法をまとめていきます。
テスト(運用・保守・サポート)
【ソフトウェアテスト】直交表/ペアワイズ法 ②
直交表そのものについては直交表/ペアワイズ法 ①で記載しています。この記事では主にペアワイズ法についてまとめます。ペアワイズ法は組み合わせテスト技法の一つであり、直交表で考慮した各因子に想定されている水準が均等に分布するという条件を緩和し、各水準の組み合わせが少なくとも1回以上出現するようなペアを選択することで、直交法そのものよりもテストの粒度を粗くしてテストケース数を抑える手法です。
テスト(運用・保守・サポート)
関連タグ
カテゴリ別人気記事
もっと見るテレワーク関連人気記事
2023年10月02日
製造・コーディング(PG/フロントエンド)2023年07月18日
アーキテクト・技術選定(PG/バックエンド)2023年10月26日
テスト(運用・保守・サポート)2023年11月17日
学習・スキル2023年01月09日
詳細設計(内部設計)(インフラ)
週間人気記事
もっと見る【初心者用】IISについて調べてみた
個人でプログラミングを勉強する際にIISを使用することになったのですが、「IISって具体的には何だっけ?」となったのでまとめてみます。 タイトルにある通り、初心者向けに極力噛み砕いて説明していきます。
製造・コーディング(PG/バックエンド)
Git GUIツールの使い方:初心者向けチュートリアル
Gitとは、分散型バージョン管理システムの1つで、コードやファイルなどの変更履歴を記録し、複数の人で同時に開発を進めるために使われます。Linuxの開発者であるLinus Torvaldsによって開発され、現在は世界中の多くの企業やオープンソースプロジェクトで使用されています。Gitは、ファイルの変更履歴を保存するための「リポジトリ」と呼ばれるデータベースを持ち、このリポジトリに対してコミットと呼ばれる操作で変更履歴を追加していきます。また、ブランチと呼ばれる分岐を作成して、異なるバージョンのコードを管理します。Gitの主な特徴としては、以下のようなものが挙げられます。・ローカルでの高速な動作・分散型であるため、オフラインでも開発ができる・変更履歴を管理しやすく、コードの品質を高めることができる・大規模なプロジェクトでもスケーラブルに対応可能Gitは、コマンドラインツールを使って操作することもできますが、GUIツールを使って操作することもできます。
アーキテクト・技術選定(PG/バックエンド)
【これからJP1に触れる人向け】JP1とは
開発プロジェクトに携わる際にJP1というツールに触れたことはあるだろうか。JP1は開発工程、特にテスト作業においては非常に利便性の高いツールである。この記事ではまだJP1に触れたことがない人向けにJP1の概要やJP1を合う買う際に知っておくべき用語を取り上げる。
テスト(運用・保守・サポート)
インデックスとは?メリットデメリットやインデックスの種類も交えてご紹介
インデックスとは、データベースを扱う際には欠かすことのできない概念となります。インデックスの取り扱いによって、データのアクセス速度が大きく変わります。特に大規模なデータを扱う場合には、取り扱いに気をつけなくてはなりません。インデックスを設定した結果、処理速度が遅くなってしまうことやそもそもインデックスを使用するような実行計画が選択されないこともあるのです。インデックスは、DBMSの種類(例えば、OracleやMySQL、Postgreなど)によっても異なります。インデックスの仕様を知らないと、開発者にとって意図しない処理をしてしまう可能性もあります。そこで今回はインデックスについてメリットデメリットや具体的にどのような種類があるのかを説明していきます。
学習・スキル
JUnitとは何か?初心者向け入門ガイド
Junitは、Java言語用のオープンソースの単体テストフレームワークです。単体テストは、プログラムの各部分が個別に正しく動作するかを確認するために行われます。Junitは、テスト駆動開発(TDD)と呼ばれるアジャイルソフトウェア開発の手法をサポートするために開発されました。Junitは、テストケースの定義、テストの自動実行、テスト結果のアサーション(検証)など、テストに必要な機能を提供します。また、テスト結果のレポーティング機能も備えています。Junitは、プログラマーにとって非常に便利なツールであり、プログラムの品質を向上させるために欠かせないものとなっています。Junitを使用することで、プログラムの変更がもたらす影響をすばやく確認することができます。
テスト(PG/バックエンド)
【初心者向け】Packet Tracerでネットワークを学ぶ(DHCP)
DHCP(Dynamic Host Configuration Protocol)は自動的にIPアドレスやサブネットマスク等をPCやルータに配布してくれるプロトコルです。
詳細設計(内部設計)(インフラ)
組み込み開発とOSの関係は?汎用OSとの違いから将来性まで
組み込み開発とは、家電や自動車、ロボットなどに搭載される制御ソフトウェアを開発することです。組み込み開発には、OS(オペレーティングシステム)という重要なソフトウェアが必要です。OSとは、機器の基本的な動作や管理を行うソフトウェアのことで、組み込み開発では、組み込みOSと呼ばれる特殊なOSを使用します。この記事では、OSとは何か、組み込みOSとは何か?組み込みOSの種類から、その需要と将来性まで解説していきます。
初心者
【初心者用】ifconfigの出力結果の見方
Linuxシステムでネットワーク設定や情報を確認するための基本的なコマンドの1つがifconfigです。この記事では、初心者向けにifconfigコマンドの使用方法、オプション、出力結果の解釈について詳しく説明します。また、具体的な使用シーンや例、関連するコマンドや技術についても紹介します。
その他(インフラ)
