انت هنا الان : شبكة جامعة بابل > موقع الكلية > نظام التعليم الالكتروني > مشاهدة المحاضرة

المحاضرة الثانية

الكلية كلية تكنولوجيا المعلومات     القسم قسم البرامجيات     المرحلة 3
أستاذ المادة مهند محمد جاسم الياسري       12/23/2011 8:28:28 AM
البرمـجيـات(The Software):
في العام 1970 م لم يتمكن سوى أقل من 1 % من العامة من إعطاء تعريف دقيق للمصطلح برمجيات الكومبيوتر، أما اليوم فمعظم المحترفين ومعظم الأفراد من عامة الناس يشعرون أنهم يفهمون البرامجيات. ولكن هل يفهمونها حقاً.
يمكن أن يعطي أي كتاب للمصطلح برامجية أو برامجيات (Software) المعنى التالي: البرمجية هي(1) مجموعة تعليمات( أي برامج الكومبيوتر ) تعطي الوظيفة والأداء المرغوب بهما عند تنفيذها، (2) بنى بيانات تسمح للبرامج بان تعالج المعلومات بأسلوب مناسب، (3) وثائق تشرح عمل البرامج وطرق استخدامها. من المؤكد إن هناك تعريفات أكثر دقة، ولكننا نحتاج إلى أكثر من تعريف شكلي.

خـصـائـص البرامـجـيات (Software Characteristics):
لفهم ماهية البرامجيات وبالتالي فهم ماهية هندسة البرامجيات، لا بد من أن نتفحص الخصائص التي تجعل من البرامجيات شيئاً مختلفاً عن الأشياء الأخرى التي بناها البشر. فعندما يبنى العتاد (Hardware) فان عملية الإبداع البشري (تحليل، تصميم، بناء، اختبار) تؤدي في النهاية إلى عنصر مادي. فإذا بنينا كومبيوتراً جديداً، مخططاتنا الأولية والرسوم الصورية لتصميمنا ونماذج الدارات الاختيارية تتطور كلها لتعطي في النهاية نموذجاً محسوساً يضم الرقاقات المتكاملة، لوحات الدارات، ووحدات التغذية، ... ، الخ.
أما البرامجية فهي عنصر منطقي في النظام اللامادي، وعلى هذا الأساس فان للبرامجيات خصائص تختلف كثيراً عن خصائص العتاد:
1. البرامجية تطوّر أو تهندس، وهي لا تصنع بالمعنى التقليدي.
مع إن هناك بعض أوجه الشبه بين تطوير البرامجيات وتصنيع العتاد، إلا إن هاتين العمليتين مختلفتان جذرياً، ففي كلا العمليتين تكتسب الجودة العالية من خلال التصميم الجيد. غير إن مرحلة التصنيع في العتاد قد تسبب مشاكل غير موجودة (أو سهلة التصليح) في البرامجيات. وصحيح إن كلا العمليتين تعتمدان على البشر، بيد إن العلاقة القائمة بين البشر المنكبين على العملية والعمل المنجز مختلفة تماماً في الحالتين (مفاهيم إدارة المشروع). ومع إن كلاً من العمليتين تتطلبان إنشاء " منتج " غير إن الطريقة المتبعة في كل منهما مختلفة.
تتركز تكاليف البرامجيات على هندستها، وهذا لا يعني انه لا يمكن إدارة المشاريع البرمجية كما لو كانت مشاريع تصنيعية.
2. البرامجيات لا تبلى.
يوضح الشكل (1) معدّل تعطل العتاد تبعاً للزمن. تدل هذه العلاقة المسماة غالباً بمنحنى مسار العمل على إن نسبة أعطال عالية تظهر في المرحلة الأولى من حياة العتاد ( يعود سبب هذه الأعطال إلى عيوب تصميمية أو تصنيعية). ونتيجة لتصحيح هذه الأعطال تنخفض هذه النسبة إلى مستوى متدنٍ هو مستوى الحالة المستقرة (الذي يؤمل أن يكون منخفضاً إلى حد بعيد). وتستمر الحال فترة معينة، يعود بعدها معدل الأعطال للارتفاع بسبب معاناة المكونات المادية من تراكم تأثيرات الغبار، والارتجاج وإساءة الاستعمال، وتغيرات درجات الحرارة القصوى، وأمراض بيئية أخرى عديدة. وبمعنى آخر نقول أن العتاد قد بدأ يبلى.





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







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












3. معظم البرامجيات مبنية حسب الطلب، بدلاً من أن تكون مجمعة بدءاً من مكونات.
لنتأمل الطريقة التي يجري بها تصميم وبناء تجهيزات التحكم بمنتج يعتمد على معالج صغري (Microprocessor). يرسم المهندس التصميم مخططاً بسيطاً للدارات الرقمية، ويجرى بعض التحليل الأساسي ليضمن انجاز الوظيفة بنجاح، ثم يرجع إلى دليل المكونات الرقمية. تتميز كل دارة متكاملة (تسمى غالبا IC أو رقاقة، chip) برقم القطعة (part number)، ووظيفة محددة أقرت صلاحيتها، وواجهة محددة جيدا، ومجموعة قياسية من إرشادات التكامل. وبعد أن يختار المهندس العنصر المراد، يمكن أن يطلبه جاهزا.
من دواعي الأسف ألا يتمتع مصممو البرامجيات بهذا الترف الموصف آنفاً. فباستثناء بعض الحالات القليلة، لا توجد كتيبات للمكونات البرمجية، ومن الممكن أن تطلب برمجيات جاهزة، لكنها تكون وحدة متكاملة وليست عناصر قابلة للتجميع لتكوين برامج جديدة (إن هذا الوضع يتبدل بسرعة، فانتشار التكنولوجيا غرضيه التوجه أدى إلى بناء مكونات برمجية).

تصنيف تطبيقات البرامجيات (Software Applications):
يمكن أن تستعمل البرمجيات التي نستطيع فيها مقدما توصيف مجموعة خطوات عملية البرمجة على شكل خوارزمية مثلاً ( والاستثناءات الجديرة بالذكر لهذه القاعدة هي الأنظمة الخبيرة و برامجيات الشبكات العصبية). ويعتبر كل من محتوى المعلومات وحتميتها عوامل هامة فبتحديد طبيعة أي تطبيق برمجي. نقصد بالمحتوى (content) هنا معنى وشكل المعلومات الداخلة والخارجة. فمثلاً، يستخدم العديد من التطبيقات التجارية بيانات مدخلة ذات بنية منظمة(قاعدة بيانات) وتولد تقارير ذات شكل محدد. أما البرامجيات التي تتحكم بآلة مؤتمتة (مثل التحكم الرقمي) فتقبل عناصر متقطعة، ذات بنى بيانية محدودة، وتولد أوامر للآلة تتتالى بسرعة.
أما حتمية المعلومات (Information Determinacy)، فنقصد بها قابلية تقدير ترتيب المعلومات وتوقيت ورودها. فبرنامج تحليل هندسي مثلاً يقبل بيانات ذات ترتيب محدد سابقاً، ينفذ خوارزميات التحليل دون مقاطعة، ويولد بيانات النتيجة ضمن تقرير أو مخطط بياني. تعتبر التطبيقات التي تتميز بهذه المواصفات حتمية. في حين إن نظام تشغيل متعدد المستخدمين يقبل بيانات ذات محتويات متغيرة، توقيت اعتباطي، وينفذ خوارزميات يمكن مقاطعتها تبعاً للشروط الخارجية، ويولد مخرجات تتغير بتغير المحيط والزمن. تعتبر التطبيقات التي تتميز بهذه المواصفات غير حتمية.
من الصعب إلى حد ما وضع تصنيفات عامة لها معنى للتطبيقات البرمجية. فمع ازدياد تعقيد البرامجيات، أخذت التجزئة الدقيقة تختفي. وتبين المجالات البرمجية التالية اتساع التطبيقات الممكنة.
? برامجيات النظام (System Software)
تتألف برامجيات الأنظمة من مجموعة من البرامج مكتوبة لتلبي طلبات برامج أخرى. يقوم بعض برامجيات الأنظمة (كالمصرفات، المحررات، والأدوات المساعدة في إدارة اللفات) بمعالجة بنى معلومات معقدة وحتمية في الوقت ذاته، في حين تقوم تطبيقات الأنظمة الأخرى (كمكونات أنظمة التشغيل، السواقات البرمجية Drivers، ومعالجات الاتصالات) بمعالجة بيانات غير حتمية على نطاق واسع. وفي كلتا الحالتين يتميز مجال برامجيات الأنظمة بتفاعل كثيف مع عتاد الكومبيوتر، باستعمال كثيف من قبل عدة مستخدمين، عمل متزامن يتطلب جدولة زمنية وتشاركاً في الموارد وإدارة معقدة للإجراءات. كما يتميز ببيانات معقدة وواجهات خارجية عديدة.
? برامجيات الزمن الحقيقي (Real-Time Software)
تسمى البرامجيات التي تراقب أحداث العالم الحقيقي وتحللها وتتحكم بها في نفس الوقت الذي تحدث فيه ببرمجيات الزمن الحقيقي. وتتألف عناصرها من مكون لجمع البيانات (يجمع ويصفي المعلومات من المحيط الخارجي)، ومكون تحليل يحول المعلومات إلى الشكل الذي يتطلبه التطبيق، ومكون تحكم/إخراج يجيب المحيط الخارجي، ومكون مراقبة ينسق بين جميع المكونات لتستمر المحافظة على الاستجابة بالزمن الحقيقي (وعادة تكون ما بين 1 ملي ثانية ودقيقة واحدة). وهنا يجب ملاحظة إن المصطلح "زمن حقيقي" يختلف عن المصطلح "تفاعلي" أو المصطلح "مشاركة بالزمن"، فنظام الزمن الحقيقي يجب أن يعطي إجابة ضمن شروط زمنية محددة، أما زمن الاستجابة في نظام تفاعلي أو نظام مشاركة بالزمن فقد يجري تجاوزه دون أن تحدث إشكالات محددة.
? برامجيات الأعمال (Business Software)
إن معالجة معلومات الأعمال هي أوسع مجال من مجالات التطبيقات البرمجية. فقد تطورت الأنظمة المتفرقة (مثل الرواتب، محاسبة الواردات والمدفوعات، الجرد، ...) باتجاه برامجيات أنظمة المعلومات الإدارية (Management Information System أو MIS ) التي تتصل بقاعدة بيانات كبيرة، واحدة أو أكثر، تحتوي على معلومات الأعمال. تعمل تطبيقات هذا المجال على إعادة ترتيب البيانات الموجودة بطريقة تسهل عمليات الأعمال، أو اتخاذ القرارات الإدارية. وإضافة إلى تطبيقات معالجة البيانات التقليدية، تتضمن التطبيقات البرمجية للأعمال:
الاستعمال التفاعلي للكومبيوتر وحسابات العميل/مزود الخدمة (مثل معالجة المعاملات، Transactions).
? البرامجيات العلمية والهندسية (Engineering / Scientific Software)
تميزت البرامجيات العلمية والهندسية فيما مضى بخوارزميات "سحق الأرقام". وتتراوح التطبيقات من علم الفلك إلى علم البراكين، ومن تحليل الإجهاد في عربات النقل إلى القوى المحركة المدارية للمركبات الفضائية، ومن البيولوجيا الجزئية إلى التصنيع المؤتمت. لكن التطبيقات الجديدة في المجال العلمي والهندسي أخذة بالابتعاد عن الخوارزميات العددية التقليدية، في حين بدأت بتطبيق التصميم بمعونة الكومبيوتر، محاكاة الأنظمة، والعديد من التطبيقات التفاعلية الأخرى تطغى على خصائص أنظمة الزمن الحقيقي، بل على خصائص برامجيات الأنظمة.
? برامجيات الأجهزة (Embedded Software)
غدت المنتجات الذكية أمرا اعتيادياً في كل سوق صناعي واستهلاكي تقريباً. تتواجد هذه البرامجيات في ذاكرة القراءة فقط، وتستعمل للتحكم بالمنتجات والأنظمة للسوقين الاستهلاكي والصناعي. وتقوم هذه البرامجيات بأداء وظائف خاصة ومحدودة جداً (مثل التحكم بلوحة مفاتيح فرن المايكروويف) أو بتوفير وظائف وإمكانات تحكم هامة (مثل الوظائف الرقمية في سيارة كالتحكم بمستوى الوقود، مظاهر لوحة أجهزة القياس، ونظام الكبح ...).
? برامجيات الكومبيوتر الشخصي (PC Software)
ازدهر سوق برامجيات الكمبيوترات الشخصية خلال العقد الماضي، وتعددت فئات تطبيقاتها، ويمكننا أن نذكر منها التطبيقات التي تقوم بمعالجة النصوص، الجداول الحسابية، البيانات المركزية، تعدد الوسائط والتسلية، إدارة قواعد البيانات، التطبيقات المالية الشخصية، والشبكات الخارجية...الخ.
? برامجيات الذكاء الاصطناعي (Artificial Intelligence Software)
تعتمد برامجيات الذكاء الاصطناعي على خوارزميات غير رقمية لحل مسائل معقدة لا يمكن ردها إلى الحساب أو التحليل المباشر. وتعد الأنظمة الخبيرة من المجالات الفعالة في إطار الذكاء الاصطناعي، وتسمى أيضا أنظمة قواعد المعرفة. من جهة أخرى، يمكننا أن نعدد مجالات تطبيق أخرى لبرمجيات الذكاء الاصطناعي وهي التعرف على الأشكال (الصور والأصوات)، برهنة النظريات، ولعب الألعاب. وقد تطور في السنوات الأخيرة فرع جديد من برامجيات الذكاء الاصطناعي يسمى بالشبكات العصبية الاصطناعية (Artificial Neural Networks). تقلد الشبكة العصبية بنية المعالجات الدماغية (وظائف الخلايا العصبية-النورونات-البيولوجية)، ويمكن أن تقود في النهاية إلى نوع جديد من البرامجيات التي تتعرف على أشكال معقدة، وتتعلم من التجارب السابقة.


المادة المعروضة اعلاه هي مدخل الى المحاضرة المرفوعة بواسطة استاذ(ة) المادة . وقد تبدو لك غير متكاملة . حيث يضع استاذ المادة في بعض الاحيان فقط الجزء الاول من المحاضرة من اجل الاطلاع على ما ستقوم بتحميله لاحقا . في نظام التعليم الالكتروني نوفر هذه الخدمة لكي نبقيك على اطلاع حول محتوى الملف الذي ستقوم بتحميله .