Tag Archives: هندسة البرمجيات

ثرثرة حول هندسة البرمجيات

قياسي

ربَّما يكون السؤال الأكثر ” استفزازًا ” لطلاب هندسة البرمجيَّات هوَ : إيش تخصصك ؟! .

حيث ما إن يبادر أحدهم بالجواب ، حتَّى تبدأ موجةٌ أخرى من الأسئلة المكررة والصعبة من نوع : كيف يعني هندسة برمجيات ؟! .. قصدك هندسة كمبيوتر ؟ .. يعني إنت مبرمج ؟ .. وهي أسئلةٌ تصطدم بعقل المسؤول مثل موجةٍ تتركه مبللاً بالسكوتِ فاقدًا القدرة على التوازن في الحديث 😀 .

وقد يكون السبب في ذلكـ هو محدودية انتشار هندسة البرمجيات في العالم العربيّ ، وارتباط الهندسة بالعمل الميداني أو اليدوي أكثر من ارتباطها بمفهومها الحقيقي : ” إيجاد الحلول العلميَّة للمشاكل “ ، وقد يكون السبب أيضًا عدم وجود مؤسسات برمجيَّة جادَّة وقويَّة وداعمة للصناعة البرمجيَّة العربيَّة ممَّا أدَّى إلى الإستغناء نسبيًا عن مهندسي البرمجيات والإكتفاء بالمبرمجين التنفيذيين للأعمال الصغيرة والمتوسطة  .

سأكتب في هذه التدوينة إن شاء الله مثرثرةً عن تخصصي الَّذي أعشقه .. ومبسطةً مفاهيم ميولي الأكاديميَّة الَّتي أحلم بأن أحِيلها عملاً جادًّا في يومٍ ما .. لن أكتب بطريقةٍ علميَّة عن هندسة البرمجيات ، ولن أخوض في مصطلحاتها المعقَّدة والمتداخلة وكلامها ” الكثير ” ، وإنَّما سوف أتحدَّث إليكم مثلما تحدَّثتُ مع كثيرٍ من طالبات المستوى الأول والثاني ، حين سألنني عن التخصص المناسب في كليَّة علوم الحاسب .

بدايةً ، أحبُّ أن أوضِّح نقطة مهمَّة ، هي أنَّ علم هندسة البرمجيَّات لا يتطرق مطلقًا إلى العتاد hardware من جهة ، ولا إلى كتابة و توليد الكود البرمجي Code Generation من جهةٍ أخرى ، وربط هندسة البرمجيات بهما هو ما يؤدِّي إلى تعسر فهمها لدى الكثيرين .

لكنَّكـ حين تتناول مفهوم ” الهندسة ” لتفسير مصطلح ” هندسة البرمجيات ” تتكوَّن لديكـ صورة حقيقية وبسيطة عنها ، وهي : دراسة الطرق العلميَّة لتصميم وإنشاء وتطوير وإصلاح البرمجيَّات .

معنى هذا أنَّ كلَّ فروع هندسة البرمجيَّات وكتبها ومقالاتها لا تتناول البرمجة التنفيذيَّة ولا تهتمُّ للغات الَّتي تستخدمها لبناء أنظمتكـ ، بل تتناول الطرق الصحيحة لخلق مشاريع برمجيَّة تتميَّز بـ : المرونة – قابلية التوسع والتطوير – توفير الوقت والمال – الألفة مع المستخدم … إلخ .

.

.

دائمًا ما أشبِّه مهندس البرمجيَّات بـ المهندس المعماريّ !

Read the rest of this entry