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

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

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

تحلیل و طراحی سیستم ها که موضوع اصلی این مطلب را تشکیل میدهند بهترتیب به شناسایی نیازهای کسب و کار و تعریف راهکار بر مبنای نیازها و نتایج حاصل از تحلیلها میپردازند.
این مفاهیم جزو مهمترین مهارتهای مهندسی نرمافزار در رشته کامپیوتر محسوب میشوند که توسعهدهندگان بهواسطه آن میتوانند سیستمهای قدرتمند و توسعهپذیری را بسازند که بهراحتی نیز قابل نگهداری است.
اهمیت تحلیل و طراحی سیستم ها
مراحل تحلیل و طراحی سیستم ها در توسعه سیستمها به اندازهای مهم هستند که نادیده گرفتن آنها میتوان شکست پروژه را به دنبال داشته باشد.
فهرست زیر به شما میگوید که نداشتن برنامه مناسب در فرایند توسعه ممکن است چه مشکلاتی را رقم بزند.
- عدم پاسخگویی سیستم به نیازهای کاربران و برآورده نشدن توقعات آنها از سیستم. به بیان دیگر، اگر سیستم نتواند کارهای مورد انتظار کاربران را انجام دهد، موفقیتی نیز نخواهد داشت.
- اصلاح و دوبارهکاریهای هزینهبر: رفع ایرادهای سیستم بههنگام فرایند توسعه یا حتی پس از آن میتواند هزینههای زیادی را به دنبال داشته باشد.
- آسیبپذیریها و ضعفهای امنیتی: سیستمی که بدون طراحی درست ساخته شود، ممکن است در مقابل تهدیدهای امنیتی، آسیبپذیری زیادی از خود نشان دهد.
بهطور کلی میتوان گفت که با طی کردن تحلیل و طراحی سیستم ها بهشکلی صحیح میتوان در زمان، هزینه و زحمت خود در طولانیمدت صرفهجویی کرد. علاوه بر این، کمک میکنند تا سیستمهای نرمافزاری تولید شده، همسو و منطبق با اهداف سازمان و نیازهای کاربران باشند.
تحلیل سیستم چیست؟
به زبان ساده و بهطور خلاصه، در فاز تحلیل سیستم متوجه میشویم که سیستم چه کارهایی را میبایست انجام دهد و بهطور کلی چه وظایفی دارد. تحلیل سیستم را همچنین میتوان فرایندی برای حل مشکلات سیستم و بهبود آن دانست که موارد زیر را در بر میگیرد.
- جمعآوری اطلاعات و تحلیل آن
- پیدا کردن مشکلات و چالشها
- تجزیه سیستم به مؤلفههای تشکیل دهنده آن
در این فاز، سیستم و اجزای آن را به دقت مورد بررسی قرار میدهیم تا بدانیم که چه اهدافی دارند. سپس با پرداختن به مسائل موجود و رفع آنها، زمینه همکاری بهتر اجزای سیستم را فراهم میکنیم. بدینترتیب سیستم میتواند به اهداف تعیین شده دست پیدا کنند.

خصوصیات تحلیل سیستم
از مشخصههای سیستم آنالیز میتوان به موارد زیر اشاره کرد.
- بررسی سیستم کنونی برای یافتن مشکلات آن
- فراهم کردن آشنایی با محیط سیستم و نیازمندیهای آن
- گردآوری و فهمیدن نیازها و انتظارات کاربران
- بررسی و تحلیل سیستم به لحاظ نیازهای کنونی و آینده آن
فواید تحلیل سیستم
سیستم آنالیز مزیتهای زیر را ارائه میدهد.
- در شناسایی مسائل و علتهای مربوط به آنها میتواند مفید باشد.
- به ما کمک میکند تا نیازهای عملکردی و غیرعملکردی سیستم را متوجه شویم. به بیان دیگر ما را در درک کارکرد سیستم و اینکه به چه صورتی میبایست کار کند، یاری میدهد.
- در توسعه راهکارهای بهینهتر برای مسائل میتواند مؤثر باشد.
- در یافتن فرصتهای بهبود در سیستم میتواند مفید باشد.
ضعف های تحلیل سیستم
از نقاط ضعف سیستم آنالیز میتوان به موارد زیر اشاره کرد.
- ممکن است زمانبر باشد.
- احتمال دارد هزینه زیادی را تحمیل کند.
- دستیابی به اطلاعات درست ممکن است سخت باشد.
اقدامات و روش های مورد استفاده در تحلیل سیستم
تحلیل سیستم نخستین گامی است که در فرایند توسعه و ساخت نرمافزارها میبایست برداریم و طی آن، نیازها و الزامات سیستم، شناسایی و گردآوری شده و پس از تحلیل، در قالب مستنداتی ثبت میشود. در این فاز لازم است که درک مناسبی در مورد مسئله پیدا کنیم، ذینفعان و افراد درگیر با سیستم را بشناسیم و همچنین اهداف و محدوده کاری سیستم را تعریف کنیم.
در ادامه میخواهیم مهمترین اقدامات و همچنین تکنیکهایی را بررسی کنیم که در تحلیل سیستم مورد استفاده قرار میگیرد.

مهم ترین فعالیت ها در تحلیل سیستم
در تحلیل سیستمهای نرمافزاری با اقداماتی همچون مواردی که در ادامه فهرست شده رو به رو هستیم.
- جمعآوری نیازمندیهای سیستم: هدف از این کار پیدا کردن نیازها و انتظاراتی است که افراد درگیر با سیستم همچون کاربران، مشتریان و توسعهدهندگان، از برنامه دارند. در صورتیکه این نیازها بهطور واضح مشخص نشوند یا اینکه ناقص باشند، ممکن است پروژه ما به شکست بیانجامد. بههمین دلیل این مرحله بسیار حائز اهمیت است.
- تحلیل نیازهای سیستم: نیازمندیهای گردآوری شده برای سیستم را بررسی و تحلیل میکنیم تا از کامل بودن، انسجام و سازگاری و قابل اجرا بودن آن مطمئن شویم.
- امکانسنجی: از این طریق، بررسی میکنیم که سیستم پیشنهادی به لحاظ فنی، هزینهها و عملیاتی بودن قابل اجرا باشد.
- امکانسنجی فنی: آیا سیستم جدید را میتوان با فناوریهای کنونی ساخت؟
- امکانسنجی اقتصادی: آیا پیادهسازی این پروژه مقرون به صرفه است؟
- مدلسازی فرایندهای سیستم: در مدلسازی روالهای کاری سیستم، مدلها و نمودارهایی را میسازیم تا بهوسیله آنها فرایندهای موجود و همچنین موارد پیشنهادی را نشان دهیم.
- مدلسازی دادهها: این اقدام به تعیین موجودیتهای دادهای، خصوصیات و همچنین ارتباط آنها در سیستم میپردازد.
روش های مورد استفاده در تحلیل سیستم
از تکنیکها و راهکارهای مورد استفاده در تحلیل سیستم میتوان به موارد زیر اشاره کرد.
- انجام مصاحبهها: از طریق مصاحبه حضوری یا آنلاین با ذینفعان و افرادی که با سیستم سر و کار دارند میتوان اطلاعاتی را از آنها جمعآوری کرد.
- برگزاری نظرسنجی: به کمک تکنیک نظرسنجی و استفاده از پرسشنامهها میتوان دادههای مفیدی را از تعدادی زیادی از افراد بهدست آورد.
- مشاهده: با مشاهده کارکرد سیستم کنونی میتوان آشنایی مناسبی با جریان فعالیتها و روالهای کاری آن پیدا کرد.
- بررسی و تحلیل مستندات: این تکنیک به بررسی گزارشها، مستندات و راهنماهای قابل دسترس میپردازد.
- ایجاد نمونه اولیه: ساخت پروتوتایپ یا نمونه اولیه، به ایجاد نسخهها و مدلهای سادهای از سیستم اشاره دارد که به کمک آنها میتوان بازخوردهایی را از کاربران دریافت کرد و بر این اساس، شاخت بهتری از نیازمندیهای سیستم در راستای بهبود آن پیدا کرد.
طراحی سیستم چیست؟
گفتیم که در مرحله تحلیل، وظایف مورد انتظار از سیستم مشخص میشود، اما در طراحی به چگونگی انجام این کار و رسیدن به اهداف سیستم پرداخته خواهد شد.
بهطور کلی، هنگامیکه صحبت از طراحی سیستم میشود، منظورمان این است که قصد برنامهریزی برای توسعه سیستمی جدید را داریم. یا اینکه میخواهیم سیستم بهتری را ایجاد کنیم تا جایگزین سیستم فعلی شود و مشکلات آن را رفع کند. این فرایند بدینشکل انجام میشود که مؤلفههای سیستم جدید را با هدف پاسخگویی بهتر و رفع نیازهای موجود تعریف و برنامهریزی میکنیم. موضوعی که پیش از این کار میبایست مورد توجه قرار دهیم آشنایی دقیق با سیستم پیشین و نحوه کار آن است. همچنین باید به دنبال این باشیم که چگونه میتوان از ظرفیت و مزیت کامپیوترها برای بهبود این روند و بهینهتر شدن آن استفاده کرد.
تحلیل و طراحی سیستم ها که به صورت «SAD» هم خوانده میشود موضوعات زیر را مورد توجه قرار داده است.
- سیستمها
- فرایندها
- فناوری
خصوصیات طراحی سیستم
از ویژگیهای طراحی سیستمهای میتوان به موارد زیر اشاره کرد.
- طراحی معماری سیستم، کامپوننتها، ماژولها، رابطها و دادهها
- شناسایی ماژولها و کامپوننتهای سیستم
- ساخت رابط کاربری و طراحی پایگاه داده
فواید طراحی سیستم
طراحی سیستم مزیتهای زیر را به دنبال دارد.
- کمک به ایجاد سیستمی بهینه و کارآمد
- مؤثر در پیدا کردن فرصتهای بهبود سیستم
- کمک به کاهش هزینههای مربوط به توسعه
- سودمند بودن در ایجاد و ارائه تجربه کاربری بهتر
ضعف های طراحی سیستم
از نقاط ضعف طراحی سیستم میتوان به مواردی همچون زمانبر بودن، امکان تحمیل هزینه زیاد و سخت بودن دستیابی به اطلاعات درست اشاره کرد.
فعالیت ها و روش های مورد استفاده در طراحی سیستم
در این قسمت به بررسی اقدامات کلیدی و همچنین تکنیکهای مورد استفاده در طراحی سیستم خواهیم پرداخت.

مهم ترین فعالیت ها در طراحی سیستم
در ادامه، برخی از مهمترین اقدامات در طراحی سیستم را فهرست کردهایم.
- طراحی معماری سیستم: بهواسطه این اقدام ساختار کلی و کامپوننتهای سیستم مشخص میشود.
- طراحی کامپوننتها: در این اقدام، به طراحی اجزا یا کامپوننتهای سیستم و همچنین تعاملات آنها پرداخته میشود.
- طراحی رابط: ارتباط بین اجزای سیستم ما و سیستمهای بیرونی از این طریق تعیین میشود.
- طراحی دادهها: این اقدام روی ساختار دادهها و «اسکیمای» (Schema) پایگاه داده تمرکز دارد.
- طراحی جزئیات: مشخصهها و خصوصیات دقیق از جمله الگوریتمها و جریان داده را برای هر یک از کامپوننتها ایجاد میکند.
روش های مورد استفاده در طراحی سیستم
از تکنیکهای قابل استفاده در طراحی سیستمها میتوان به موارد زیر اشاره کرد.
- UML: زبان مدلسازی یکپارچه که به اختصار «UML» هم خوانده میشود روشی استاندارد محسوب میشود که به کمک آن میتوانیم جزئیات و ساختار سیستم نرمافزاری مدنظر را در قالب نمودارهایی به تصویر بکشیم تا عملکرد آن را بهتر درک کنیم. ضمن اینکه در ساخت، تعیین خصوصیات و مستندسازی اینگونه سیستمها نیز مفید خواهد بود.
ابزار «Rational Rose» یکی از محبوبتترین برنامهها برای ساخت نمودارهای UML بهشمار میرود. این اپلیکیشن را میتوانید به کمک فیلم آموزش مدلسازی UML با نرمافزار Rational Rose از فرادرس که لینک آن نیز در ادامه آورده شده یاد بگیرید.
- DFD: نمودارهای جریان داده یا به اصطلاح «DFD» با مصورسازی این روند به ما کمک میکند تا نحوه حرکت دادهها در سیستم مدنظر را به خوبی درک کنیم.
- ERD: نمودارهای «موجودیت-رابطه» که با نام «ERD» هم شناخته میشوند مؤلفهها و موجودیتهای داخل پایگاه داده و همچنین ارتباط میان آنها را به تصویر میکشند.
فیلم آموزش رایگان نمودار ER در پایگاه دادهها از فرادرس که لینک آن نیز در ادامه آورده شده علاوه بر بررسی سریع این نمودار، به معرفی انواع موجودیتها و صفتها، درجه ارتباط و نوع ارتباط نیز میپردازد.
- درخت تصمیم: به کمک این نوع نمودارها که مسیرهای تصمیمگیری در فرایندهای سیستم را به تصویر میکشند، میتوانیم از نتایج ممکن برای هر تصمیم مطلع شویم.
- نمودار انتقال حالت: یک سیستم میتواند در وضعیتها یا حالات گوناگونی قرار گیرد. نمودار انتقال حالت، علاوه بر نشان دادن «حالتهای» (State) سیستم، انتقال سیستم بین این حالات را نیز برایمان به تصویر میکشد.
طراحی معماری سیستم
پس از اینکه نیازها و الزامات پروژه مشخص شد، نوبت به طراحی معماری سیستم میرسد. در طی این فرایند، ساختار سیستم، نحوه ارتباط کامپوننتهای سیستم با یکدیگر و فناوریهای مورد استفاده در فرانتاند، بکاند و پایگاه داده مشخص میشوند.
در ادامه، با برخی از الگوهای متداول معماری آشنا خواهید شد.
- معماری لایهای
- میکروسرویسها
- معماری سرور-کلاینت
یادگیری مدل سازی UML با فرادرس
زبان مدلسازی UML یکی از ابزارهای بسیار کاربردی در تحلیل و طراحی سیستم ها محسوب میشود که با آن میتوان سیستمها گوناگون را مدلسازی کرد. برای یادگیری این ابزار میتوانید از کتابها، مقالات و ویدیوهای آنلاین و حتی کارگاههایی استفاده کنید که برای آموختن این مهارت برگزار میشوند.
علاوه بر روشهایی که اشاره کردیم، مشاهده فیلمهای آموزشی نیز جزو شیوههای بهینه برای یادگیری بسیاری از مهارتها محسوب میشود. فرادرس بهعنوان یکی از بزرگترین پلتفرمهای آموزشی کشور، فیلمهای آموزشی متنوعی را برای آموختن مهارتهای متنوع در اختیار مخاطبان خود قرار داده است. این فیلمها توسط اساتید مجرب و با کیفیت بالایی تهیه شدهاند تا مفاهیم تئوری و عملی را در سریعترین زمان ممکن و بهشیوهای بهینه به شما منتقل کنند. مجموعه فیلمهای آموزش مدلسازی UML مقدماتی تا پیشرفته از فرادرس که در ادامه نیز مشاهده میکنید جزو همین فیلمهای آموزشی بهشمار میرود.

برخی از عناوین فیلمهای آموزشی موجود در این مجموعه را در ادامه فهرست کردهایم.
سیستم چیست؟
واژه سیستم، ریشهای یونانی دارد و بیانگر مجموعهای از مؤلفههاست که رابطه منظم و سازمان یافتهای با هم دارند و طبق برنامه، در راستای رسیدن به اهدافی مشترک تلاش میکنند.
سیستمها معمولاً قیود و شرایط زیر را دارند.
- نخست آنکه هر سیستمی لازم است ساختار و عملکرد مشخصی داشته باشد که بهمنظور دستیابی به اهداف معین، ایجاد شده باشند.
- مورد بعدی اینکه اجزای سیستم میبایست به هم متصل و وابسته باشند تا عملکردی صحیحی را از سیستم شاهد باشیم.
- در نهایت نیز، اهداف کلی سازمان و سیستم اصلی، اهمیت و ارجحیت بیشتری نسبت به اهداف بخشها و سیستمهای فرعی آن دارند.
در نمودار زیر چند نمونه سیستم را مشاهده میکنید.

خصوصیات یک سیستم
هر سیستم دارای مجموعهای از ویژگیهاست که در ادامه فهرست کردهایم.
- نظم و سازماندهی
- تعامل
- وابستگی متقابل
- انسجام و یکپارچگی
- هدف اصلی
در ادامه، با هر یک از این خصوصیات بیشتر آشنا میشوید.
نظم و سازماندهی
هنگامیکه از سازماندهی به عنوان مشخصه یک سیستم نام میبریم منظورمان ساختار و نظم مشخصی است که در آن وجود دارد. در واقع، اجزا و مؤلفههای تشکیل دهنده سیستم بهنحوی در کنار هم قرار میگیرند تا اهداف در نظر گرفته شده برای سیستم، قابل دستیابی باشند.
تعامل
وجود ارتباط و تعامل بین مؤلفههای سیستم، مشخصه مهم دیگری است که وجود آن ضروری است. برای درک بهتر میتوانید واحدهایی نظیر «خرید» و «تولید» در یک شرکت را در نظر بگیرید که بین آنها میبایست هماهنگی و ارتباط وجود داشته باشد، یا بخشهای «کارگزینی» و «پرداخت حقوق» یک سازمان که با هم تعامل دارند.
وابستگی متقابل
برای اینکه یک سیستم به درستی کار کند، لازم است اتصال و هماهنگی مشخص و مناسبی بین اجزای آن وجود داشته باشد. این خصوصیت را وابستگی متقابل مینامیم و به زبان ساده نشان میدهد که اجزای گوناگون سیستم به چه شکلی به هم وابسته هستند. برای درک بهتر، فرض کنید که یکی از اجزای سیستم برای کار خود به خروجی و نتیجه مؤلفه دیگر سیستم نیاز داشته باشد، به همین دلیل لازم است بهشکل مشخصی با هم در ارتباط باشند.

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

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

انواع سیستم ها
سیستمها انواع گوناگونی دارند که در این قسمت با آنها آشنا خواهید شد.
سیستمهای فیزیکی یا انتزاعی
سیستمهای فیزیکی مؤلفههایی هستند که میتوانیم آنها را لمس کنیم یا به آنها دست بزنیم. این سیستمها میتوانند ایستا یا پویا باشند.
- سیستمهای فیزیکی ایستا: مانند میز، صندلی و سایر مؤلفههای فیزیکی و ثابت یک سایت کامپیوتری.
- سیستمهای فیزیکی پویا: مانند کامپیوتر شخصی که اپلیکیشنها، دادهها و برنامههای آن بر اساس نیاز شما میتواند تغییر کند.
سیستمهای انتزاعی در طرف دیگر، مؤلفههایی غیرفیزیکی، مفهومی و غیر قابل لمس مانند بازنمایی یا مدلی از یک سیستم واقعی هستند.
سیستمهای باز یا بسته
سیستمهای باز، مؤلفههایی هستند که با دریافت ورودی از محیط و ارائه خروجیها به خارج از سیستم، با محیط خود تعامل دارند. سیستم اطلاعاتی را میتوان نوعی سیستم باز دانست که میبایست خود را با تغییرات محیطی هماهنگ کند.
در مقابل، سیستمهای بسته را داریم که علاوه بر نداشتن تعامل با محیط، تغییرات محیطی نیز تأثیری روی آن ندارد. البته پیدا کردن سیستمی که بهطور کامل بسته باشد شاید آسان نباشد.
سیستمهای تطبیقی و غیرتطبیقی
سیستمهای تطبیقی که انسانها و حیوانات، نمونههایی از آن هستند از تغییرات محیطی تأثیر میگیرند و واکنش نشان میدهند. از این طریق، عملکرد خود را بهبود داده و به بقای خود ادامه میدهند.
در مقابل، سیستمهای غیر تطبیقی مانند دستگاهها یا ماشینها را داریم که برعکس مورد قبلی واکنشی به تغییرات محیطی نشان نمیدهند.

سیستمهای دائمی و موقتی
برخی سیستمها مانند سیاستهای کسب و کار، جزو سیستمهای دائمی محسوب میشوند که برای مدتی طولانی پابرجا هستند. در مقابل آن سیستمهای موقتی یا زودگذر را داریم که برای مدتزمان معینی ایجاد میشوند.
سیستمهای طبیعی و تولیدی
سیستمها میتوانند طبیعی باشند و توسط طبیعت ایجاد شوند. مانند سیستم سولار یا خورشیدی، سیستم فصلی و غیره. همچنین، سیستمهای «تولیدی» (Manufactured) مانند سدها، قطارها و موشکها را داریم که توسط انسانها ساخته شدهاند.
سیستمهای قطعی و احتمالی
سیستمها میتوانند عملکردی قابل پیشبینی داشته باشند که در اینصورت به آنها سیستمهای قطعی میگوییم و بین اجزای آن تعامل مشخصی وجود دارد. بهطور مثال، ۲ مولکول هیدروژن را در نظر بگیرید که در مواجهه با یک مولکول اکسیژن، آب را تشکیل میدهند.
در سیستمهای احتمالی مانند سیستم پیشبینی آب و هوا، شاهد عملکرد و رفتار غیرقطعی هستیم و نمیتوان نتیجه را بهطور دقیق تخمین زد.
سیستم های ماشینی، اجتماعی، انسان-ماشینی
در سیستمهای ماشینی مانند رباتهای خود مختار، تمامی کارها توسط ماشینها انجام میگیرد و انسانها دخالتی در آن ندارند. سیستم اجتماعی مانند اجتماعات، انجمنهای اجتماعی و غیره نیز از افراد متعددی تشکیل شدهاند. در سیستم انسانی-ماشینی مانند برنامهنویسی کامپیوتر، از هر دو مؤلفه انسان و ماشین برای انجام کارها استفاده میشود.
سیستمهای اطلاعاتی ساخت انسان
این دسته از سیستمها مجموعهای از منابع اطلاعاتی را شامل میشوند که دارای ارتباط تنگاتنگی با هم هستند. سیستمهای اطلاعاتی شامل سختافزار، نرمافزار و اپلیکیشنها و دادهها هستند و اطلاعات را بر اساس نیازمندیهای سازمان تولید میکنند.
از انواع سیستمهای اطلاعاتی ساخت انسان میتوان به موارد زیر اشاره کرد.
- سیستمهای اطلاعاتی رسمی: در این سیستم، اطلاعات در قالب یادداشتها، دستورالعملها و غیره از مدیر ارشد به سطوح پایینتر مدیریتی انتقال پیدا میکند.
- سیستمهای اطلاعاتی غیر رسمی: این نوع سیستم اطلاعاتی، بین کارمندان برقرار است و در آن به رفع مسائل کاری رایج پرداخته میشود.
- سیستم کامپیوتر محور: در این نوع سیستم برای مدیریت برنامههای تجاری همچون سیستم مدیریت خودکار کتابخانه، سیستمهای بانکی، سیستم رزرو بلیت قطار و غیره به کامپیوتر نیاز داریم.
مدل های سیستم
سیستمها مدلهای مختلفی میتوانند داشته باشند که در ادامه هر یک را توضیح دادهایم.
مدل شماتیک
این نوع مدل در حقیقت، نموداری ۲-بُعدی شامل عناصر موجود در سیستم و اتصالات یا پیوندهای بین آنهاست. جریان انتقالی اطلاعات و دادهها، بازخوردهای اطلاعاتی و غیره نیز در این نمودارها با فلشهای مختلفی نشان داده میشوند.
مدل سیستم جریان
این شکل از مدلها، جریان منظم و سازماندهی شده دادهها، انرژی و اطلاعات در سیستم را نشان میدهند. بهطور مثال، از روشی مانند «بررسی و ارزیابی برنامه» یا به اصطلاح «PERT» برای نشان دادن سیستم واقعی در قالب مدلی ساده استفاده میشود.
مدل سیستم ایستا
اینگونه مدلها بیانگر روابطی ایستا بین ویژگیهایی مانند «هزینه-مقدار» (Cost-Quantity) یا «زمان فعالیت» (Activity Time) هستند. بهطور مثال، نموار گانت نمایی ایستا از رابطه «زمان فعالیت» را به تصویر میکشد.
انواع اطلاعات و دسته بندی آن
با در نظر گرفتن سطوح گوناگون مدیریتی و تصمیمگیریهای مدیران، میتوان اطلاعات را به ۳ دسته تقسیم کرد.

این دستهبندی را ادامه آوردهایم.
- بر اساس حجم اطلاعات: تراکم پایین، نیمه پردازش شده و گزارشهای مفصل و حجیم
- بر مبنای نوع اطلاعات: بدون ساختار، نیمهساختارمند و ساختارمند
- بر اساس سطح اطلاعات: اطلاعات راهبردی، اطلاعات کنترل مدیریتی و اطلاعات عملیاتی
- بر مبنای سطح مدیریت: بالا، میانی و پایین
- بر اساس پشتیبانی سیستم: DSS ،MIS و DPS
اطلاعات استراتژیک
مدیران ارشد سازمانها به کمک اطلاعات استراتژیک یا راهبردی همچون روندهای درآمدی، سرمایهگذاریهای مالی، منابع انسانی و رشد جمعیتی، که به کمک سیستمهای پشتیبانی تصمیمگیری یا «DSS» بهدست میآیند، سیاستگذاریها و برنامهریزیهای بلندمدت را برای سالهای پیشرو انجام میدهند.
اطلاعات مدیریتی
این نوع از اطلاعات مواردی مانند پیشبینی جریان نقدی، تحلیل فروشها و گزارش مالی سالانه را شامل شده و بهوسیله سیستمهای اطلاعات مدیریتی یا همان «MIS» به دست میآید. مدیران میانی بر پایه چنین اطلاعاتی، برنامهریزیهای کوتاهمدت یا میانمدت ماهانه را انجام میدهند.
اطلاعات عملیاتی
مدیران پایینرده بهکمک اطلاعات عملیاتی که از طریق سیستمهای پردازش داده یا «DPS» جمعآوری میشود، برنامهریزیهای کوتاهمدت و روزانه را برای اجرای وظایف روزمره، انجام میدهند. این اطلاعات میتواند شامل مواردی مانند موجودی فعلی، سوابق حضور و غیاب کارکنان، سفارشهای خرید عقبافتاده و غیره باشد.
روش چابک و آبشاری در فرایند توسعه
اکنون، آشنایی کافی با تحلیل و توسعه سیستم ها پیدا کردهاید. در این قسمت میخواهیم درباره نحوه تطبیق مراحل این ۲ مفهوم با فرایند جامعتر توسعه نرمافزار صحبت کنیم.
مدل آبشاری
در توسعه نرمافزار با مدل رایج و سنتی «آبشاری» (Waterfall)، گامهای گوناگون توسعه از جمله تحلیل، طراحی، کدنویسی، تست و نگهداری به دنبال هم و بهصورت خطی انجام میشوند. یعنی، برای ورود به هر یک از مراحل این مدل لازم است مرحله قبلی را طی کرده باشید. با اینکه این روش، انعطافپذیری زیادی ندارد اما برای پروژههای کوچک که نیازمندیهای واضح و مشخصی دارند، عملکرد مناسبی را ارائه میدهد.
متدولوژی چابک
روش اجایل یا «چابک» (Agile)، رویکرد دیگری است که در توسعه نرمافزارها میتوان از آن استفاده کرد. این رویکرد انعطافپذیری بالایی دارد و توسعه سیستم نرمافزاری را بهصورت تکرار شونده یا «مکرر» (Iterative) انجام میدهد. به بیان دیگر، بر خلاف مدل آبشاری، دیگر نیازی به طی کردن کامل گامهای تحلیل و طراحی سیستم ها نیست. در عوض، بهبود سیستم در قالب دورههایی کوتاهمدت و مستمر تحت عنوان «اسپرینت» (Sprint) انجام میشود و در این فرایند، بازخوردهای کاربران و نیازهای گوناگون و متغیر، نقش مهمی ایفا میکنند.
متدولوژی اجایل یا چابک به دلیل انعطافپذیری و تطبیقپذیری بالای خود، محبوبیت زیادی در توسعه پروژههای نرمافزاری کنونی پیدا کرده است.
فیلم آموزش مبانی توسعه نرمافزاری Agile یا چابک از فرادرس که لینک آن نیز در ادامه آورده شده میتواند اطلاعات خوبی را در این مورد در اختیارتان
قرار دهد.
فرق بین تحلیل و طراحی سیستم ها
همانطور که اشاره کردیم، تحلیل و طراحی سیستم ها، ۲ مفهوم مهمی هستند که در فرایند توسعه نرمافزار با آنها رو به رو خواهید شد. علیرغم اینکه گاهی اوقات ممکن است این ۲ مفهوم بهجای هم استفاده شود اما هر یک، به دنبال اهداف متفاوتی هستند و برای انجام کارها، متدلوژیها و روشها گوناگونی را بهکار میگیرند.
در این قسمت میخواهیم مهمترین تفاوتهای تحلیل و طراحی سیستم را با هم بررسی کنیم.
ویژگی | تحلیل سیستم | طراحی سیستم |
موضوع مورد تأکید | آشنایی و درک مسئله، شناسایی نیازها و جمعآوری اطلاعات | تعیین راهحل و طراحی سیستم |
خروجی | مستندات مربوط به نیازمندهای پروژه | مشخصههای طراحی سیستم |
روشها | نظرسنجی، تحلیل مستندات، مصاحبه، مشاهده | نمودارهای انتقال حالت، DFD-ها، ERD-ها، UML، درخت تصمیم |
میزان جزئیات | درک کلی یا سطح بالا | خصوصیات مفصل و دقیق |
رابطه بین تحلیل و طراحی سیستم
۲ مفهوم تحلیل و طراحی سیستم ها ارتباط بسیار نزدیکی با هم دارند. بهگونهای که خروجی مرحله تحلیل سیستم که همان مستندات مربوط به الزامات پروژه است، به عنوان ورودی مرحله طراحی سیستم در نظر گرفته میشود. همچنین، برای اطمینان از اینکه سیستم ایجاد شده پاسخگوی توقعات کاربران و ذینفعان آن است، مشخصههای طراحی میبایست با الزامات تعیین شده برای سیستم، هماهنگ و همسو باشد.
در یکی از مطالب پیشین مجله فرادرس آموزش UML و نمودارهای آن را به زبان ساده بیان کردهایم که مطالعه آن میتواند برایتان سودمند باشد.
یادگیری مدل سازی فرایند کسب و کار با فرادرس
اکنون که با مبحث تحلیل و طراحی سیستم ها و مفاهیم پایهای آن آشنا شدهاید، برای ادامه مسیر یادگیری خود میتوانید مباحث زیر را با فیلمهای آموزشی فرادرس یاد بگیرید.

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