組み込み開発とは?C言語からJavaまで!その種類や特徴を解説
組み込み開発では、ハードウェアと密接に連携するプログラミング言語を使って、限られたリソースの中で高いパフォーマンスを発揮するシステムを作ることができます。組み込み開発には、ハードウェアとソフトウェアの両方の知識やスキルが必要であり、近年ではIoTやウェアラブルデバイスなどの普及により市場のニーズが再び高まっています。この記事では、組み込み開発とはなにか?その特徴やプログラミング言語の種類、メリット・デメリットについて解説していきます。
初心者
【ソフトウェアテスト】同値分割法/境界値分析
入力されるデータによって判定を変えるという機能は、ソフトウェアの機能として広く一般的に使われます。自己責任で金銭を扱うサービスを利用する際には、18歳以上か未満かで利用の可不可を判定するという年齢確認機能が適用されていることがあります。ユーザーが任意にパスワードを設定できる機能の場合は、文字数が想定より少ない場合はセキュリティレベルが低いため無効として、文字数が想定より多い場合も仕様想定外として無効とするシステムもあります。こういった機能を対象に検証を実施する際、入力可能な数値を全て検証対象としてテストを実施しようとすると、非常に多くの工数を割かねばならないため、入力想定範囲の中で同じ処理を返す想定の数値は1つのグループとして扱い、処理の変わる境目に狙いを付けてテストするというのが、「同値分割法」と「境界値分析」です。
テスト(運用・保守・サポート)
【ソフトウェアテスト】クラシフィケーションツリー技法
クラシフィケーションツリー技法は主に、複数のテスト対象と各対象の値が複数関連する状況で、各対象を木構造で図示することで、テスト対象の機能や状態を階層的に分類し、その組み合わせや変数いくつ分を対象とするか等の組み合わせの強度について、整理検討するときに用いる技法です。ドメイン分析テスト技法の際には、複数の境界値による動作変化の関連性と、その組み合わせで想定される複数パターンの網羅を表形式で表現する方法を取りましたが、クラシフィケーションツリー技法では、1つの機能に関わる複数の要素、各要素に想定される複数パターン、各パターンで想定される変数のパターンと、想定される内容を木構造の図で上から下へ記載して整理する方法を取ります。ブラウザベースでWebサイトを作成して、ウィンドウの表示サイズをPCサイズのレイアウトとスマホサイズのレイアウトで2パターン適用するとして、PCサイズレイアウトが正常に適用されているかを確認するときのテストスコープについて、ブラウザは[GoogleChrome][MicrosoftEdge][Firefox][Safari]をテスト対象と仮定し、各ブラウザのサイズや文字サイズ設定を変更しても問題ないか、さらに設定するウィンドウサイズは想定の最小値・最大値・全画面のパターンで、文字サイズは通常から何%拡大を対象とするかなどを考慮し、どの組み合わせでのテストを必要とするかを検討するといったような場合には、当該技法を用いることで視覚的に情報を整理しやすくなります。
テスト(運用・保守・サポート)
【ソフトウェアテスト】CFD法
CFD法はCause Flow Diagram(原因流れ図)を略したもので、原因の集合と結果をそれぞれの関係のつながりにフォーカスして図式化し、そこからデシジョンテーブルを想定してテストケースを作成する技法です。システム設計において、正常な動作の仕様を基本として異常系の仕様もエラー動作実装のため明確に定義されているべきですが、テスト実施の際には、仕様想定上の正常系・異常系動作確認はもとより、考え得る限りの準正常系テストケース網羅も必要です。そうしたケースの考慮が足りていないと、リリース後にユーザーが想定外の操作を実行して重篤な不具合につながったり、あるいは仕様の穴を付いた不正処理などを実行されたりして、プロジェクトやサービスに損失が発生したりします。原因・結果・各関係を図示して明確に関係を洗い出すことで、実装段階では考慮が漏れているような挙動についても抜けや漏れをカバーするようにテストすることができます。また、エラーに関するもののみではなく、同値分割が可能な原因が複数関連して複数の結果が想定されるというシステムで、その関係性を図にして流れを見ることで、テストケース作成がグラフィカルに把握しやすくなります。インターネットでクレジットカードを利用して決済処理を実行する際に、完了までには以下の様な結果パターンが想定されます。・カード情報入力エラー(入力したカード利用情報に問題がある)・決済処理不能エラー(登録しているカード情報の照会時にエラーが発生)・通信不良による接続タイムアウトエラー(決済実行から完了までの通信時間が規定の時間内に処理されないことによるエラー)・決済完了上記4パターンの結果を返すまでの原因は、細部まで書き出すと煩雑になります。・複数の入力フォームに入力した情報のどこがエラーになったか・カード情報照会時にどのような理由でエラーになったか・どのページからどのページに遷移するときにエラーになったか・何秒以上の通信待機時間を過ぎたら通信エラーで処理するか等これらを一つの枠に収めてそれぞれを線でつなぐことで関係性を整理できるのが、このCFD法の利点だと思います。
テスト(運用・保守・サポート)
【ソフトウェアテスト】デシジョンテーブルテスト
さまざまな入力値が想定されており、それぞれの入力値を統合した結果として複数の状態を返すようなシステム仕様に対しては、デシジョンテーブルテスト技法を用いることで、複雑な条件を整理することができます。サービス利用時に新規アカウントを作成するような場面で、ユーザー情報を入力して登録する機能を想定した場合、[名前(ローマ字)][よみがな][任意のパスワード][パスワード確認入力][年齢][住所]などを入力し、それらの入力値が全て正常であれば登録処理を進めて、入力値のうち1つでも正常ではない値が入力されている場合は、エラーメッセージを表示して再度入力を促すようなシステムがあります。対象のステータスによって期間限定のサービス適用有無を判定するようなシステムでも、サービス対象となるかどうかを複数条件から判定するような仕様が想定されます。5年以上サービスを利用していて、アカウントの利用者ランクがゴールド以上の場合、商品購入時の金額から5%をサービス固有ポイントとして還元するというイベントを、n年n月n日~n年n月n日まで開催するといった追加開発システムのテストをする際に、デシジョンテーブルによってテスト対象を適切に抽出できます。
テスト(運用・保守・サポート)
C言語は将来性がある?C言語の特徴も解説!
現在ではプログラミングを身につけることによって、収入面やキャリア面が向上すると言われています。キャリアアップや転職を考えている上で、どのプログラミングを選択したら良いか悩んでいる方もいらっしゃるのではないでしょうか。その中でも、C言語は汎用性が高く需要も高いプログラミング言語です。しかし、C言語の特性やメリットを理解していないと、自身が思うようなキャリアアップへ繋がらないことも事実です。今回は、C言語をキャリアアップへ最大限に活かすために、C言語の基本や特徴をご紹介します。
初心者
【初心者用】SQL インデックスとビューについてまとめてみた
参考サイト https://style.potepan.com/articles/25208.html SQLのインデックスとは? 作成、確認、削除方法からメリットまで解説! https://medium-company.com/sql-index/ SQL インデックス(INDEX)を作成・削除する http://dbonline.s25.xrea.com/sqlite/index/index3.html UNIQUEインデックス https://www.sejuku.net/blog/52356 SQL入門 PRIMARY KEY(主キー)制約とは? 追加や削除についても解説 https://style.potepan.com/articles/26878.html SQL 主キー(PRIMARY KEY)制約って何? サンプルコードで基本的な使い方を確認しよう! https://smallit.co.jp/blog/a1015/ BLOG SQLのビューについて https://products.sint.co.jp/siob/blog/view ビューとは? 使い方を解説 https://style.potepan.com/articles/25504.html SQLのビューって何? 基本的な使い方を理解しよう https://cs.wingarc.com/manual/drsum/5.5/ja/UUID-3b6e70a4-5a0d-205e-4b2b-fcb2df959cfd.html ALTER VIEW ビューの定義を変更する
製造・コーディング(SE)
【ソフトウェアテスト】QC7つ道具と新QC7つ道具 ②
QC7つ道具は、主に生産現場における各種数値を元に品質やリスクなどを分析して、品質管理を進める手法でしたが、品質管理に関わる問題は定量的分析のみでは対応しきれないようなものもあります。「【ソフトウェアテスト】欠陥分析手法について」記事でも触れているとおり、統計的分析は定量的解析手法で対応可能ですが、問題の要因に対してアプローチしようと考えた場合に、あらゆる要因が数値化できるのであれば定量的分析手法を用いれば解決できますが、数値化が困難であったり、集計して数値化して分析すると考えた場合に非常に手間がかかるような要-因に対しては、定性的な分析手法が必要になります。また、生産活動そのもののみではなく、プロジェクト全体の管理もQC活動、品質管理活動で対応すべき事象です。プロジェクト進行における問題点の可視化や共有に際して、数値データではない文字データや言語データでの集計管理をして、そうした定性的データを共通化された手法を用いて分析することにより、どのような生産現場でどのようなスキルの人が品質管理対応をする想定になったとしても、ある程度容易に対応できるように作成された手法のなかでも代表的な7つの手法が、新QC7つ道具(N7)として分類されています。英語ではNew Quality Control – 7 Tools等と呼ばれます。
テスト(運用・保守・サポート)
CIとは何か?代表的なCIツールの特徴とメリット・デメリットを解説
CIとは、開発者がコードを頻繁に統合し、自動的にテストやビルドを行うことで、品質や効率を向上させる手法です。 CIを実現するためには、CIツールと呼ばれる専用のソフトウェアが必要です。 CIツールは、コードの変更を検知し、自動的にテストやビルドを実行し、結果を報告する機能を提供します。しかし、CIツールには様々な種類があり、それぞれに特徴やメリット・デメリットがあります。 では、どのようにしてCIツールを選ぶべきでしょうか? この記事では、代表的なCIツールの概要と選び方について解説します。
学習・スキル
PHPフレームワークの最前線:2024年最新トレンドとおすすめ解説
PHPは、ウェブ開発の世界で広く使用されているプログラミング言語の一つです。その柔軟性と使いやすさから、多くの開発者がPHPを選んでいます。しかし、大規模なプロジェクトや複雑なウェブアプリケーションを開発する際には、フレームワークの使用が不可欠です。またエンジニアのキャリアを積み上げる過程で、フレームワークの知識と経験は不可欠な要素となります。特にPHPは、その普及率の高さから、多くのプロジェクトで採用されており、PHPのフレームワークに精通していることは、多くの場面で大きなアドバンテージとなります。しかし、多種多様なフレームワークが存在する中で、どれを選び、どれを学ぶべきか迷ってしまう人もいるのではないでしょうか。それぞれのフレームワークには、独自の特性と利点が存在します。この記事では、PHPのフレームワークについて、そのメリットと、現在人気のあるいくつかのフレームワークについて詳しく見ていきましょう。
学習・スキル
PythonでWebアプリケーションを作成するための備忘録
近年AIやディープラーニングの盛り上がりで注目されているPythonですが、特徴、できること、学習方法、Webアプリケーション構築に適しているのかを調べてみました。
初心者
関連タグ
カテゴリ別人気記事
もっと見るテレワーク関連人気記事
2023年10月02日
製造・コーディング(PG/フロントエンド)2023年07月18日
アーキテクト・技術選定(PG/バックエンド)2023年10月26日
テスト(運用・保守・サポート)2023年11月17日
学習・スキル2023年01月09日
詳細設計(内部設計)(インフラ)
週間人気記事
もっと見る【これからJP1に触れる人向け】JP1とは
開発プロジェクトに携わる際にJP1というツールに触れたことはあるだろうか。JP1は開発工程、特にテスト作業においては非常に利便性の高いツールである。この記事ではまだJP1に触れたことがない人向けにJP1の概要やJP1を合う買う際に知っておくべき用語を取り上げる。
テスト(運用・保守・サポート)
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/フロントエンド)
GitHubのReadmeをMarkdown記法で書く
Markdown記法は、プレーンテキストに特定の書式を付けることで、簡単にWebページやドキュメントを作成するための記法です。Markdown記法は、文書の見た目を整えるためのHTMLタグを記述する必要がなく、テキストファイルとしても読み書きが容易であるため、多くの人々によって広く使用されています。
プロジェクト推進・管理(PG/バックエンド)
Git GUIツールの使い方:初心者向けチュートリアル
Gitとは、分散型バージョン管理システムの1つで、コードやファイルなどの変更履歴を記録し、複数の人で同時に開発を進めるために使われます。Linuxの開発者であるLinus Torvaldsによって開発され、現在は世界中の多くの企業やオープンソースプロジェクトで使用されています。Gitは、ファイルの変更履歴を保存するための「リポジトリ」と呼ばれるデータベースを持ち、このリポジトリに対してコミットと呼ばれる操作で変更履歴を追加していきます。また、ブランチと呼ばれる分岐を作成して、異なるバージョンのコードを管理します。Gitの主な特徴としては、以下のようなものが挙げられます。・ローカルでの高速な動作・分散型であるため、オフラインでも開発ができる・変更履歴を管理しやすく、コードの品質を高めることができる・大規模なプロジェクトでもスケーラブルに対応可能Gitは、コマンドラインツールを使って操作することもできますが、GUIツールを使って操作することもできます。
アーキテクト・技術選定(PG/バックエンド)
DBのビューとは?メリットデメリットや使用方法についても紹介!
アプリケーション開発にとってデータベースは必須スキルとなっております。データベースの知識がないと、アプリケーション開発に難航することでしょう。しかしデータベースの知識を身に付けるとなると、かなりの勉強量を要します。というのもデータベースオブジェクトには様々な種類があり、一朝一夕では身に付くものではありません。今回は、データベースのビューについてご説明いたします。ビューそのものは必ず覚えてなくてはならないと言うものではありませんが、よく使われます。まずは本記事でビューの基礎知識を身に付けてください。本記事ではメリットデメリットや具体的な使用方法について紹介しております。
学習・スキル
【初心者向け】Packet Tracerでネットワークを学ぶ(インストール編)
ネットワークエンジニアとしてCisco社のルータやスイッチの運用業務を遂行するには、 コマンドの知識やどのように機器が通信させているかよく理解しておく必要があります。 またCCNAといったネットワークのベンダー資格でも実際にコマンドを記述するシミュレーション問題が出題されることもあるので、自身のネットワークスキル向上には日頃からコマンド操作に慣れておく必要があります。 知識を定着や操作の慣れには座学だけでなく実際に機器に触れコマンドを入力し結果を確認することが一番なのですが、ルータやスイッチ等のネットワーク機器はいずれも高額であり、中古でもそれなりの値段となるので初心者が自宅に環境を作成することは簡単ではありません。 そこでCisco社のルータやスイッチに簡単に機器の設定、環境の構築、コマンドの投入練習といったことができるアプリケーションが「Packet Tracer」となります。
詳細設計(内部設計)(インフラ)
【初心者向け】Packet Tracerでネットワークを学ぶ(ルーティング①)
ルータとはルーティングを行う機器です。 ルーティングとはデータの転送を行う際にルーティングテーブルを参照して経路を判断し転送することです。
詳細設計(内部設計)(インフラ)
