NSI- données (4) d'ASCII à utf-8 en passant par latin-1
目次:
このデジタル時代では、FacebookやTwitterなどのソーシャルメディアの巨人や、AlibabaやAmazonなどの電子商取引プラットフォームについて聞いたことがあるはずです。 これらのオンラインWebサイトは、さまざまなソフトウェアパッケージに依存して動作します。 これらのプログラムは、私たちの働き方、考え方、生き方をかなり率直に変えました。
また、以前は単に機械的な性質であった多くのデバイスは、現在ソフトウェアによって制御されています。 たとえば、サーモスタットはかつて電気機械装置でした。 ただし、現在では、ソフトウェアは操作に大きく依存しています。
ただし、ソフトウェアのバグは非常に問題が多い場合があります。特に、日常の活動に対するバグの依存度が高くなっています。 実際、ソフトウェアが意図した目的に達せず、不快な結果につながる場合が実際にあります。
、ソフトウェアのパフォーマンスがそのマークを大きく逃した4つの状況と、そのようなソフトウェアの問題を回避する方法について説明します。
また読む :iPhone Xを急いで購入するべきではない10の理由1.米国マルチステート911の停止
911は重要なサービスで、個人が必要なときにいつでも救急隊に連絡できるようにします。 時には、911を介して緊急ディスパッチャと連絡を取ることで、文字通り生と死の違いを生むことができます。
したがって、2014年4月9日にカリフォルニア州、フロリダ州、ミネソタ州、ノースカロライナ州、ペンシルバニア州、サウスカロライナ州、ワシントン州を含む米国の7つの州で911コールルーティングが失敗したのは非常に大きな災害でした。
この停止は、イントラドが所有するコロラドの緊急コール管理センターで発生した、予防可能なコーディングエラーが原因で発生しました。
2.ユナイテッド航空のフリートの接地
2015年7月に、ユナイテッド航空はソフトウェアの不具合のために、航空機の全艦隊を着陸させることを余儀なくされました。 これは世界中で4, 900便以上のフライトに影響を与え、多くの乗客が空港で立ち往生し、明らかに不満を感じました。
航空会社は多くの乗客に不便を補償しなければならなかったので、おそらく経済的な影響もあったでしょう。 恐らく、いくつかの重要なビジネス会議もありました。
3.トヨタカムリアクセルペダルの故障
2007年9月、ジャンブックアウトはオクラホマ州の州間高速道路69で乗客のバーバラシュワルツと一緒に旅行していました。
彼女は足をスロットルから持ち上げようとしましたが、車は加速し続けました。 ブレーキペダルは車を止めることができず、彼女は緊急ブレーキを使用せざるを得なかった。
残念ながら、これにより車のケアニングが堤防に送られました。 その結果、シュワルツは死亡し、重大な負傷によりBookoutは5か月間入院しました。
事故は、CamryのCPUでのタスクのクラッシュにつながるいくつかのコーディングの不備が原因で発生したと推測されました。 このCPUは、イグニッション、スロットル制御、クルーズコントロールなど、非常に多くの機能を制御します。
トヨタのコードは、古いコードに数年の新しいコードが重ねられた後、混乱した混乱になりました。 これは通常、「スパゲッティコード」と呼ばれます。
スパゲッティコードは不必要に複雑であり、エラーを見つけることはほぼ不可能です。 さらに、トヨタはコーディングにおいていくつかの安全規則に違反していました。 これは、トヨタの意図しない加速の孤立したケースではなかったことに注意する必要があります。しかし、Bookoutの事故はこの問題を明らかにし、トヨタのソフトウェアプロセスの欠陥を浮き彫りにしました。 トヨタのコードの構造に基づいて、不要な加速が発生する可能性のある方法は1, 000万を超えることさえ判明しました。
ネストサーモスタットの故障
NestはAlphabetが所有する会社で、スマートサーモスタットを製造しています。 これらのサーモスタットは非常に優れており、ユーザーはスマートフォンから自宅の温度を制御できます。
昨年の冬、Nestのサーモスタットはソフトウェアアップデートの不具合という形でグリッチを経験し、バッテリーの消耗を引き起こしました。 残念ながら、このエラーは冬の半ばに発生し、数人のユーザーが一時的に暑くなりました。 これは間違いなく、この時期には起こりたくないことです。
次を参照 :Selfiesは、ソーシャルメディアが遅れを取っているほど自明ではありませんソフトウェアの問題の簡単な分析
モデルベースの設計やTLA +などのアプローチにより、開発者はソフトウェアがどのように機能するかの全体像を把握できます。
著名なコンピューター研究者であるBrett Victorは、プログラマーとコードで解決しようとしている問題との間に断絶があると考えています。
この切断により、プログラマーがコードに入れようとしているものを想像することが難しくなります。 ビクターは、これがソフトウェアでバグが発生する要因の1つであると考えています。
しかし、希望はあります。 モデルベースの設計やTLA +などのアプローチにより、開発者はソフトウェアがどのように機能するかの全体像を把握できます。
モデルベースの設計は、その名前が示すように、視覚モデルを介したソフトウェアの開発を可能にします。 TLA +は、Temporal Logic of Actionsの略で、コンピュータープログラムの仕様を記述するために設計された言語です。 TLA +の素晴らしい点は、ソフトウェアが公開される前に徹底的なテストと検証ができることです。
モデルベースの設計とTLA +の両方がすでにその塩を証明しています。 ソフトウェア開発会社であるEsterelテクノロジーは、モデルベースの設計を使用して安全性が重要なソフトウェアを構築しますが、TLA +は、Microsoftなどが致命的なXboxエラーを修正するために使用され、欧州宇宙機関によってプローブのコードを書き換えるために使用されています彗星に着陸しました。
コードを記述するプロセスは、プログラマーによって高く評価されています。 それらの多くは、コードを記述するプロセスに非常に単純に興味をそそられます。 そのため、一部のプログラマーがモデルベースの設計やTLA +などのアプローチを受け入れるようにするのは困難です。 これらのアプローチは、現実世界で実行可能な厳密なアカデミックとしてしばしば認識されます。 ただし、ビューの変更はできるだけ早く行わなければなりません。
また読む :私たちは子供たちを失明に向かって押し進めています最終的な考え
ソフトウェアは、組み込みの安全対策を必要とするアプリケーションでますます使用されています。 このようなアプリケーションは私たちの生活に不可欠であるため、ソフトウェア設計のより良い方法を全面的に導入する必要があります。
最近の自動化などのプロセスはソフトウェアに大きく依存していますが、上記の例が示すように、コードの1行に1つのエラーがあると、大きな後退につながる可能性があります。
ここで、これらのアプリケーションに組み込まれている人工知能(AI)のようなものを想像してください。 AIは、ソフトウェアの不具合がなくても、それだけで十分に怖いです。 ミックスにバグを追加すると、何が起こるかわかりません。
ただし、ここには銀色の裏地があります。 少しの作業といくつかの新しいツールを使用して、より適切に設計し、スタッドまでテストすることで、より優れたソフトウェアとAIを作成できます。
この重要な問題が関係当局によって真剣に受け止められ、ソフトウェアを最大限に活用できるようになりますが、それはより安全でスマートな未来を築くためだけです。
次を参照してください :人工知能:人間が保持するタイプと未来