النتائج 1 إلى 3 من 3

الموضوع: هندسه البرامجيات

  1. #1
    تاريخ التسجيل
    Aug 2009
    العمر
    35
    المشاركات
    1
    معدل تقييم المستوى
    0

    هندسه البرامجيات


    مقدمة:
    لميعد خافيا على أي منا أهمية البرمجيات Software في حياتنا اليومية سواء في البيت أوالمصنع أو المستشفى أو ... الخ، فنحن نتعامل يوميا مع العديد من الأجهزة والمعداتالتي تعتمد في عملها على البرمجيات ومن المهم لنا أن تعمل هذه الأجهزة وبرامجهابالشكل والكفاءة التي نتوقعها منها. لذا فإن هندسة البرمجيات أصبحت اليوم أكثرأهمية من أي وقت مضى.
    المرجع :
    1- Shari Pfleeger, "Software Engineering - Theory and Practice", 2nd Edition

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

    وبنفس الفكرة يمكنالنظر إلى علم الحوسبة computer science حيث يكون تركيزنا على الحواسيب ولغاتالبرمجة لدرستها وتطويرها في حد ذاتها.
    أو يمكن النظر إليها والتعامل بها علىأنها أدوات نستخدمها عند تصميم وتطوير حل لمشكلة ما تواجهنا أوالآخرين.

    مهندس البرمجيات Software Engineer يعتبر أن الكمبيوتر هو أداة لحلالمشاكل problem-solving tool.
    وعليه أن يستخدم معلوماته حول الحاسوب وعلمالحوسبة للمساعدة في حل المشكلة التي يطلب منه إيجاد حل لها.

    شكل (1)
    ولكن ومن المهم أن نتذكر أن عملية كتابة البرامجتعدفنArtبقدر ما هيعلم، لماذا؟

    لأنه يمكن لأي شخص لديه معرفة كافية بأحد لغات برمجة الحاسوب hacker أن يكتب برنامج ليؤدي مهمة محددة، لكن الامر يتطلب مهارة ومعرفة مهندس برمجياتمحترف لكتابة برنامج أكثر تناسقا ووضوحا ،وأسهل في الصيانة، ويقوم بالمهمة المطلوبةمنه بفعالية ودقة أكبر.

    أي أن،هندسة البرمجيات تعنى بتصميم وتطوير برامج ذات جودةعالية.
    من يشارك في هذهالعملية؟
    المشاركون في عملية صناعة البرنامج، عادة ما يندرجونتحت ثلاث مجموعات:
    · الزبون Customer: وهو الشركة (أو الشخص) الممولةلمشر وع تطوير البرنامج المطلوب
    · المستخدم User: الشخص (أو مجموعة الاشخاص ) الذيسوف يقوم فعلا باستعمال البرنامج، والتعامل معه مباشرة.
    · المطور Developer: وهو الشركة (أو الشخص) الذيسوف يقوم بتطوير البرنامج لصالح الزبون.
    الشكل التالي يظهر العلاقة بين الفئات الثلاثةالسابقة
    شكل (2)

    مكوناتالنظام
    مشاريعنا التي نطورها لن تعمل في الفراغ، فعليها أنتتفاعل مع مستخدمين، أجهزة ومعدات متنوعة، نظم تشغيل وبرامج وملفات وقواعد بيانات .... إلخ و ربما حتى أنظمة حواسيب آخرى. لهذا يجب تعريف حدود النظام ومكوناته جيدا.أي يجب تعريف ما الذي يشتمل عليه النظام وما الذي لا يشتمل عليه.
    أي نظام هو عبارة عن مجموعة من الكائنات objects والنشاطات activities بالإضافة إلى وصف للعلاقات التي تربط تلك الكائنات والنشاطاتمعا. مع تعريف قائمة المدخلات المطلوبة والخطوات المتبعة والمخرجات الناتجة لكلنشاط.

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

    2.
    العلاقات وحدود النظام Relationships and System Boundary
    بعد تعريف الكائنات والنشاطات جيدا، يمكن أن نربط بين كل كائنوالنشاطات المتعلقة به بدقة. تعريف الكائن يتضمن الموقع الذي سوف ينشأ به(نعضالعناصر يمكن أن تكون موجودة بملف سبق انشاءه، والبعض قد يتم انشاءه خلال حدث ما)،والهدف من انشاءه(بعض الكائنات تستخدم من قبل نشاط واحد فقط والبعض يمكن أن يستعملمن قبل نظم آخرى كمدخلات Input) , لذا يمكن أن نعتبر أن لنظامنا حدود boundary بعضالكائنات بمكن أن تعبر هذه الحدود إلى داخل النظام، والبعض الآخر هي مخرجات مننظامنا ويمكن أن ترحل إلى نظم آخرى.

    بهذا يمكن أن نعرف النظام A System علىأنه تجمع من:
    ·
    مجموعة من الكائنات entities.
    ·
    مجموعة من الانشطة activities.
    ·
    وصف للعلاقات بين الكائنات والانشطة Relationship.
    ·
    تعريفلحدود النظام boundary.


    كيف نبينظام؟
    إذا طلب منا عميل تطوير نظام (برنامج) له، لحل مشكلةمعينة تواجهه في عمله. فمثلا يحتاج نظام حماية لشركته، أو نظام صرف آلي لبنك، أوممكن أن يكون صاحب مكتبة أو متجر و يريد تغير نظام البيع و الشراء أو العرض ليتمبشكل آلي. علينا اتباع الخطوات التالية لبناء هذا النظام:
    1.
    عقد اجتماع معالعميل لتحديد متطلباته، هذه المتطلبات تشمل وصف النظام بجميع مكوناته التيشرحنا.
    2.
    وضع تصميم عام للنظام يحقق المتطلبات التي حددها العميل، وعرضه علىالعميل ليوضح له الشكل الذي سيظهر عليه النظام عند الانتهاء، و ومراجعته معه لأخذموافقته عليه.
    3.
    بعد موافقة العميل على التصميم يتم العمل على وضع التصاميمالتفصيلية لأجزاء المشروع.
    4.
    كتابة البرنامج
    5.
    اختباره، واعادة مراجعةالمتطلبات التي وضعها العميل للتأكد من تحققها في البرنامج.
    6.
    تسليم النظام إلىالعميل.
    7.
    بعد تسلم العميل للنظام قد تظهر بعض المشاكل أو الاخطاء التي لم تظهرخلال عملية الاختبار، والتي تجب على المطور اصلاحها فيما يعرف بصيانةالنظام.





















    احدث المواضيع:


  2. #2
    تاريخ التسجيل
    Nov 2008
    الدولة
    Baghdad, Iraq, Iraq
    العمر
    33
    المشاركات
    3,228
    المزاج
    Psychedelic
    معدل تقييم المستوى
    37

    افتراضي رد: هندسه البرامجيات

    تسلم ألايادي
    موضوع رائع ومعلومات مفيده
    ننتظر كل جديد منك ورائع مثلك
    تحياتي ألك
    تقبل مروري

  3. #3
    تاريخ التسجيل
    Jun 2008
    الدولة
    IraQ
    العمر
    35
    المشاركات
    1,368
    معدل تقييم المستوى
    36

    افتراضي رد: هندسه البرامجيات

    عااااشت الايادي يا بطل
    تسلملي

ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •