13

أسألني في مجالي عمل "تحليل وتصميم البرمجيات" وكذلك "هندسة الجودة ومعايير تطوير صناعة البرمجيات".

مرحبا، أتشرف بتواجدي وسطك هنا معكم عصام مهندس نظم معلومات تخصصي في مجالي عمل "تحليل وتصميم البرمجيات" وكذلك "هندسة الجودة ومعايير تطوير صناعة البرمجيات".

وكتوضيح مبسط للمجالين: (الأول) "هندسة البرمجيات" نفسها وهي بمثابة عمل مهندس المعمار في تحديد متطلبات ووضع مواصفات ورسم خرائط الإنشاءات والتي هي أبنية نظم المعلومات في حالتنا (والمبرمجين هم المهندسيون المدني في التنفيذ طبقا لهذه المواصفات). (والثاني) هو "هندسة تطوير الصناعة" للشركات وبيوت الخبرة العاملة بوضع معايير ونماذج ومنهجيات التطوير وإدارة العمل والمشاريع.

وعليه فيمكنك سؤالي عن أي شيء خاص بالمجالين ...وأسعد بتلقي استفساراتكم


السلام عليكم

لدي اسئلة حول تحليل النظام هدفك تصل الى ERD لقاعدة البيانات وبعدها المرحلة الاسهل هي البرمجة

محاولة تحليل وتصميم قاعدة البيانات تأخذ مجهود كبير أو ممكن تضطر انت كمحلل تعلم أشياء عن المجال قبل ماتحلل

لدي مجموعة اسئلة

1-مثلاً انشاء برنامج محاسبة مثل دفتره وغيرها هل أنا مضطر قبل تحليل النظام الى دراسة المحاسبة بشكل متعمق ؟ اذا لا او نعم ماهي الاشياء مطلوبه مني دراستها لانشاء نفس دفتره؟

2- من يميل الى أنشاء برمجيات ERP ماهي الاشياء التي يجب تعلمها لبناء نظام سليم دراسة المحاسبة قد تأخذ منك سنوات

3- اذا طلب منك تحليل نظام وأنت اساساً ماعندك فكرة عن اليه العمل كيف تدرس لهذا المجال مثلاً برنامج ادارة بنك كيف شخص يفهم الموضوع من كل الجوانب بوقت قصير حتى يبدأ بتحليل النظام؟

4- هل يوجد مواقع ممكن نشتري منها تصاميم نظم جاهزة بحيث انت فقط تعدل مايريده العميل فقط توفر على نفسك مجهود ضخم مثلاً برامج المحاسبة غالباً هي نفس الفكرة مع شوية اختلافات .. برامج ادارة المشافي نفس الفكرة بحثت كثيراً عن مواقع تبيع تصاميم جاهزه أنت فقط تقوم انشاء قاعدة البيانات او تضع اضافات يطلبها العميل وتنجز شغلك لكني لم اجد للاسف

من خلال تجربتك هل يوجد نفس هذه المواقع ؟ يعني تبيع لك تصميم ERD مع وصف للتصميم

ممكن تكون الاسئلة سطحية لكنها اول خطوة لي لفهم هذا المجال والدخول فيه

شكرا

وعليكم السلام ورحمة الله وبركاته

أسئلتك وجهية تماما وفي محلها وبعيدة عن أي سطحية فتح الله عليك.

ERD Entity Relations Diagram هو المخطط البياني التي ترسم ويتحدد فيها معالم ومواصفات "الكيانات" و"البيانات" لتي تمثل عضد وهيكل نظام المعلومات (برنامج الحاسوب المراد تطويره). وهي تأخذ مرحلتين أساستين:

(أ) المرحلة الأولى تسمى بالتصميم المنطقي (logical design) وهي تكون بالمراحل الأولى بالمشروع بالطبع وتكون أثناء مرحلة تحديد المتطلبات وتحليلها ومن ثم وضع تصماميها الأولية هكذا. (في هذه المرحلة وفي هذا التصميم نهتم بفهم واستيعاب ووضع التصور المبدئي الكامل للمحتوى البياني الخاص بالبرنامج ولهذا سمى بـ"المنطقي")

(ب) المرحلة الثانية وهي ستكون عادة بمرحلة البرمجة واالتنفيذ الفعلي في بناء قواعد البيانات أو بمرحلة توسطية بين المرحلتين وهذا التصميم يسمى "التصميم التنفيذي" أو التصميم الفعلي (physical design) وهذا يكون التركيز فيه منصب على تطوير أو تحويل التصميم المنطقي الأولى ليأخذ صورة قاعدة البيانات الحقيقية الفعلية بجداول وعلاقات وبيانات ومفاتيح في صورتها الرقيمية داخل الخوادم والأجهزة الحوسبية.

المرحلة الأولى يقوم بها مهندسو التحليل والتصميم (المنطقي)، بينما الثانية يقوم به فريق التطوير الفني خاصة الجانب الخاص بقاعدة البيانات وبيئة التشغيل وهكذا.

وهو يعتبر جانب من التحليل والتصميم والتطوير التنفيذي لتصميمات وهياكل النظام أو البرنامج ككل، فهناك جانب المحتوى البياني بسؤالك هنا، وهناك المحتوى الوظيفي والذي يشمل وظائف وخصائص وإمكانيات النظام التي ستتعامل مع هذه البيانات، وهناك الجانب الخاص بالوجهة الأمامية للمستخدمين وهكذا جوانب عدة لنفس البرنامج منها جانب "الكيانات البيانية" والتي ستأخذ صورة جداول وبيانات ومفاتيح وعلاقات بينية مكونة قواعد البيانات.

وهذه كانت مقدمة لاعطاء صورة بشكل عام (لك وللأصدقاء عموما هنا) لهذا الجانب من التصميم، ننطلق منها للإجابة على أسئلتك الكريمة ما شاء الله:

(1 & 2) السؤال الأول وربما معه الثاني: لإنشاء برنامج محاسبة مثل دفترة وغيرها هذا الإنشاء يتطلب جانبين من العلوم هنا: جانب ملمّ بعلوم المحاسبة، وجانب ملم بعلوم ومهارات وأدوات التحليل والتصميم في صناعة البرمجيات. والمطلوب هنا توافر الجانبين فليس شرطا أن يلم بهما شخص واحد. فعندنا بشركات تطوير البرمجيات يكون مهندس التحليل والتصميم خبيرا بالجانب الثاني ثم هو خبير بالتعامل مع العملاء بمجالات المختلفة كيف يتفاهم معهم ويستخرج القدر الكافي عن عملهم (المحاسبي في حالتنا هنا) ويوصل لهم القدر الكافي من إلإماكنيات المتوفرة من الناحية التكنولوجية ومن ثم تحديد معهم متطلبات البرنامج المنشود.

وقد يختلف الأمر قليلا عما إذا كان هذا مشروع تطوير برمجيات لمكتب محاسبة أي لعميل يعمل بهذا المجال، أم كونه منتجا (product) مستقلا سيتم تطويره ويطرح في الأسواق.

وقد يختلف الأمر أكثر وهذا غالبا محل سؤالك عما إذا كانت هي شركة تطوير أم إن الأمر مشروع فردي يقوم به فرد أو مجموعة أفراد كعمل حر مثلا. بكل الأحوال وبشكل عام قد لا يتطلب منك كمبرمج أو مصمم برامج أن تتعلم وتأخذ كورسات محاسبة طويلة حتى تنشأ برنامج محاسبة حيث قد يكفيك الاستعانة بهذا الصدد بعميل أو ممثل لعميل له دراية بتلك المهنة وهذا المجال ليقوم بهذا الدور بالتعاون معك تقنيا كما ذكرنا للتو. فاختصارا "المطلوب دراسته" من قبلك أنت سيكون الإ‘لمام بعلوم ومهارات وأدوات ووسائل التحليل ومنهجيات التصميم كـ Use Cases and ERD (Unified Modeling Language ) UML

(3) جزء كبير من إجابة هذا السؤال دخلت فيما سبق هكذا، ولكن دعنا نضيف إنه يمكنك الاطلاع على شيء من المختصرات والملخصات عن هذا المجال وأنظمة العمل به ولو بشكل طفيف مبدئي كما يمكنك البحث والاطلاع ودراسة نظم المعلومات والبرامج التي طورت في هذا المجال والتعرف على الوظائف الأساسية والخصائص في معالجة البيانات والتقارير وما إلى ذلك.

(4) على حسب ما تقصد من "تصاميم جاهزة"، فإذا تقصد تصاميم كتصاميم على ورق وخرائط أو حتى في صورة قواعد بيانات فعلية فلن تجد أو يعز أن تجد، لأنه المعتاد أنك ستجد برامج جاهزة على بعضها في مجالات بعينها كأنظمة مشفى كما ذكرت أو أنظمة حسابات قانونية أو موارد بشرية أو إدارة مصانع أو برامج مخازن ومشتريات إلخ. ولكن هذه عادة ما تكون باهظة الثمن والتكاليف لضخمتها ثم من كونها مقتولة بحثا وتصميما بحيث تمثل أو صارت معايير جودة لهذه المجالات مثل برامج وأنظمة Enterprise resource planning (ERP) وهذه يصعب منافستها أو يكون مجال منافستها أنك ستقدم برنامج محدد على قد حاجة العميل وبسعر أقل كثيرا يغنيها هذه البرامج الضخمة عالية الأسعار. (لكن "ماذا تتوقع"؟ هذه الأنظمة ERPs خاصة من الشركات الكبيرة إذا استطعت مجارتها وتعلمها وكسب خبرة بتقنيتها وفنيتها فقد تكون سبيل للتعلم الذي تبحث هنا وتتساؤل)

لاحظ هنا أن فكرة تواجد تصميمات جاهزة قابلة للشراء صعبة من ناحية أن لكل عميل احتياج خاص به. وفي حالات المجالات التي تحوي مساحات مشتركة من الاحتياجات (كالتي ذكرناها: أنظمة خاصة بالمشافي أو شركات الأدوية أو إدارة مصانع أو محاسبات قانونية إلخ) فهنا يأتي دور الـ ERPs كما ذكرنا وهو مجال خاص بذاته تبزغ فيه شركات عملاقة مثل SAP Oracle تبني هذه البرامج لعملاقة لهذه الأنظمة العامة ومن ثم يتم تخصيصها (customization) حسب استخدام واحتياج المشتري العميل ولهذا فتوزيع مهندس التطوير خاصة مهندس التحليل والتصميم داخل هذه الشركات ستجده توزيع مختلفا عن الذي ذكرناه بأعلى أول الأمر حيث عندهم سيكون كل مهندس يتبع مجال بعينه يتخصص فيه فيكون مهندس أنظمة إي آر بي للمستشفيات أو المصانع وهكذا.

والموضوع كبير فأرحب بك دائما في التواصل والاستطراد بإذن الله.

مجهول
  • حذف بواسطة المستخدم