موفقيت ما در طول ساختن برنامه هاي كاربردي بستگي به توانايي ما در پيش بيني اجراي برنامه ها دارد . برخي از جنبه هاي اجراي برنامه تقريبا براي پيش بيني آسان مي باشد . مثلا به راحتي مي توانيم ظرفيت برنامه را در ترم هاي بخش هاي داده اي يا عناصر تصوير تخمين بزنيم . ديگر جنبه هاي اجرا مثل اندازه ي برنامه و سرعت پاسخ گويي يا قابليت اطمينان برنامه براي تعيين كردن سخت است . اغلب موضوعات عمده اي هستند كه به طور بهينه در طول برنامه تخمين زده شده اند تاثير بهينه سازي در اين تخمين ها در برنامه هنگام كامل شدن در مواجه با نيازهاي اساسي با شكست روبرو مي شود . واسط كاربر تنها جزء قابل تعامل برنامه است كه در اجرا قابل پيش بيني نمي باشد . مثلا آن جزء از برنامه كه تصميم مي گيرد چگونه كاربر و كامپيوتر با هم ارتباط داشته باشند ( و اين قابل تاسف است كه بايد اين گونه باشد ) براي طراحي واسط كاربر تاثير زيادي بر مقبوليت برنامه دارد . ناتواني ما در پيش بيني اجزاي واسط كاربر باعث مي شود كه كاربر در راه ها ي غير منتظره واكنش نشان دهند در جاييكه آنان براي اولين بار از برنامه استفاده مي كنند بيشترين شگفتي زماني اتفاق مي افتد كه برنامه نويس با اولين كاربر و كاربر مبتدي همراه شود تا اجراي برنامه را توضيح دهد :
بدين صورت
برنامه نويس : حالا كه شما اين مدار را كشيده ايد ممكن است بخوا هيد چند راه آن را تغيير دهيد .
كاربر : بله پس بايد يك عنصر را حذف كنيم . چه طور بايد اين كار را انجام دهيم ؟
برنامه نويس : روي آيتمي كه برچسب CD دارد كليك كنيد .
كاربر : CD ؟
برنامه نويس : اين براي حذف كردن يك عنصر است .
كاربر : بله . خوب اجرا مي كنيم راستي چه اتفاقي مي افتد ؟
برنامه نويس : شما در مود تحليل هستيد بايد AM را به جاي CD انتخاب كنيد .
كاربر : چه جالب من در حال اشاره كردن به CD هستم . چگونه مي توانيم از مود تجزيه بيرون بياييم ؟
برنامه نويس : كافي است control-Q را تايپ كنيد .
كاربر : ( Type C-O-N-T-R )
برنامه نويس : نه ، كليد كنترل ( Kontrol-Key ) را فشار بده و بعد دكمه ي Q را بزن .
كاربر : متاسفم اشتباه كردم بله من بايد دوباره شروع كنم .
برنامه نويس : حالا به عنصر براي پاك كردن اينها ؟
كاربر : بله هيچ اتفاقي رخ نداد . آيا من اشتباهي انجام داده ام ؟
برنامه نويس : نه تو هيچ اشتباهي مرتكب نشدي : تو عناصر را پاك كردي اما هنوز برنامه اين را از صفحه ي نمايش Remove نكرده است .
كاربر : پس كي Remove خواهد شد ؟
برنامه نويس : هنگامي كه تو Control-j را براي دوباره كشيدن تصوير تايپ كني .
كاربر : من اين كار را انجام خواهم داد ما اين هستيم ولي تنها يك قسمت Component ها ، Remove شده است .
برنامه نويس : ببخشيد من فراموش كردم . شما بايد نصفي از اين عناصر را به طور جداگانه پاك كنيد . و تنها دوباره به CD اشاره كنيد .
كاربر : خيلي خوب حالا چه اتفاقي مي افتد ؟
برنامه نويس : تو الان دوباره در مود تجزيه هستي Control-Q را تايپ كن .
كاربر : كنترل پس Q كجاست ؟ اينجاست چرا همه جا خالي شد و هيچ اثري نمايش داده نشده است .
برنامه نويس : شما Q را تايپ كرديد . نه Control-Q ، بنابر اين برنامه سيستم عملياتي رها مي شود . من واقعا متاسفم ، اما ما خيلي چيزها را از دست داديم و بايد دوباره از اول شروع كنيم .
كاربر : بله چقدر بد ما مي توانيم تا هفته ي ديگر اين كار را عقب بيندازيم ؟
آنچه كه تا اين جا ديديد نمونه اي از يك لايه واسط كاربر طراحي شده ناچيز بود و تاثير آن كه مي تواند يك برنامه ي تعاملي سودمند داشته باشد .
كاربر بدشانس مجبور است تلاش كند كه دستوراتي كه خارج از كنترل هستند مانند C D و
Control-Q را به خاطر بسپارد .
برنامه اغلب به دستورات داده شده جواب نمي دهد وقتي كه جواب مي دهد كاربر اغلب به خاطر نتيجه متعجب يا گيج مي شود .
و همچنين اين اشتباهات كوچك در برنامه هستند كه باعث واكنش هاي غافلگير كننده توسط برنامه مي شود .
اين امر خيلي مهم است كه به طراحي واسط كاربر تعاملي ، توجه ويژه نشان دهيم . نه تنها واسط كاربر كم تجربه و ضعيف در امور كليدي براي يادگيري سخت است بلكه باعث مي شود برنامه براي اجرا كردن براي استفاده ي يك كاربر با تجربه بي مصرف باشد .
در مورد هاي مهم كه مثال بالا نمونه اي از آن بود تمرين كل اجرا ممكن است در اثر طراحي ضعيف غير موجود شود و ممكن است اين امر ثابت گردد كه ياد دادن برنامه به كاربر موردنظر با اين طراحي ضعيف غير ممكن است و يا اينكه واسط كاربر ممكن است آنقدر غير قابل مصرف و غير قابل اعتماد باشد كه هزينه ي استفاده از برنامه تامين نشود .
COMPONENTS OF THE USER INTERFACE 28-1
28-1: عناصر واسط كاربر .
واسط كاربر به طور طبيعي به 4 قسمت تقسيم مي شود يكي از اين ها زير لايه 3 تاي ديگر است كه اين همان مدل كاربر مي باشد .
مدل تصويري كه توسط كاربر اطلاعات ، فرم داده مي شود و فرايند هايي كه براي اين اطلاعات به كار برده است و بدون اين امر ، مدل كاربر فقط مي تواند يكسري اعمال كوركورانه را دنبال كند مانند يك آشپز غير حرفه اي كه دستورالعمل را دنبال مي كند .
مدل ، كاربر را قادر مي سازد تا مفهوم گسترده اي از آنچه كه برنامه مي خواهد انجام دهد را توسعه دهد حتي اگر از دانش كامپيوتر چيزي نداند يا خيلي كم بداند . با كمك مدل ، كاربر مي تواند استراتژي خودش را ، براي برنامه هاي عملياتي شكل دهد .
به عنوان مثال : در طراحي سيستم راهنما خلبان هواپيما .
در ابتدا كاربر مدل را درك كرده است . و همچنان كاربر به فراميني جهت اداره كردن مدل احتياج دارد . سيستمي از فرامين كه مي توانيم استفاده كنيم دستورزبان نام دارد و به عناصر ثانويه واسط كاربر شكل مي دهد .
( البته بيشتر از شما با اين دستورات آشنا هستيد . ) يا مانند يكسري ماشين هاي محاسباتي كه با يكسري فرامين و دستورات خاص خودشان كار مي كنند .
مثلا يك سيستم ماشين حساب يا ماشين تحرير را در نظر بگيريد . در اين ماشين ها از يكسري فرامين كلي استفاده مي شود كه ما مي توانيم با فهميدن آن دستورات خيلي راحت طرز استفاده از اين ماشين ها را فرا بگيريم .
به طور ايده ال برنامه هاي كامپيوتر بايد دستورزبان هاي مساوي و به طور طبيعي داشته باشد .
عنصر سوم از واسط كاربر ( فيدبك ها ) Feed Back هستند كه كاربرها را در اجراي برنامه در كامپيوتر كمك مي كند .
Feed Back ها در شكل هاي مختلف وجود دارند : تصديق اعلام وصول دستورات يا تصديق درستي زبان ـ پيام هاي متني و توضيح دار و غيره و
بعضي از فرم هاي Feed Back اساسا براي كمك به تجارب كاربر ها تهيه شده اند از طرف ديگر بعضي از دستورزبان ها در برنامه به طور ذاتي وابسته به Feed Back هستند .
فيدبك به كاربر كمك مي كند براي اينكه وي مطمئن شود كه دستوراتش دقيقا دريافت شده است و كاملا براي كامپيوتر بديهي و واضح مي باشد . و كاربر تاثير واقعي را روي برنامه مشاهده نمايد .
چهارمين عنصر نمايش اطلاعات است . كه اين امر براي نشان دادن حالت هاي اطلاعات براي كاربر ضروري مسي باشد . عامل تصوير مي تواند نوعي تصديق و تاييد براي كاربر باشد به اين كه مدل كاربر درست است يا نه در جايي كه مدل وابسته به واقعيت و واقع گرايي مي باشد صدق مي كند و همچنانكه ما بايد به واقع گرايي در تصاوير نمايشي خود بيشتر توجه داشته باشيم و سعي كنيم تصاوير طراحي شده به واقعيت نزديك تر باشند و سعي كنيم جامع تر شوند .
در جايي كه چند مدل با هم تركيب مي شوند و براي طراحي انتخاب مي شود اين امر صدق مي كند .
ما بايد بوسيله ي يك عمل انتخابي مناسب در حد وسط و شبيه سازي گرافيكي در تقويت و بهبود اين مدل ها كوشش كنيم .
اين بخش فرعي در اين اجزا در طراحي واسط كاربر مهم است زيرا اين عامل ما را به دسته بندي كردن در مشكلات بوجود آمده در طراحي قادر مي سازد و همچنين كار طراحي واسط كاربر را به خرده كارهاي متناظر كوچك تفكيك مي كند براي مثال هنگامي كه ما يك دستور زبان را طراحي مي كنيم ما بايد بدانيم كه Feed Back ، فيدبك هر دستور بايد تهيه شود و اين ( فيدبك ها ) Feed Back هاي تكنيكي براي نمايش اطلاعات بايد از خروجي هاي مشابه استفاده كنند . هنگامي كه ما اين عناصر را طراحي مي كنيم اغلب به مدل كاربر مراجعه مي كنسم ، كه تغييرات كوچك تري را بوجود بياوريم براي منعكس كردن تغييرات در دستورزبان يا در نمايش اطلاعات . بدين سان ما بايد مركز توجه مان را از يك عنصر به عنصر ديگر تغيير دهيم . با اين همه ما مي توانيم استراتژي هاي جداگانه به كار بريم و قانون هايي را براي هر عنصر طراحي كنيم و مطمئن شويم كه هر يك از 4 عنصر نام برده به طور رضايت بخش عمل مي كنند .
Task Analize
تجزيه كار پيروي كردن از قسمت كاوش كردن در جزئيات هر يك از چهار عنصر شرح داده شده :
مدل واسط كاربر ـ دستورزبان ـ فيدبك و نمايش اطلاعات .
البته پيامدهاي ديگري در طراحي واسط كاربر وارد مي شوند و بايد در حافظه بوسيله ي طراح نگهداري شوند . براي مثال در فرايند طراحي بايد يك تخمين واقعي زده شود آن هم از يكسري محاسبات و منابع اطلاعات كه براي وي موجود مي باشد و همچنين طراح بايد مطمئن شود كه طراحي واسط كاربرش هزينه ي سنگيني براي وي متحمل مي شود يا نه و همه چيز در كل بايد به جا باشد در همين موقع است كه وي بايد احتياجات كاربر را در نظر بگيرد در اين جا مي توان به اين نكته اشاره نمود كه محرك اصلي كار طراحي همين عامل مي باشد . پس طراحي بايد در ابتداي كار با درايت و به طور واضح تمام خواسته ها را معين نمايد . در اين جا در مي يابيم :
كه در يك طراحي تجزيه كار ( Task Analize ) مهم است و بايد زيركانه انجام و پياده سازي شود.
همچنين كه احتياجات كاربر در نظر گرفته مي شود يك راه ديگر هم استفاده از تابع هاي موجود مورد نياز اين كار است در واقع تجزيه كار بسيار مفيد است و بعدا در آينده اين موضوع را متوجه مي شويم كه اين گونه طراحي براي استفاده u ser كار آمده بود . تجزيه كار در واقع اجراي كاربر را در نظر مي گيرد و همچنين محيط كار آن ها را بررسي مي كند و نتيجه ي اين بررسي ها بايد مورد تجزيه واقع شود .
يك گزارش نوشته شده از تجزيه كار اغلب با يك نكته آغازين براي طراحي واسط كاربر شكل مي گيرد .
تجزيه كار اساسا خودش يك مهارت قابل توجه است كه مورد احتياج فرايند ها مي باشد .
و همچنين مي تواند يك تجربه به حساب بيايد . اغلب تجربه كار به دوش متخصصاني است كه يك گزارش را توليد ميكنند و قسمت هايي از وظايف طراحي به دوش آنان مي باشد . در پايان اين فصل يكسري مثال وجود دارد كه تعاريفي كوتاه و مختصر از احتياجات كاربر را به ما مي دهد .
مدل كاربر
هنگامي كه ما يك ذهنيت از قبل تعيين شده داريم كاربر مي تواند براي به كار گيري برنامه هاي تعاملي بر اساس استفاده از دستورالعمل هاي همراه و مورد نياز آنان تربيت شوند ، قوانين و راهنماي كاربر اغلب شامل دستورالعمل هاي كوچك همانند مثال آورده شده زير مي باشند .
بوجود آوردن فهرست هفتگي .
- تايپ كن EDITMUNUTXT و كليد بازگشت ( RETURN) را فشار بده .
- هنگامي كه منوي اصلي روي صفحه نمايش ظاهر شد مكان نما را روي كلمه ي
mondoy-dish فشار بده و دكمه ي وسط موس را يك بار فشار بده . كلمه بايد داراي
underline ( زير خط ) شود .
- Rkey را فشار بده .
- توضيحات روزانه را در ليست تايپ كن . اين كار را با فشار دادن ESC دنبال كن .
- مرحله ي 2 و 3 را تكرار كن و اين مراحل را براي هر كدام از روزها تكرار كن .
- هنگامي كه تمامي ليست هاي 5 روز تايپ شده كليد H را بعد از ESC فشار بده و نتيجه ي چاپي بدست آمده از ليست را پرينت كن .
- Q و ESC را تايپ كن .
البته دستورالعمل مورد نظر براي استفاده برنامه هاي تعاملي چند تا نقطه ضعف دارد .
يكي از جدي ترين نقاط ضعف اين است كه كاربر را از درك قابل توسعه از برنامه كه وي در حال اجرا كردن است دلسرد مي كند و از آن يك وجه غير جذاب مي سازد و ممكن است مثلا در هنگامي باشد كه كاربر مي خواهد بداند كه چه كاري بايد انجام دهد اگر دستورالعمل ها كار نكند.
براي مثال : براي يك مقاله ممكن است در 6 قدم در يك چاپگر گنجانده شود .
ـ آيا كاربر بايد به مرحله ي اول بازگردد و تمام فرايند و مراحل را كامل بگذراند ؟ يا حقيقتا او مي تواند مرحله 6 را تكرار كند بعد از آزادسازي چاپگر ؟
ـ او چه كاري بايد انجام دهد اگر يك كلمه ي غلط در مرحله 2 وجود داشته باشد .
ممكن است براي ما پاسخ دادن به اين سوال بديهي و واضح باشد اما براي كاربر آن ليست دربردارنده ي مفهوم اساسي براي ساختن يك جريان از عمليات معقول تر از بقيه نمي باشد .
براي حفظ كردن كاربر در برابر اين قبيل مشكلات ما بايستي به وي از طريق فهماندن مفاهيم ادراكي كمك نمائيم . در بسياري از موارد يك مدل كاربر مي تواند بر روي يك مدل خيلي آسان با يك مفهوم غير تكنيكي هم پايه گذاري شود .
برای مثال ما می توانیم
- کاربری را از دستور العملهای شرح داده شده استفاده می کرد را اعمال کمکی زیر آماده کنیم
- ویرایش برنامه به کاربر این اجازه را می دهد که بتواند یک فایل مبتنی را ویرایش کند و روی آن فعالیت کند برای شروع عملیات ویرایش Edit را تایپ می کنیم که بوسیله نام فایل دنبال می شود و توسط RETurn ختم می شود.
- هر کلمه ای در متن ممکن است توسط اشاره گر با فشار بین وسط موس انتخاب شده و underline گردد.
- در واقع انتخاب شدن متن را تغییر نمی دهد. برنامه یکسری از فرامین را دارد که ممکن است هیچ وقت انتخاب نشود برای دستور Replace، R را تایپ می کنیم برای دستاوری HARDCOPY (H)و (Q)Quit را تایپ می کنیم 3 . برای کامل کردن و تمام کردن هر کدام از دستورات و خارج شدن ESC را می زنیم
- نرمال جایگزینی کلمات را با متن تایپ شده قبل از اینکه ESC را فشار دهیم جایگزین می شود. شاید اینها کافی نباشد به این که کاربر تمام مشکلاتش حل شود اما به هر حال کاربر را با مدل کاربری که در جای خودش دارای ارزش است برای فهمیدن منظور هر کدام از مراحل در منوها آماده کند.در عوض ما باید مدل کاربر را از ابتدای کار ملاحظه کنیم. در امر طراحی مدل کاربر می تواند مفید باشد برای رسیدن به 2 نکته!
- مدل کاربر یک مدل هوشمند است و یک مدلی به عنوان چهار چوبی است برای توسعه استراتژی هایی که در انجام اجرا برنامه وجود دارند و قابل قیاس و تشابه با گرامر زبان های خارجی می باشد .
- مدل کاربر باید مفاهیم آشنا را در بر گیرد و بکار ببرد و برنامه باید پذیرش آن را داشته باشد در کل باید مفاهیمی را به کار ببریم که برای درک کاربر آسان باشد اگر او یک مهندس الکترونیک است ما باید به او به عنوان یک عنصر حافظه – ورودی – سیم های انتقال و obj هایی از این قبیل بدهیم.
- اگر کاربر یک آرشیتک (معمار) باشد ما باید به او این اجازه را بدهیم برای اینکه درها و پنجره ها و دیواره ها را دستکاری کند.
- مفاهیم آشنا برای استفاده مدل کاربر را قابل درک تر و مستقیم تر برای کاربر جلوه می دهد.
برای مثال ما می توانیم
- کاربری از دستور العملهای شرح داده شده استفاده می کرد را اعمال کمکی زیر آماده کنیم.
- ویرایش برنامه به کاربر این اجازه را می دهد که بتواند یک فایل متنی را ویرایش کند و روی آن فعالیت کند. برای شروع عملیات ویرایش EDIT را تایپ می کنیم که بوسیله نام فایل دنبال می شود و توسط Return ختم می شود.
- هر کلمه ای در متن ممکن است توسط اشاره گر با فشار بین وسط موس انتخاب شده و underlineگردد .
در واقع انتخاب شدن را تغییر نمی دهد.برنامه یکسری از فرامین را دارد که ممکن استبرای دستور Replace ، هیچ وقت انتخاب نشود. برای دستور ، را تایپ می کنیم. برای دستور را تایپ می کنیم
- برای کامل کردن و تمام کردن هر کدام از دستورات و خارج شدن ESC را می زنیم .
- فرمان جایگزینی کلمات را با متن تایپ شده قبل از اینکه ESC را فشار دهیم جایگزین می شود .
شاید اینها کافی نباشد به این که کاربر تمام مشکلاتش حل شود اما به هر حال کاربر را با مدل کاربری که در جای خودش دارای ارزش است برای فهمیدن منظور هر کدام از مراحل در منوها آماده کند در عوض ما باید مدل کاربر را از ابتدای کار ملاحظه کنیم . در امر طراحی مدل کاربر می تواند می تواند مفید باشد .
برای رسیدن به دو نکته
- مدل کاربر یک مدل هوشمند است و یک مدلی بعنوان چهار چوبی است برای توسعه استراتژ هایی که در انجام اجرا ی برنامه وجود دارد و قابل قیاس و متشابهاً گرامر زبانهای خارجی می باشد.
- مدل کاربر نباید مفاهیم آشنا را در بر بگیرد و بکار ببرد در برنامه باید پذیرش آنها را داشته باشد در کل باید مفاهیمی را بکار ببریم که برای درک کاربر آسان باشد ، اگر او یک مهندس الکترونیک است ما باید به او عنصر حافظه ای ورودی سیمهای انتقال و OBJ از این قبیل بدهیم .
اگر کاربر یک آرشیتکت ( معمار ) باشد ما باید به او ایت اجازه را بدهیم برا یاینکه دربها و پنجره ها و دیواره دستکاری می کند .
مفاهیم آشنا برای استفاده مدل کاربر را قابل درک تر و مسقیمتر برای کاربر جلوه می دهد .
و همچنین مفاهیم ساده وآشنا بسیار رحتتر است موارد یادگیری و ما را برای یک شروع خوب برای طراحی یک مدل کاربر آماده میکند . وهمچنین به این وسیله می توانیم به تصحیح کردن و ادامه دادن مدل مورد نظر اقدام کنیم و برای کمک بکار که خودش را با برنامه و دستوراتش سازگار کند آسان می باشد . این موضوع بسیار مهم است گرچه نمی تواند بصورت لفظی در چاپ کردن OBJ های عامیانه خودمانی استفاده شود .
بسیاری از محیطها برای واکنش کامل یک برنامه کامپیوتری پیچیده و غیر بدیهی می باشد . در حالیکه تفاوت قابل قیاسی بین دنیای واقعی و مجازی وجود دارد و ممکن است درک این تفاوت ها برای کاربر سخت باشد پس ما می توانیم شبیه سازی انجام دهیم مثل شبیه سازی یک ماشین تحریر خیلی دقیق روی یک صفحه نمایش .
اما اگر ما از خدمان تغییر ایجاد کنیم و یک چیز تازه ای به وجد بیاوریم در ساختن همچین چیزی مثلاً کلید Back space کاراکترها را Delete می کند ولی ممکن است ما با دادن این دستور برای یک تایپیست که با تجربه که همیشه از Back spacing برای دستور Underline دادن به کلمه استفاده میکند ، مشکل ایجاد کنیم و این ممکن برای طراحی یک مدل که تا حدی با کاشی تایپ تفاوت دارد بهتر باشد .
بنا براین برای اجتناب از این نکات گیج کننده ما باید بطور صحیح و شناخته شده عمل کنیم .
بطور کلی این مسئله بسیار مهم است هنگامی که در حال طراحی مدل کاربر هستیم و می توانیم به مشکلاتی که توسط سخت افزار و نرم افزار بوجود می اید رسیدگی کنیم .
عناصر دیگر واسطه کاربر مستیماً بر روی این مشکلات تأثیر می گذارد .
موضوعات و حرکات
یک کراه سود مند نبرای نمایش مدل کاربر برای اهداف گفتگو ، مستند سازی ، یک سری Obj می باشد . هر Obj یک بخش از اطلاعات می باشد که هر کاربر بر روی آن کنترل دارد و قادر باشد آنرا نمایش دهد .
و حتی در مورد آن سئوال کند و یا مکی تواند آنرا تغییر دهد یا قادر است آنرا خراب کند و یا Obj دیگری در همان مکان ایجاد کند .
اغلب یک واسطه سلسله مراتبی بین Obj موجود می باشد برای مثال در جایی که یک ویرایشگر متن ساده ترین Obj یک کاراکتر تنها ، مجموعه ای از کاراکترهای حروف ، شکل خطای پاراگراف حروف شکا صفحات یک سند کامل می باشد . اعمال کارهایی هستند که کاربر ها می توانند بر روی Obj بکار برند هر عمل می تواند بر روی هر Obj انجام شود .
ویرایشگر متن غالباً به ما توضیح اجازه دهد که کاراکترها را کارها ، خطاها ، پاراگراف و صفحات و همه سندی را چاپ می کند . علاوه بر آن ما می توانیم هر کاری که انجام می دهم فقط به یکسری از Obj اعمال نمائیم همانگونه که در صفحات بعد مشاهده می نمائیم مکاتبات نزدیک بین مدل کاربر و دستورات دیگر وجود دارد که زبان دستورات را مشکل می هد این مکاتبات تک به تک نیستند بلکه ما می توانیم دستوراتی بیشتری برای انجام یکسری از اعمال اضافه نمائیم و یا ما اجازه انجام دستورات کتبی با تعیین کننده مناسب که کارهای مختلفی را انجام دهد داریم .
مجموعه فرمانها کاربر را با معنای فیزیکی برای انجام دادن این عملیاتها آشنا می کند .
Obj کنترلی مدل کاربر معمولاً شامل دو نوع Obj می باشد آنهایی که ذاتاً وابسته به درخواست و آنهایی که هدفشان شرکت در کنترل برنامه می باشد فرمهای قدیمی تر Obj ها ، Obj ذاتی و دومی را Obj کنترلی می نامند با نوعهای مختلفی از Obj کنترلها در بخش تکنیکهای متقابل در فصل دوازده مواجه خواهیم شد.
آنها دارای انتخاب نیروهای خطی ، مقایسه و راهنما و بسیاری از چیزهای دیگر از قبیل محصول مصنوعی بر طبق انتخاب ما بر روی Obj ذاتی است سعی می کنیم که کنترل Obj ها را ، که رفتار آنها بصورت مستقیم سازگار و براحتی شبیه هم می باشند را انتخاب نمائیم .
اعمال بایستی در کنترل Obj بکار رود و مانند Obj ذاتی ، بنابراین اگر ما کاربر را بایک شبکه نمایش داده شده آماده کنیم می توانیم امیدوار باشیم که او دسترسی ورود و حذف را در فضای خودش بدهد Obj کنترل بنابراین به هر مجموعه از Obj و عمل ها اضافه می شود . ما باید مکلاحظه کنیم که تلاش ما برای نگهداری مدل کاربر ساده و یکنواخت باشد .
دستورات زبانی :
دستورات زبانی چه متقابل چه غیر متقابل در بسیاری از سیستم های کامپیوتری قضاوت یافت می شوند شاید بیشترین استفاده دستورات زبانی کنترل GCL می باشد که در این جا یکدسته سیستم کامپیوتر آموزش داده شده که چگونه هر وظیفه را در یک دسته پردازش می کند . که دستور شبیه زیر می باشد .
“Job DDRUN CORE = 10000 TIME = b00
بسیاری از سیستمهای مشترک متقابل با مجموعه دستورهای یکسان انجام می شود ، هر دستور کاربر ، شامل یک یا چند کلمه یا کاراکترها ، متخصصین می کند اعمالی را که بای انجام شود . کاربر دستورها را با فشار دادن یک کلمه پایانی مانند Return و ESC که اعمال طلب می کند کامل می کند .
رابطه گرافیکی به ندرت شامل این قبیل دستورات می باشد . در عوض کاربران به بخش منو اشاره می کنند یا دکمه ای را فشار می دهد و یا کاراکتری را می کشد برای اینکه برنامه تشخیص دهد .
بعضی اوقات دستورات بندرت آشکار هستند کاربر یک موقعیت پیوسته بعضی اوقات اعمال را طلب می کند و بعضی وقتها فقط اطلاعات را فراهم می کند . به شرایط غالباً پیچیده می شود هنگامی که از چند وسیله ورودی مختلف استفاده شود . صفحه کلیدهای حروفی و رقمی که بعضی وقتها کلید های تابعی ساختار دستور زبان های گرافیکی بکار می روند سخت تر از طراحی نوع گرافیکی می باشد . کلیدهایی که برای بعضی از حل مشکلات تا تشخیص بکار می رود یک دستور زبان بیش از یک لیست از دستورات می باشد .
یک زبان واقعی قابل حس تر و محجسوس تر می باشد . که دستورات انتخاب کننده به یکدیگر به روش غیر مستقیم وا بسته باشد وز بان دستورات Syntax را تعیین می کند . بدن توجه به Syntax های غیر مشابه اولین شکل در طراحی یک مجموعه دستور ، مشکل طراحی زبان برای خودش می باشد ما باید یک نحو را تعریف کنیم و مطمئن شویم که این Syntax ها سازگاری دارند . Error های تکنیکی که کاربر می تواند به وجود بیاومرد را مختص نمائیم و توانایی جوابگویی به احتیجات کاربر را داشته باشیم . و مطمئن شویم که Syntax ها در برنامه بطور کافی جامع و کامل هستند البته مشکلات ذکر شده برای کسی که اطلاعاتی راجع به طراحی زبان برنامه نویسی را دارد کاملاً آشنا می باشد . شامل تجربه در حل کردن این مشکلات قبل از طراحی یک دستور زبان موفق مورد نیاز می باشد .
شرح دادن منحنی یک دستور زبان خیلی نزدیک به مدت کاربر است . فرمان هاردی Obj های مدل کاربر اجرا می شود . این ارتباط کار طراحی دستور زبان را برای یک مدل کار خوب صادر می کند . هر فرمان به یک Act مربوط میشود . عملوندهای هر یک از فرمانها هستند که روی Obj ها تأثیر می گذارد . عملوند را قبل از مدل کاربر که بطور کامل تعریف شود شروع می شود زبانی که ما طراحی می کنیم احتمالاً توسط مردمی بی تجربه در امور برنامه نویسی هم ممکن است استفاده شود .
و غالبا ً اینطور می باشد . برنامه های کامپیوتری تعاملی ممکن است براس بار اول برای آنها عاری از کیفیت باشد . و پیچیدگی قابل توجهی داشته باشد . و آنها مجبور اند یاد بگیرند برای اینکه قادر باشند از برنامه استفاده کنند و ما می توانیم با ساختن دستوراتی آسانتر این وضعیت را سبک کنیم .
چون اغلب فرمانها ممکن است برای یک کاربر تازه کار کامپیوتر بسیار گیج کننده باشند .
Obj ها و Fact ها ، مدل کاربر را فراهم می کند . و به شروغع منایسب را برای طراحی دستور زبان اشاره می کنند ، بطور کلی در فرمهای انتزاعی و خلاصه شده از عملکردها تعریف می شود . ما قادر هستیم دستور زبان را بعنوان نمایش و وامقعی از مدل کاربر ببینیم در این عملیات ها که توسط این دستورات و Obj ها جایگرزین شده اند بطوریکه تعریف درستی از مدل کاربر را می دارد . و ما باید قادر باشیم بطور مستقیم از زبانهای برنامه نویسی نتیجه بگیریم آنهم در تمرین کردن و ممارست . ما باید تصمیم بگیریم که چه چیزی میسر است به دربر داشتن یک قابلیت انتخاب چند گانه در زبان برنامه نویسی .
اغلب مدل کاربر تغییرات قابل توجه را همانند نتیجه تصمیمات و طراحی دستور زبان متحمل خواخد شد . چطور می توانیم راجع به طراحی زبان برنامه تصمیماتی را بگیریم قدم اول اینست که باید شماری از کلیدهایی که در کارطراحی پیچیده هستند را درک کنیم یکسری از این تصمیمات اینها هستند .
طریقه فرمان دادن :
تعدادی از برنامه های دارای تأثیر به یکدیگر اعمال کاربر را تفصیر و ترجمه می کند آنهم در دو یا چندین طریق مختلف مطابق را حالت برنامه . متن ویراتاری برای مثال : ممکن است حرف D بعنوان عمل پاک کردن Deleting تفصیر شود . در طول یک حالت در قسمتی از تایپ کردن در متن در حالتهایی دیگر هر کدام از این حالتها که عملکردها می دهند توسط یک کاربر ترجمه شده است که طریقه ، دستورات نامیده می شود .
روشهای تک دستوره زبان از این مشکلات کاملاً دوری می کند دنباله انتخاب و بیشتر کاربردها مستلزم دستور عملوندهای انتخابی هستند .
مثلا عملیات انتخاب و پاک کردن ممکن است بعنوان یک عملوند مستقل تعیین شود .
که اگر انتخابی موجود باشد این انتخاب مهم باشد.
- Error های دستی:طرحی دستور زبان باید به رسیدگی کند به اینکه چطور یک برنامه باید در برابر ورودی های نادرست و بی فعلی واکنش نشان دهد. کاربر باید از این خطاها آگاه شود. این خیلی مهم است که کاربر از خطاهایی که انجام داده یک برنامه قطع شود در غیر این صورت که سلسله مراتب این فرمان های نادرست ادامه دهد که منجر به برنامه ای پر از error می شود.و چرخه فرامین بوسیله این دستورات نادرست باطل می شود.
استیل های دستور زبان:
نگه داشتن سازگاری در دستور زبان بسیار مهم است ما نباید بطور پایدار از کاربر را از یک محوطه ورود به تعبیر مجموعه ها انتقال دهم تا سر در گم شود اگر ما نحوه تک دستوری را برای یک دستور بکار ببریم شاهد بهتر باشد ما باید مطمئن شویم که همه فرمانها با هم به نحوی متفق می باشند. و به اینکه ممکن یک استثنا در آن ها ما را گیج کند. در کل دستور زبان ها و فرامین باید با هم سازگاری داشته باشد و این امر باید واضح باشد تا کاربربتواند نحو فضایی دستورات را پیش بینی نماید.
در واقع سازگاری به این صورت بوجود آمده است که در آغاز توسط یک style مخصوص از دستور زبان تعریف شده و قبول شده است. دراین مقطع ما باید شماری از style های گوناگون را مطرح کنیم. که هر کدام برای دستور زبان های سازگار، اساس خاصی را تعریف می کنند. Style مورد انتخاب ما به شماری از فاکتورها-پیکر بندی سخت افزاری- میزان و حدی از obj ها و fact ها در مدل کاربرد … وابسته خواهد بود.