پروژه مهندسی نرم افزار رای گیری آنلاین
پروژه درس
نام استاد راهنمای پروژه:
موضوع پروژه: سيستم رای گیری آنلاین
روش تحلیل: UML
مجری پروژه: شماره دانشجوئي
دانشگاه– تابستان 88
فهرست مطالب . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . شماره صفحه
مقدمه........................................................................................................................... 6
هدف........................................................................................................................ 6
قواعد به کار رفته در اين نوشته.................................................................................... 6
مخاطبان اين نوشته..................................................................................................... 6
محدوده پروژه.......................................................................................................... 6
فصل اول: توضیحات کلی سیستم رای گیری آنلاین.............................................................. 7
توضيحات کلي............................................................................................................... 8
چشم انداز محصول.................................................................................................... 8
توابع محصول........................................................................................................... 8
طبقه بندي کاربران..................................................................................................... 9
محيط عملياتي......................................................................................................... 10
محدوديت طراحي و پياده سازي............................................................................... 10
مستندات کاربران..................................................................................................... 11
مفروضات و وابستگي ها............................................................................................. 11
نيازمندي هاي واسط هاي خارجي................................................................................. 11
واسط کاربر............................................................................................................. 11
واسط سخت افزاري................................................................................................. 13
واسط نرم افزاري..................................................................................................... 13
واسط ارتباطي......................................................................................................... 13
ديدگاه هاي سيستم....................................................................................................... 14
سيستم از ديد راي دهنده.......................................................................................... 14
سيستم از ديدگاه مدير سيستم..................................................................................... 16
نيازمندي هاي غير تابعي ديگر........................................................................................ 17
نيازمندي هاي کارايي.............................................................................................. 17
نيازمندي هاي ايمني................................................................................................ 18
نيازمندي هاي امنيتي................................................................................................ 18
ويژگي هاي کيفيت نرم افزار..................................................................................... 18
نيازمندي هاي ديگر...................................................................................................... 18
فصل دوم: شناسایی UseCase های سیستم رای گیری آنلاین.............................................. 19
Use case چیست؟....................................................................................................... 20
Actor چیست؟............................................................................................................ 21
دیاگرام use case چیست؟............................................................................................ 21
ارتباطات بین use case ها چگونه است؟.......................................................................... 21
شناسائی Actor های سیستم........................................................................................... 22
Actor کاربر........................................................................................................... 22
Actor مدیر وب سایت رای گیری آنلاین................................................................... 23
Actor رای دهنده.................................................................................................. 24
External Events Actor........................................................................................... 24
شناسائی Use Case ها.................................................................................................. 25
Use Case ثبت نام در سیستم (رای دهنده)............................................................... 26
سناریوی Use Case ثبت نام در سیستم (رای دهنده)............................................... 27
Use Case ورود به سیستم (کاربر).............................................................................. 28
سناریوی Use Case ورود به سیستم (کاربر)............................................................. 29
Use Case های مربوط به فعالیتهای مدیر وب سایت رای گیری آنلاین........................... 30
سناریوی Use Case ایجاد رای گیری جدید (مدیر وب سایت)................................. 31
سناریوی Use Case مشاهده نتیجه رای گیری (مدیر وب سایت)................................ 32
سناریوی Use Case بررسی عملکرد وب سایت (مدیر وب سایت).............................. 33
سناریوی Use Case صندوق پستی مدیر (مدیر وب سایت)........................................ 34
Use Case های مربوط به فعالیتهای رای دهندگان (پس از ورود به سیستم)..................... 35
سناریوی Use Case مشاهده و انتخاب رای گیریهای مجاز (رای دهنده).................... 36
سناریوی Use Case صندوق پستی رای دهنده (رای دهنده).................................... 37
سناریوی Use Case انجام رای دهی توسط رای دهنده (رای دهنده)....................... 38
Use Case Diagram کلی سیستم رای گیری آنلاین................................................... 39
فصل سوم: نمودار Class سیستم رای گیری آنلاین............................................................. 40
نمودار کلاس کلی سیستم رای گیری آنلاین.................................................................... 41
فصل چهار: نمودار های Sequence سیستم رای گیری آنلاین............................................. 42
نمودار Sequence ثبت نام رای دهنده در سیستم رای گیری آنلاین.................................. 43
نمودار Sequence ورود به سیستم در سیستم رای گیری آنلاین.......................................... 44
نمودار Sequence انتخاب رای گیری در سیستم رای گیری آنلاین.................................... 45
نمودار Sequence رای دهی در سیستم رای گیری آنلاین................................................ 46
نمودار Sequence ایجاد رای گیری جدید در سیستم رای گیری آنلاین............................. 47
نمودار Sequence بررسی روند کار در سیستم رای گیری آنلاین....................................... 48
نمودار Sequence صندوق پستی رای دهنده در سیستم رای گیری آنلاین.......................... 49
نمودار Sequence صندوق پستی مدیر در سیستم رای گیری آنلاین................................... 50
نمودار Sequence انتخاب رای گیریها در سیستم رای گیری آنلاین.................................... 51
نمودار Sequence مشاهده نتیجه رای گیریها در سیستم رای گیری آنلاین........................... 52
فصل پنج: نمودار های Collaboration سیستم رای گیری آنلاین....................................... 53
نمودار Collaboration انتخاب رای گیری مورد نظر در سیستم رای گیری آنلاین............... 54
نمودار Collaboration انجام رای گیری در سیستم رای گیری آنلاین............................... 55
نمودار Collaboration ایجاد رای گیری جدید در سیستم رای گیری آنلاین..................... 56
نمودار Collaboration بررسی عملکرد وب سایت در سیستم رای گیری آنلاین.................. 57
نمودار Collaboration ثبت نام در سیستم رای گیری آنلاین............................................ 58
نمودار Collaboration صندوق پستی رای دهنده در سیستم رای گیری آنلاین.................. 59
نمودار Collaboration صندوق پستی مدیر در سیستم رای گیری آنلاین............................ 60
نمودار Collaboration نمایش رای گیری ها در سیستم رای گیری آنلاین......................... 61
نمودار Collaboration نمایش نتیجه رای گیری در سیستم رای گیری آنلاین..................... 62
نمودار Collaboration ورود به سیستم در سیستم رای گیری آنلاین.................................. 63
فصل شش: طراحي معماري ، واسط و سطح مولّفه سیستم رای گیری آنلاین............................. 64
طراحي معماري و ساختار پيمانه اي................................................................................ 65
مراحل انجام طراحي معماري........................................................................................ 65
مجموعه بازنگريها و اصلاح............................................................................................. 67
گزارش پيمانه ها.......................................................................................................... 71
تنظيم ليست نامزدها و تنظيمات اوليه............................................................................... 71
احراز هويت کاربر....................................................................................................... 71
تمهيدات احراز هويت کاربر.......................................................................................... 72
ارسال نتيجه احراز هويت کاربر..................................................................................... 72
عدم تاييد هويت کاربر................................................................................................. 72
اثبات هويت سرور........................................................................................................ 73
تمهيدات اثبات هويت سرور.......................................................................................... 73
دريافت نتيجه تاييد هويت............................................................................................. 73
اعلام بروز اشکال هويت............................................................................................... 74
راي گيري.................................................................................................................. 76
ارسال اسامي نامزدها.................................................................................................... 76
دريافت نتيجه انتخاب نامزد............................................................................................ 76
ثبت نتيجه راي گيري................................................................................................... 76
ارائه آمار.................................................................................................................... 77
تنظيمات و رفع اشکال.................................................................................................. 77
رمز گذاري و رمز گشايي داده هاي ارسالي و دريافتي..................................................... 78
نرم افزار کاربر راي گيري الکترونيکي............................................................................. 79
مشتري راي گيري الکترونيکي........................................................................................ 81
برقراري ارتباط و Negotiation اوليه............................................................................. 81
احراز هويت کاربر و سرور............................................................................................ 81
فرآيند راي گيري........................................................................................................ 82
دريافت آمار آرا و خاتمه نشست.................................................................................... 82
رمز نگاري و رمز گشايي داده هاي ارسالي و دريافتي....................................................... 83
بروز اشکال.................................................................................................................. 83
تعريف واسط هر پيمانه.................................................................................................. 83
فصل هفت: نمودارهای Activity سیستم رای گیری آنلاین................................................... 86
نمودار Activity مشاهده رای گیریهای موجود............................................................... 87
نمودار Activity انتخاب رای گیری............................................................................... 88
نمودار Activity ایجاد رای گیری جدید....................................................................... 89
نمودار Activity بررسی وضعیت وب سایت.................................................................... 90
نمودار Activity ثبت نام وب سایت............................................................................... 91
نمودار Activity صندوق پستی مدیر.............................................................................. 92
نمودار Activity صندوق پستی رای دهنده..................................................................... 93
نمودار Activity مشاهده رای گیریها.............................................................................. 94
نمودار Activity مشاهده نتیجه رای گیری...................................................................... 95
نمودار Activity مشاهده نتیجه رای گیری...................................................................... 96
مقدمه
هدف
هدف از انجام اين پروژه ايجاد سيستمي است که بوسيله آن بتوان بر روي شبکه اينترنت (و يا شبکه هاي ديگر مانند LAN يا WAN) عمل راي گيري و شمارش را بصورت خودکار و بدون دخالت دست انجام داد.
اين سيستم مشتمل بر دو قسمت مشتري و سرويس دهنده است که راي دهندگان فقط سيستم مشتري را مي بينند. همچنين اين سيستم قادر به اخذ راي در مورد افراد، اشياء يا موضوعات مختلف خواهد بود.
قواعد به کار رفته در اين نوشته
در اين نوشته هر جا که احساس شده کلمه اي ابهام برانگيز است از معادل انگليسي آن استفاده شده است.
مخاطبان اين نوشته
مخاطبان اين نوشته توسعه دهندگان ، مديران سيستم و مسئوليين راي گيري هستند. اين نوشته براي راي دهندگان و کاربران عادي نوشته نشده و لزومي ندارد که اين دسته از کاربران از اين نوشته با خبر شوند.
محدوده پروژه
در حال حاظر توسعه اين پروژه به منظور اهداف تحقيقاتي انجام مي گيرد و استفاده تجاري از آن مد نظر نيست ، ولي استفاده از اين پروژه در دنياي واقعي نيز دور از انتظار نمي باشد و ممکن است در آينده نزديک از آن در راي گيري هاي واقعي نيز استفاده شود.
در دنياي به سرعت در حال توسعه امروز(که در آن اينترنت هر روز نقش بيشتري در زندگي انسانها پيدا مي کند) راه گريزي از نهادهاي الکترونيکي اجتماعي وجود ندارد. شهرهاي اينترنتي، شهروندان اينترنتي و دولت هاي الکترونيک و نهادهاي سياسي مختلف، همه و همه لزوم ايجاد سيستم هاي راي گيري الکترونيک را بيش از پيش مسجل مي کنند.
فصل اول: توضیحات کلی سیستم رای گیری آنلاین
توضيحات کلي
چشم انداز محصول
اين محصول يک محصول جديد است و ويرايش يا ويرايش هايي از آن قبلا توليد نشده است. شکل زير نمايي کلي از محصول را نشان مي دهد:
توابع محصول
محصول توليد شده بايد بتواند اعمال زير را انجام دهد(تشريح اين اعمال در بخشهاي بعد آمده است):
• سرويس دهنده بتواند کاربر را شناسايي و تاييد هويت(Authenticate) کند.
• نرم افزار مشتري سرويس دهنده را تاييد هويت کند.
• سرويس دهنده ليست اسامي نامزدها را به مشتري ارائه کند.
• کاربر راي خود را انتخاب و ارسال کند.
• سرويس دهنده به نحوي مشتري را از راي خود آگاه کند که راي دهنده از اعمال راي خود اطمينان حاصل کند(پياده سازي اين تابع الزامي نيست)
• آراي اخذ شده در پايگاه داده ثبت شود.
• هر فرد نبايد بيش از يک بار راي بدهد.
• ارائه گزارش از آراي اخذ شده در طول راي گيري و پس از خاتمه آن.
• توانايي تنظيم سيستم براي راي گيري از کانديداي جديد.
در ادامه نمودار جريان داده از سيستم ايجاد شده را مشاهده مي کنيد(شکل 2 و 3)
طبقه بندي کاربران
کاربران سيستم به دو گروه عمده تقسيم مي شوند:
i. کاربران عادي(راي دهندگان): اين دسته از کاربران افراد مختلف اجتماع را تشکيل مي دهند، ممکن است افراد تحصيل کرده و کار آزموده و يا افراد آموزش نديده و مبتدي باشند. در هر حال قسمت عمده کاربران ما در اين گروه جاي دارند، به همين دليل بايد به اين گروه توجه خاصي شود.
ii. مديران سيستم:افراد آموزش ديده اي هستند که تنظيمات(Setup) و گزارش گيري از سيستم را انجام مي دهند.
محيط عملياتي
نرم افزار سمت سرور مي تواند به يک(يا چند) پلت فرم خاص(مثلا تنها سيستم عامل ويندوز) محدود باشد ولي نرم افزار نوشته شده در سمت مشتري بايد بر روي اکثر پلت فرم هاي متداول موجود قابل اجرا باشد. همچنين نرم افزار سمت مشتري بايد با سيستم هاي موجود سازگاري داشته باشد و استفاده از نرم افزار مشتري نبايد به امکانات زيادي نياز داشته باشد. همچنين نرم افزار مشتري بايد تا حد ممکن کوچک باشد(حجم Download کم).
محدوديت طراحي و پياده سازي
• به علت اهميت بحث امنيت در اين پروژه، نبايد از پروتکل هاي شناخته شده موجود نظير SSL و HTTPS در انجام اين پروژه استفاده شود.
• راي دهندگان حتما بايد به وسيله کليد خصوصي خود که از مراکز توزيع کليد دريافت مي کنند و نه به وسيله اسم کاربري و رمز عبور شناسايي و احراز هويت شوند.
• کليد خصوصي بايد از طريق يک رسانه قابل حمل(CD، Floppy Disk يا Flash Memory) و نه از طريق شبکه انتقال يابد.
• نرم افزار سرور نبايد به نرم افزار نوشته شده سمت مشتري اعتماد کند، در صورت بروز هر گونه خطا بايد ارتباط قطع و راي باطل شود.
مستندات کاربران
نرم افزار مشتري بايد شامل راهنمايي باشد که کاربر در عرض يک يا دو دقيقه آن را مطالعه کرده و قادر به استفاده از سيستم باشد. نرم افزار سرويس دهنده شامل مستندات کاملي براي استفاده مديران خواهد بود. براي نگهداري و توسعه سيستم در آينده نيز مستندات طراحي و پياده سازي موجود خواهد بود.
مفروضات و وابستگي ها
نرم افزار نهايي توليد شده مي تواند از نرم افزار ها و کتابخانه هاي متن باز موجود استفاده کند. همچنين توسعه دهندگان مي توانند از هر گونه ابزار تجاري و متن باز براي توسعه استفاده کنند، ولي نرم افزار نهايي نبايد به هر گونه محصول تجاري که براي استفاده کننده منجر به پرداخت هزينه شود وابستگي داشته باشد.
در صورت وابستگي محصول نهايي به يک ابزار و يا محصولي که هزينه اي براي استفاده کنندگان در بر دارد بايد معادلي رايگان براي اين وابستگي وجود داشته باشد. به عبارت ديگر محصول نهايي بايد بتواند به نحوي بدون پرداخت هزينه اضافي براي نرم افزارهاي ديگر مورد استفاده قرار گيرد.
نيازمندي هاي واسط هاي خارجي
واسط کاربر
واسط کاربر در اين پروژه به دو بخش سمت مشتري و سمت سرور تقسيم مي شود
3-1-1-واسط کاربر در سمت مشتري:واسط کاربر در سمت مشتري بايد در حد امکان ساده باشد و نبايد کاربر با نوشته ها، دکمه ها و اشکال گوناگون گيج شود. واسط سمت مشتري بايد امکانات زير را در اختيار راي دهنده قرار دهد:
• کاربر بايد بتواند محل کليد خصوصي خود را(که در يک فايل قرار دارد) انتخاب کند و يا مقدار پيش فرض آن را تغيير دهد.
• کاربر بايد آراي خود را به راحتي انتخاب کند.
• واسط بايد ليست انتخاب شده را دوباره به کاربر نشان دهد تا او از انتخاب خود اطمينان حاصل کند.
• کاربر بايد پس از ارسال راي خود از آخرين نتايج با خبر شود.
همچنين واسط کاربر بايد اشتباهات کاربر را به گونه اي منطقي به او نشان دهد و يا از انجام اشتباهات جلوگيري کند. براي مثال هنگامي که کاربر امکان انتخاب يک گزينه را دارد، تنها بتواند يک گزينه را انتخاب کند و هنگامي که امکان انتخاب چند گزينه را دارد به او اجازه انتخاب چند گزينه داده شود.
همچنين توصيه مي شود مراحل انجام کار بصورت مرحله به مرحله(Wizard) به کاربر نشان داده شود.
نکته مهم ديگر در مورد واسط کاربر در سمت مشتري اين است که واسط بايد توانايي نشان دادن اسم نامزدها به همراه عکس آن ها و مشخصات ديگري از آنها را داشته باشد.
3-1-2-واسط کاربر در سمت سرويس دهنده:واسط کاربر در سمت سرويس دهنده بايد به صورت خط فرماني و نه به صورت گرافيکي باشد(در بسياري از سرويس دهنده ها محيط گرافيکي وجود ندارد). اين واسط بايد توانايي تعريف نامزدهاي انتخاباتي و تعيين مشخصات آن ها نظير نام، سوابق و عکس آن ها را فراهم کند. همچنين واسط بايد گزارشات لازم از قبيل تعداد کل آراي اخذ شده و درصد و تعداد آراي اخذ شده توسط هر نامزد را به شکلي مناسب و قابل درک(مثلا فايل HTML) در اختيار مديران قرار دهد.
واسط سخت افزاري
حداقل سخت افزار مورد نياز در سمت سرور يک دستگاه 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) نرم افزار است. چون ساعات راي گيري محدود است، نرم افزار بايد در اين ساعات همواره در دسترس باشد. همچنين نرم افزار بايد ديگر ويژگي هاي لازم يک نرم افزار خوب را تا حد ممکن دارا باشد.
نيازمندي هاي ديگر
نرم افزار سمت مشتري بايد قابليت بين المللي شدن را داشته باشد و بتوان زبان جديدي به آن اضافه کرد بدون اين که به کامپايل مجدد نيازي باشد. توجه شود که نيازي نيست که راي دهنده در زمان اجرا بتواند چنين کاري را انجام دهد بلکه تغيير يا اضافه کردن زبان توسط مدير سيستم انجام مي شود.
فصل دوم: شناسایی UseCase های سیستم رای گیری آنلاین
در این فصل به بررسی و شناخت Use Case ها ، Actor ها ، رسم Use Case Diagram ها و در نهایت نوشتن سناریویی برای هر یک از Use Case Diagram ها خواهیم پرداخت. در ابتدا بایستی بدانی که مفاهیم هر یک از عبارات فوق چیست؟
Use case چیست؟
Use Case ها که در فاز آنالیز پروژه برای شناساسیی و تقسیم بندی فعالیت های سیستم استفاده می شوند و می تونند به عنوان سرویس ها یا کارکردهایی که سیستم برای کاربران خودش فراهم می کنه نیز توصیف بشوند.
دو دیدگاه وجود دارد: یکی داخلی , دید ساختاری و دیگری خارجی و دید وظیفه گرایی(task Oriented)
در دیدگاه اول ما باید کلاسها و متدها را تعریف کنیم و سپس واسطهای کاربری (user interface)را تعریف کنیم. مشکل اینجاست که برای کاربر مهمترین چیز رفتار سیستم است ولی واسطهای کاربری تنها قسمت آخر فرآیند را تعریف می کنند. و این مارو به سمت مشکلاتی می بره نظیر اینکه سیستم تمام کارکردهایی که ما می خواهیم در اختیارمون قرار نمی ده و یا کارکردهایی رو داره که مورد نیاز ما نبوده.
در دید دوم ،سیستم از Actor ها و فعالیتها و کلاسهایی که به فعالیتها وصل شده اند پشتیبانی می کند.در این دیدگاه هیچ کار ناخواسته ای وجود ندارد و سیستم تمام فعالیتهای کاربر را پشتیبانی می کند که همه آنها در Use case Diagram نمایش داده می شود.
Actor چیست؟
Actor هـا نقشـهایـی را ارائـه مـی دهـنـد کـه تـوســط کـاربــران سیــــسـتمـــهای اطـلاعـاتی (Information System=IS) انجام می شود. این Actor ها می توانند انسانها ,کامپیوترها , سخت افزارها و حتی نرم افزار ها باشند. تنها چیزی که آنها را Actor می کند این است که آنها باید بیرون از قسمتی باشند که توسط سیستم به use case ها تقسیم شده است ویکسری ورودی برای سیستمهای اطلاعاتی فراهم می کنند و یکسری از آنها خروجی می گیرند.
دیاگرام use case چیست؟
دیاگرامهای use case با استفاده از Use case و Actor عملکرد (Functionality) سیستم رامدلسازی می کنند.
ارتباطات بین use case ها چگونه است؟
ارتباط بین use case ها یا به صورت Extends است و یا به صورت Uses .Uses دلالت بر این دارد که یک use case برای انجام وظیفه و فعالیتش نیازمند use case دیگری است. Extends دلالت بر این دارد که use case ی یک امکان و گزینه اختیاری برای use case دیگر است که در بعضی شرایط از آن استفاده می کند.
شناسائی Actor های سیستم
Actor ها در حقیقت مکانیسمی برای طبقه بندی External User ها هستند. Actor ها می توانند در چهار گروه User ، Applications ، Devices و External Events باشند. در سیستم جاری با دو نوع اکتور سرو کار داریم:
Actor کاربر
Actor External Events
Actor کاربر
کاربران سیستم در حالت کلی شامل Actor مدیر وب سایت رای گیری آنلاین و Actor رای دهنده می باشند.
Actor مدیر وب سایت رای گیری آنلاین و Actor رای دهنده ، با رابطه Generalization با Actor کاربر ارتباط دارند و تمامی خواص Actor کاربر را دارا هستند. در حالت کلی ، کاربر به استفاده کننده سیستم رای گیری آنلاین گفته می شود که سایر تعاریف Actor های سیستم از آن مشتق می شود. (ارث بری دارند)
مفهوم ارث بری در نمودار فوق بدین معنی است که در حالت کلی Actor کاربر دارای یک سری اطلاعات اعم از اطلاعات تماس ، اطلاعات شناسنامه ای و . . . می باشد که می توان در تعریف Actor ها آنها را در کلاس کلی تعریف نمود و در تعریف سایر خواص مربوط به Actor ها موارد تکراری را از کلاس اصلی مشتق گرفت.
Actor مدیر وب سایت رای گیری آنلاین
شرح: مدیرسیستم رای گیری آنلاین کسی است که بر روند کار وب سایت نظارت می نماید. نرم افزار را بروز رسانی می کند و مجوزهای کاربری برای کاربران صادر می نماید. به تعریفی مدیریت سیستم ، شخصی است كه وظیفه كنترل وب سایت و صحت عملکرد آن را نیز برعهده دارد و می تواند به تمامی بخشهای وب سایت و گزارشات آن دسترسی داشته باشد و رای گیریهای جدید ایجاد نماید.
Actorرای دهنده
شرح: رای دهدگان کسانی هستند که برای شرکت در انتخابات در وب سایت ثبت نام نموده و عملیات انتخابات را انجام می دهند. این دسته از کاربران فقط حق مشاهده رای گیریها و انتخاب یک رای گیری و انجام عملیات رای گیری را دارند و به سایر بخشها دسترسی ندارند.
External Events Actor
این گونه Actor ها به صورت Periodic با سیستم محاوره دارند. در سیستم جاری یک Timer برای ثبت ونگهداری زمان شروع و پایان استفاده کاربران سیستم (تمامی اکتورها) وب سایت تعبیه گردیده است.
سایر External Events Actor در هنگام نیاز بررسی خواهند شد.
شناسائی Use Case ها
Functionality های زیر به درخواست مشتری پس از چند مرحله مصاحبه شناسایی و استخراج گردیده است:
1- ثبت نام (رای دهنده)
2- ورود به سیستم (کاربر)
3- ایجاد رای گیری جدید (مدیر وب سایت)
4- مشاهده نتیجه رای گیری (مدیر وب سایت)
5- بررسی عملکرد وب سایت (مدیر وب سایت)
6- صندوق پستی مدیر (مدیر وب سایت)
7- مشاهده رای گیریهای مجاز (رای دهنده)
8- انتخاب رای گیری (رای دهنده)
9- انجام رای گیری (رای دهنده)
10-صندوق پستی رای دهنده (رای دهنده)
در ادامه به بررسی سناریوی هر یک از این Use Case ها و عملیات مربوط به آنها می پردازیم.
Use Case ثبت نام در سیستم (رای دهنده)
سناریوی Use Case ثبت نام در سیستم (رای دهنده)
سناریوی شماره 1
سیستم رای گیری آنلاین
نام: ثبت نام در سیستم (Sign Up)
Actor: رای دهنده
شرح سناریو: در این سناریو ، کاربر پس از فشردن کلید ثبت نام به بخش ورود اطلاعات وارد شده و پس از وارد نمودن اطلاعات کاربری مراحل ثبت نام خاتمه می پذیر.
Assumption: منظور از کاربر در این Use Case رای دهندگان سیستم هستند که به منظور شرکت در انتخابات تصمیم به ثبت نام گرفته اند.
Include: Sign In
Extended: Sign In
(Pre-Condition): رای دهنده برای ثبت نام به بخش ثبت نام مراجعه می نماید.
مراحل:
Actor
System
1- رای دهنده درخواست ثبت نام از سیستم را می نماید.
2- سیستم فرم مربوط به ورود اطلاعات ثبت نام کاربر را نمایش می دهد.
3- رای دهنده اطلاعات درخواستی را وارد می نماید. (اعم از اطلاعات شناسنامه ای ، اطلاعات تماس و . . .) و کلید ثبت نام را فشار می دهد.
4- سیستم پیغامی مبنی بر تائید و خاتمه عملیات ثبت نام به رای دهنده نمایش می دهد.
5- رای دهنده پس از مشاهده تائیدیه ثبت نام ، با ورود نام کاربری و کلمه عبور وارد سیستم می گردد.
6- در صورتی که رای دهنده برای اولین بار است که وارد سیستم می شود ، سیستم به کاربر پیغام خوش آمد گویی می دهد.
7- نام کاربری و کلمه عبور به رای دهنده نمایش داده می شود.
Constraints: پس از ورود نام کاربری برای ثبت نام در صورتی که نام وارد شده قبلا ثبت شده باشد به رای دهنده پیغام مناسبی مبنی بر انتخاب نام کاربری دیگر نمایش داده خواهد شد.
Post-Condition: رای دهنده ثبت نامی پس از مشاهده تائید ثبت نام خود ، می توانند وارد سیستم شده و اقدام به رای دهی نمایند.
Exception: رای دهنده هم می تواند به عنوان مراجعه کننده عادی از وب سایت استفاده نماید و هم اینکه می تواند به عنوان یک رای دهنده ثبت نام شده اقدام به شرکت در انتخابات نماید. (بتواند رای دهد)
مطالب مشابه :
نوع نرم افزار و مدل فرآیندی
برای هر یک از فعالیت های مهندسی نرم افزار می را با اعمال یک روش مبتنی بر سناریو
سناریو نویسی
تصمیم دارم اندوخته های خود را که ظرف مدت ربع قرن گذشته در حوزه مهندسی نرم افزار و سیستم و
دانلود پروژه مهندسی نرم افزار (سیستم مدیریت کنفرانس)
سناریو. رشنال رز Asp » دانلود پروژه مهندسی نرم افزار (سیستم مدیریت کنفرانس) ( دوشنبه ۲۸
تست نرم افزار (قسمت 2)
دوست خوبمان آقای نوبر لطف کردند و نواقصی را که در قسمت اول تست نرم افزار بود کاملتر کردند که
دانلود رایگان پروژه مهندسی نرم افزار سیستم داروخانه
دانلود رایگان پروژه مهندسی نرم افزار نرم افزار کامل سناریو + فایل رشنال رز
پروژه مهندسی نرم افزار - تجزیه وتحلیل آژانس هواپیمایی
پروژه مهندسی نرم افزار. تجزیه وتحلیل آژانس هواپیمایی. توضیح : هدف از طراحی این پروژه این است
پروژه مهندسی نرم افزار رای گیری آنلاین
شرح سناریو: برچسبها: پروژه یو ام ال, دانلود پروژه مهندسی نرم افزار
برچسب :
سناریو مهندسی نرم افزار