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

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

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

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

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

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

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

روش کاربردی

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

 نویسندگان:

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

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

مظفر ایراف

ویراستار:

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

عضو هیأت علمی دانشکده علوم کامپیوتر دانشگاه تهران

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

ناشر:                 رسم، تهران صندوق پستی ۳۴۵-۱۵۶۵۵

چاپ اول:       پاییز ۱۳۸۹

شمارگان:           ۳۰۰۰ نسخه

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

چاپ:                 سبزآرنگ

شابک:                ۲-۲۳-۸۷۶۳-۹۶۴-۹۷۸  / ISBN: 978-964-8763-23-2

قیمت:               ‌ ۹۵،۰۰۰ ریال

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

۶۶۹۰۹۱۸۷ تهران  ، دانشوران سرمد (بازارچه کتاب نرم افزاری هوشا) 

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

روش تهیه کتاب

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

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

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

۱) انتخاب کتاب و تعداد درخواستی و واریز هزینه فروش و ارسال کتاب به جام ملت ۱۰۷۱۳۷۱۶۴۱ شماره کارت ۶۱۰۴۱۳۷۲۰۰۶۸۹۵۲۷ به نام علی عبداللهی ازگمی

۲) ارسال شماره حواله واریزی و یا  تصویر ان بهمراه آدرس دقیق  و گیرنده کتاب  از طریق شماره  نمابر  ۰۲۱۶۶۹۱۵۵۴۰   , و یا ایمیلKetab@daneshvaran.com و یا سامانه گفتگو این وبسایت.

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

  •  برای داخل شهر تهران هزینه پیک بادپا با ارائه فاکتور توسط خود پیک
  • برای ارسال با پست سفارشی با توجه به تعداد و وزن مرسوله با احتساب وزن هر کتاب معادل ….. گرم طبق جدول پست پیشتاز شرکت محترم پست
  • برای ارسال از طریق ترمینال، تماس با  متصدی فروش کتاب۰۲۱۶۶۹۰۹۱۸۷

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

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

 

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

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

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

 

 

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

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

مقدمه

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

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

یکی دیگر از عوامل بروز چالش‌های مذکور، دشواری نگاشت و اجرای فعالیت‌های فرآیندهایی چون 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- نمودار فعالیت و نمودار وضعیت- که در تحلیل نیازمندی‌ها کاربرد بیشتری دارند، معرفی و تشریح می‌شود. این بخش شامل دو فصل است:

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

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

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

می‌توان فصل‌های کتاب را به دو دسته مفهومی تقسیم نمود: فصل‌هایی که ضروری است به ترتیب  مطالعه گردند(فصل‌های ۱ الی ۸ ) و فصل‌هایی که امکان مطالعه آن‌ها مستقل از سایر فصل‌ها وجود دارد (فصل‌های ۹، ۱۰، ۱۱ و ۱۲). دسته اول، فرایند پیشنهادی ارائه شده در این کتاب را دنبال می‌کند و دسته دوم، مطالب تکمیلی را در خود جای داده است. از این رو مسیر مطالعه پیشنهادی کتاب را می‌توان در قالب نمودار فعالیت به شکل زیر نمایش داد.

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

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

مثال‌های کتاب

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

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

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

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

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

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

تقدیر و تشکر

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

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

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

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

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

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

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

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

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

۱-        مقدمه. ۳۰

۲-        پروژه موفق.. ۳۰

۳-        دلایل اصلی موفقیت یا شکست پرو‍ژه‌ها ۳۰

۴-        میزان و اندازه رخداد خطاهای نیازمندی‌ها ۳۴

۵-        هزینه بالای خطاهای نیازمندی‌ها: قاعده ۱-۲۰۰٫ ۳۵

۶-        نکات کلیدی.. ۳۹

۷-        مراجع٫ ۴۰

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

۱-        مقدمه. ۴۳

۲-        نیازمندی.. ۴۳

۳-        دسته‌بندی نیازمندی‌ها ۴۵

۴-        سطوح نیازمندی‌ها ۵۱

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

۶-        قید. ۵۷

۷-        ذینفع٫ ۵۹

۸-        مدیریت نیاز مندی‌ها ۶۱

۹-        نکات کلیدی.. ۶۴

۱۰-       مراجع٫ ۶۵

بخش دوم: تحلیل مسأله. ۶۷

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

۱-        مقدمه. ۷۰

۲-        مسأله چیست… ۷۰

۳-        توافق بر سر تعریف مسأله. ۷۲

۴-        شناسایی عوامل بروز مسأله. ۷۴

۵-        شناسایی ذینفعان و کاربران. ۸۲

۶-        تعیین مرز سیستم. ۸۹

۷-        شناسایی قیدهای راه‌حل.. ۹۲

۸-        نکات کلیدی.. ۹۵

۹-        مراجع٫ ۹۶

بخش سوم: شناسایی نیازهای ذینفعان. ۹۷

فصل چهارم – روش شناسایی نیازهای ذینفعان. ۹۸

۱-        مقدمه. ۱۰۰

۲-        تشریح جایگاه محصول. ۱۰۰

۳-        تدوین نیازهای اصلی ذینفعان و کاربران. ۱۰۲

۴-        شناسایی ویژگی‌های سیستم. ۱۰۶

۵-        توصیف کلان محصول. ۱۱۳

۶-        شناسایی نیازمندی‌های مستندسازی.. ۱۱۵

۷-        شناسایی سایر نیازمندی‌های محصول. ۱۱۶

۸-        سند چشم‌انداز٫ ۱۱۶

۹-        نکات کلیدی.. ۱۲۱

۱۰-       مراجع٫ ۱۲۲

فصل پنجم- شناسایی قواعد کسب‌وکار. ۱۲۳

۱-        مقدمه. ۱۲۵

۲-        تعریف قاعده کسب‌وکار. ۱۲۵

۳-        اهمیت قواعد کسب‌وکار. ۱۲۶

۴-        خاستگاه عمومی قواعد کسب‌وکار. ۱۲۷

۵-        سطح‌بندی قواعد کسب‌وکار. ۱۲۹

۶-        طبقه‌بندی قواعد کسب‌وکار. ۱۳۱

۷-        شناسایی قواعد کسب‌وکار. ۱۳۳

۸-        تدوین قواعد کسب‌وکار. ۱۳۳

۹-        راهنمای تدوین قواعد کسب‌وکار. ۱۴۰

۱۰-       نکات کلیدی.. ۱۴۷

۱۱-       مراجع٫ ۱۴۸

بخش چهارم: تعریف سیستم. ۱۴۹

فصل ششم – مدل موردکاربرد. ۱۵۰

۱-        مقدمه. ۱۵۲

۲-        مدل موردکاربرد. ۱۵۲

۳-        کنشگر. ۱۵۵

۴-        موردکاربرد. ۱۶۵

۵-        سند مشخصات موردکاربرد. ۱۶۸

۶-        بسته‌‌ ۱۷۷

۷-        سند مرور مدل موردکاربرد. ۱۷۸

۸-        کاربرد مدل موردکاربرد. ۱۸۴

۹-        نکات کلیدی.. ۱۸۶

۱۰-       مراجع٫ ۱۸۷

فصل هفتم – تدوین مدل مورد کاربرد. ۱۸۹

۱-        مقدمه. ۱۹۱

۲-        شناسایی کنشگرها و تدوین مشخصات آن‌ها ۱۹۱

۳-        شناسایی‌ موارد کاربرد و تدوین شرح مختصر آن‌ها ۱۹۸

۴-        ترسیم نمودار موردکاربرد اولیه. ۲۰۶

۵-        طرح‌ریزی مشخصات موردکاربرد. ۲۰۶

۶-        تشریح مشخصات موردکاربرد. ۲۱۲

۷-        تقسیم موارد کاربرد. ۲۱۳

۸-        شناسایی روابط بین موارد کاربرد. ۲۱۹

۹-        استفاده از سایر نمودارها ۲۲۸

۱۰-       سازماندهی مدل موردکاربرد. ۲۳۶

۱۱-       توضیحات تکمیلی.. ۲۴۰

۱۲-       نکات کلیدی.. ۲۴۰

۱۳-       مراجع٫ ۲۴۲

فصل هشتم – تدوین مشخصات تکمیلی.. ۲۴۳

۱-        مقدمه. ۲۴۵

۲-        جایگاه مشخصات تکمیلی.. ۲۴۵

۳-        شناسایی مشخصات تکمیلی.. ۲۴۶

۴-        قالب مستند مشخصات تکمیلی.. ۲۵۶

۵-        نکات کلیدی.. ۲۵۹

۶-        مراجع٫ ۲۶۱

بخش پنجم: موضوعات تکمیلی.. ۲۶۳

فصل نهم – چالشهای استخراج نیازمندی‌ها ۲۶۴

۱-        مقدمه. ۲۶۶

۲-        آفت «بله، اما» ۲۶۶

۳-        آفت قلعه‏های کشف‌نشده ۲۶۸

۴-        آفت کاربر– توسعه‌دهنده ۲۶۸

۵-        نکات کلیدی.. ۲۷۱

۶-        مراجع٫ ۲۷۳

فصل دهم – تکنیک‌های استخراج نیازمندی‌ها ۲۷۵

۱-        مقدمه. ۲۷۷

۲-        مصاحبه. ۲۷۸

۳-        مشاهده ۲۷۹

۴-        تحقیق/پرسش‌نامه. ۲۸۰

۵-        تحلیل مستندات… ۲۸۱

۶-        مهندسی معکوس… ۲۸۲

۷-        ‌نمونه‌سازی.. ۲۸۳

۸-        توفان فکری.. ۲۸۴

۹-        گروه متمرکز٫ ۲۸۵

۱۰-       شناسایی رابط.. ۲۸۶

۱۱-       نقالی.. ۲۸۷

۱۲-       ایفای نقش… ۲۸۸

۱۳-       کارگاه نیازمندی‌ها ۲۸۸

۱۴-       انتخاب تکنیک مناسب… ۲۸۹

۱۵-       نکات کلیدی.. ۲۹۲

۱۶-       مراجع٫ ۲۹۳

بخش ششم: نمودارها ۲۹۵

فصل یازدهم – نمودار فعالیت… ۲۹۶

۱-        مقدمه. ۲۹۸

۲-        عناصر نمودار فعالیت… ۲۹۹

۳-        نکات کلیدی.. ۳۲۲

۴-        مراجع٫ ۳۲۴

فصل دوازدهم – نمودار وضعیت… ۳۲۵

۱-        مقدمه. ۳۲۷

۲-        «وضعیت» ۳۲۸

۳-         «گذار» ۳۳۰

۴-         «وضعیت مرکب» ۳۳۴

۵-         «وضعیت پایانی» ۳۳۵

۶-         «شبه وضعیت» ۳۳۵

۷-        نکات کلیدی.. ۳۴۱

۸-        مراجع٫ ۳۴۲