تجزیه و تحلیل و مدلسازی سیستم
DESCRIPTION
تجزیه و تحلیل و مدلسازی سیستم. استاد : مهسا رضایی. فصل 1. مهندسی نرم افزار : ایجاد روندی سیستماتیک ، منظم و قابل اندازه گیری برای تولید و نگهداری نرم افزار را وظیفه ی علم مهندسی نرم افزار می دانیم. - PowerPoint PPT PresentationTRANSCRIPT
تجزیه و تحلیل و مدلسازی سیستم
استاد : مهسا رضایی
1فصل
:مهندسی نرم افزار
ایج اد رون دی سیس تماتیک ، منظم و قاب ل ان دازه گ یری ب رای تولی د و اف زار می ن رم مهندس ی علم وظیف ه ی را اف زار ن رم نگه داری
دانیم.
مهندس ي ن رم اف زار، ش اخه اي اس ت از مهندس ي، ك ه ب ا به ره گ يري از دانِش< علمي ، ب ه ا رائ ه ي را ه ح ل ه ايي مق رو ن ب ه ص رفه، د ر و مس ائ ل ح ل م نظ ور و ب ه اف زا ري دس تاور دهاي ن رم ق ا لِب<
عملي و خ دمت ب ه جامع ه ي بش ري، اق دام مي نمايد.مش كالت
سه معیار مهم :
. کیفیت نرم افزاری که 3. هزینه 2. زمان 1می خواهیم تولید کنیم.
تعریف نرم افزار :
مجموعه ای از برنامه های کامپیوتری ، روال ها ، قوانین ، مستندات و داده ها را نرم افزار می گوییم.
مسائل و مشکالت نرم افزار در دنیای کنونی:
. قابلیت اطمینان نرم افزار : بدان معنا که نرم افزار به درستی 1اجرا شود.
. هزینه ی نرم افزار : هدف: کاهِش هزینه ی خرید نرم افزار با 2حفظ کیفیت .
. اعمال تغییرات و دوباره کاری3
انواع نرم افزار :
. غیر چکشخوار 2. چکشخوار ) قابل اعمال تغییرات ( 1) غیرقابل تغییر (
هدف مهندسی نرم افزار :
تولید سیستم به گونه ای که دوباره کاری و تغییر حداقل شود.
در نظر گرفتن تولید نرم افزار به صورت یک روند:
تولید نرم افزار از مجموعه ای از فعالیتها ساخته می شود.. 2. زمان 1در تولید یک نرم افزار دارای محدودیتهایی هستیم :
. محدودیتهای تکنیکی3هزینه در تولید نرم افزار هدف ساخت یک نرم افزار با کیفیت باال و هزینه
کم می باشد.تولید نرم افزار یک روال و یا روندی است که از مجموعه ای از
کارها تشکیل شده است.
ویژگی های روال های تولید نرم افزار :
. 4. زمان 3. هزینه 2. کیفیت 1. قابل پیِش بینی بودن : 1پیِش بینی ارتباط بین فعالیتها )اولویت در ترتیِب انجام مراحل(
. هر روال یا روند تولید باید قابل تست باشد .2. امکان روال های تولید جهت حذف سریع خطاها و جلوگیری از 3
به وجود آمدن خطاها. اصالح روال تولید4
Software as aویژگی های یک نرم افزا ر به صورت یک محصول: product
. نرم افزار یک محصول مهندسی است و با اصول مهندسی باید تولید 1شود.
. نرم افزار یک محصول قابل تغییر یا چکشخوار است.2. نرم افزار به دلیل اینکه محصولی فیزیکی نیست ، خراب یا مستهلک 3
نمی شود. اما در عمل به دلیل اعمال تغییرات مداوم شاید دیگر قابل استفاده نبوده و می بایست نرم افزار دیگری جای آن را بگیرد.
h به 4 . نرم افزار برخالف بسیاری از محصوالت مهندسی دیگر ، قالباصورت سفارشی ساخته می شود و از اجزای آماده در آن کمتر استفاده
می شود که یکی از اهداف مهندسی نرم افزار ، افزایِش استفاده از قطعات نرم افزاری آماده است.
Why Softwareدالیل استفاده از مهندسی نرم افزار در پروژه های مهندسی : Engineering?
مهندسی نرم افزار نقِش اساسی در باال بردن کیفیت نرم افزار و کاهِش هزینه ها دارد.
The influencing role ofنقِش مهندسی نرم افزار در پروژه های مهندسی : Software Engineering
. کاهِش وابستگی به افراد متخصص به صورت خاص1. باالبردن کیفیت ارتباطات تیمی2. تخمین مناسِب شامل تخمین زمان و هزینه 3. مدیریت تغییرات 4. کنترل زمان انجام پروژه ها5. برقراری ارتباط و درک متقابل از نرم افزار بین تولید کنندگان، کاربران 6
و مدیران. انجام و ارائه ی آموزش های مناسِب 7. انجام پیِش بینی های الزم جهت مواجهه با افزایِش توقع کاربران8
Software Engineering Goalsاهداف مهندسی نرم افزار :
- تطبیق نرم افزار با نیازمندیها 1. باال بردن کیفیت : 1- جوابگویی نیازهای کار بران2 - فارغ از خطا بودن یا کم خطا بودن و کارآیی 3
باالی نرم افزار * نرم افزار با کیفیت مناسِب نرم افزاری است که هم نیازهای صریح و
هم نیازهای ذهنی ما را رفع نماید. هر چقدر نرم افزار از منابع کمتری استفاده کند ، کارآیی باالتری دارد.
. قابل دسترسی باشد.2. اهداف متناقض باید بصورت تعادل درآیند.3
مهندس نرم افزار فردی است که قواعد و اصول علم مهندسی نرم افزار را در روند ایجاد یک نرم افزار یا در حین تولید یک پروژه ی نرم افزار ی
استفاده می کند.
ویژگی های یک مهندس نرم افزار ایده آل:. یک برنامه نویس خوب باشد.1. با روش های مختلف طراحی آشنایی داشته باشد.2. امکان ترجمه و تبدیل نیازهای کاربران 3. قابلیت ارتباط با طیف مختلف کاربران و مدیران 4. دارا بودن قابلیت باالی مدیریتی5
2فصل
Software Development Processes
روال های تولید نرم افزار :
ویژگیهای روال های تولید نرم افزار :. هر روال از یک سری فازهای متنوع ساخته شده 1
است.. هر فاز با یک خروجی مشخص خاتمه پیدا می 2
کند. ) وقتی فاز تمام شد، نتیجه ی آن یک محصول است . مثل : گزارش ، برنامه ، ... (
. فازهای تولید نرم افزار در روال های مختلف با 3ترتیِب و توالی مختلف انجام می شود.
چرا روال تولید به صورت فازبندی یا مرحله بندی شده است؟ . هر فاز یا مرحله نگرشی متفاوت به نرم افزار ارائه می دهد.1. شکستن یک مسئله ی بزرگ به مساائل کوچکتر باعث آسان تر 2
شدن حل مسئله می شود.. ارتقاء کیفیت نرم افزار با فازبندی به دلیل کنترل کیفیت در 3
حین تولید آن انجام می شود.. فازبندی شدن تولید نرم افزار باعث کاهِش هزینه ی تولید می 4
شود. کیفیت باال می رود ، هزینه ی نگهداری کاهِش می یابد. اشکاالت هر مرحله یا هر فاز قابل بازبینی هستند و در هر فاز افراد متخصص به آن فاز، روی آن کار می کنند و کار با کیفیت
باالتری انجام می شود.
فازها یا مراحل تولید نرم افزار :. تعیین یا مشخص کردن نیازمندی ها و ارئه ی آن در ی فاز قابل 1
فهم.. تعیین اینکه کار چطور باید انجام شود تا کیفیت باال رود. برای 2
اینکه کدام راه ، راه مناسِب تری برای انجام نیازمندی ها ست.
. ارائه ی راهکاری برای پیاده سازی برنامه ای که قبال نیازهای آن 3را شناخته ایم. اینکه نیازمند چه اجزایی هستیم و هر جزء باید در کجا
قرار بگیرد و چگونه به اجزای دیگر متصل شود.به عنوان مثال در یک طراحی به گونه ی ساخت یافته )مثل زمانی
برنامه ای را می نویسیم.( باید مشخص شود چه ماژول Cکه با زبان ها یا فانکشن هایی دارد و فانکشن ها چگونه در کنار هم قرار می
گیرند.4 .Implementation) پیاده سازی یا همان کد نویسی ( 5 .Testing: 1 : تست کد نوشته شده -unit :تست یا واحد
هاfunctionکوچکترین عناصر برنامه ، تست ماژول ها یا 2 -system : قسمتهای
مختلف سیستم را به هم متصل کرده و تست می کنیم . به این نوع تست ، تست آلفا گفته می شود. تستی که در گروه تولید کننده ی
نرم افزار به مجتمع برای کل برنامه انجام میشود.
3 -acceptance تست تجاری : systemیا تست بتا. تست قابل قبول بودن پس از تست شرکت یا به برخی از مشتریان حرفه ای برای تست داده می شود.
6 .Conversion یا انتقال : تحویل به مشتری و بردن محصول به محیط کاری واقعی و راه اندازی آن در محیط واقعی
: parallel strategy- استراتژی موازی conversion : 1روشهای کار کردن همزمان نرم افزار با نسخه های قبلی برای سیستم هایی
که اهمیت باالیی دارند و در صورت ایجاد مشکل، مشکل بزرگ و غیرقابل جبران باشد.
اینکه : Direct Cutover- قطع ناگهانی 2 تصمیم گرفته شود نرم افزار قبلی از امروز کنار گذاشته شود و نرم
افزار جدید مورد استفاده قرار گیرد. ) پس از اطمینان صحت عملکرد )
: Pilot Study- راه اندازی نمونه ای 3 نرم افزار را مثال برای دو کاربر خاص نوشته و برا ی تست مورد
استفاده قرار می دهیم. : Phased- راه اندازی فاز بندی شده 4
محصول را مرحله به مرحله راه اندازی می کنیم. : اگر نرم افزار maintenance. مرحله ی نگهداری یا پشتیبانی 7
h به سازنده مراجعه شده و بررسی می مشکالتی داشته باشد ، مجدداشود.
3فصل
روال های اصلی و روال های جانبی تولید نرم افزار :. مدیریت پروژه : جزء کارهای اصلی نیست ولی پروژه حتما 1
باید مدیریت شود.. روال مدیریت تغییرات : مدیریت پیکربندی هدف: ایجاد یک 2
روال که تغییرات به صورت منظم و مدون باشد.. روال مدیریت خود روند تولید: خود روندهای تولید نیز ممکن 3
است در سیر زمان نیازمند تغییر باشند و باید هر جای آن را که ایراد داشت عوض یا اصالح کنیم.
خط تولید فرعی دارد.3* هر نرم افزار یک خط تولید اصلی و
هر نرم افزار دارای یک : Business Modelsمدل تجاری سری قواعد و اصول است. به قواعد و قوانینی که سیستم در
حالت فعلی دارد، مدل تجاری می گویند.
Environment : نیازمندیهای محیطی جهت اجرا یا پیاده سازی نرم افزار تولید شده ، مثل
نیازمندی های سخت افزاری و تعیین کاربرانی که قرار است با آنها کار کند.Process Models: روال های تولید نرم افزار
: وقتی تغییری انجام liner process model. روال های تولید خطی 1دادیم و طراحی کردیم دیگر قادر به بازگشت به مرحله ی قبل و تغییر در
آن نیستیم.waterfall model- روال آبشاری 1.1
1.2- prototyping
. روال های تولید آزمایشی یا تکراری :2- روال افزایشی2.1 - روال مارپیچی 2.2 - روال معرفی گرا2.3
روال های تولید یک نرم افزار سبک : .XPروال هایی که در حین تولید مستندات زیادی تولید نمی کنند مثل
روال های تولید یک نرم افزار سنگین : روال هایی که در حین تولیدشان حجم زیادی از مستندات تولید می شود .
در روال های تولید نرم افزار به صورت خطی دو روال نقِش عمده دارند:
. مدل آبشاری 1.1: ( Sequential. روال خطی )1waterfall
. مدل اجرایی 1.2 prototype
: فرایند تولید یک Iterative. آزمایشی یا چرخشی 2سویه یا خطی نیست بلکه یک فرایند چرخشی است.
اولین روال تولید )روال آبشاری(:
. شناخت وضع موجود و نیازمندیها1
. طراحی 2
. مرحله ی برنامه سازی 3
اشکاالت روال آبشاری:
. در صورت وجود ایراد، قادر به بازگشت و اصالح 1نیستیم.
. اگر نیازمندیها در محیط تغییر بکنند، قادر به تغییر و 2اصالح تغییرات نیستیم. تحلیل شده، به فاز طراحی رفته ، ولی نیازمندیها عوض شده یا بیشتر شده اند.
. کاربر تا انتهای کار، نسخه ای اجرایی نمی بینید. کاربر 3برای دیدن یک کد باید تا انتهای کار منتظر بماند چون
تا برنامه تست نشود، تحویل کاربر نمی شود.
Prototype اصالح شده ی ، waterfall.است
وسط کار، نسخه ای اجرایی برای تست prototypeدر تحویل کاربر می شود و طبق نیازهای کاربر، بقیه ی
کار انجام می شود.
:iterativeروال چرخشی یا
: روش خوبی است. incremental. افزایشی 1مناسِب پروژه های سبک است.
: روال سنگینspiral. مارپیچی 2
component base. مؤلفه گرا 3
4 .RUPروال سنگین
5 .XPروال سبک
مزایای روش های تولید چرخشی:
. امکان اعمال تغییرات در نیازمندیها1
. اتصال قطعات مختلف نرم افزار به صورت 2
. کاهِش ریسک3
. امکان یادگیری و آموزش نرم افزار به صورت مرحله 4ای
. باال بردن کیفیت محصول )چون در مراحل مختلف 5خطاها گرفته نمی شوند.(
)مارپیچی(:Spiralمدل
در م دل م ارپیچی فراین د تولی د ن رم اف زار ب ه تع دادی ناحی ه تقس یم می ش ود ک ه این تع داد و ش رح وظ ایفی ک ه در ه ر ناحی ه از آنه ا انج ام می ش ود ، ب ه عه ده ی
h ن واحی بین 6 ت ا 3م دیر پ روژه می باش د. ام ا معم وال h ناحی ه تعری ف می ش وند. در چرخ ه ه ای درونی ، معم والتمرک ز بیش تر ب ر روی ش ناخت و تحلی ل نیازمندیهاس ت و برنام ه روی ب ر بیش تر تمرک ز ب یرونی ه ای در چرخ ه
سازی و تست است.
:Component baseمدل مؤلفه گرا یا
مدل مؤلفه گرا یک تکه نرم افزار تولید شده ی قابل اجراست.
ویژگیها:
ه ای component. در این تفک ر تأیی د ب ر اس تفاده از 1از قب ل آم اده اس ت. اگ ر ب رای قس متی از ن رم اف زار ،
component نوش ته ش ده توس ط ، چ ه این آم اده خودم ان و چ ه در ب ازار ن رم اف زار پی دا نش د، اق دام ب ه
جدی د می ک نیم. ام ا ب ا این تفک ر componentتولی د ب ه ص ورت ج امع و ک املی تولی د componentک ه آن
اس تفاده قاب ل ن یز بع دی ه ای پ روژه ب رای ک ه ش ود باشد.
الگوی انتخاب روال تولید:
مواردی که در الگوی انتخاب روال تولید می تواند مؤثر باشد ، عبارتند از:
. سایز و پیچیدگی پروژه1
. تجربه ی تیم پروژه از لحاظ قابلیت های فنی و 2آشنایی با حیطه ی مورد نظر
. زمان و هزینه ی در اختیار3
:process tailoringسفارشی کردن روند
روال های تولید قالِب کلی روند انجام کار را برای ما مشخص می کند. اما انتخاب جزئیاتی از قبیل ساختار مستندات ، نحوه ی طراحی ، نحوه ی برنامه سازی
و ... به صورت کامل در آنها تعریف نمی شود.
منظ ور از سفارش ی ک ردن رون د تولی د تع یین کلی دی ، تحلی ل ی نح وه ، مس تندات س اختار ش امل ، نک ات
نحوه ی طراحی و .. می باشد.
افت د. اتف اق می در دو س طح این سفارش ی ک ردن .micro و macroسطح
مرب وط ب ه ی ک گ روه ی ا ش رکت تولی د macro س طح کنن ده ی ن رم اف زار ب وده و در آن کلی ه ی اس تانداردهای
مورد نظر آن گروه یا شرکت تعریف می شود.
ب ا توج ه ب ه micro س طح h ب رای ه ر پ روژه و معم والماهیت آن پروژه تعیین می شود.
4فصل
جمع آوری نیازمندیها و تحلیل سیستم :
ف از تولی د ه ر ن رم اف زار ب ا مرحل ه ای ب ه ن ام تعری ف مسئله شروع می شود.
م دل و محی ط ش ناخت مس ئله تعری ف از منظ ور ب ه آن نیازمن دیهای و نظ ر م ورد سیس تم عملک ردی مس ئله تعری ف ی مرحل ه در باش د. می کلی ص ورت نیازمن دیهای مش تری ن یز مش خص می ش ود. پس از ف از
تعریف مسئله ، فاز تولید سیستم آغاز می گردد.
:System Analysisتحلیل سیستم
منظ ور از تحلی ل سیس تم ، مش خص ک ردن ویژگیه ای مرحل ه این در و باش د می آن س اختار و سیس تم
فعالیتهای زیر انجام می شود.
. شناسایی و تحلیل نیازهای مشتری 1
. ارزیابی سیستم به منظور امکان سنجی آن 2
ب ه توج ه ب ا سیس تم آی ا اینک ه : س نجی )امک ان قاب ل تکنول وژیکی و اقتص ادی ، زم انی مح دودیتهای
اجرا هست یا نه.(
.انجام تحلیل های اقتصادی و تکنیکی3
4 ، ه ا داده پایگ اه ، انس انی ن یروی ک ردن مش خص .نی از م ورد اج زاء و س ایر اف زار ن رم و اف زار س خت
برای راه اندازی سیستم
هزین ه 5 و ری زی برنام ه مح دودیتهای ک ردن . مش خص های سیستم
ی ا مس تند ک ه ش امل س اختار و 6 تهی ه ی ی ک گ زارش .تعاریف کلی سیستم و مراحل تولید آن می باشد.
(:Feasibilityامکان سنجی )
منظ ور از امک ان س نجی کن ترل این نکت ه اس ت ک ه ب ه مح دودیت ه ای موج ود، سیس تم از ب ا توج ه لح اظ پی اده س ازی ، امک ان پ ذیر و قاب ل قب ول می باش د و ی ا پی اده س ازی آن میس ر نیس ت؟ ب دیهی اس ت پس از این مرحل ه مش خص می ش ود ک ه بایس ت قط ع ی ا می یاب د ادام ه توان د پ روژه می
گردد.
زمان انجام فعالیت امکان سنجی:
زم ان انج ام فع الیت امک ان س نجی پس از مرحل ه ن رم تولی د از س ایر مراح ل ی ش ناخت و قب ل
افزار می باشد.
Feasibility Study – Phases مراحل امکان سنجی:
. تحلیل نیاز1
. امکان سنجی اقتصادی2
. امکان سنجی تکنیکی3
. امکان سنجی قانونی4
. ارزیابی گزینه ها5
Need Analysis تحلیل نیاز:
h اص وال آی ا ک ه ک نیم بایس ت مش خص می مرحل ه این در ن ی ازی ب ه ت ولی د ی ک سیس تم ج دی د وج ود دار د ی ا خ یر؟ در این راس تا می بایس ت مطالع ات و عملی ات زی ر انج ام
شود:
. ش ناخت تاریخچ ه و اطالع ات زیربن ایی س ازمان مشتری1
. درک نیازمندیها و مشکالت مشتری2
. آشنایی با چارت سازمانی و شرح وظایف3
Economic Feasibility امکان سنجی اقتصادی
در امک ان س نجی اقتص ادی تحلی ل س ود و هزین ه انج ام ب ه نس ب ت ی ک سیس تم ی ا س و د م زای ا اگ ر و م ی ش ود ا مک ان لح اظ ا ز باش د، س یس تم بیش تر ه زین ه ه ای آن
س نجی اقتص ادی مثبت ب وده و قاب ل پی اده س ازی اس ت.
در ب رآورد هزین ه ه ا می بایس ت هزین ه ه ای اولی ه ب رای پ روژه، هزین ه ی خری د تجه یزات و هزین ه ه ای تک راری
یا متناوب از قبیل اجاره ی محل نیز لحاظ گردد.
Technical Feasibilityامکان سنجی تکنیکی
در این مرحل ه می بایس ت تکنول وژی م ورد اس تفاده در سیس تم مش خص گ ردد و در این راس تا تکنول وژی ه ای موج ود در س ازمان و نیازه ای آموزش ی ن یز هم ب رای تولی د کنن دگان ن رم اف زار و هم ب رای اس تفاده کنن دگان
می بایست مد® نظر قرار گیرد.
Legal Feasibilityامکان سنجی قانونی
ق انونی موان ع و بررس ی مح دودیتها این مرحل ه ش امل ب رای پی اده س ازی سیس تم می باش د و در این مرحل ه م واردی نظ یر وج ود ک پی رایته ا ، ط راحی ی ا س اخت مناس ِب ق رار دارد و جلوگ یری از ب ه ک ار ب ردن جمالت باش د. می ق رارداد در مبهم و متن اقض کلم ات ی ا h این مرحل ه ب ا مش اوره ی کارشناس ان حق وقی معم وال h انج ام می ش ود و ب رای هم ه ی سیس تم ه ا، خصوص ا
سیستم های کوچک و ساده، مورد نیاز نیست.
ارزیابی گزینه ها
در این مرحل ه کلی ه ی گزین ه ه ای موج ود ب رای پی اده س ازی سیس تم ب ه هم راه هزین ه و برنام ه ری زی انج ام آن مش خص ش ده و تحلی ل گ ر ، یکی از گزین ه ه ا را
انتخاب و به مشتری پیشنهاد می دهد.
گزارش امکان سنجی
گ ر تحلی ل س نجی، امک ان ی مرحل ه انج ام از پس گزارش ی تحت عن وان گ زارش امک ان س نجی را آم اده می کن د ک ه در این گ زارش خالص ه ی فعالیته ای انج ام ش ده در مرحل ه ی امک ان س نجی و گزین ه ه ای مختل ف ب ه هم راه دارد پی اده س ازی سیس تم وج ود ب رای ک ه زم ان برنام ه ری زی و مح دودیتهای ه ر گزین ه ارائ ه می
شود.
Project Proposalپیشنهاد پروژه
ی ا پ روژه ی ا proposalشناس نامه مس تند ی ک گ زارش می باش د ک ه در آن اطالع ات ج امع و ک املی در ارتب اط ب ا پ روژه از ط رف پیمانک ار ب ه
مشتری یا کارفرما ارائه می شود.
ام ا در به ترین ح الت مش تری ن یز گزارش ی قب ل از ی ا proposalآن ب ه ن ام گ زارش درخواس ت ب رای
Request For Proposal )RFP( آم اده می کن د ک ه درداده ش رح را خ ود نیازمن دیهای و مس ائل آن
در proposal hاس ت. معم وال زی ر اطالع ات وجود دارد.
. تق ویم اولی ه ی زم ان بن دی انج ام پ روژه )زم ان بن دی در 1ادامه ی کار ممکن است دچار تغییر شود.(
. محدوده، ساختار و سرویس های کلی پروژه2
. زمان بندی و توالی انجام مراحل پروژه3
h این زم ان بن دی و مراح ل می بایس ت ب ر مبن ای م دل طبیعت اprocess.ارائه شود
. مش خص ک ردن هزین ه ه ای س خت اف زاری، ن رم اف زاری و 4نیروی انسانی.
محت وای 5 و )تع داد آموزش ی نیازه ای ک ردن مش خص .آموزش(
. مشخص کردن هزینه ی کلی پروژه 6
. ذکر مزایا و امکانات پروژه7
Requirements analysisتحلیل نیازمندیها
بع د دو از ت وان را می نیازمن دیها تحلی ل از منظ ور مورد بررسی قرار داد.
عملک رد از ش ناختی بایس ت می م ا اول بع د در ب ه دس ت آوریم.)ب ه این م دل، م دل سیس تم موج ود
( گفت ه می ش ود و در business modelتج اری ی ا بع د دوم ش ناخت نیازمن دیها انج ام می ش ود. ک ه ب ه این
گفت ه می request modelم دل،م دل نیازمن دیها ی ا شود.
م دلها در دنی ای ن رم اف زار ب ه دو ش کل کلی س اخت ( object oriented( و ش یء گ را )structureیافت ه)
ساخته می شود.
م دلهای س اخت یافت ه ک ه در ح ال حاض ر کم تر در تولی د ی ا روش ی گی رن د ق را ر می اس تفا ده م ور د ه ا سیس تم
SSADM)Structured System Analysis andتح ت عن و ان
Design( .ساخته می شود
ام ا م دلهای تحلی ل و ط راحی ش یءگرا در ح ال حاض ر مدلس از ی ز بانه ای h توس ط ی ا UMLغ الب ا Unified Modeling
Language .ساخته می شود
ف ارغ از ن وع م دل پس از تکمی ل مرحل ه ی تجزی ه تحلی ل گزار ش ی ارا ئ ه ش ده ک ه در آ ن گ زار ش ک لی ه اطالع ات م راح ل تحل ی ل ب ه ه م ر اه م د ل ه ا ب ه ک ار فر م ا ارائ ه ش ده از مط ا لع ه ی آن می تو ان د نظ رات و و کا ر ف ر م ا پس م کند. پی شنهادا ت ا صالحی خود ر ا به تولید کنندگا ن اعال
SSADM
)نمودار متن(Context Diagramاولین مدل:
ط راحی و تحلی ل اول SSADMدر ی مرحل ه در context diagram نم ودار در ش ود. می س اخته
DFD از موج ودیت ه ای تولی د کنن ده و مص رف کنن ده داده می نش ان ب ا ش کل مس تطیل ک ه اطالع ات ی
ی ا پ ردازش و دای ره processش ود از ش کل ک ه اس تفاده می ش ود و جری ان داده ک ه از فلِش ی ا پیک ان ب رای ذخ یره س ازی رس انه ی و اس تفاده می ش ود
داده که از شکل
اس تفاده می ش ود س اخته شده است.
، مرحل ه ی تجزی ه پیچی ده ب زرگ و برای سیس تم ه ای h در ی ک س طح ی ا ی ک DFDتحلی ل و نموداره ای معم وال
level مرحل ه ه ر در ت وان می و ش وند نمی کش یده جزئیات بیشتری از پروسس ها و داده را نشان داد.
در مرحل ه ی ط راحی ، می بایس ت ب ا اس تفاده از آخ رین آوریم. DFDس طح دس ت ب ه را سیس تم س اختار ه ا
س اخت م دل در سیس تم معم اری س اختار از منظ ور یافته، ماژول ها و ارتباط بین آنهاست.
ه ا را ب ه Bubbleدر این مرحل ه می بایس ت دای ره ه ا ی ا توان د می تب دیل این دهیم.ام ا اختص اص ه ا م اژول همیش ه تب دیل ی ک ب ه ی ک نب وده و در بعض ی اوق ات ی ک
ی ا چن د bubbleدای ره ب رعکس ی ا م اژول چن د ب ه bubble.به یک ماژول تبدیل شوند
تکنیکهای جمع آوری اطالعات در مرحله تجزیه تحلیل:
یک تحلی ل گ ر می توان د ب ا اس تفاده از تکنیکه ایی نظ یر در مرتب ط اش خاص ب ا حض وری ی مص احبه انج ام ذینف ع اش خاص ب ه ه ا پرسش نامه ی ارائ ه ، سیس تم ی ا و ی ک س ازمان اج رایی و عملی اتی بررس ی س وابق اس تفاده از مش اهده ی حض وری از عملک رد ی ک س ازمان نی از خ ود را جم ع آوری نمای د. در اک ثر اطالع ات م ورد ح االت ، تلفیقی از این روش ها م ورد اس تفاده ق رار می
گیرد.
تحلیل نیازمندیها:
h فعالیتهای زیر انجام می شود: در این مرحله معموال
. درک دامنه و حوزه ی اطالعاتی سیستم 1. مشخص کردن قابلیتها و امکانات مورد نیاز سیستم.2. ساخت یک مدل برای نمایِش اطالعات فوق )همانند 3
، usecase و یا مدلهای SSADM در DFDمدل activity diagram و ... در مدل UML)
. تفکیک و شکستن مدل طی مراحلی به مدلهای 4تفصیلی تر .
. همواره باید در مرحله ی تجزیه تحلیل از اطالعات 5کلی ، مرحله به مرحله به اطالعات تفصیلی یا جزئی
رسید.
Essential Modelمدلهای اساس ی در تجزی ه تحلی ل سیس تم
Environmental Model. مدل محیطی 1
Behavioral Model. مدل رفتاری 2
در م دل محیطی م ا ک ل سیس تم و محی ط در برگیرن ده ی ، دیگ ر افزاره ای ن رم اف زار، س خت ش امل ک ه را آن
نیروی انسانی می باشد را مدل می کنیم.
ی ک نمون ه از م دلهای Context Diagramنم ودار متن ی ا م حیطی اس ت. در م دلهای ر فت اری م ا عملک ر د ی ک س یس تم ر ا ب ه هم را ه ی ک س یس ت م عن اص ر مختل ف بین ا رتب اط و
د ا ده های مور د ا س تفا ده در سیستم مدل می کنی م.
نم ودار DFDنم ودار و ERD رفت اری م دلهای نمون ه از است.
5فصل
System Engineering
مهندسی سیستم عبارت است از تحلیل ، طراحی و سازمان دهی مجموعه ای از عناصر برای ساخت یک
محصول یا سرویس و یا تکنولوژی.
در مهندسی سیستم دو محور را می بایست مد® نظر داشت:
. مهندسی اطالعات 1
. مهندسی محصول2
منظور از مهندسی اطالعات ، شناخت و بررسی ارتباطات بین داده هایی است که در یک حوزه ی تجاری
وجود دارد.
منظور از مهندسی محصول ، آشنایی با ویژگی ها و نیازمندیهای محصولی است که می بایست تولید شود.
ی ا سیس تم مهندس ی دو system engineeringدر ( پ ایین ب ه ب اال الگ وی دارد. الگ و وج ود ی ا Topراهک ار
Down( ب اال ب ه پ ایین الگ وی و )Bottom Up در .)بعض ی از حالته ا می ت وان از این دو روش ب ه ص ورت
همزمان استفاده کرد.
Data Modeling مدلسازی داده ها:
منظ ور از مدلس ازی داده ه ا ش ناخت داده ه ای اص لی د ر ی ک سیس تم و اج زا ی س ازنده ی آن و ا رتب اطت بین
h از غالب ا ه ا د اده م دل نم ایِش ب ر ای با ش د. م ی آنه ا نم ودار ن ام ب ه )ER )Entity Relationshipن م ودار ی
استفاده میشود.) ارتباط بین موجودیتها(
ب ا نم ودار موجودیته ا این نم ایِش boxدر ی ا مس تطیل داده می شود.
هر موج ودیت می توان د دارای ویژگیه ایی باش د ک ه آن ویژگیه ا را در داخ ل ی ک بیض ی نوش ته و ب ا ی ک خ ط ب ه آن موج ودیت متص ل می ک نیم. وی ژگی یکت ا و ی ا ب ه عب ارت دیگ ر کلی د اص لی موج ودیت را ب ا ی ک خ ط مش خص می
کنیم.
بین ارتب اط موجودیته ا، ی کلی ه ش ناخت از پس موجودیته ا را تش خیص می دهیم و ه ر دو موجودی تی ک ه ب ا یک دیگر ارتب اط دارن د را ب ا ی ک خ ط ب ه یک دیگر متص ل می ک نیم. می ت وان توض یحاتی ن یز ب رای ارتب اط در کن ار
خط یادداشت کرد.
کمیت دارای توان د می موجودیته ا بین ارتب اط cardinality ی ک ب ه ی ک ، ی ک ب ه چن د و چن د ب ه چن د ب ه
چند باشد.
Modality:)اختیاری بودن(
این اس ت ک ه آی ا ارتب اط ب ه ص ورت Modalityمنظ ور از همیش گی وج ود دارد و ی ا در بعض ی از ش رایط می توان د
ارتباط بین دو موجودیت وجود داشته باشد.
از ه ر دو ط رف Modalityاگ ر ارتب اط همیش گی باش د نباش د از ی ک ط رف 1 و از 1 اس ت ولی اگ ر همیش ه
در اش تراک داش تن )مث ل اس ت. ص فر دیگ ر ط رف آژانس.(
(:Data Dictionaryدیکشنری داده ها )
دیکش نری داده ه ا ی ک مس تند ی ا گ زارش اس ت ک ه در مراح ل در و ش ده س اخته سیس تم تحوی ل ی مرحل ه توان د می ، س ازی برنام ه ی ا و ط راحی یع نی بع دی ک املتر ش ود. در این مس تند اطالع ات ج امع و ک املی در ارتب اط ب ا داده ه ای سیس تم )چ ه داده ه ای مان دگار در مقاب ل پایگ اه داده ی ا فایله ای دیگ ر و چ ه داده ه ای م ورد اس تفاده در برنام ه ه ا( وج ود دارد. ب رخی از اطالع ات این مس تند می توان د ش امل ن ام داده ه ا ، ن ام مس تعار آنه ا ، چگ ونگی اس تفاده از داده ه ا و اطالع ات تکمیلی
نموداره ا آن ب ر عالوه باش د. و ERدیگ ر س اختار و اطالع ات تفص یلی پایگ اه داده ه ا ن یز در این مس تند ق رار
می گیرد.
6فصل
Designing the System
طراحی سیستم:
طراحی ی ک سیس تم ، ف از ی ا مرحل ه ای اس ت ک ه بین تجزی ه تحلی ل و برنام ه س ازی ق رار دارد. در این مرحل ه ، م ا ب ا توج ه ب ه ش ناخت نیازمن دیها ، م دل س اخته ش ده را ب ه م دلی تب دیل می ک نیم ک ه می ت وان ب ا کم ک آن م دل
فاز برنامه سازی را آغاز نماییم.
سیس تم ط راحی ب رای مناس بی تعری ف بخ واهیم اگ ر ارائ ه دهیم، ط راحی عب ارت اس ت از اس تفاده از تکنیکه ا
و اصول مختلف برای ساخت یک محصول.
سیس تم: ط راحی Steps in the Design مراح ل Process
. طراحی معماری سیستم 1
. طراحی واسط های سیستم2
. طراحی جزئی یا تفصیلی سیستم 3
از مرحل ه اولین ک ه ، سیس تم معم اری ط راحی در ط راحی می باش د، می بایس ت عناص ر س ازنده ی ی ک
سیستم و نحوه ی ارتباط و اتصال آنها مشخص شود.
ش امل مرحل ه این یافت ه س اخت ط راحی روش در ط راحی در و آنه ا بین ارتب اط و ه ا م اژول ش ناخت
شیءگرا شامل شناخت کالسها و ارتباط بین آنهاست.
عوام ل ب ا سیس تم ارتب اط ، ه ا واس ط ط راحی در ب یرونی یع نی ب ا ک اربران و ی ا ب ا س ایر سیس تم ه ای ن رم پس ک نیم. می مش خص را اف زاری و س خت اف زاری
ی ا واس ط ک اربر ن یز ج زئی از ط راحی واس ط UIط راحی هاس ت و در مرحل ه ی آخ ر مرحل ه ی ج زئی و تفص یلی س اختار ه ر ی ک از قطع ات س ازنده ی سیس تم )در م ورد س اخت یافت ه، م اژول ه ا و در م ورد ش یءگرا کالس ها می ب ه ص ورت اج زای سیس تم از ی ک ه ر باش د.( س اختار
تفصیلی مشخص می شود.
Key Issues in theنک ات کلی دی و مهم در ط راحی سیس تم : Design Process
h ی ک روال تک راری اس ت و 1 . ط راحی سیس تم ، معم والh در یک مرحله به صورت کامل انجام نمی شود. غالبا
تش خیص 2 معیاره ایی جهت بایس ت در ط راحی می .ط راحی مناس ِب و نامناس ِب داش ته باش یم و بت وانیم ب ا کم ک این معیاره ا ، ط راحی اص لی محص ول را ارزی ابی
نماییم.
Design Principlesبرخی از این معیارها عبارتند از :
. اجتناب از دید محدود یا بسته1
. انج ام ط راحی ب ه ص ورتی ک ه قاب ل پیگ یری از روی 2مدل نیازمندیها باشد.
. ع دم اخ تراع مج دد چ رخ . یع نی ح تی االمک ان از ن رم 3 های آماده استفاده کنیم.componentافزارها یا
4 ( واح د الگ وی ی ک از ب رای uniform.اس تفاده )طراحی
. حداالمکان استفاده از مدلهای قابل فهم در طراحی5
مش کالت 6 از ک ه ص ورتی ب ه ط راحی س ازی پی اده .ناگهانی حتی االمکان اجتناب شود.
مفاهیم مهم در طراحی :
د یا 1 abstraction. تجر®
Abstraction ®را می توان در دو بعد داده ها و برنامه ها مد نظر داشت.
information hiding. پنهان سازی داده ها 2
پنهان سازی داده ها یک اصل است و مطابق آن، طراحی مناسِب ، طراحی ای است که هر برنامه در آن فقط به داده
های مورد نیاز خود دسترسی دارد.
3 .Modularity)ماژوالریتی )پیماه ای بودن
منظور از ماژوالریتی این است که وظایف یک سیستم و امکانات آن به چه صورت به ماژولها تخصیص یابد. در این
وجود دارد cohesion و couplyingارتباط دو مقوله ی مهم که در ادامه به آن می پردازیم.
control hierarchy. ساختار سلسله مراتِب کنترلی 4
Couplingارتباط بین ماژول های یک سیستم
coupling و cohesion دو معی ار اص لی در ط راحی سیس تم می باشد.
، حجم ارتب اط بین ماژوله ا دری ک سیس تم couplingمنظ ور از . کم تر باشدcouplingاس ت و در ط راحی م ناس ِب به تر اس ت ،
)از بهترین به بدترین(:couplingانواع
1 .Data coupling )اتصال بر مبنای داده )بهترین نوع
، اتص ال بین دو م اژول ب ا ان واع داده ای Data couplingدر پایه ای انجام می شود.
2 .Stamp coupling ن وع این ی ک س اختار couplingدر ، از م اژول فرا خوان ن ده ب ه link listداده ای م ر کِب نظ یر آر ای ه ی ا
h را فراخ وان ی می کن د a ، bم اژو ل ارس ال می ش ود. )یع نی مثالتا یک کلمه را برایِش ارسال کند.(
3 .Control coupling:
پ ارامتر کن ترلی ی ک بین دو م اژول، ب دل ش ده پ ارامتر رد® و این ح الت در است.
if ، switch منظ ور از داده ی کن ترلی، داده ای اس ت ک ه در عب اراتی نظ یر از آن ا ستفاده می شود.whileیا حلقه ی
4 .Common coupling:)کاپلینگ مشترک(
ی ا عم ومی در ن رم اف زار اس تفاده می publicدر این ح الت از داده ه ای دیگ ر دا ده ه ای مش ترکی ک ه م اژ ول ه ای مختلفی می ش و د. ی ا ب ه ع ب ارت
توانند از آن استفاده کنند.
الگ وی اش تباه اس ت. چ ون ناخواس ته public)اس تفاده از داده ه ای ی ک م مکن اس ت ج ایی آن متغ یر تغی یر کن د و در ک د مش ک ل اساس ی ایج اد نماید.
5 .Cohesion:چسبندگی
از ارتب اط محت وایی بین قس متهای مختل ف ی ک م اژول Cohesionمنظ ور می ب اش د و ی ا ب ه عب ارت دیگ ر ، بی ان این مط لِب ک ه ی ک م اژول چ ه کاره ای مختل فی را ان ج ام می د ه د. )در ح الت ای د ه آل ی ک م اژول با ی د فق ط ی ک ک ار
ان جام دهد. (
Types of Cohesion عبارتند از : cohesionانواع
1 .Coincidental cohesion:چسبندگی تصادفی
هیچ ک ه ده د می انج ام را مختلفی کاره ای م اژول اینج ا در ارتباطی با هم ندارند.
2 .Logical cohesion:چسبندگی منطقی
در این ح الت م اژول کاره ای مختلفی را انج ام می ده د ک ه از h م اژو ل م ا ا نتخ اب واح د لح اظ منطقی ب ا ی ک دیگ ر مرتبطن د. )مثالدان ش جو را ثبت می کن د و س وابق تحص یلی د انش جو را لیس ت
می کند.( ) ثبت ورود و خروج و محاسبه ی اضافه ک اری(
3 .Temporal cohesion:چسبندگی موقت
ک ه ده د انج ام می را کاره ای مختلفی م اژول این ح الت در وج ه ارتب اطی آنه ا ای ن ا س ت ک ه هم ه بای د در ی ک مقط ع زم انی
ان جام شود .) ا نتخاب واح د ، پر داخت پول و ت سویه حس اب(
4 .Communication cohesion:چسبندگی ارتباطی
در این حالت ، ماژول کارهای مختلفی را انجام می دهد که در حین آن h مشترک هستند. کارها از داده هایی استفاده می کند که بعضا
5 .Sequentialچسبندگی ترتیبی
ماژول کارهای مختلفی را انجام می دهد که همه ی آنها باید به صورت سریال یا پشت سر هم انجام شود.
6 .Informational
در این حالت، ماژول کارهای مختلفی را انجام می دهد که وجه ارتباط آنها در این است که همه بر روی ساختارهای داده ای مشترک انجام می
شود.
7 .Functional چسبندگی تابعی
بهترین حالت می باشد و در اینجا ماژول فقط یک کار واحد انجام می دهد.
هر دو به حالت ایده آل ممکن نیست.cohesion و couplingرساندن
طراحی تفصیلی سیستم:
ای پای ه عناص ر ط راحی ، سیس تم تفص یلی ط راحی از منظ ور ی ا س ا خت structuredس از نده ی ه ر سیس تم می باش د. در روش
ه ا و در procedureه ا ، functionی افت ه، ای ن ع ناص ر عبا رتن د از : ه ا ک ه در دا خ ل آنه ا classط راحی ش یءگ را ای ن ع ناص ر ع بارتن د از :
function و procedure ابز اره ای ب رای ط راحی تفص ی لی د اری م. متف اوت ی وج ود دارد ک ه دو ت ا ا ز م هم تری ن آنه ا ع ب ارتن د ا ز فلوچ ارت و
و یا شبه کد. seudo codeس ودوکد
اس تفاده از فلوچ ارت در ح ال حاض ر ب ه دلی ل حجم ب االی آن و فاص له ی آ ن از زم ان برن ام ه نویس ی کم تر رای ج می باش د. ام ا س ودو کد ب ه بیش تر مق ص د برن ام ه نویس ی ز ب ان ب ه ن زدیکی و حجم کم ع لت ، ش ب ه ک د ط راحی تف ص یلی ب ا هنگ ام اس ت ف اده می ش و د.
ب ا ع ب ا راتی نظ ی ر procedureط راح ،ط ر اح ی فانک ش ن ه ا و ه ا را پ ی اده انج ا م می د ه د و د ر مرحل ه ی زب ا ن برنا م ه نوی س ی سیس ت م س ازی بر ن ام ه س از ب ا مش اهد ه ی ش ب ه ک د ها، ک د نه ایی را د ر محی ط
مربوطه می نویسد.
7فصل
:Software Configurationمدیریت پیکربندی نرم افزار
منظ ور از م دیریت پیک ر بن دی ن رم اف زار ، م دیریت کلی ه ی اج زای ی ک ن رم اف زار ش امل برنا مه ها ، مستندا ت و داده ها از زمان ساخ ت می باشد.
روال IEEEتعری ف : از اس ت عب ارت اف زار ن رم پیکربن دی م دیریت از ه ای سیس ت م )ش ام ل متن برنام ه، مس تندات itemشناس ایی و ت عری ف کلی ه ی
و داده ها.(
کن ترل تغی یرات این آیتم ه ا در چرخ ه ی زندگیش ان ثبت و ذخ یره ی کلی ه ی آی تم ها و ک نترل صحت ت غییرات انجا م شده می باشد.
قس متهای مختل ف ن رم اف زار ک ه می بایس ت در م دیریت پیکربن دی م د® نظ ر قرار گیرند عبارتند از:
. مشخصات گزارشات سیستم1
. برنامه ریطی انجام پروژه2
. گزارش تحلیل نیازمندیها3
. گزارش راهنمای کاربران4
. گزارش طراحی5
. متن برنامه های سیستم 6
. گزارش ویژگیهای تست7
. گزارش نصِب و راه اندازی سیستم8
. برنامه های اجرایی9
. شرح پایگاه داده10
. راهنمای کاربران11
. گزارشات نگهداری12
. استانداردها و روال های مهندسی نرم افزار13
و ...
The SCM process:
ها ی موجود در سیستمitem. شناسایی اشیاء یا 1
. مشخص کردن قوانین نسخه بندی2
. کنترل اعمال تغییرات 3
. کنترل اعمال تغییرات انجام شده از لحاظ کیفیت4
. گزارش گیری 5
Change Control
Accept Change request
Evaluate Change request on the given parameters
Present the Change report
Use the Change report to make a final decision on status and priority of change
Generate ECO for each approved change
Check CI out of project database
Change the CI as required
Check CI into project database
Perform necessary SQA activities
Use appropriate version control mechanisms to create next version of the software
کنترل تغییرات
پذیرش درخواست تغییر
ارزیابی درخواست تغییر در پارامترهای موجود
ارائه ی گزارش تغییر
استفاده از گزارش تغییر برای اخذ تصمیم نهایی
بر روی وضعیت و اولویت تغییر
خارج کردن آیتم مورد نظر از انباره ی پروژه
برای انجام تغییرات تأیید شده
بررسی آیتم جهت تغییر
خارج از انباره ی پروژه
انجام تغییرات مورد نیاز بر
روی آیتم مورد نظر
بازگردان آیتم تغییر یافته به
انباره ی پروژه
انجام عملیات کنترل کیفیت الزم
اختصاص نسخه یا ورژن جدید برای آیتم تغییر
یافته
. دریافت و درخواست تغییر1
. بررسی گزارش تغییر از لحاظ پارامترهایی نظیر مسائل فنی 2و هزینه و زمان آن
. ساخت گزارش تغییر توسط شخص یا تیم مربوطه3
. تعیین انجام یا عدم انجام تغییر و اولویت آن توسط مدیریت4
. خارج کردن آیتم مورد نظر برای تغییر از انباره ی پروژه 5( یا فیزیکی)گزارش((hard)الکترونیکی )
. اعمال تغییرات روی آیتم مورد نظر6
. انجام عملیات کنترل کیفیت الزم7
. بازگرداندن آیتم به انباره ی پروژه 8
( جدید برای آیتم تغییر version. اختصاص نسخه یا ورژن )9یافته.
)انباره ی مدیریت پیکربندی(SCMانباره ی
مح ل ف یزیکی و الک ترونیکی اس ت SCMمنظ ور از انب اره ی ک ه در آن کلی ه ی اطالع ات پ روژه نگه داری می ش ود. ب دیهی اس ت این مح ل می بایس ت مقی اس پ ذیر ، قاب ل اطمین ان ، در
دسترس و شفاف باشد.
:SCMابزارهای
وج ود SCMم دیریت برای متف اوتی اف زاری ن رم ابزاره ای ک ار توان د می ک ه از SCMدارد ت ا دو نمای د. تس هیل را
مهمترین این ابزارها عبارتند از :
1 .Configuration Management Assistant
2 .Adele
8فصل
فاز نگهداری :
فاز نگه داری آخ رین مرحل ه چ رخِش زن دگی ه ر ن رم اف زار می باش د و پ س از نص ِب و ر اه ان دازی ن رم اف زار ، آغ از و ت ا ان ت ه ای اس تفاده از
نرم افزار ادامه می یابد.
Maintenance:
فعالیته ایی اس ت ش امل ارتق اء )ب اال ب ردن سرویس های آن(، تط ابق ی ا adapting ی ا اص الح و correcting باش د.) برط رف ک ردن می مشکالت(
3 ی ا ف از نگه داری هس تند ب ه maintenanceان واع مش کالتی ک ه در دسته تقسیم می شوند:
1 .Emergency fix)اصالحات اضطراری(
، سیس تم ک ار در ک ه هس تند مش کالتی ، مش کالت از دس ته این اختالالت ج د®ی ب ه وج ود آورده و می بایس ت در اس رع وقت برط رف
شوند.
2 .Urgent fix)اصالحات ضروری(
h می بایس ت در سیس تم برط رف ش ود ام ا این دس ته از مش کالت ن یز حتم احا ت ض روری باشد.سر ع ت بر طرف ک ردن آنها م ی تو اند دی ر تر از اصال
3 .Nice to have fix)اصالحات ارجح یا مناسِب(
این گون ه اص الحات ی ا تغی یرات به تر اس ت در سیس تم انج ام ش ود. ام ا اولویت زمانی برای انجام آنها باال نمی باشد.
مشکالت مرحله ی نگهداری :
:Dynamic personnel. وجود پرسنل دینامیک 1
که هزین ه ی آم وزش زی ادی را می توان د ب ه سیس تم تحمی ل کند.
2 .Motivation and morale
3 .Lack of documentation
4. Pathy code )ع دم یکپ ارچگی ک د)قطع ه قطع ه ب ودن آن
5 .Outdated or obsolete technology از اس تفاده تکنولوژی از رده خارج
6 .Round-the-clock operation س اعته ی ا 24 فع الیت ه ای شبانه روزی
Maintenance Metrics:
1 .System availability
2 .Maintenance turnaround
3 .Productivity
حجم ن رم اف زاری اس ت ک ه در مرحل ه Productivityمنظ ور از در یک مقطع زمان ی تو لید می ش ود.maintenanceی
Key Factors affectingنک ات کلی دی در مرحل ه ی نگه داری Maintenance
. متوس ط زم انی ک ه ی ک ش خص در طی آن می توان د ب ا 1سیستم آشنا شود.
. وجود یا عدم وجود مستندات مناسِب2
نکت ه ک ه ه ر فع الیت موج ود در 3 این . در نظ ر گ رفتن maintenance ب اعث ک اهِش عم ر مفی د ن رم اف زار می
شود.
9فصل
پیاده سازی نرم افزار :
منظ ور از پی اده س ازی ، انتق ال ن رم اف زار پس از تکمی ل آن ب ه سایت اصلی و راه اندازی آن است.
فعالیتهایی که در حین راه اندازی هستند:
. آماده کردن برنامه نصِب1
. انجام روال های عملیاتی الزم 2
. آماده سازی و تبدیل داده ها3
. آموزش کاربران4
. راه اندازی سیستم5
. آماده کردن برنامه نصب :1
در این مرحله عملیات عبارتند از :
. خرید سخت افزار 1
. آماده سازی سایت2
اج را الزم 3 زم ان در ک ه افزاره ایی )ن رم ج انبی افزاره ای ن رم خری د .هستند.(
. نصِب نرم افزار تولید شده4
. آموزش کاربران5
. انجام روالهای عملیاتی الزم:2
. به تر اس ت در هنگ ام تولی د ن رم اف زار ک اربران از ابت دا ب ه ص ورت مرحل ه 1بندی شده با سیستم آشنا شوند.
. آم وزش و آش نایی ک اربران ب ا سیس تم جدی د بای د ب ه ص ورت مرحل ه بن دی 2شده انجام شود.
. مراحل تبدیل داده ها:3
. لیست کردن کلیه ی فایلهایی که می بایست تبدیل 1شوند.
. لیست کردن فایل های جدیدی که می بایست آماده 2شوند و تهیه ی داده های مورد نیاز آنها.
. لیست کردن کلیه ی مستندات برنامه هایی که در 3حین تبدیل داده مورد نیاز است.
. مشخص کردن کنترلهایی که در روند انتقال داده ها 4می بایست اعمال شوند.)کنترل جامعیت(
. آماده کردن برنامه ی انتقال داده.5
. مشخص کردن کارهایی که باید در حین انتقال داده 6انجام شود.
:User Training. آموزش کاربران 4
آموزش کاربران در دو سطح انجام می شود:
. آموزش اپراتورهای سیستم 1
. آموزش مدیران راهبری سیستم 2
( م دیران آم وزش ی adminsدر اس تفاده قبی ل از (م واردی درس ت از تجه یزات ، عیِب ی ابی اولی ه و فعالیته ای الزمی ک ه در ف از پش تیبانی انج ام می ش وند را می بایس ت ب ه آنه ا آم وزش داد.
ه ای سیس تم ، م واردی از end userدر آم وزش ب ه اپراتوره ا ی ا ک اربردی، ی برنام ه از اس تفاده ، تجه یزات از اس تفاده قبی ل ی ا و ح ذف ، اض افه امک ان ، سیس تم ه ای داده از اس تفاده از گزارش ات گ رفتن ، سیس تم در اطالع ات وی رایِش سیس تم،بهین ه س ازی اطالع ات دری افتی از سیس تم و عیِب ی ابی
های اولیه می بایست آموزش داده شود.
Implementation. استراتژیهای راه اندازی سیستم 5Strategies:
چهار استراتژی برای راه اندازی سیستم وجود دارد که عبارتند از :
. استراتژی موازی 1
. استراتژی قطع2
. استراتژی فازبندی یا مرحله بندی 3
. استراتژی آزمایشی4
در استراتژی موازی، سیستم جدید و سیستم قدیم به صورت موازی با هم اجرا می شوند. هدف از این استراتژی باال بردن
قابلیت اطمینان سیستم و مشخص کردن خطاهایی است که تا لحظه نصِب در سیستم برطرف نشده اند.
Implementation Strategies Contd…
این دارد. زی ادی هزین ه ی و ک ار ن یروی ب ه نی از اس تراتژی این ام ا اس تراتژی مناس ِب سیس تم ه ایی هس تند ک ه اهمیت ب االیی دارن د مث ل
سیستم های مالی.
در هنگ ام راه direct cutover approach. در اس تراتژی قط ع ی ا 2ان دازی ، اج رای سیس تم ق دیمی ، قط ع و سیس تم ج دی د ج ا یگزین آن
می شود.
. اس تراتژی فازبن دی ش ده: در این اس تراتژی، نص ِب و راه ان دازی 3سی س تم جدی د ب ه ص و رت مرح ل ه ب ه مر حل ه انج ام می ش ود. ب ه عن وان انتخ اب ابت دا، سیس تم آم وزش دانش ج ویی د ر ی ک سیس تم م ث ال د ر واح د، س پس زی ر سی س تم محاس ب ه ی ش هریه و در ادا م ه زی ر سیس تم ه ای دیگ ر را ه ان د ازی می ش ون د. در ای ن م ورد مش کالت ، مرحل ه ب ه م رحل ه ر ف ع می ش وند و ف ش اری ب ه ک ل سیس تم وارد نم ی ش ود . این م ورد م ناس ِب سیس تم ه ا یی اس ت ک ه بخش های مختل ف آن جداج دا
هس تند و مس تقل عمل می کنند.
: ب رای ک اربران خاص ی )متخص ص( Pilot. اس تراتژی آزمایش ی )4 )مورد بررسی قرار می گیرد.
معیارهای انتخاب استراتژی راه اندازی :
. ماهیت و سایز سیستم: )هر چه سیستم بزرگتر و پیچیده تر باشد، به سمت 1استراتژیهای موازی و آزمایشی پیِش می رویم.(
. نوع سازمان مشتری : )ساختار سازمانی(2
. وجود واحد انفورماتیک یا کامپیوتر در داخل سازمان مشتری 3
. تعداد کاربرانی که با سیستم ارتباط برقرار می کنند.4
. حجم داده های سیستم.5
. پراکندگی جغرافیایی سیستم )داخل سازمانی یا بیرون سازمانی(6
)استراتژی مناسِب: آزمایشی و فازبندی شده(
مناسِب )استراتژی مناسِب: استراتژی قطع(tools. استفاده از ابزارها یا 7
. در دسترس بودن نیروی انسانی : )بدون داشتن نیروی انسانی استراتژی موازی 8قابل اجرا نیست.(
. درجه ی اهمیت و بحرانی بودن نرم افزار : )نرم افزارهایی که اهمیت و پیچیدگی 9انجام کار باالیی دارند، مثل نرم افزارهای مالی ، در آنها سراغ استراتژی قطع نمی
رویم.(
مرور نرم افزار پس از نصِب:
مرحل ه ی م رور پ روژه ک ه پس از نص ِب و راه ان دازی آن انج ام می ش ود، مرحل ه ی بس یار مهمی اس ت ک ه م دیر پ روژه ب ا بررس ی ه ای مختل ف عملک رد خ ود و از جنب ه ، پ روژه ک ارایی و کیفیت س ایز تیم تولی د پ روژه را س نجیده و از نت ایج آن می ت وان پس از
ثبت در پروژه های آتی استفاده کرد.
برخی از سواالتی که در این ارتباط مطرح می شوند، عبارتند از:
. آی ا سیس تم جدی د، هزین ه ی اج رایی و عملی اتی م ا را ک اهِش و 1یا افزایِش داده است؟
. آی ا سیس تم جدی د ، اطالع ات دقی ق و ب ه روزی را ب ه ارائ ه می 2دهد؟
. آی ا ک ار ک ردن ب ا سیس تم جدی د ب رای ک اربران از سیس تم ق دیمی 3راحتتر است؟
. آیا برای راهبری سیستم جدید، به اپراتورهای کمتر یا 4بیشتری نسبت به سیستم قدیم احتیاج است؟
. آیا سیستم جدید روالهای اجرایی و عملیاتی سازمان را 5بهبود بخشیده است؟
. آیا سیستم جدید ، ضریِب تولید را افزایِش داده است؟6
. آیا سیستم جدید، سرویس دهی به مشتریان را بهبود 7بخشیده است؟
برنامه ریزی حالتهای بحرانی
بی نی پیِش بح رانی، حالته ای ری زی برنام ه از منظ ور مش کالتی اس ت ک ه از لح اظ س خت اف زاری ی ا ن رم اف زاری می توان د در آین ده ب ه وج ود بیای د و ارائ ه ی راهکاره ایی ب رای : از عبارتن د راهکاره ا، این از ب رخی آنهاس ت. ب ا مواجه ه اس تفاده از کامپیوتره ای پش تیبان ، امک ان اتص ال ب ا خط وط پرس رعت ب ه نق اط دیگ ر و امک ان اس تفاده از سیس تم دس تی.
10فصل
تحلیل و طراحی نرم افزار به روش شیءگرایی:
همانطور که ذکر شد، دو روش عمده برای تولید نرم افزار وجود دارد که عبارتند از :
Objectو روش شیءگرا یا Structuredروش ساخت یافته یا Oriented
و تجزی ه م دلهای اس اس و ،پای ه یافت ه در روش س اخت و ه ا داده جری ان مبن ای ب ر و data flowتحلی ل ب وده
مبن ای ب ر h ک ه عمو م ا را م دلها یافت ه، این ط راح س اخت DFD می ب اش ن د، ب ه ی ک س اختار ک ه در آن ماژوله ا و ارتب از
س پس و تب دی ل ک رد ه اس ت، ش ده نش ا ن داد ه ما ژو له ا س اخت ا ر درون ه ر م ا ژول را ب ا اب زاره ا یی نظ یر ف ل وچ ارت و ی ا س ودوکد ط راح ی می ک ن د و برن ام ه ن ویس ب ا توج ه ب ه
م دل طر احی ، اقدا م به ساخت کدها می نمای د.
در تجزی ه تحلی ل ش یءگرا، تمرک ز تحلی ل گ ر ب ر روی رفتاره ایی )م دل انج ام می ش ود در سیس تم ح ال حاض ر در ی ا ک ه اس ت
h در business modeتج اری ( و رفتاره ایی ک ه می خ واهیم بع داش ود.) انج ام ی ا اض افه در requirement modelسیس تم )
h ب ا زب ان use و ب ا زب ان UMLمدلس ازی ش یءگرا، این م دلها، غالب اcase س اخته می ش ود. پس از آن تحلی ل گ ر می توان د ب ا اس تفاده
از م دلهای تکمیلی ، نح وه ی رد® و ب دل ش ده پیغامه ا بین اش یاء ی ا چرخ ه ه ای collaboration و sequence)نموداره ای ( و
( فع الیت work flowsک اری )نم ودار )activity نم ودار و )این تب دیل ب رای نش ان دادن وض عیت اش یاء و نح وه ی وض عیت
( اس تفاده می کن د state chart diagramوض عیتها ب ه یک دیگر )و س پس ط راح ش یءگرا ب ا اس تفاده از م دلهای ف وق ، می بایس ت و کالس ها ، ش یءگرا م ورد در ک ه سیس تم اص لی قطع ات
component ه ا هس تند را شناس ایی ک رده و ارتب اط بین آنه ا را رفتاره ای و ه ا وی ژگی کالس ه ر ب رای س پس و آورد بدس ت
(Methods آن را مش خص ک رده و مت دها را ب ا اس تفاده از ش به )کد طراحی نماید.
ویژگیهای پروژه های شیءگرایی:
(iterative. مشخص کردن یک روال تولید چرخشی )1
. تخمین زدن زمان و هزینه ی انجام پروژه با استفاده 2از روال تولید انتخاب شده.
( و milestones. مشخص کردن نقاط سنجِش )3نحوه ی اندازه گیری پیشرفت انجام پروژه .
. مشخص کردن نقاط مهم برای کنترل کیفی نرم 4افزار )در مراحل تولید(
. مدیریت تغییرات5
. مشاهده ،پیگیری و کنترل پیشرفت انجام پروژه 6
Object Oriented Metrics
objectبرخی از استانداردهای مورد استفاده در پروژه های oriented: عبارتند از
. تعداد متدها در یک کالس ) اگر تعداد متدهای کالسی از 1حدی بیشتر شد، باید آن را به کالسهای کوچکتر تفکیک
کرد.(
. عمق درخت و وراثت.2
. تعداد اشیاء نمونه گرفته شده از یک کالس3
بین کالسهاcoupling. بررسی 4
. واکنِش ها یا پاسخ هایی که به یک کالس داده می شود.5
در محیط های یک کالس.cohesion. کمبود چسبندگی یا 6
:Estimating an O.O projectتخمین زدن یک پروژه ی شیءگرا
برای تخمین زدن پروژ[ های شیءگرا ، می توان از معیارها یا موازین زیر استفاده کرد:
ها و سناریوهای آنها )هر چه تعداد آنها بیشتر باشد ، حجم usecase. تعدا 1کد بیشتری مورد نیاز است.(
. تعداد کالسهای اصلی 2
ها و کالسهای الزم برای پیاده interface. مشخص کردن واسط ها یا 3سازی آنها. )هر واسطی که سیستم را به محیط بیرونی مرتبط می کند.(
. محاسبه و بازبینی تخمین ها بر مبنای کالسها4
برنامه ریزی پروژه های شیءگرا:
. پروژه های شیءگرا با پروسس های چرخشی پیاده سازی می شوند.1
. در برنامه ریزی برای این پروژه ها می بایست :2
تعدا چرخِش های مورد نیاز را تخمین زد.. 1-2
مشخص کرد که در انتهای هر چرخه ، چه حجم یا درصدی از کارها انجام . 2-2شده است.