پروژه مهندسی نرم افزار سیستم دبستان بخش دوم
ویژگیهای UML
UML دارای ویژگیهای بارز فراوانی است که در این قسمت به آنها میپردازیم. UML یک زبان مدلسازی است اما چیزی فراتر از چند نماد گرافیکی است. بطوریکه در ورای این نمادها، یک سمانتیک (معناشناسی) قوی وجود دارد، بطوریکه یک تولیدکننده میتواند مدلهایی تولید کند که تولیدکنندههای دیگر و یا حتی یک ماشین آن را بخواند و بفهمد. بنابراین یکی دیگر از نقشهای مهم UML "تسهیل ارتباط" بین اعضای پروژه و یا بین تولیدکنندگان مختلف میباشد. این ارتباط بسیار مهم است. شاید دلیل اصلی اینکه تولید نرمافزار به صورت فریبندهای دشوار است، همین عدم ارتباط مناسب بین اعضای پروژه باشد و اگر در تولید نرمافزار، بین اعضای پروژه گزارشهای هفتگی و مداوم وجود داشته باشد، بسیاری از این دشواریها برطرف خواهد شد.
البته این را هم باید در نظر گرفت که UML کمی پیچیده است و این به خاطر آن است که سعی شده است نمودارهایی فراهم شود که در هر موقعیتی و با هر ترتیبی قابل استفاده باشند. دلیل دیگر پیچیدگی از آنجا ناشی میشود که UML ترکیبی است از زبانهای مختلف، که برای حفظ سازگاری و جمع کردن خصوصیات مثبت آنها، ناگزیر از پذیرش این پیچیدگی میباشد.
UML موفقیت طرح را تضمین نمیکند، اما در عین حال خیلی چیزها را بهبود میبخشد. به عنوان مثال استفاده از UML، تا حد زیادی، هزینههای ثابتی نظیر آموزش و استفاده مجدد از ابزارها را در هنگام ایجاد تغییر در سازمان و طرحها کاهش میدهد.
مساله دیگر اینکه، UML یک زبان برنامهنویسی بصری (visual) نیست، اما مدلهای آن را میتوان مستقیماً به انواع زبانهای مختلف ارتباط داد. یعنی امکان نگاشت از مدلهای UML به کد زبانهای برنامهنویسی مثل Java و VC++ وجود دارد که به این عمل "مهندسی روبهجلو" میگویند. عکس این عمل نیز ممکن است؛ یعنی این امکان وجود دارد که شما بتوانید از کد یک برنامه زبانی شیگرا، مدلهای UML معادل آن را بدست آورید. به این عمل "مهندسی معکوس" میگویند. مهندسی روبهجلو و معکوس از مهمترین قابلیتهای UML به شمار میروند، البته نیاز به ابزار Case مناسبی دارید که از این مفاهیم پشتیبانیکنند.
اگر با زبانهای مدلسازی دیگر کار کرده باشید، برای کار با UML مشکل چندانی نخواهید داشت. اما برای شروع کار با UML به عنوان اولین زبان مدلسازی، بهتر است فقط با نمودارهای خاصی کار کنید. برای این کار بهتر است ابتدا با نمودارهای مورد کاربرد و تعامل کار کنید و پس از مدتی کار و آشنا شدن با ویژگیهای اولیة آن، به یادگیری و استفاده از نمودارها واجزای دیگر بپردازید. در مقایسه با زبانهای مدلسازی دیگر مثلER و زبان فلوچارتی DR، زبان UML نمودارهای قویتر و قابلفهمتری را ارائه میدهدکه شامل تمامی مراحل چرخة حیات تولید نرمافزار (تحلیل، طراحی، پیادهسازی و تست) میشود.
یکی دیگر از ویژگیهای مهم UML این است که مستقل از متدولوژی یا فرایند تولید نرمافزار میباشد و این بدان معنی است که شما برای استفاده از UML، نیاز به استفاده از یک متدولوژی خاص ندارید و میتوانید طبق متدولوژیهای قبلی خود عمل کنید با این تفاوت که مدلهایتان را با UML نمایش میدهید. البته مستقلبودن از متدولوژی و فرایند تولید، یک مزیت برای UML میباشد؛ زیرا بسیاری از انواع پروژهها و سیستمها نیاز به متدولوژی خاص خود دارند. اگر UML در پی پیاده کردن همة اینها بر میآمد، یا بسیار پیچیده میشد و یا استفاده خود را محدود میکرد. البته متدولوژیهایی براساس UML در حال شکلگیری میباشند.
از دیگر ویژگیهای UML میتوان به پشتیبانی از مفاهیم سطح بالای شیگرایی مثل Collaboration، Framework، Pattern و Component اشاره کرد. همچنین UML با استفاده از یک سری مکانیزمهای گسترشپذیر امکان میدهد که بتوان زبانهای مدلسازی جدیدتری (با گسترش مفاهیم پایهای موجود) ایجادکرد.
در ادامه به بررسی و تحلیل سیستم دبستان خواهیم پرداخت.
Use Case Diagrams
در این فصل به بررسی و شناخت Use Case ها ، Actor ها ، رسم Use Case Diagram ها و در نهایت نوشتن سناریویی برای هر یک از Use Case Diagram ها خواهیم پرداخت.
موضوع پروژه
موضوع پروژه جاری پیاده سازی یک وب سایت آنلاین به عنوان دبستان می باشد.
1-2- Use case چیست؟
Use Case ها که در فاز آنالیز پروژه برای شناساسیی و تقسیم بندی فعالیت های سیستم استفاده می شوند و می تونند به عنوان سرویس ها یا کارکردهایی که سیستم برای کاربران خودش فراهم می کنه نیز توصیف بشوند.
دو دیدگاه وجود دارد: یکی داخلی , دید ساختاری و دیگری خارجی و دید وظیفه گرایی(task Oriented)
در دیدگاه اول ما باید کلاسها و متدها را تعریف کنیم و سپس واسطهای کاربری (user interface)را تعریف کنیم. مشکل اینجاست که برای کاربر مهمترین چیز رفتار سیستم است ولی واسطهای کاربری تنها قسمت آخر فرآیند را تعریف می کنند. و این مارو به سمت مشکلاتی می بره نظیر اینکه سیستم تمام کارکردهایی که ما می خواهیم در اختیارمون قرار نمی ده و یا کارکردهایی رو داره که مورد نیاز ما نبوده. در دید دوم ،سیستم از Actor ها و فعالیتها و کلاسهایی که به فعالیتها وصل شده اند پشتیبانی می کند.در این دیدگاه هیچ کار ناخواسته ای وجود ندارد و سیستم تمام فعالیتهای کاربر را پشتیبانی می کند که همه آنها در Use case Diagram نمایش داده می شود.
1-3- Actor چیست؟
Actor هـا نقشـهایـی را ارائـه مـی دهـنـد کـه تـوســط کـاربــران سیــــسـتمـــهای اطـلاعـاتی (Information System=IS) انجام می شود. این Actor ها می توانند انسانها ,کامپیوترها , سخت افزارها و حتی نرم افزار ها باشند. تنها چیزی که آنها را Actor می کند این است که آنها باید بیرون از قسمتی باشند که توسط سیستم به use case ها تقسیم شده است ویکسری ورودی برای سیستمهای اطلاعاتی فراهم می کنند و یکسری از آنها خروجی می گیرند.
1-4- دیاگرام use case چیست؟
دیاگرامهای use case با استفاده از Use case و Actor عملکرد (Functionality) سیستم رامدلسازی می کنند.
1-5- ارتباطات بین use case ها چگونه است؟
ارتباط بین use case ها یا به صورت Extends است و یا به صورت Uses .Uses دلالت بر این دارد که یک use case برای انجام وظیفه و فعالیتش نیازمند use case دیگری است. Extends دلالت بر این دارد که use case ی یک امکان و گزینه اختیاری برای use case دیگر است که در بعضی شرایط از آن استفاده می کند.