「SDLCとOOPとは何ですか?」就職の面接で何度もですが、私はまだこの質問に答える方法がわかりません。私はしばらくの間Web開発者ですが、OOPおよびSDLC(システム開発ライフサイクル))の説明にまだ問題があります。
誰かが私にこれらが何であるかを他の人に説明するのを手伝ってくれる?
これらは、私の「頭の上の」答えであり、状況によっては少し修正される可能性があります。
システム開発ライフサイクル には次の主要なポイントがあります。
オブジェクト指向プログラミング はプログラミングのパラダイムであり、すべてがオブジェクトであり、オブジェクトで実行できることに対するメソッドがあります。たとえば、動物をクラスとしてモデル化する場合、歩く、泳ぐ、吠えるなどのアクションがメソッドになります。このパラダイムで一般的に見られるいくつかの原則があります。
.NETフレームワークには、ポリモーフィズムの多くの例があります。その1つがメンバーシッププロバイダーです。 Membership.GetUserまたはその他のメソッドを呼び出すと、MembershipProviderクラスとして定義されているデフォルトのプロバイダーが呼び出されます。派生物(SqlMembershipProviderまたはその他のカスタムプロバイダー)は、MembershipProviderインターフェイスを公開して、具体的な実装を作成します。 Membershipオブジェクトのコードを変更せずに、基になるデータストアを簡単に切り替えることができます。
あなたは教師だと想像し、OOPとSDLCが何であるかを教えています。
できない場合、あなたは本当にそれらが何であるかを知っていますか?プロセスを使用しても、プロセスの仕組みや理由がわかっているとは限りません。
先生の視点で何かを説明することで、自分の心の中にある知識を固めるのに役立ちます。
面接で質問に回答するときは、面接担当者を満足させるのに十分なほど詳細に回答する必要がありますが、自分の質問を含む他の質問に移る時間を増やすために簡潔にします。
OOPの場合、次のような単純なステートメント:
オブジェクト指向プログラミングは、データとシステムの動作をコードで組み合わせ、実際の概念のモデルを作成することで問題を解決する構造体(オブジェクト)を定義する手法です。
SDLCの場合、次のように言うことができます。
ソフトウェア開発ライフサイクルは、ソフトウェア開発プロジェクトを管理する方法であり、最初のアイデアと要件の収集から、実装とテストに至るまで、最終的には廃止される前のメンテナンス期間に至ります。高品質のソフトウェア製品を開発することを最終的な目標とする、完全に線形、反復、またはその両方である構造化されたプロセスです。
ただし、質問に答える場合は、概念をあまり詳細に説明しないでください。答えが簡潔である場合、面接担当者に追加の質問をするように依頼していますが、詳細が多すぎると、知識の弱点を露呈する状況に陥ってしまう危険があります。簡潔な回答は、短いが説明的な回答を提供するのに十分満足できる程度に話していることを理解していることも示します。
一言で言えば、OOP。
時計をモデル化するクラスがあります。時計について知っておくべきことはすべてこのクラスにあり、時間の設定と表示を可能にするいくつかのルーチンがあります。これはEncapsulationです。
しかし今、あなたはデジタル時計を求めています。これは以前のような時計ですが、アナログ表示ではなくデジタル表示で時刻を表示したいので、元のクラスから新しいクラスを派生させ、replace内容をデジタル形式で表示する表示ルーチン。これはPolymorphismです。
そして今、あなたは目覚まし時計を望んでいます。これは時計が行うすべてのことを行いますが、設定時間にノイズを発生させるため、元のクロッククラスから派生し、add新しいルーチンを設定して呼び出しますアラーム。これはInheritanceです。
そして、そこにはOOPの3つの基本があります。
すべてのケースで、まだ時計があることに注意してください。これがOOP=の仕組みです。誰かに時計を売ってから、目覚まし時計を渡せば、時計の設定や時間の告知などの操作を行うことができます。
SDLC:
これは、ソフトウェアを作成して顧客に提供するライフサイクルです。あなたは彼らが何を望んでいるのかを理解することから始め、あなたがそれについてどうやって行くのかを理解し、それをコード化する方法を理解し、それがうまくいかない理由を理解し、そしてそれをインストールする方法を理解します。
「SDLCとは」への「正しい」答えはありませんが、顧客が使用するソフトウェアの作成のすべての側面を理解していることを示す必要があります。単にコーディングするだけでなく、ソフトウェア開発には多くのことがあることを理解していることを示します。