نرم افزار رای گیری آنلاین UML بخش دوم
واسط سخت افزاری
حداقل سخت افزار مورد نياز در سمت سرور يک دستگاه PC با پردازنده Pentium 4 و 512 مگا بايت حافظه به علاوه سخت افزار لازم براي اتصال به شبکه(کارت شبکه و ...) است. البته ممکن است در پلت فرم هايي غير از ويندوز از سخت افزارهاي ديگري استفاده شود. همچنين تمام گرداننده(Driver)هاي لازم بايد توسط سيستم عامل فراهم شود و توسعه دهندگان ملزم به پياده سازي هيچ گونه گرداننده اي نمي باشند.در طرف مشتري نرم افزار بايد بر روي يک دستگاه PC با پردازنده Pentium III و 128 مگا بايت حافظه و سخت افزار لازم براي اتصال به شبکه قابل اجرا باشد.
واسط نرم افزاری
در سمت سرور نرم افزار براي اجرا به محيط اجراي جاوا(JRE) ويرايش 1.5 يا بيشتر نياز دارد. قابل ذکر است که JRE و یا IIS بر روي بسياري از سيستم عامل ها از جمله Windows, Linux, Mac OS و Solaris قابل نصب است.
همچنين نرم افزار سمت سرور براي اجرا به يکي از DBMS هاي MS SQL Server 2000، MySql ، Oracle و يا HSQL DB نياز خواهد داشت. در سمت مشتري نرم افزار بايد بر روي JRE ويرايش 1.4 يا بيشتر اجرا شود.
واسط ارتباطی
نرم افزار در دو سمت مشتري و سرويس دهنده به پروتکل هاي لايه چهارم نظير HTTP نيازي ندارد(گر چه اين پروتکل تقريبا بوسيله همه سيستم عامل ها پشتيباني مي شود). نرم افزار براي اجرا به پشتيباني سيستم عامل از پروتکل TCP نياز دارد. همچنين براي مشاهده گزارشات به يک مرورگر وب نياز است.
نرم افزار براي رمزنگاري از روش AES و کليدهايي با استاندارد X.509 استفاده مي کند. همچنين خطوط ارتباطي بايد پهناي باند لازم براي اتصال هم زمان چندين مشتري را فراهم کنند.
دیدگاه های سیستم
سیستم از نگاه رای دهنده
4-1-1-توضيحات و اولويت ها:راي دهندگان مهمترين نقش را در سيستم بازي مي کنند، از سوي ديگر عموم آنها افرادي هستند که براي اجراي نقش خود آموزش نديده اند و شايد حتي آشنايي لازم را با کامپيوتر را نيز ندارند. به همين دليل اين گروه از کاربران از اهميت و اولويت بالايي برخوردارند.
4-1-2-دنباله عمل/عکس العمل: دنباله عمل/عکس العمل از ديدگاه راي دهنده به قرار زير است:
• راي دهنده برنامه را شروع مي کند برنامه شروع به کار کرده و محل کليد خصوصي را از کاربر تقاضا مي کند.
• کاربر محل کليد خصوصي را(که بصورت يک فايل است) مشخص مي کند به ترتيب مراحل زير انجام مي شود:
1. برنامه با سرويس دهنده ارتباط بر قرار مي کند
2. مشتري، سرويس دهنده را احراز هويت مي کند(تا مطمئن شود سرويس دهنده واقعي است)
3. سرويس دهنده، مشتري را احراز هويت مي کند(تا ببيند چه کسي راي مي دهد)
4. ليست اسامي نامزدها به برنامه مشتري ارسال مي شود
5. ليست اسامي به راي دهنده نشان داده مي شود.
• راي دهنده نامزدهاي مورد علاقه خود را انتخاب مي کند برنامه يک بار ديگر نامزدهاي انتخاب شده را به کاربر نشان مي دهد و از او تاييد مي گيرد.
• راي دهنده اسامي نامزدهاي انتخابي را تاييد مي کند مراحل زير به ترتيب انجام مي شود:
1. برنامه ليست انتخاب شده را به سرور مي فرستد
2. سرور ليست دريافت شده را در پايگاه داده ثبت مي کند
3. سرور آماري از آخرين آراي انتخابي را از پايگاه داده گرفته و به سمت مشتري مي فرستد
4. ليست دريافتي در سمت مشتري به راي دهنده نشان داده مي شود
• راي دهنده کليد خروج را فشار مي دهد برنامه به کار خود پايان مي دهد
4-1-3-نيازمندي هاي تابعي:جزئيات نيازمندي هاي تابعي براي نرم افزار مشتري در ادامه آمده است:
1. واسط کاربر براي انتخاب کليد خصوصي بايد يک Brows File Dialog از نوعي که در سيستم عامل مربوطه متداول است به او نشان دهد و فايل انتخاب شده را دريافت کند.
2. در صورتي که فايل انتخاب شده، صحيح نبود بايد به او پيغام خطايي مبني بر اشتباه بودن انتخاب وي نشان داده شود و به کاربر اجازه انتخاب مجدد داده شود.
3. کاربر در هر مرحله از اجراي برنامه و قبل از ارسال آرا بايد بتواند از راي دادن انصراف بدهد.
4. کاربر در هنگام برقراري ارتباط و رد و بدل شدن اسامي بايد از مراحل انجام کار با خبر شود.
5. در صورتي که در هنگام برقراري ارتباط مشکلي پيش آمد بايد اشکال به زباني ساده به کاربر نشان داده شده و به او شانس سعي مجدد داده شود.
6. در صورتي که احراز هويت سرور به درستي انجام نشد، بايد به کاربر اطلاع داده شده و از ادامه کار وي جلوگيري به عمل آيد(خروج از برنامه)
7. شکل برنامه بايد به شکلي باشد که کاربر تعداد درستي از کانديداها را انتخاب کند و در صورتي که تعداد نادرستي از کانديداها انتخاب شده بودند به کاربر اجازه ارسال راي داده نشود.
8. پس از انتخاب اسامي، بايد اين اسامي دوباره به کاربر نشان داده شده و از او تاييد گرفت. در اين مرحله کاربر بايد بتواند راي خود را مجددا تغيير دهد.
9. پس از ارسال راي و دريافت آمار آرا، اين آمار بايد به شکل نمودار، به همراه تعداد آرا و درصد آنها به کاربر نشان داده شود.
10. پس از خاتمه يک مرحله از راي دهي نيازي نيست که کاربر بتواند مجددا راي بدهد و براي انجام اين کار مي تواند مجددا برنامه را اجرا کند.
سیستم از دیدگاه مدیر سیستم
4-2-1-توضيحات و اولويت ها:استفاده مديران از سيستم به تعداد دفعات کمتري صورت مي گيرد، همچنين عموما مديران سيستم افرادي کار آزموده و فني هستند. به همين دليل سادگي کار با سيستم مديريت اولويت کمتري نسبت به سيستم مشتري دارد.
گر چه سيستم از ديدگاه مدير از پيچيدگي بيشتري برخوردار است ولي مراحل انجام کار در اين طرف کمتر است.
4-2-2-دنباله عمل/عکس العمل:دنباله عمل از ديدگاه مدير سيستم به قرار زير است:
• مدير دستور شروع سرور را مي دهد سرور شروع به کار مي کند
• مدير فرمان گزارش گيري را صادر مي کند گزارش تهيه شده در يک فايل HTML ذخيره مي شود.
4-2-3-نيازمندي هاي تابعي:جزعيات نيازمندي هاي تابعي از ديد مدير سيستم به قرار زير است:
1. در سمت سرويس دهنده نيازي به واسط کاربر گرافيکي نيست و همه تنظيمات بوسيله فايل هاي متني انجام مي شود. براي انجام تنضيمات دوفايل مختلف، يکي براي تنظيمات سرور و يکي براي اسامي نامزدها وجود دارد.
2. در فايل اسامي نامزدها، مدير بايد بتواند مشخصات نامزدها شامل نام و نام خانوادگي، توضيحي کوتاه در مورد آنها و عکس نامزدها را تعيين کند. همچنين تعداد نامزدهايي که کاربر مي تواند انتخاب کند نيز در اين فايل انتخاب مي شود.
3. در فايل تنظيمات سرور مدير بايد قادر به تعيين شماره پورت سرور و محل کليدهاي خصوصي راي دهندگان باشد.
4. مدير براي شروع به کار سرور فرماني را در خط فرمان تايپ مي کند
5. در صورتي که در هنگام شروع به کار سرور اشکالي پيش آمد، بايد پيامي به کاربر داده شده و اجراي برنامه خاتمه يابد.
6. پس از شروع به کار، سرور منتظر ارتباطي از سوي مشتري مي شود و تا پايان اجرا به اين کار ادامه مي دهد.
7. در صورتي که در حين اجراي سرور مشکلي پيش آمد، سرور نبايد به کار خود خاتمه دهد مگر اينکه اين مشکل باعث شود که سرور نتواند به هيچ يک از مشتريان خدماتي بدهد.
8. براي گزارش گيري از سيستم بايد فرماني موجود باشد. با اجراي اين فرمان يک فايل HTML که شامل جدولي از آمار آراي داده شده است توليد مي شود. اين فرمان داراي يک آرگومان ورودي است که محل فايل خروجي را تعيين ميکند.
نیازمندی های غیر تابعی دیگر
نیازمندی های کارایی
نرم افزار سرور بايد بر روي حداقل سخت افزار لازم(ذکر شده در قسمت 2-3) قادر به پاسخ دهي همزمان به حداقل 10 مشتري در زماني کمتر از 5 ثانيه باشد(دقت شود که تاخيرهاي ناشي از شبکه و عکس العمل کاربر نيز بايد به اين زمان اضافه شود)
نیازمندی های ایمنی
نرم افزار سرور بايد قادر به اجرا در يک پوشه(directory) باشد بدون اينکه به فايل هاي خارج از آن دسترسي داشته باشد. البته فايل هايي که توسط DBMS توليد مي شود مي تواند خارج از اين پوشه قرار بگيرد.
نرم افزار مشتري فقط بايد از فايل کليد خصوصي اطلاعات لازم را بخواند و اجازه نوشتن روي هيچ قسمت از ديسک را ندارد.
نیازمندی های امنیتی
همان طور که قبلا نيز ذکر شد امنيت از مهمترين اهداف اين پروژه است. هر کاربر تا هنگامي که احراز هويت نشده اجازه انجام هيچ کاري را ندارد. احراز هويت سرويس دهنده و مشتري توسط کليد خصوصي آنها با فرمت X.509 انجام مي گيرد و براي رمز نگاري از استاندارد AES استفاده مي شود. تمام اطلاعات مبادله شده در حالت رمز شده انتقال مي يابد.
ویژگی های کیفیت نرم افزار
پس از امنيت مهمترين خصيصه لازم براي نرم افزار صحت(Correctness) است. نرم افزار نبايد در هيچ يک از مراحل اخذ راي و شمارش آرا خطايي داشته باشد. ويژگي مهم ديگر در دسترس بودن(Availability) نرم افزار است. چون ساعات راي گيري محدود است، نرم افزار بايد در اين ساعات همواره در دسترس باشد. همچنين نرم افزار بايد ديگر ويژگي هاي لازم يک نرم افزار خوب را تا حد ممکن دارا باشد.
نیازمندی های دیگر
نرم افزار سمت مشتري بايد قابليت بين المللي شدن را داشته باشد و بتوان زبان جديدي به آن اضافه کرد بدون اين که به کامپايل مجدد نيازي باشد. توجه شود که نيازي نيست که راي دهنده در زمان اجرا بتواند چنين کاري را انجام دهد بلکه تغيير يا اضافه کردن زبان توسط مدير سيستم انجام مي شود.