طبقات الهندسة
ربما أكون قد تحدثت و لو قليلاً عن هذا الموضوع .. إلا أنني بحاجة إلى المزيد من التوضيح لمفهوم التصميم المجرد و مفهوم طبقات الهندسة حيث أن كل من يقوم بتصميم المشاريع يحتاج إلى إستيعاب لهذا الأمر .. و هذا لأن العديد من الذين يقومون بعمل المشاريع في شتى المجالات يهملون مثل هذا الأمر مما يجعل عملهم غير منظم و غير مكتمل و غير قابل للتطوير و التعديل عليه
خطأ يقع فيه الكثير من الطلبة الهندسة حينما يقومون بتخيل تصميم لشئٍ ما .. و هو أنهم يفكرون في أدق التفاصيل مباشرةً حينما تأتيهم فكرة المشروع أو التصميم .. فعلى سبيل المثال إذا قلت لك أنني أريد أن أضع تصميماً لهاتفاً محمولاً فلا تقل لي أن به دائرة فلترة نطاق Band Pass Filter .. و إنما ستقول أن به وحدة لمعطيات الصوت و وحدة لإخراج الصوت و وحدة الإرسال و الإستقبال .. إلخ .. و يربط بين كل تلك الوحدات وحدة التحكم .. و ربما تكون تلك الطريقة الخاطئة في التفكير على مستوى بعض طلبة الهندسة .. فضلاً عن الهواة و المحترفين فضلاً عن من ليس لديهم خبرة في أي شئ الذين يعتقدون بأن التصميمات الكبيرة و الأنظمة المعقدة يتم تصميمها بالتفكير في أدق أدق التفاصيل مباشرةً و في مستوى أشباه الموصلات Semi Conductor Level !!
و الآن تناسى كل ما ذكرته الآن و ركز معي في القادم .. و لنضرب مثالاً حول هندسة الإلكترونيات و الحاسبات .. تنقسم هندسة الإلكترونيات و الحاسبات إلى عدة مستويات كلها فوق بعضها البعض .. فأما المستوى الأول و الذي هو علوم المادة Material Science حيث يقوم المتخصص فيه بدراسة تأثير المجال الكهربي و المغناطيسي في المواد الموصلة و العازلة و أشباه الموصلات إلى غير ذلك .. و بما أنه يستحيل تخيل كيفية عمل دائرة كهربائية بسيطة عن طريق التفكير في قوانين تدفق الإلكترونات و الشحنات الكهربائية فقد إختصرنا تلك الأشياء في عدة مفاهيم و رموز مبسطة قد أهملنا فيها الكثير من التفاصيل التي بها ماعدا التفاصيل التي تهمنا فقط .. فإختصرنا بعض المواد الموصلة في شئ أسميناه المقاومة Resistor و أعطيناه رمزاً و بعض القوانين البسيطة .. فبدلاً من إستخدام قوانين ماكسويل Maxwell إستخدمنا قوانين سوف تؤدي نفس الغرض في حدود التفاصيل التي نبحث عنها فقط مثل قوانين كيرشوف Kirchoff و قانون أوم Ohm’s Law .. كما أتينا بإحدى المواد و إختصرناها في شئ إسمه المكثف Capacitor و شئ إسمه الملف Inductor .. و إختصرنا قوانين كولوم و مايكل فاراد في قانون واحد للمكثف و قانون واحد للملف .. لأن بقية القوانين لن تهمنا في شئ طالما أن المكثف و الملف يؤدي الغرض الذي طلب منه بإستخدام القوانين التي أبقينا عليها .. كما أننا قد إختصرنا بعض المواد الشبه موصلة إلى شئ إسمه الديود Diode و شئ إسمه الترانزيستور Transistor و وضعنا لهما بعض القوانين البسيطة التي تتعلق بالأشياء التي تهمنا معرفتها فقط ..
و هنا يمكن أن نقول أننا قد إنتقلنا من المستوى الأول و الذي هو مستوى المادة و مستوى أشباه الموصلات إلى المستوى الثاني و هو مستوى الدوائر الكهربائية و الإلكترونية .. فلم يعد لدينا سيليكون و جرمانيوم و إنما أصبح عندنا مقاومة و ترانزيستور .. و بإستخدام تلك المفاهيم و القوانين البسيطة يمكننا تصميم بعض الدوائر البسيطة مثل المكبرات Amplifiers و المرشحات Filters و البوابات المنطقية Logic Gates إلى أخر ذلك ..
بعد ذلك وجدنا بأننا بحاجة إلى دمج العديد من الدوائر مع بعضها البعض .. فنريد أن نضع العديد من البوابات المنطقية مع بعضها .. و من غير المفهوم أن أرى في التصميم العديد من الترانزيستورات و المقاومات .. و لهذا قمنا بإنشاء مستوى ثالث فوق المستوى الثاني و هو مستوى الدوائر و الوظائف الأساسية مثل المكبرات Amplifiers حيث نتجاهل كل المقاومات و الترانزيستورات و كل المكونات الإلكترونية التي بداخل المكبر و ننظر للمكبر على أنه شئ له مدخلات و له مخرجات و له قانون واحد و هو مقدار التكبير بعد أن قد تجاهلنا التيارات و الجهود التي بداخله .. و ننظر للبوابة المنطية على أنها مجرد وظيفة منطقية تؤديها مثل الـAND و الـOR و غير ذلك .. ربما إذا أردت أن تتعمق أكثر معها فستجد أن لها قانون واحد و هو القيمة التي نقول أن الفولت الذي تحتها هو صفر و الفولت التي فوقها هو واحد و الذي يسمى Threshold Voltage متجاهلين في ذلك كل ما يحدث بداخل البوابة المنطقية ..
بعد ذلك وجدنا أننا بحاجة إلى تبسيط الأمور قليلاً .. مالنا نرى في تلك الدائرة المئات من البوابات المنطقية ؟؟ نريد أن نختصر كل تلك التفاصيل في شئ واحد و هو على سبيل المثال وحدة المعالجة و المنطق Arithmetic Logic Unit و وحدة إختيار البيانات Multiplexer و ذاكرة Memory .. و على صعيد الدوائر التماثلية Analog نقول أن هناك شئ إسمه وحدة إرسال و إستقبال و الذي سنجد أن بداخله مكبرات Amplifiers و مرشحات Filters و مضمنات Modulators ..
بعد ذلك ننطلق إلى مستويات أعلى قليلاً فنقول بأن وجود ذاكرة و وحدة معالجة و حساب و غير ذلك من التفاصيل يمكن أن نختصره في شئ إسمه المعالج Processor و هناك قوانين بسيطة لهذا المعالج تقوم بحساب سرعته و أداءه و عدد الأوامر التي يمكن أن ينفذها في الثانية و الواحدة إلى غير ذلك .. و يمكن أن نصعد إلى الأعلى قليلاً و نقوم بتجاهل كل ما يتعلق بالمعالج و نركز فقط على إستخدامه في كتابة أوامر لنظام التشغيل و تعريفات الهاردوير .. ثم نصعد إلى الأعلى قليلاً لنقول بأن نتجاهل التعامل مباشرة مع الهاردوير و الذي فيه العديد من التفاصيل التي لا تهم مصمم المواقع و من يقوم بكتابة برامج لقواعد البيانات و غير ذلك ..
و الرسم التالي يلخص لنا كل ما ذكرته ..
و بعد ذلك تتفرع الإتجاهات .. إما أن تسلك طريق الدوائر التماثلية Analog و إما أن تسلك طريق الدوائر الرقمية Digital .. و لنختر على سبيل المثال طريق الدوائر الرقمية ..
و بالطبع يمكنك بعد ذلك أن تبني كل البرامج و السوفتوير فوق نظام التشغيل ..
و بعد أن قد إنتهينا من توضيح مفهوم الطبقات و مستوى التفاصيل Level Of Details .. ستجد بأن كل تخصص في الهندسة يهتم ببعض الطبقات .. فهناك من هو متخصص في هندسة البرمجيات الذي لا يهتم بالمعالجات و إنما يهتم فقط بالتعامل مع نظام التشغيل .. و هناك من هو مهتم بتصميم المعالجات Processors و هو لا يهتم بكيفية تصميم و صناعة البوابات المنطقية و إنما يستخدمها فقط كما أنه لا يهمه ولا يعنيه أي البرامج سوف تتم كتابتها و إستخدام المعالج فيها و إنما فقط يركز على كفاءة و أداء المعالج .. و هناك من هو مهتم بتصميم البوابات المنطقية و الدوائر الإلكترونية ولا يهمه كيف ستقوم بتصنيع و تصميم نظام ذكي من هذا الدوائر الأساسية .. المهم أن تعمل هذه الدوائر بشكل جيد كما أنه سيستخدم الترانزيستورات و المقاومات و لن يهتم كيف ستصنعها من المواد الخام .. فكل منهم قد تولى العمل في طبقة من الطبقات .. يلبي مطالب الذي يعمل في الطبقة التي فوقه و يستخدم منتجات الذي يعمل في الطبقة التي تحته ..
و بعد هذه المقدمة النظرية .. لابد لنا من الحديث عن الخطوات العملية في التصميم و كيف أقوم بإستخدام منتجات من هو تحتي و كل هذا .. و بما أنني قد أطلت قليلاً فسأكمل إن شاء الله هذا الموضوع في تدوينة أخرى ..
الله يبارك لنا فيك
شكراً لك