logo

logo

logo

logo

logo

التوصيف في المعلوماتية

توصيف في معلوماتيه

Specification - Specification

التَوْصِيف في المعلوماتية

 

التوصيفُ specification هو وصفٌ تفصيليٌ لشيء ما، أو لما يفعله هذا الشيء. وقد يكون الوصف دقيقاً يُستعمل لكتابته تدوينٌ صوريٌ notation formal وقياسيٌ متعارف عليه، ويسمى عندئذ توصيفاً صورياً. أو قد يكون وصفاً مكتوباً بإحدى اللغات الطبيعية، ويسمى عندئذ توصيفاً غير صوري.

ويمكن توصيف أنواع عديدة من الأغراض، كالأغراض المادية مثل العتاديات (الأقراص الصلبة، والبطاقات المختلفة، والقارئات، ...) والتجهيزات (طابعات، وحدات عدم انقطاع التغذية UPS، ...)، أو الأغراض غير المادية (أي المتعلقة بالبرمجيات) مثل الموافيق  (HTTP, FTP, TCP/IP) protocols، وأنماط تخزين الصور (GIF, TIFF, JPEG, bitmap, postscript)، واللغات والمتطلبات والمعطيات والتصاميم وغيرها. وفيما يلي تفصيل لأشهر أنواع التوصيف، مثل توصيف المعطيات، وتوصيف اللغات، وتوصيف العتاديات، وتوصيف البرمجيات.

1- توصيف المعطيات data specification

المعطيات هي اللبنة الأساسية في البرمجيات؛ وهي تمثل تجريداً لأغراض العالم الحقيقي. وتؤمن لغات البرمجة تراكيب عالية المستوى، تسمح ببناء معطيات معقدة، انطلاقاً من معطيات بسيطة. ومثال ذلك، تتكون بنية المعطيات «مكتبة» من مجموعة من «الكتب»، وتتكون الكتب من «صفحات» والصفحات من «أسطر» والأسطر من «كلمات» والكلمات من «حروف»، والحروف هي أنماط بسيطة تقابل عدداً مرمَّزاً على 8 أو 16 بتة. تتطلب المعالجة الحاسوبية لأنماط المعطيات المعقدة توصيفاً دقيقاً لهذه الأنماط، مما أدى إلى ظهور تدوينات خاصة لهذا الغرض منها صيغة BNF (Backus-Naur Form). وصيغة BNF هي لغةٌ metalanguage تُستخدَم في تعريف التركيب النحوي للمعطيات وللغات. إذ تُعرَّف اللغةُ (أو المعطيات) بمجموعةٍ من القواعد، يُعْرَفُ كلُّ عنصرٍ نحوي فيها بأنه متغيِّرٌ مترفِّع metavariable (ويسمى كذلك رمزاً غير نهائي nonterminal symbol) يُكتبُ بين حاضِنَتَيْن «<>»، وتُستخدم في تعريفِه رموزٌ فعلية (تُسمّى رموز نهائية terminals) ومتغيِّراتٌ مترفِّعة أخرى (منها المتغير نفسه عند الحاجة). وتستخدم لغةُ التوصيف BNF رموزاً مترفعةً مساعدة مثل الرمز  الذي يعني «يُعَرَّف بـ»، والرمز  الذي يعني «أو».

وأدت الحاجة إلى التبادل الإلكتروني للمعطيات وضرورة تفسير هذه المعطيات آلياً دون العودة لعامل بشري، إلى ابتكار لغات مترفعة جديدة استُخدِمَت في توصيف المعطيات. نذكر من هذه اللغات لغة XML (Extensible Markup Language) التي يوجد لها مفسرات interpreters قياسية.

2- توصيف اللغات

يمكن توصيف اللغات باستخدام قواعد النحو غير الصورية التي يضعها العلماء المختصون في اللغة المدروسة، مثل قواعد تصريف الأفعال واشتقاق الأسماء في اللغات الطبيعية (كما في اللغتين العربية والإنكليزية). ويمكن كذلك توصيف اللغات باستخدام قواعد صورية. وتقسم اللغات الصورية إلى أربعة أصناف: اللغات النظامية regular languages، واللغات حرة السياق context-free languages، واللغات السياقية context-sensitive languages، واللغات غير المقيدة unrestricted languages. توصِّف لغات البرمجة باستخدام قواعد صورية حرة السياق تُستخدَم في بناء المترجمات compliers الخاصة بها، وتستخدم صيغة BNF التي قدمت في الفقرة السابقة لتمثيل مثل هذه القواعد.

3- توصيف العتاديات

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

4- توصيف البرمجيات software specification

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

توضع وثيقة توصيف متطلبات البرمجية software requirements document بعد إتمام عملية تحليل المتطلبات، وقبل الشروع بعملية التطوير البرمجي. ويجب أن تكون هذه الوثيقة كاملة، ومتسقة، وغير مبهمة. وغالباً ما تستخدم هذه الوثيقة كعقدٍ قانوني بين مطوري البرمجية والزبون. وتكون مرجعاً أساسياً في كل مرحلة لاحقة من مراحل إجرائية التطوير البرمجي.

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

وليست هناك صيغة أو منهج مِقْيَس لتوصيف النظم البرمجية، فقد ابتكرت بعض شركات التطوير البرمجي الكبيرة أدوات مؤتمتة لتوصيف البرمجيات، مثل أداة Rational Rose لشركة Rational. واعتمدت شركات برمجية أخرى أنظمةً صوريةً خاصةً بها تتضمن أدوات بيانية ومخططات خاصة لتوصيف أجزاء من النظام البرمجي، مثل مخططات العلاقات بين الكيانات entity-relationship diagram ومخططات تدفق المعطيات data flow diagram، ومخططات الانتقال بين الحالات state-transition diagram. في حين اكتفت بقية الشركات بوضع سردٍ بسيط ومحدد وواضح للمتطلبات باستخدام اللغات الطبيعية.

وقد شاع في الآونة الأخيرة استخدام لغةٍ اعتبرت مقياساً في مجال توصيف البرمجيات وهي لغة النمذجة الموحدة UML (Unified Modeling Language) وهي لغة نمذجة مرئية تستخدم لتوصيف المصنوعات في نظام برمجي، ورؤية، وبناء، وتوثيق. تلتقط UML المعلومات حول البنية السكونية، أي أنواع الأغراض المهمة في النظام وتنجزه، إضافةً إلى العلاقات فيما بين الأغراض، وحول السلوك الحركي لنظام ما، أي السلوك الذي يحدِّد تطور الأغراض على مر الزمن، والاتصالات التي تجري بين الأغراض لإنجاز الهدف. ويُنَمْذَج النظام في هذه اللغة على أنه مجموعة من الأغراض المنفصلة التي تتفاعل لإنجاز عمل يخدم مستخدماً خارجياً.

ندى غنيم

 

 مراجع للاستزادة:

 

 

- Anderson 2000, Professional XML , WROX Press ( 2000).

- Arto Salomaa, Salomaa 1986, Jewels of Formal Language Theory, Computer Science Press (Maryland, 1986).


التصنيف : الرياضيات و الفلك
النوع : علوم
المجلد: المجلد السابع
رقم الصفحة ضمن المجلد : 154
مشاركة :

اترك تعليقك



آخر أخبار الهيئة :

البحوث الأكثر قراءة

هل تعلم ؟؟

عدد الزوار حاليا : 586
الكل : 26999507
اليوم : 67256

مصطفى (نيازي-)

مصطفى (نيازي ـ) (1911 ـ 1986)   نيازي مصطفى مخرج سينمائي مصري، ولد بمدينة أسيوط لأب من أصل سوداني وأم تركية. أمضى دراسته الابتدائية في مدرسة الجمعية الخيرية الإسلامية بأسيوط، ثم تابع دراسته الثانوية في القاهرة. في عام 1929 سافر إلى ألمانيا والتحق بمعهد ميونخ للعلوم السينمائية، حيث درس الطبع والتحميض والعدسات والتصوير والكهرباء. بعد التخرج عاد إلى مصر عام 1933؛ ليعمل في إخراج الأفلام القصيرة ورئيساً لقسم المونتاج في «استوديو» مصر. ثم أخرج فيلمه الروائي الطويل «سلامة في خير» من بطولة نجيب الريحاني (1937).
المزيد »