روش کاربردی تحلیل نیازمندی ‌های نرم افزار

خوشحالیم که  از  مجموعه کتابهای بازارچه کتاب هوشا،کتابهایی هم هستند  که تا چاپ هفتم هم رسیدند و بیش از 20 هزار جلد در سراسر کشور توزیع گردیدند .این کتابها همگی مرتبط با کار شرکت یعنی حوزه نرم افزارهای  مالی و اداری هستند و یا مربوط به دنیای فن اوری اطلاعات. این بار و به فضل خدا یک کتاب کاربردی مربوط به حوزه نرم افزار را تقدیم میکنیم. امیدواریم مورد اقبال و استقبال جامعه نرم افزاری کشور قرار گیرد.

این کتاب حاصل دانش همراه با تجارب عملی  چندین و جند ساله  سه نفری است که ما  دو نفر از آنان یعنی آقای مهندس یوسف مهرداد و اقای مهندس مظفر ایراف را ازقدیم میشناسیم آن هم از نزدیک و در جریان فعالیت های علمی و فنی ثمربخش و شبانه روزی آنان در حوزه نرم افزار می باشیم.

نکته دیگر در مورد این کتاب این است که ویراستاری آنرا جناب آقای ابراهيم نقيب‌زاده مشايخ انجام داده اند. بی شک نام این پیشکسوت و استاد ارزش این اثر را بیشتر و رغبت فعالان این عرصه را برای پیگیری مطالب کتاب دو چندان میکند.

نویسندگان این کتاب آنرا به جناب آقای  دکتر رامسین تقدیم نموده اند. کسی که در دانشکده کامپیوتر دانشگاه صنعتی شریف برای تربیت شاگردان همراه با دانش و بینش در این حوزه زحمات زیاد کشیده اند.

مجموعه عوامل فوق باعث شده است که با اشتیاق فراوان  کار توزیع و فروش این کتاب را قبول کنیم. امیدواریم بزودی شاهد چاپ های جدید این کتاب و سایر آثار علمی و کاربردی این عزیزان و سایر عزیزان فعال در عرصه نرم افزار باشیم. بی شک نرم افزار فضایی است که خیلی نیازدارد به خلق شدن کتابهای علمی – کاربردی و مجموعه کوچک ما همیشه برای  کارهای بزرگ اینچنینی  اشتیاق فراوان دارد.

نرم افزاری هوشا – علی عبداللهی ازگمی

روش كاربردي

 تحليل نيازمندي‌هاي نرم‌افزار

 نويسندگان:

يوسف مهرداد بي‌بالان

پويا شهبازيان

مظفر ايراف

ويراستار:

ابراهيم نقيب‌زاده مشايخ

عضو هيأت علمي دانشكده علوم كامپيوتر دانشگاه تهران

شناسنامه کتاب :

ناشر:                 رسم، تهران صندوق پستي 345-15655

چاپ اول:       پاییز 1389

شمارگان:           3000 نسخه

ليتوگرافي و صحافي: خجسته

چاپ:                 سبزآرنگ

شابك:                2-23-8763-964-978  / ISBN: 978-964-8763-23-2

قيمت:               ‌ 95،000 ريال

مركز پخش در سراسر کشور :

66909187 تهران  ، دانشوران سرمد (بازارچه کتاب نرم افزاری هوشا) 

پست الکترونیکی :  KETAB@DANESHVArAN.COM

روش تهیه کتاب

همانند سایر کتابهایی که توسط هوشا و  در سراسر کشور توزیع میگرد،این کتاب را نیز میتوانید به روش زیر تهیه نمائید.

- خرید حضوری در آدرس تهران،بلوار کشاورز،جمالزاده شمالی ساختمان 125واحد 10 ،دانشوران سرمد (نرم افزاری هوشا)

- خرید غیر حضوری با انجام مراحل زیر:

1) انتخاب کتاب و تعداد درخواستی و واریز هزینه فروش و ارسال کتاب به جام ملت 1071371641 شماره کارت 6104137200689527 به نام علی عبداللهی ازگمی

2) ارسال شماره حواله واریزی و یا  تصویر ان بهمراه آدرس دقیق  و گیرنده کتاب  از طریق شماره  نمابر  02166915540   , و یا ایمیلKetab@daneshvaran.com و یا سامانه گفتگو این وبسایت.

توجه : هزینه ارسال با توجه به روش ارسال تعیین میگردد:

  •  برای داخل شهر تهران هزینه پیک بادپا با ارائه فاکتور توسط خود پیک
  • برای ارسال با پست سفارشی با توجه به تعداد و وزن مرسوله با احتساب وزن هر کتاب معادل ….. گرم طبق جدول پست پیشتاز شرکت محترم پست
  • برای ارسال از طریق ترمینال، تماس با  متصدی فروش کتاب02166909187

تخفیفات دانشجویی

دانشجویان عزیز با ارائه کارت شناسایی دانشجویی از ده درصد تخفیف دانشجویی برخوردار میشوند.

 

جهت دریافت کاتالوگ کتاب شامل مقدمه و فهرست آدرس زیر را کلیک کنید.

دریافت کاتالوگ کتاب 

دریافت مقدمه و فهرست مطالب کتاب 

 

 

وبلاگ نویسند کتاب  جهت کسب اطلاعات بیشتر و شرکت در مباحث مربوط به نقد کتاب

مقدمه و فهرست مطالب کتاب :

مقدمه

حوزه نيازمندي‌هاي نرم‌افزاري يكي از مهم‌ترين حوزه‌ها در توسعه نرم‌افزار است و با وجود پيشرفت‌هاي چشم‌گير، مهندسي نيازمندي‌ها جزو ضعيف‌ترين حلقه‌ها در زنجيره فعاليت‌هاي مهندسي نرم‌افزار است.

 عموماً فرايند توسعه نرم‌افزار در شرکت‌های ایرانی- کوچک یا بزرگ- با چالش‌های زیادی همراه است. گاه توسعه فارغ از اصول علمی و مهندسی انجام می­گردد و گاه در ورطه پیچیدگی‌ متدولوژی‌ها فرو مي‌رود. در اين شرايط، متدولوژی به‌ جای راهگشايي، خود گره‌ کار است. عموماً این دو چالش به دلیل نبود برداشتي ساده اما عمیق از اصول و مفاهیم مهندسی ایجاد می­گردند. اغلب رعایت همين اصول و مفاهیم به دور از روبرو شدن با پیچیدگی‌هاي­ متدولوژی‌ یا اميد به پیشرفت تصادفي پروژه، آن را به سرانجامی موفق خواهد رساند. اين كتاب سعي دارد برخي از اين مفاهيم و اصول را تبيين كند.

یکی ديگر از عوامل بروز چالش‌های مذکور، دشواري نگاشت و اجراي فعاليت‌هاي فرآیندهايي چون RUP در تیم­ها است. اين عامل باعث مي‌شود كه چارچوب فكري تيم‌ها به جاي وظيفه‌محوري (Task Driven) به محصول‌محوري (Work Product Driven) سوق داده شود. به عنوان مثال، تيم توسعه تنها به تدوين محصول‌كاري «سند چشم‌انداز» مي‌انديشد، نه به انجام مجموعه‌اي از وظيفه‌ها و كارها كه منجر به این سند مي‌شود. چگونگي انجام وظيفه‌ها، ترتيب اجراي آن‌ها و تكنيك‌هاي مرتبط، منجر به شكل‌گيري چارچوبي ذهني در تيم مي‌گردد كه در روش محصول‌محوري كم‌رنگ است. اين كتاب در كنار معرفي محصولات‌كاري، بر وظيفه‌ها و تكنيك‌هاي انجام آن‌ها نیز تأكيد دارد.

هر چند مبناي اصلي روش ارائه شده در این كتاب RUP است، اما داراي تفاوت‌هايي از قبيل جابه‌جايي، تغيير جزييات، ايجاد توالي و حذف ارتباط گرافي بين فعاليت‌ها، تغيير تعداد و محتواي محصولات‌ كاري و بازطراحي روش انجام فعاليت‌ها است. لذا اين كتاب به سه بخش «تحليل مسأله»، «شناسايي نيازهاي ذينفعان» و «تعريف سيستم» در نيازمندي‌ها پاي‌بند بوده است. تغييرات يادشده ماحصل اجراي چندين باره اين فرايند در پروژه‌ها و دوره‌هاي تخصصي است.

باگذشت زمان، مسائلي كه در تيم‌هاي توسعه نرم‌افزار با آن‌ها مواجه بوديم در حال تغيير بودند و تمركز بر حل آن‌ها باعث فراموشي تجارب گذشته مي‌گرديد. فراموشي تجارب گذشته -كه مي‌توانست براي تيم‌هاي ديگر راه‌گشا و كاربردي باشد- نگران‌كننده بود. اين كتاب تلاشي براي تدوين آموخته‌ها و انتقال آن‌ها به خواننده علاقه‌مند است.

با گذشت زمان و رشد پيچيد‌گي سيستم‌هاي نرم‌افزاري و به دنبال آن رشد پيچيدگي اجراي پروژه‌ها، لازم است اعضاي تيم -بخصوص رهبران- برداشت يكساني از موضوعات نيازمندي‌ها داشته باشند تا مذاكره و تعامل براي حلِ مسأله‌هاي پيچيده‌‌ امكان‌پذير باشد. اغلب دانش و آشنايي اعضاي تيم‌ها با مفاهيم، تكنيك‌ها و روش‌هاي مهندسي نيازمندي‌ها كفايت نمي‌كند. آموزش، راه طولاني و زمان‌بري است كه اغلب در شرايط اضطرار پروژه‌ها، راه‌حل مناسبي نيست. اين كتاب راه ميان‌بري براي تحقق اهداف يادشده است.

حوزه نيازمندي‌هاي نرم‌افزاري يكي از وسيع‌ترين حوزه‌ها در مهندسي نرم‌افزار است كه استخراج، تحليل، توصيف، تصديق، فرايند و ماهيت تدريجي‌اش، مديريت تغييرات، صفات، رديابي و اندازه‌گيري نيازمندي‌ها را شامل مي‌شود كه در پيكره دانش مهندسي نرم‌افزار(Software Engineering Body of Knowledge) بدان‌ها اشاره شده است. از طرف ديگر پيكره‌‌دانش تحليل كسب‌وكار(Business Analysis Body of Knowledge) داراي چارچوب مشخصي است كه تحليل سازمان، استخراج و تحليل نيازمندي‌ها، تصديق و ارزشيابي راه‌حل را دربر مي‌گيرد. با هدف ارائه كتابي كاربردي‌، ساده و كم‌حجم، تمام حوزه‌هاي مرتبط با مهندسي نيازمندي‌ها، مدل‌سازي كسب‌وكار و نكات فرايندي مربوط به آن‌ها در كتاب آورده نشده است. اميد است در كتاب‌هاي بعدي اين مهم تحقق يابد.

كتاب براي استفاده در پروژه‌هاي توسعه نرم‌افزار تدوين شده است، لذا ديدگاه كاربردي بر ديدگاه ادبيات حوزه‌اي در آن غالب است، اما مفاهيم و اصطلاحات مورد نياز براي كاربرد در آن گنجانده شده است.

معادل واژه‌هاي لاتين از لغت‌نامه تخصصي رايانه و فناوري اطلاعات فرهنگستان زبان و ادب فارسي برگرفته شده است و براي واژه‌هايي كه در اين لغت‌نامه وجود نداشتند، معادل‌هاي فارسي برگزيده شده است.

برای ارتباط با ما می‌توانید از نشاني الكترونيكي  info@SEinAction.irیا وب‌گاه www.SEinAction.ir استفاده كنيد. (SE سرنام Software Engineering يا مهندسي نرم‌افزار است.)

 

مخاطبان كتاب

مخاطبان اصلي كتاب، تحليل‌گران سيستم‌هاي نرم‌افزاري هستند. به‌علاوه كتاب مي‌تواند براي گروه‌هاي زير نيز مفيد باشد:

مشتریان و كارفرمایان پروژه‌هاي توسعه نرم‌افزار

يكي از مهم‌ترين مشخصه‌هاي مرحله نيازمندي‌ها، تدوين مشخصات سيستم به زبان مشتريان است. اين كتاب به مشتريان مي‌‌آموزد كه چه چيزهايي را و چگونه از تيم‌هاي توسعه نرم‌افزار درخواست كنند و به چه نكاتي در اين مرحله توجه كنند.

طراحان و برنامه­نویسان نرم‌افزار

خروجي‌هاي مرحله نيازمندي‌ها، ورودي به تيم‌هاي طراحي و برنامه‌نويسي است. همچنین طراحان نرم‌افزار در بازنگري و تأييد خروجي‌هاي اين مرحله مشاركت مؤثر دارند. اين كتاب به آن‌ها كمك خواهد كرد تا وظايف خود را در مرحله نيازمندي‌ها به درستي انجام دهند.

مديران پروژه‌هاي توسعه نرم‌افزار

اين كتاب چارچوبي براي برنامه‌ريزي مرحله نيازمندي‌ها مبتني بر فعاليت‌ها و محصولات كاري با قالب‌هاي مشخص ارائه مي‌دهد. اين چارچوب براي برنامه‌ريزي بخشي از پروژه بسيار مفيد خواهد بود. تبيين جايگاه محصولات‌كاريِ مرحله نیازمندی‌ها، ريسك‌هاي مشخصي را به مديران پروژه يادآور مي‌گردد.

آزمون‌گران نرم‌افزار

 شناخت ورودي‌هاي هر فعاليت، يكي از عوامل مهم در انجام درست آن است. مجموعه نيازمندي‌هاي سيستم نيز ورودی اصلي آزمون سيستم‌هاي نرم‌افزاري است. اين كتاب خروجي‌هاي مرحله نيازمندي‌ها -ورودي‌هاي مرحله آزمون- و اجزاي هر يك از آن‌ها را به آزمون‌گران مي‌آموزد.

 دانشجویان رشته­های مهندسي نرم­افزار و رشته‌هاي مرتبط

مهندسي نيازمندي‌ها بخش مهمي از مهندسي نرم‌افزار است. با وجود مطالبي هم‌چون جايگاه نيازمندي‌ها در توسعه نرم‌افزار، تعاريف و مفاهيم اصلي، چالش‌ها و تكنيك‌هاي استخراج و هم‌چنين گام‌هاي تحليل نيازمندي‌ها در يك ساختار نظام‌مند، اين كتاب منبع مناسبي براي  دانشجویان خواهد بود.

بخش ها و فصل‌هاي كتاب

كتاب در شش بخش ارائه شده و بخش‌ها بر پايه ارتباط و پيوستگي مطالب چيده‌ شده است. بخش‌ ابتدايي به اهميت و تعاريف اختصاص دارد، روش اجراي فرايند در بخش‌هاي مياني قرار گرفته و دو بخش‌ پاياني نيز شامل مطالب تكميلي است.

در ادامه، بخش‌ها و فصل‌هاي كتاب معرفي مي‌شود.

بخش اول: مقدمه

اين بخش مقدمه‌اي بر موضوعات حوزه نيازمندي‌هاست که در دو فصل ارائه مي‌شود:

فصل اول: اهميت نيازمندي‌ها

بي‌شك مرحله نيازمندي‌ها يكي از مهم‌ترين و تأثيرگذارترين مراحل در توسعه نرم‌افزار است. این فصل با ارائه و تأكيد بر نتايج تحقيق‌هاي انجام شده، اهمیت و تأثیرگذاري نیازمندی‌ها را در موفقیت پروژه‌ها بررسی مي‌كند.

منبع اصلي اين فصل:

Dean Leffingwell and Don Widrig, “Managing software requirements: A Use Case Approach”, Addison-Wesley, 2003

فصل دوم: تعاريف

واژه‌ها و مفاهيم نقش مهمي در درك درست آموزه‌ها و بهبود ارتباطات انساني دارند. به‌كارگيري واژه‌هايي چون «نياز» يا «نيازمندي» به جاي يكديگر در گفت‌وگوها و مكتوبات امر رايجي است، اما در گفتارها ونوشتارهاي تخصصي، واژه‌ها معناي ويژه‌اي مي‌گيرند تا آن‌جا كه ديگر نمي‌توان «نياز» را به جاي «نيازمندي» به كار برد.

در اين فصل، مفاهيم، واژه‌ها و اصطلاحات مهم حوزه نیازمندی‌ها تعریف شده‌ است.

بخش دوم: تحليل مسأله

استخراج و تحليل نيازمندي‌ها در پروژه‌هاي توسعه نرم‌افزار شباهت زيادي به حل مسأله‌ رياضي دارد. در كتاب‌هاي آموزش رياضي تأكيد مي‌شود كه فهم درست مسأله، نيمي از حل آن است. اين بخش از كتاب به تشريح چگونگي فهم مسأله در پروژه‌ها مي‌پردازد و شامل يك فصل است.

فصل سوم: روش تحليل مسأله

در اين فصل بعد از تعريف واژه «مسأله»، اهميت شناسايي درست مسأله توضيح داده شده است. سپس روش شناسايي و تدوين مسأله، افراد مرتبط با مسأله يا ذينفعان، مرز سيستم و قيدهاي محدودكننده راه‌حل تشريح شده است.

بخش سوم: شناسايي نيازهاي ذينفعان

هدف اين بخش شناسايي نيازهاي ذينفعان پروژه و تدوين مشخصات محصول مورد انتظار و مطلوب آنان است. علاوه بر شناسايي نيازهاي ذينفعان، قواعد حاكم بر كسب‌وكار نيز استخراج و مدون مي‌گردد تا در تعريف سيستم استفاده شوند.

اين بخش شامل دو فصل است.

فصل چهارم: روش شناسايي نيازهاي ذينفعان

اين فصل مجموعه‌اي از كارها را شرح مي‌دهد كه منجر به تدوين سند چشم‌انداز سيستم مي‌گردند. اين كارها به طور كلي شامل تشريح جايگاه محصول نزد ذينفعان، شناسايي نيازها و شرح چگونگي رفع آن‌ها توسط سيستم، شناسايي ويژگي‌ها،  اولويت‌ آن‌ها و تعيين مستندات الزامي سيستم است.

فصل پنجم: شناسايي قواعد كسب‌وكار

قواعد كسب‌وكار نقش بارزي در توسعه سيستم‌هاي نرم‌افزاري ايفا مي‌كنند، چرا كه سيستم ملزم به پوشش بخش عمده‌اي از آن‌هاست. در اين فصل ابتدا تعريفي از قواعد كسب‌وكار، خاستگاه، طبقه‌بندي و سطح‌بندي آن‌ها ارائه شده است. در ادامه، روش شناسايي و مستندسازي  قواعد در قالب نمودارهاي UML و مستندات تشريح شده است.

بخش چهارم: تعريف سيستم

تعيين مشخصات سيستم در سطح كلان كه ويژگي‌ها(سرويس‌ها) بخشي از آن است، پيش‌تر مطرح شد. ويژگي‌ها فقط بيان‌ مي‌كنند كه «چه» سرويس‌هايي توسط سيستم ارائه مي‌شود، اما «چگونگي» ارائه آن‌ها را بيان نمي‌كنند.

اين بخش نشان می‌دهد كه سيستم «چگونه» نيازها را مرتفع و ويژگي‌ها را ارائه مي‌كند. در اين كتاب، براي اين كار از تكنيك موردكاربرد(use case) استفاده شده است. اين بخش شامل سه فصل است.

فصل ششم: مدل موردكاربرد

در اين فصل اجزاي مدل موردكاربرد و محصولات‌كاري مرتبط با آن معرفي شده‌اند. تعريف، اهميت و روش‌هاي طبقه‌بندي كنشگر(actor) و موردكاربرد، اجزاي مستندات «مشخصات موردكاربرد»(use case specification) و «مرور مدل موردكاربرد»(use case model survey) از جمله مواردي است كه در اين فصل تشريح مي‌شود.

فصل هفتم: روش تدوين مدل موردكاربرد

تدوين مدل موردكاربرد نه به يك‌باره بلكه با طي چند گام انجام مي‌شود كه در هر گام بخشي از مدل موردكاربرد كامل مي‌گردد. اين كتاب، روشي سازمان‌يافته و گام به ‌گام را براي اين كار پيشنهاد و تشريح مي‌كند.

روش‌هاي شناسايي كنشگرها، موردكاربردها، چگونگي تدوين قواعد كسب‌وكار و پيغام‌ها در مورد‌كاربرد، شناسايي رابطه‌هاي تعميم، شمول و گسترش و مستندسازي آن‌ها در اين فصل آمده است.

در اين فصل مجموعه‌اي از توصيه‌ها براي هر مرحله پيشنهاد شده كه مي‌تواند به عنوان چك‌ليست در بازنگري خروجي‌ها مورد استفاده قرار گيرد.

فصل هشتم: توصيف مشخصات تكميلي

برخی از نیازمندی‌های نرم‌افزاری به شكل موردکاربرد قابل بیان نيست. از آنجا که موارد كاربرد اکثر نیازمندی‌های سیستم را در خود جای داده‌ است، اين گونه نيازمندي‌ها تكميل‌كننده مواردكاربرد است و از اين رو آن‌‌ها «تكميلي» ناميده و در سندي به نام «مشخصات تكميلي» تدوين می‌شوند.

اين فصل روش تدوين اين‌گونه نيازمندي‌ها را تشريح مي‌كند.

 
بخش پنجم: موضوعات تكميلي  
 
 
 

 

 

در اين بخش دو موضوع تكميلي مرتبط با نيازمندي‌هاي نرم‌افزاري-چالش‌هاي مهم در استخراج نيازمندي‌ها و تكنيك‌هاي آن- ارائه شده است.

فصل نهم: چالش‌هاي استخراج نيازمندي‌ها

در این فصل چالش‌ها و آفت‌هاي استخراج نیازمندی‌ها معرفی شده‌ و راه‌حل‌هایی برای آن‌ها ارائه شده است. ناآشنايي تيم توسعه با چالش‌های یادشده به مشكلات روابط انساني دامن زده، آن‌ها را بغرنج‌‌تر مي‌كند.

منبع اصلي اين فصل:

Dean Leffingwell and Don Widrig, “Managing software requirements: A Use Case Approach”, Addison-Wesley, 2003

فصل دهم: تكنيك‌هاي استخراج نيازمندي‌ها

تكنيك‌هاي استخراج نيازمندي‌ها بخشي از مهندسي نيازمندي‌ها است كه تيم‌هاي توسعه بخصوص تحليل‌گران از آن غافل مي‌شوند. تحليل‌گر با شناسايي شرايط، يك يا تركيبي از چند تكنيك را براي استخراج نيازمندي‌ها به‌كار مي‌گيرد. اين فصل سعي‌ دارد جعبه ‌ابزاري از تكنيك‌ها براي خواننده فراهم كند.

بخش ششم: نمودارها

در اين بخش دو نمودار از نمودارهاي زبان UML- نمودار فعاليت و نمودار وضعيت- كه در تحليل نيازمندي‌ها كاربرد بيشتري دارند، معرفي و تشريح مي‌شود. اين بخش شامل دو فصل است:

فصل يازدهم: نمودار فعاليت

فصل دوازدهم: نمودار وضعيت

روش مطالعه كتاب

می‌توان فصل‌های کتاب را به دو دسته مفهومي تقسیم نمود: فصل‌هایی که ضروري است به ترتيب  مطالعه گردند(فصل‌های 1 الی 8 ) و فصل‌هایی که امكان مطالعه آن‌ها مستقل از ساير فصل‌ها وجود دارد (فصل‌های 9، 10، 11 و 12). دسته اول، فرايند پيشنهادي ارائه شده در این کتاب را دنبال مي‌كند و دسته دوم، مطالب تكميلي را در خود جاي داده است. از اين رو مسير مطالعه پيشنهادي كتاب را مي‌توان در قالب نمودار فعاليت به شكل زير نمايش داد.

تصوير قبل در ابتداي تمامي فصل‌ها تكرار شده است تا علاوه ‌بر يادآوري مسير مطالعه به خواننده، مسير اجراي فرايند تحليل نيازمندي‌ها را نيز تصويرسازي نمايد(يال سمت چپ).

با وجود دسته‌بندي فصل‌هاي كتاب، پیشنهاد می­گردد کتاب از آغاز تا پايان به صورت متوالي مطالعه گردد.

مثال‌هاي كتاب

سعي گرديده تا در ارائه مثال‌ها از يك سيستم- سيستم حساب سپرده كوتاه مدت- استفاده شود. در ادامه به تشریح این سیستم و پیش‌فرض‌های در نظر گرفته شده برای مثال‌های کتاب پرداخته می­شود.

 بانك‌ها معمولاً داراي چهار نوع حساب سپرده ريالي براي مشتريان هستند: كوتاه‌مدت، بلند‌مدت، قرض‌الحسنه و جاري.

فرض شده است كه حساب سپرده كوتاه مدت تنها داراي فرايندهاي افتتاح حساب، واريز به حساب، برداشت از حساب، مسدود كردن حساب، رفع مسدودي حساب، محاسبه و واريز سود و بستن حساب است. براي سادگي، واريز به حساب و برداشت از آن تنها به شكل نقدي انجام مي‌گردد و شكل‌هاي ديگر واريز و برداشت مانند برداشت و واريز با چك خارج از محدوده سيستم  فرض شده است.

از طرف ديگر، فرض شده است كه هر حساب تنها داراي يك صاحب حساب است و شكل‌هاي ديگر افتتاح حساب مانند قيم، وكيل و هم‌چنين حساب‌هاي مشترك خارج از محدوده فرض شده است.

با اين حال در هر مثال، سعي شده است فرض‌ها به شكلي مطرح گردند كه به موضوع مرتبط گردند.

ابزار مورد استفاده براي مدل‌سازي مثال‌هاي كتاب، Enterprise Architect يا به اختصار EA، محصول شركت Sparx است. براي مدل‌سازي مي‌توان از ابزارهاي ديگر كه نمادهاي UML 2.x را پشتيباني كنند، استفاده كرد.

تقدیر و تشکر

نام بردن از اسامي تمام عزيزاني كه در طول يك‌ و نيم سال تدوين كتاب و قبل از آن در جمع‌آوري و شكل‌گيري مطالب كتاب تأثيرگذار بوده‌اند، از حوصله كتاب خارج است. از همگي آن‌ها سپاسگزاريم و بهترين‌ها را برايشان آرزومنديم.

 از استادان ارجمند آقايان دكتر رامان رامسين و مهندس نويد خسروي و دوست عزيزمان، جناب آقاي مهندس علي باقري صميمانه تشكر مي‌كنيم.

 از نظرات و راهنمايي‌ بسياري از دوستان و همکاران بزرگوار در بهبود كيفيت كتاب بهره‌ گرفته شده است كه از تك‌تك آن‌ها از جمله مهندس مریم میرصالحی، مهندس ابوالفضل هادی، دكتر سميه ملكوتي‌خواه، مهندس رضا بابانژاد، مهندس مسعود خاري، مهندس ريحانه جعفري و مهندس هوشنگ مختاری نیا قدرداني مي‌كنيم.

 براي جناب آقاي مهندس مرتضوي-مديرعامل شركت پويا- و جناب آقاي مهندس حدادي- مديرعامل شركت‌ بريد سامانه‌ نوين- بهترين‌ها را آرزومنديم.

 از كمك‌هاي بي‌دريغ جناب آقاي مهدي صادقي، مدير محترم انتشارات رسم و مهندس علي‌رضا سليمي در چاپ و انتشار اين كتاب قدرداني مي‌گردد.

 هر چند كه نه شايسته و نه قادر به قدرداني از استاد ارجمند جناب آقاي ابراهيم نقيب‌زاده مشايخ هستيم، با اين حال از زحمات و راهنمايي‌هاي ايشان بسيار سپاسگزاريم

فهرست مطالب کتاب

بخش اول: مقدمه. 27

فصل اول – اهمیت نیازمندی‌ها 28

1-        مقدمه. 30

2-        پروژه موفق.. 30

3-        دلايل اصلي موفقيت يا شكست پرو‍ژه‌ها 30

4-        ميزان و اندازه رخداد خطاهاي نيازمندي‌ها 34

5-        هزينه بالاي خطاهاي نيازمندي‌ها: قاعده 1-200. 35

6-        نكات كليدي.. 39

7-        مراجع. 40

فصل دوم- تعاریف… 41

1-        مقدمه. 43

2-        نیازمندی.. 43

3-        دسته‌بندي نيازمندي‌ها 45

4-        سطوح نيازمندي‌ها 51

5-        تفاوت نیازمندی و طراحی.. 55

6-        قيد. 57

7-        ذينفع. 59

8-        مدیریت نیاز مندی‌ها 61

9-        نکات کلیدی.. 64

10-       مراجع. 65

بخش دوم: تحليل مسأله. 67

فصل سوم – روش تحلیل مسأله. 68

1-        مقدمه. 70

2-        مسأله چيست… 70

3-        توافق بر سر تعريف مسأله. 72

4-        شناسايي عوامل بروز مسأله. 74

5-        شناسايي ذينفعان و کاربران. 82

6-        تعيين مرز سيستم. 89

7-        شناسايي قيدهاي راه‌حل.. 92

8-        نكات كليدي.. 95

9-        مراجع. 96

بخش سوم: شناسايي نيازهاي ذينفعان. 97

فصل چهارم – روش شناسايي نيازهاي ذينفعان. 98

1-        مقدمه. 100

2-        تشريح جايگاه محصول. 100

3-        تدوين نيازهاي اصلي ذينفعان و كاربران. 102

4-        شناسايي ويژگي‌هاي سيستم. 106

5-        توصيف كلان محصول. 113

6-        شناسايي نيازمندي‌هاي مستندسازي.. 115

7-        شناسايي ساير نيازمندي‌هاي محصول. 116

8-        سند چشم‌انداز. 116

9-        نكات كليدي.. 121

10-       مراجع. 122

فصل پنجم- شناسايي قواعد كسب‌وكار. 123

1-        مقدمه. 125

2-        تعريف قاعده كسب‌وكار. 125

3-        اهمیت قواعد كسب‌وكار. 126

4-        خاستگاه عمومي قواعد كسب‌وكار. 127

5-        سطح‌بندی قواعد كسب‌وكار. 129

6-        طبقه‌بندي قواعد كسب‌وكار. 131

7-        شناسايي قواعد كسب‌وكار. 133

8-        تدوين قواعد كسب‌وكار. 133

9-        راهنماي تدوين قواعد كسب‌وكار. 140

10-       نكات كليدي.. 147

11-       مراجع. 148

بخش چهارم: تعريف سيستم. 149

فصل ششم – مدل موردكاربرد. 150

1-        مقدمه. 152

2-        مدل موردكاربرد. 152

3-        كنشگر. 155

4-        موردكاربرد. 165

5-        سند مشخصات موردكاربرد. 168

6-        بسته‌‌ 177

7-        سند مرور مدل موردكاربرد. 178

8-        كاربرد مدل موردكاربرد. 184

9-        نكات كليدي.. 186

10-       مراجع. 187

فصل هفتم – تدوين مدل مورد كاربرد. 189

1-        مقدمه. 191

2-        شناسايي كنشگرها و تدوين مشخصات آن‌ها 191

3-        شناسايي‌ موارد كاربرد و تدوين شرح مختصر آن‌ها 198

4-        ترسيم نمودار موردكاربرد اوليه. 206

5-        طرح‌ريزي مشخصات موردكاربرد. 206

6-        تشريح مشخصات موردكاربرد. 212

7-        تقسيم موارد كاربرد. 213

8-        شناسايي روابط بين موارد كاربرد. 219

9-        استفاده از ساير نمودارها 228

10-       سازماندهي مدل موردكاربرد. 236

11-       توضيحات تكميلي.. 240

12-       نكات كليدي.. 240

13-       مراجع. 242

فصل هشتم – تدوين مشخصات تكميلي.. 243

1-        مقدمه. 245

2-        جايگاه مشخصات تکمیلی.. 245

3-        شناسايي مشخصات تكميلي.. 246

4-        قالب مستند مشخصات تکمیلی.. 256

5-        نكات كليدي.. 259

6-        مراجع. 261

بخش پنجم: موضوعات تكميلي.. 263

فصل نهم – چالشهاي استخراج نيازمندي‌ها 264

1-        مقدمه. 266

2-        آفت «بله، اما» 266

3-        آفت قلعه‏هاي كشف‌نشده 268

4-        آفت كاربر– توسعه‌دهنده 268

5-        نكات كليدي.. 271

6-        مراجع. 273

فصل دهم – تكنيك‌هاي استخراج نيازمندي‌ها 275

1-        مقدمه. 277

2-        مصاحبه. 278

3-        مشاهده 279

4-        تحقيق/پرسش‌نامه. 280

5-        تحلیل مستندات… 281

6-        مهندسی معکوس… 282

7-        ‌نمونه‌سازي.. 283

8-        توفان فكري.. 284

9-        گروه متمركز. 285

10-       شناسايي رابط.. 286

11-       نقالي.. 287

12-       ايفاي نقش… 288

13-       کارگاه نیازمندی‌ها 288

14-       انتخاب تكنيك مناسب… 289

15-       نكات كليدي.. 292

16-       مراجع. 293

بخش ششم: نمودارها 295

فصل يازدهم – نمودار فعاليت… 296

1-        مقدمه. 298

2-        عناصر نمودار فعالیت… 299

3-        نكات كليدي.. 322

4-        مراجع. 324

فصل دوازدهم – نمودار وضعيت… 325

1-        مقدمه. 327

2-        «وضعيت» 328

3-         «گذار» 330

4-         «وضعيت مركب» 334

5-         «وضعيت پاياني» 335

6-         «شبه وضعيت» 335

7-        نكات كليدي.. 341

8-        مراجع. 342