مهندسی نرم افزار رای گیری آنلاین UML بخش اول
توضیحات کلی سیستم رای گیری آنلاین
توضیحات کلی
چشم انداز محصول
اين محصول يک محصول جديد است و ويرايش يا ويرايش هايي از آن قبلا توليد نشده است. شکل زير نمايي کلي از محصول را نشان مي دهد:
توابع محصول
محصول توليد شده بايد بتواند اعمال زير را انجام دهد(تشريح اين اعمال در بخشهاي بعد آمده است):
• سرويس دهنده بتواند کاربر را شناسايي و تاييد هويت(Authenticate) کند.
• نرم افزار مشتري سرويس دهنده را تاييد هويت کند.
• سرويس دهنده ليست اسامي نامزدها را به مشتري ارائه کند.
• کاربر راي خود را انتخاب و ارسال کند.
• سرويس دهنده به نحوي مشتري را از راي خود آگاه کند که راي دهنده از اعمال راي خود اطمينان حاصل کند(پياده سازي اين تابع الزامي نيست)
• آراي اخذ شده در پايگاه داده ثبت شود.
• هر فرد نبايد بيش از يک بار راي بدهد.
• ارائه گزارش از آراي اخذ شده در طول راي گيري و پس از خاتمه آن.
• توانايي تنظيم سيستم براي راي گيري از کانديداي جديد.
در ادامه نمودار جريان داده از سيستم ايجاد شده را مشاهده مي کنيد(شکل 2 و 3)
طبقه بندی کاربران
کاربران سيستم به دو گروه عمده تقسيم مي شوند:
i. کاربران عادي(راي دهندگان): اين دسته از کاربران افراد مختلف اجتماع را تشکيل مي دهند، ممکن است افراد تحصيل کرده و کار آزموده و يا افراد آموزش نديده و مبتدي باشند. در هر حال قسمت عمده کاربران ما در اين گروه جاي دارند، به همين دليل بايد به اين گروه توجه خاصي شود.
ii. مديران سيستم:افراد آموزش ديده اي هستند که تنظيمات(Setup) و گزارش گيري از سيستم را انجام مي دهند.
محیط عملیاتی
نرم افزار سمت سرور مي تواند به يک(يا چند) پلت فرم خاص(مثلا تنها سيستم عامل ويندوز) محدود باشد ولي نرم افزار نوشته شده در سمت مشتري بايد بر روي اکثر پلت فرم هاي متداول موجود قابل اجرا باشد. همچنين نرم افزار سمت مشتري بايد با سيستم هاي موجود سازگاري داشته باشد و استفاده از نرم افزار مشتري نبايد به امکانات زيادي نياز داشته باشد. همچنين نرم افزار مشتري بايد تا حد ممکن کوچک باشد(حجم Download کم).
محدودیت طراحی و برنامه سازی
• به علت اهميت بحث امنيت در اين پروژه، نبايد از پروتکل هاي شناخته شده موجود نظير SSL و HTTPS در انجام اين پروژه استفاده شود.
• راي دهندگان حتما بايد به وسيله کليد خصوصي خود که از مراکز توزيع کليد دريافت مي کنند و نه به وسيله اسم کاربري و رمز عبور شناسايي و احراز هويت شوند.
• کليد خصوصي بايد از طريق يک رسانه قابل حمل(CD، Floppy Disk يا Flash Memory) و نه از طريق شبکه انتقال يابد.
• نرم افزار سرور نبايد به نرم افزار نوشته شده سمت مشتري اعتماد کند، در صورت بروز هر گونه خطا بايد ارتباط قطع و راي باطل شود.
مستندات کاربران
نرم افزار مشتري بايد شامل راهنمايي باشد که کاربر در عرض يک يا دو دقيقه آن را مطالعه کرده و قادر به استفاده از سيستم باشد. نرم افزار سرويس دهنده شامل مستندات کاملي براي استفاده مديران خواهد بود. براي نگهداري و توسعه سيستم در آينده نيز مستندات طراحي و پياده سازي موجود خواهد بود.
مفروضات و وابستگی ها
نرم افزار نهايي توليد شده مي تواند از نرم افزار ها و کتابخانه هاي متن باز موجود استفاده کند. همچنين توسعه دهندگان مي توانند از هر گونه ابزار تجاري و متن باز براي توسعه استفاده کنند، ولي نرم افزار نهايي نبايد به هر گونه محصول تجاري که براي استفاده کننده منجر به پرداخت هزينه شود وابستگي داشته باشد.
در صورت وابستگي محصول نهايي به يک ابزار و يا محصولي که هزينه اي براي استفاده کنندگان در بر دارد بايد معادلي رايگان براي اين وابستگي وجود داشته باشد. به عبارت ديگر محصول نهايي بايد بتواند به نحوي بدون پرداخت هزينه اضافي براي نرم افزارهاي ديگر مورد استفاده قرار گيرد.
نیازمندی های واسط خارجی
واسط کاربر
واسط کاربر در اين پروژه به دو بخش سمت مشتري و سمت سرور تقسيم مي شود
3-1-1-واسط کاربر در سمت مشتري:واسط کاربر در سمت مشتري بايد در حد امکان ساده باشد و نبايد کاربر با نوشته ها، دکمه ها و اشکال گوناگون گيج شود. واسط سمت مشتري بايد امکانات زير را در اختيار راي دهنده قرار دهد:
• کاربر بايد بتواند محل کليد خصوصي خود را(که در يک فايل قرار دارد) انتخاب کند و يا مقدار پيش فرض آن را تغيير دهد.
• کاربر بايد آراي خود را به راحتي انتخاب کند.
• واسط بايد ليست انتخاب شده را دوباره به کاربر نشان دهد تا او از انتخاب خود اطمينان حاصل کند.
• کاربر بايد پس از ارسال راي خود از آخرين نتايج با خبر شود.
همچنين واسط کاربر بايد اشتباهات کاربر را به گونه اي منطقي به او نشان دهد و يا از انجام اشتباهات جلوگيري کند. براي مثال هنگامي که کاربر امکان انتخاب يک گزينه را دارد، تنها بتواند يک گزينه را انتخاب کند و هنگامي که امکان انتخاب چند گزينه را دارد به او اجازه انتخاب چند گزينه داده شود.
همچنين توصيه مي شود مراحل انجام کار بصورت مرحله به مرحله(Wizard) به کاربر نشان داده شود.
نکته مهم ديگر در مورد واسط کاربر در سمت مشتري اين است که واسط بايد توانايي نشان دادن اسم نامزدها به همراه عکس آن ها و مشخصات ديگري از آنها را داشته باشد.
3-1-2-واسط کاربر در سمت سرويس دهنده:واسط کاربر در سمت سرويس دهنده بايد به صورت خط فرماني و نه به صورت گرافيکي باشد(در بسياري از سرويس دهنده ها محيط گرافيکي وجود ندارد). اين واسط بايد توانايي تعريف نامزدهاي انتخاباتي و تعيين مشخصات آن ها نظير نام، سوابق و عکس آن ها را فراهم کند. همچنين واسط بايد گزارشات لازم از قبيل تعداد کل آراي اخذ شده و درصد و تعداد آراي اخذ شده توسط هر نامزد را به شکلي مناسب و قابل درک(مثلا فايل HTML) در اختيار مديران قرار دهد.