انا حاليا آخر سنه و بمشروع التخرج الحمد لله ، ادعولي نخلصه بس لول
انا بقولك الفرق بين الثلاثه ، خصوصا ان جامعه الملك فهد للأسف تعتبر السوفت وير انجنيرنج جزء من الكمبيوتر ساينس و راح اشرح ليه ان شاء الله...
الـ COE بشكل عام انت جالس تكلم الجهاز بلغته ... كمبيوتر لكمبيوتر ...
الكمبيوتر عنده 3 لغات ... لغته الخاصه (( 10010101011010 )) و اللغه الي ممكن يتفاهم الانسان وياه فيها (( la $a0, $a2 )) و اللغه الي ممكن الانسان يفهمها (( system.out.print"HEY THERE" ))
الـ COE يهتم بشكل اساسي في اللغتين الاوليين الي هي لغه الآله (( machine language )) و لغه الاسمبلي (( Assembly Language )) و طول عمرك في التخصص هذا بتجلس تتعلم كيف تتفاهم مع الكمبيوتر و كيف تبينه كـ Hardware و الباقي مو عليك بمعنى انت بتوصل لحد ما تسوي كمبيوتر لكن نظام التشغيل (( Operating System )) و اي شيء يتعلق فيه من لغات برمجه عاليه (( High Level Languages )) راح تكون للتخصصين الثانيين... و حبيت اقول ان اللغه الي يستخدمونها الـ COE مثل الـ MIPs وهي احد لغات الـ Assembly تعتبر اهم من اللغات الثانيه مثل الـ Java لان اصلا الـ Java ما يتصل بالكمبيوتر بشكل مباشر انما البرمجه بالجافا تتحول الى آسمبلي و بعدين الى لغه الكمبيوتر ... لكن فيه لغات برمجه تترجم بشكل مباشر للغه الكمبيوتر بس للأسف ما عندي خلفيه كبيره عنها
الـ ICS بشكل عام انك تاخذ الشغل الي سواه السوفت وير انجنير و تحوله الى شيء ملموس و تبرمجه ... و غير كذا ... شغله الـ ICS هو انه يبني برامج تعتبر الوسيط بين لغه الآله و المستخدم ، يعني مو معقوله المستخدم يكتب كلام زي الكلام الي انت جالس تتعلمه الحين بالجافا ... الحلو في الموضوع ان الـ ICS عندنا بالبترول ما ياخذ الا ماده وحده SWE لول ... لكن العكس صاير في الـ SWE ... بشرحها اكثر في قسم الـ SWE ...
الـ SWE حبيب الكل ، زي ما حاول يوضحون الشباب هو انك تبني البرنامج من الصفر
امممم بالعربي
(( جمع متطلبات من العميل / ترجم المتطلبات الى كلاسات برمجه / ابن البرنامج / اختبره ))
الحلو في البترول و بنفس الوقت الشيء البايخ انهم تاركين مواد سوفت وير اصليه و مبدلينها بمواد ICS و الي طلع من هذا ان تخصص الـ SWE عباره عن تخصص ICS لكن مع زياده مواد ... الفرق ان الـ ICS ياخذون مواد مهمه في الداتا بيس و النيتووركينج و احنا نقدر ناخذهم كمواد اختياريه !!!
طيب ايش المواد الي تقول ناقصه ؟ فيه مواد كثيره لها علاقه بالميلتيميديا ناقصه و ماهي موجوده ، على سبيل المثال انا في التدريب الصيفي اخذني " مركز المواهب " علشان اسوي لهم بروجكت لأنيمي علشان المركز و طبعا باستخدام السوفتوير انجنيرنج الي هم على بالهم اني ماخذ كميه كبيره عن الميلتي ميديا ... طبعا خلصت المشروع لان عندي خبره في الملتيميديا سوفت وير انجنيرنج من قبل ... بس ياليت لو البترول تهتم شوي لهل الجانب !!!
لكن علشان افيدك اكثر ... بعلمك شغله السوفت وير انجنيرنج مضبوط ... معليه الرد بيكون طويل مره لاني بحط امثله من مشروع التخرج حقنا !!!
الخطوه الاولى: تجميع المعطيات (( Gathering Requirements ))
طيب الحين شركه طلبت مني اسوي برنامج ؟ طيب خلاص انتهى الموضوع ؟ ابدا ابرمج ؟ طيب لو صار في تغيير في عمل البرنامج ؟ اقوم اعيد البرمجه ؟
هنا شغلتك تيجي ... تروح لمقر الشركه الي عطتك البرنامج تاخذ منهم كلللللل شيء و تجلس تحلل (( ايش لو صار كذا ... ايش لو تغير هذا ... طيب كيف ممكن يصير هذا ... طيب البرنامج ينفع للسوق ؟ ... ايش اهم مميزاته ... ايش اسوء شيء فيه ؟ ... كيف ممكن اطوره ... احط اللون هذا بدل هذا ؟ طيب لو الوحش الفلاني جاء هاجمني ليه ما اخلي عنده طاقه خاصه للإحتماليه ؟ )) و ترجع تراجع الشركه و تشوف لو فيه شيء ممكن يختلف او تغيير يكون من بدري احسن ... بعدها تنتقل الخطوه الثانيه
مثال:
مشروع التخرج حقنا خاص بمستشفى و هذي بعض المعطيات ((مترجمه بالعربي طبعا))
- البرنامج فيه Admin و Nurse و Physician
- البرنامج فيه صوره تطلع مواقع الالم عند المريض
- البرنامج لازم يكون web-based (( تتصفحه زي الانترنت ))
الخطوه الثانيه: رسمه اليوزكيس (( UseCase Diagram ))
الخطوه هذي هي الاساس في بناء اي سوفت وير بالعالم ... الرسمه توريك مستخدمين البرنامج و ايش ممكن يسوي كل واحد فيهم ... و الدايجرام يجي معاه دوكيومنت يشرح فيه ايش كل يوزكيس يسوي في البرنامج شوف المثال.
مثال:
هذا اليوزكيس دايجرام تبع المستشفى اللطيف حقنا ((طبعا اليوزكيس تغير بس ما راح احط النسخه الجديده لول و للمعلوميه اليوزكيس الجديد اكبر من هذا 3 مرات))
طبعا الي يشوفها يقول " وش السالفه بحصه فنيه احنا ؟ "
لا بس اشرحها الحين كل يوز كيس لها شغله في البرنامج مثلا النيرس ممكن انها تسوي Creat Profile وهي انها تفتح ملف جديد للمريض و تسجل فيه البيانات " اسمه ، رقم تلفونه ، عنوانه ، نوعيه دمه ، الدكتور المسؤول عنه ... الخ )) يعني بالعربي اليوز كيس دايجرام يوريك كيف يشتغل البرنامج يعني ترجمه " صوريه " للمعطيات الي اخذتها من الشركه ... بعدها تروح الخطوه الثالثه
الخطوه الثالثه: خطه المشروع (( Project Plan ))
هذي عاد سهله تخطط كل شيء في البروجكت مثل لو مات واحد ايش ممكن الفريق يسوي من غيره ، لو جاء وقت تسليم البروجكت و ما خلص البروجكت ايش ممكن يصير ، مين يشتغل في البروجيكت ، ايش هي البروجكتات المنافسه ((اهم شيء بروجتات مو مشاريع)) ... الخ بس علشان تعرف البروجكت حقك متى متوقع يخلص ... طبعا فيه شركات احنا نعرفها زين شكل السوفت وير انجنيرز عندهم جايبين العيد لول !!!
الخطوه الرابعه: رسمه السيكونس (( Sequence Diagram ))
للأسف تونا بادين فيها بالبروجيكت ما خلصناها فما عندي مثال صوري بس بحاول اشرح تهااااء
هنا البرنامج يطلع له شكل مثلا ... في الدايجرام تبع اليوزكيس فوق فيه مثلا امممم Login ..... في السيكونس ديجرام يوريك " كيف " اللوج ان يصير مثلا " المستخدم طلب يدخل البرنامج > البرنامج يرسل الطلب للسيستم > السيستم يرد على اليوزر بأنه يدخل اليوزر نايم و الباسوورد > اليوزر دخلهم > السستم يتأكد من صحتهم > السستم يدخل البرنامج )) بتقولي هذي اسمها مرمطه بقولك للأسف ... لا ... هذا من اهم الاشياء لانه من خلالها راح تعرف ايش هي الـ Methods و الـ Classes الي راح تستخدمها لما توصل مرحله البرمجه (( اتوقع انك اخذتها في الجافا حاليا ولا ؟ ))
الخطوه الخامسه: المظهر الخارجي (( Screen Layout ))
لول هذي خبراء الملتيميديا يستانسون عليها ... قبل لا تسلم السيكونس ديجرام بيكون عندك خلفيه خلاص عن البرنامج هنا تسوي الشكل المبدئي للبرنامج باستخدام برامج الملتي ميديا (( حتى فلاش تقدر )) و تعطيه العميل ... طبعا تسليم الـ Layout بالنسبه لي يوم الاحد القادم ... و الحين في هل التو و اللحظه جالس اصمم لوجو حق المشروع لوووول
الخطوه السادسه: SRS و Test Cases
اكبر خطوه في السوفتوير انجنرينج كله (( مو كأني قلت هل الشيء من قبل )) ... لا بس الكبر هنا بالكميه لول ... راح تسلم كللللللللللل شيء سويته قبل في ملف واحد و زياده الرسمات على المعلومات على الخطه على كل شيء و اضافه الى ذلك راح تحط " initial test cases " او " مواضع اختبار اساسيه " علشان يوافق عليها المسؤول عنك مثلا (( كيف تتأكد ان العباره هذي m>2 صح ... الجواب اننا نختبر العباره مره فوق الاثنين و مره تحت الاثنين و مره يساوي الاثنين )) طبعا في مراحل متقدمه من الديزاين راح تضطر تختبره مع ارقام خياليه و اشياء غريبه مو بس رقم ولا رقمين
الخطوه السابعه: بناء البرنامج (( Software Design ))
تبدا تبني بالبرنامج و يبدا شوي من شغل البرمجه هنا تجمع كل شيء سويته و تبدا تفكك و تسوي ديزاين علشان يتحول كل الي سويته قبل الى شيء ملموس
الخطوه الثامنه: بروتوتايب (( Prototype ))
طبعا الخطوه الاهم للشركه الي طالبه منك البرنامج انك تسوي لها البرنامج على السريع و توريهم اياه حتى لو فيه اخطاء بس علشان لو فيه اي تغيير في المتطلبات تكون من " الحين " قبل بعدين و تتوهق في تعديل الاكواد
الخطوه التاسعه: البرمجه (( Programming ))
على الغالب الـ ICS المفروض يستلمون هل الشيء بس عندنا في البترول حتى الـ SWE
الخطوه العاشره: الاختبار (( Testing ))
اسوء مرحله ... ممكن تقولي لو اكتشفت خطأ في السطر رقم 1233 في الكود حقك كيف تقدر تحله ؟!!!
الخطوه الحادي عشر: تأكيد الجوده (( Quality Assurance ))
همممم البرنامج ينفع للسوق ؟ خلاص خلص ؟ كل شيء اوكي ؟ نصدر البرنامج ؟ اكيد ما فيه Bugs ؟ خلاص خلاص ؟ يله خلاص خل ننزله D=
الخطوه الثاني عشر: صيانه (( Maintenance ))
ليه تفكر نزلت البرنامج للسوق انتهى الموضوع لا حبيبي ... راح تحتاج تحط خطه تسوي فيها مينتننس للبرنامج بشكل دوري بعض الشركات ما يطلبون هل الشيء (( مثل شركات الالعاب ما عدى لو اللعبه اون لاين ))
هنا يخلص شغلك كسوفت وير انجنير هع
بل كتبت كثير بس على الله كنت مفيد لك
امممم عذرا على الترجمه الغبيه لبعض المصطلحات و الدخلات العربنجلش لول
بس هذا الي عندي D=