روشهای تست نرم افزار

  • بررسی روش های تست نرم افزار

    یکی از مهمترین مراحل تولید نرم افزار، فاز تست و رفع اشکال سیستم است که در تمام متد های تولید سیستم های نرم افزاری از جمله RUP برای آن روش مدونی در نظر گرفته شده است. تعریف تست یک نرم افزار را می توان فرآیندی جهت کشف خطاهای کشف نشده نرم افزار در جهت مرتفع نمودن آنها عنوان نمود. از انواع مختلف تست نرم افزار عبارتند از تست عملکرد، تست استرس، تست اکتشافی، تست تطبیق پذیری با محیط، تست امنیت بر شمرد. در ادامه به توضیحی کوتاه در خصوص هر کدام می پردازیم. ·       تست عملکرد (WHITE BOX TESTING):  تست نرم افزار از نظر درستی عملکرد , در این تست کامپوننتها و فرآیندهای مورد تست قرار می گیرند .این استراتژی با تست کدهای نرم افزاری و ساختمان داخلی نرم افزار سر و کار دارد . در این روش کدهای باید به گونه ای اجرا و بررسی شود که مطمئن شویم سطر به سطر کد های برنامه حداقل یکبار اجرا شده است .در کد برنامه باید تمام عبارتهای شرطی(if else ,switch case) را تک تک مورد بررسی قرار دارد بدین صورت که در یک عبارت if else هم قسمت if و هم قسمت else هر کدام به صورت مجزا یکبار اجرا شود، حلقه ها در نرم افزار نقش اساسی دارند چون می توانند با اشتباه جزئی مقدار زیادی از منابع را مصرف کرد و برای مثال شرط خروج از حلقه به اشتباه هیچ وقت true نشود برای نمونه حلقه را برای ورودی بزرگتر تست کنید .   ·       تست استرس (STRESS TESTING) : ·    در این تست برنامه در مقابل بار سنگینی مانند مقادیر عددی پیچیده , مقادیر زیاد ورودی و مقادیر زیاد پرس و جو امتحان میشود.  فشار همزمان چند ایستگاه مختلف برای تست حافظه، از دیگر نمونه های این نوع تست می باشد.هدف از این تست طراحی محیطی است که مخرب تر از محیطی که برنامه در دنیای واقعی و در شرایط نرمال با آن روبرو می شد . ·       تست اکتشافی : در این روش فرض می شود شخصی که هیچ گونه دانشی در خصوص نرم افزار ندارد در حال کار با سیستم است و به روشهای غیر معمول نرم افزار را مورد تست قرار می دهد. این روش یک روش جالب و قوی برای تست نرم افزار است. ·  تست تطبیق پذیری با محیط : ·  در این تست، نرم افزار در سیستم عاملهای مختلف یا مرورگرهای مختلف و کالاً زیر ساختهای مختلف تست می شود ومیزان تطبیق پذیری آن با سایر محیط ها مشخص می شود . ·  تست امنیت : ·    این نوع تست می تواند شامل تست محرمانه بودن،جامعیت،تصدیق هویت،مجوز کاربری می باشد . ·  تست واحد (Unit Test): این تست معمولا" توسط خود برنامه نویسان انجام می گیرد و تک تک ماژولها را در حین پیاده سازی تست می کنند آزمون تحمل خرابی : این تست می تاند شامل موارد زیر باشد : اختلال در محیط سخت افزاری(قطع ناگهانی برق – خرابی دیسکهای دستگاه سرویس ...



  • تست نرم افزار (قسمت 1)

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

  • شیوه های متداول در مهندسی نرم افزار

    روشهای متداول در مهندسی نرم افزار طراحی ساخت یافته:  4 عمل اصلی که در گام طراحی انجام می شود : 1) طراحی داده ها یا معماری داده ها: براساس مدل   ERDو DD 2) طراحی معماری یا معماری برنامه ها   : براساس مدل   CFDو DFD 3) طراحی واسطه ها: براساس مدل   STDو Cspec و Pspec 4) طراحی رویه ها: براساس مدل   Pspecو Cspec اصول و مفاهیم طراحی 1) انتزاع : در طراحی سطح انتزاع را گام به گام کاهش می دهیم تا به پیاده سازی نزدیک شویم . 2) پالایش : در هرگام جزء جدیدی به مسئله اضافه می کنیم. 3) خاصیت پیمانه ای : هر طراحی خوب باید این خاصیت را درنظر بگیرد. توجه کنید که  پیمانه ها ، تست و خطایابی را آسان  کرده و انتشار خطا را کاهش می دهند. البته استفاده از پیمانه ها همیشه به صرفه نیست زیرا با افزایش تعداد پیمانه ها هزینه مجتمع سازی و برقراری ارتباط بین پیمانه ها را بیشتر می شود. 4) معماری : همبندی مؤلفه های نرم افزار . 5) سلسله مراتب کنترل : سلسله مراتب کنترل نحوه ی انتقال کنترل بین پیمانه ها را نشان می دهد. 6) تقسیم بندی : در تقسیم بندی باید تعداد fan in ها را بیشتر کنیم و سعی کنیم تعداد fan out  ها را افزایش ندهیم. 7) ساختمان داده ها : ساختمان داده رابطه منطقی میان عناصر داده ای را مشخص می کند . ساختمان داده ، سازماندهی ، روش های دستیابی و راه های گوناگون پردازش را نشان می دهد. 8) رویه نرم افزار : در طراحی رویه ها جزئیات پردازشی و منطق هر یک از پیمانه ها، ترتیب اجرای دستورات، شرط ها و غیره بیان می شود . 9) پنهان سازی اطلاعات : یک طراحی خوب منطق و جزئیات پیمانه ها را از یکدیگر پنهان می کند و ارتباط پیمانه ها را از طریق interface  برقرار می کند.  طراحی پیمانه ای خوب : یک طراحی پیمانه ای خوب، پیمانه هایی تولید می کند که استقلال تابعی دارند، در استقلال تابعی دو مفهوم مطرح می شود: 1) وحدت : یعنی کارهای مرتبط به هم در یک پیمانه قرار گیرند. در طراحی خوب وحدت پیمانه ها بالاست. انواع وحدت: وحدت تصادفی، وحدت زمانی، وحدت رویه ای، وحدت ارتباطی، وحدت منطقی 2) ارتباط (کوپل) : به معنی ارتباط بین پیمانه ها می باشد . هرچه ارتباط بین پیمانه ها کمتر باشد بهتر است . انواع ارتباط: ارتباط داده ای، ارتباط مشترک، ارتباط خارجی، ارتباط محتویات نکته: نرم افزار باید حداکثر وحدت و حداقل ارتباط را داشته باشد.طراحی داده ها : طراحی داده ها در سه سطح زیر انجام می شود: در سطح مؤلفه ، ساختمان داده ها طراحی می شود . در سطح کاربرد ، براساس ERD پایگاه داده طراحی می شود. در سطح تجاری : مخزن داده ها یا data warehouse طراحی می شود .  طراحی معماری : انواع معماری ها: 1) Data Center 2) شی گرا 3) جریان داده 4) لایه ای 3) Call return  در این ...

  • تست نرم افزار (قسمت 2)

    دوست خوبمان آقای نوبر لطف کردند و نواقصی را که در قسمت اول تست نرم افزار بود کاملتر کردند که عبارتند از : 1.       در کتاب هنر تست نرم افزار - the art of software testing خواندم (و به نظرم کاملا منطقی می آید) که هدف نهایی از تست نرم افزار یافتن باگهای بیشتر است و نه چیز دیگر! البته ادله محکم و قابل قبولی نیز برای این تعریف ارایه میکند. 2.       در متن اشاره کرده ای که "یک مجموعه از ورودهای صحیح با خروج های مربوط به آن را تهیه می کنیم ...". در حوزه تست نرم افزار سناریوی ذکر شده در متن (سناریوی آفتابی-sunny scenario) کاملا لازم است اما سناریوی دیگر (سناریوی بارانی-rainy scenario) که هدف آن کشف اشکالات نرم افزار در مواجهه با مقادیر نادرست (مثلا عدم نمایش پیغام خطای مناسب) است نیز از اهمیت بالایی برخوردار است. 3.       . در تجربیاتی که داشتم Equivalence Partitioning و Boundary Value Analysis را در تستهای جعبه سیاه نیز به کار بردم که منجر به صرفه جویی در زمان و احتمال کشف خطاهای بیشتری شد.و البته بعضی از موارد دیگر را می توانید تحت عنوان اصول اساسی تست نرم افزار از وبلاگ ایشان دنبال کنید و البته به همه دوستان توصیه می کنم حتما پست های اول وبلاگ ایشان را که بیانگر اهمیت تست نرم افزار می باشید را حتما مطالعه کنند. و البته از همه دوستان می خواهم که نواقص و اشکالات را بیان کنند تا به مطالبی با کیفیت خوب برسیم. تست نرم افزار عموما در چهار سطح مختلف صورت می گیرد که این چهار مرحله به صورت ترتیبی انجام می پذیرند و عبارتند از : تست واحد (Unit testing) تست مجتمع سازی  (Integration Testing) تست سیستم (System Testing) تست پذیرش (Acceptance Testing)تست واحد (Unit testing) : یک واحد کوچکترین قسمت قابل تست یک نرم افزار می باشد. که این واحد در برنامه نویسی شی گرا می تواند یک متد باشد و در برنامه نویسی رویه ای می تواند کل برنامه (در زبانی مانند کوبول)  یا یک تابع و ... باشد.  هدف در این سطح از تست این است که آیا واحد مورد نظر به تنهایی کاری را که باید انجام بدهد می دهد یا نه. تست مجتمع سازی  (Integration Testing) : تست واحد را برای هر کدام از واحدها به صورت جداگانه انجام دادید و از صحت عملکرد آنها مطمئن شدید. همه واحدها به صورت منفرد به طور صحیح وظایف خود را انجام می دهند، آیا نیازی به تست اینکه وقتی واحدها کنار هم قرار گرفتند و ارتباط برقرار کردند وظایفشان را به شکل صحیح انجام می دهند هست یا نیست. فرضی کنید 2 نفر مشغول کاری هستند هنگامیکه موارد مورد نیاز برای انجام کار بطور کامل مهیا باشد هر کدام از آن 2 فرد می توانند کارشان را به شکل کامل انجام بدهند. اما اگر موارد مورد نیاز برای یکی از آنها توسط دیگری تامین شود ممکن است موارد تهیه شده ...

  • خرید سی دی آموزش تست زنی مهندسی معکوس

    خرید سی دی آموزش تست زنی مهندسی معکوس

    آموزش جامع تست زنی به روش مهندسی معکوسقیمت:48,00 تومانروش پرداخت وجه: پرداخت درب منزل مجموعه جامع تست زنی به روش مهندسی معکوس شامل پنج جزوه و دو نرم افزار و فایلهای كلاسهای كنكور تهران در زمینه تست زنی به روش مهندسی معكوسكاملترین بسته تست زنی به شیوه نفرات اول كنكور به روش مهندسی معكوس و منطق فازی ...به كمك روشهای ۷ گانه كشف گزینه صحیح ...آیا می دانید با زدن حتی یك تست صحیح می توانید شانس موفقیت خود را افزایش داده و چند هزار نفر را پشت سر بگذارید ؟استراتژی ها و تاكتیك های تست زنی با كمترین معلوماتآشنایی كامل با روانشناسی طراحان سوالات كنكورآشنایی كامل با روشهای صحیح تست زنیتشخیص تفاوت بین تست های استاندارد و غیر استانداردروشهای كاهش اضطراب و استرسافزایش سرعت عمل و سرعت انتقال تا ۵۰%آموزش مدیریت زمان و تقسیم بندی زمانی صحیحهمراه با بیان اسرار موفقیت N.L.Pآموزش بصورت كاملا ویدیوئی و قابل فهمبهمراه كنكور سراسری و آزادكنكور كاردانی به كارشناسی كنكور كارشناسی ارشدو كلیه آزمونهای تستیدر این روش بدون حل نمودن تست چهار گزینه به دو گزینه تبدیل گشته و یك چهارم احتمال درست زدن تست به یك دوم احتمال درست زدن تبدیل می شود. با بكارگیری این روش بدون حل نمودن و داشتن معلومات لازم حداقل بیست تا سی درصد تستها پاسخ صحیح داده می شوند.بیان اسرار منطقی روشهای بدست آوردن پاسخ صحیح.بیان اصول درست فراگیری دروس در سركلاس دبیرستان و یا دانشگاه.بیان توصیه هایی برای بهتر آموختن.دركلاس چگونه باید باشیم؟ و برای فهم بهتر مباحث چه باید انجام دهیم ؟در سر جلسه امتحان رعایت چه نكاتی ما را موفق تر از دیگران خواهد نمود ؟ روشهای درست مطالعه چیست ؟با استفاده از تكنیك ها و روشهای تست زنی شما می توانید فقط با داشتن ۱۰% معلومات و بكار گیری شیوه های تست زنی تردید خود را بین گزینه ها از ۴ به ۲ گزینه كاهش دهید و سپس به گزینه صحیح برسید .تجربه نشان داده است كه در هر سال كنكور و در هر درس ۱۵% از سوالات كنكور تكرار سالهای گذشته می باشد كه شما علاوه بر استفاده روش های تست زنی با تمرین و مرور تستها و رابطه بین گزینه ها به راحتی گزینه صحیح را كشف یا شكار كنید .مجموعه فوق شامل روشهای تست زنی و شكار گزینه صحیح در بین ۴ گزینه و روشهای صحیح مطالعه برای كنكور می باشد. گروه آموزشی مجموعه ای جامع درباره تست زنی به روش مهندسی معكــوس تهیه كرده كه دریافت آن را به كلیه داوطلبان كنكور اعم از كنكور سراسری و آزاد ، كنكور كارشناسی ارشد ، كاردانی به كارشناسی و… توصیه می كنیم.آیا می دانید ظرفیت پذیرش دانشجو در رشته های مختلف تحصیلی به ویژه دوره های روزانه بسیار محدود ...

  • آموزش روشهای یافتن درایورهای سخت افزار

    آموزش روشهای یافتن درایورهای سخت افزار

    در این آموزش موارد زیر را بررسی خواهیم کرد: ۱- مباحث فنی مربوط به درایورها ۲-یافتن درایورها با روش نرم افزاری با کمک نرم افزار Driver Magician ، Driver Detective و ... ۳-معرفی سایتهای تخصصی مربوط به درایورهامباحث فنی مربوط به درایورها خوب اولا" که اصولا سخت افزار برای کارکرد خود هیچ نیازی به درایور ندارد و قابلیت سخت افزاری از اساس موجود است و ربطی به درایور ندارد. در واقع این ویندوز هست که برای ارسال درخواستها نیاز به دانستن زبان سخت افزار دارد که همان درایور است. پس علت اینکه چرا هر نسخه ویندوز نیازی به یک نوع درایور دارد مشخص میشود چون اصلا سخت افزار نیازی به درایور ندارد و این ویندوز است که نیاز به درایور دارد و بنابراین هر نسخه ای از ویندوز یک درایور نیاز دارد. نکته دومی که وجود دارد در واقع استانداردهایی است که برای ساخت سخت افزار رایج شده و همگی شرکتها موظف به رعایت آن هستند. اصولا هر سازنده سخت افزار موظف است داده های زیر به صورت سطح پایین در سخت افزار به روش استاندارد ذخیره سازی دایمی بلا تغییر نماید.داده های شناسایی سخت افزار مهمترین این داده ها به شرح زیر است: 1-Type of Hardware در واقع سازنده باید مشخص نماید که این سخت افزار چه میکند. مثلا مودم است. بلوتوث است و .... البته ویندوز با توجه به نوع دریافت و ارسال پایه ای داده هم می تواند این نوع سخت افزارها را شناسایی نماید. 2-کد اختصاصی مربوط به سازنده سخت افزار یا Vendor ID 3-کد اختصاصی ثبت شده مربوط به نسل و رده سخت افزار به صورت خاص Hardware ID 4-کد اختصاصی مربوط به سخت افزارهایی که دارای قابلیت های مشابهی هستند Compatible Hardware ID 5-تعداد زیادی کد که مربوط به نحوه تعامل سخت افزار با سایر سخت افزارها و همچنین خود ویندوز است. این نکته را هم باید گفت که اساسا" ساخت درایور وظیفه سازنده سخت افزار میباشد. اما بین ساخت درایور و تایید آن توسط شرکت سازنده سیستم عامل تفاوت هست. در واقع در دهه 90 میلادی بحث درایورها مطرح شد وتا زمانیکه یک روند استاندارد برای درایورها طرح نگردید مشکلات سیستم عاملها بالا بود. اگر کاربر سیستم عامل ویندوز 98 بوده باشید اشکالات فراوانی با این سیستم عامل داشتید که مهمترین آن خطای صفحه آبی و ریبوت کردن زیاد بود. خوب بخش عمده ای از این خطاهای شدید به دلیل تعامل نادرست و یا پیش بینی نشده ویندوز با سخت افزار از طریق درایور بود. در واقع در عمده موارد بررسی لاگ و یا گزارش خطا نشان میداد که درایور مشکل دارد نه خود هسته سیستم عامل. بعدها در ویندوز 2000 ریشه مشکل با تدوین یک روند استاندارد کنترل سخت افزار خاتمه یافت و تا حد زیادی مشکلات مربوط به درایور حذف شد. این روند ...

  • تست سالم بودن سخت افزار به خصوص کارت گرافیک

    تست سالم بودن سخت افزار به خصوص کارت گرافیک

    قصد خرید یک لپ تاپ یا کامپیوتر جدید دارید. اما چگونه اطمینان داشته باشید کامپیوتری که می خرید واقعا از سخت افزار سالمی برخوردار است و فروشنده دستگاهی با قطعه ای معیوب در اختیار شما قرار نمی دهد؟ آن هم با این بازار و وجود قطعات با کیفیت نامناسب به همراه وضع بد گارانتی ها و خدمات پس از فروش. اگر لپ تاپ یا کامپیوتر جدیدتان اشکال سخت افزاری داشته باشد باید منتظر دردسرهای جدی باشید.راه حل چیست؟ باید هنگام خرید تا جای ممکن کامپیوتر جدیدتان را تست و بررسی کنید. اگر اطلاعات لازم را داشته باشید به راحتی و با چند تست خودتان می توانید بسیاری از مشکلات سخت افزاری را کشف کنید. بنابراین دانستن این موارد هم به شما کمک می کند که کامپیوتر جدیدتان را تست کنید و هم می توانید به دوستان تان هنگام خرید کامپیوتر جدید کمک کنید. پس ادامه مطلب را از دست ندهید.بررسی مشخصات سخت افزاری: ابتدای کار باید اطمینان حاصل کنید لپ تاپی که به شما تحویل داده اند همان مشخصات سخت افزاری دارد که به شما گفته شده است! باور کنید یا نکنید، در بازار فروش داخل ایران این مورد واقعا اتفاق می افتد که قرار است شما لپ تاپی را یک مشخصات فنی توافق شده بخرید اما چیزی که در نهایت تحویل میگیرید رم یا پردازشگری متفاوت دارد (حتی بدتر از این!) بنابراین لازم است هنگام تحویل کامپیوتر این موارد را بررسی کنید. دو نرم افزار کوچک و رایگان CPU-Z و GPU-Z اطلاعات بسیار کاملی را در این مورد در اختیارتان قرار می دهند. می توانید آنها را روی یک کول دیسک به همراه داشته باشید و هنگام خرید مشخصات سخت افزاری اصلی لپ تاپ تان را با آنها بررسی کنید.البته توجه کنید که این دو نرم افزار تمام مشخصات سخت افزای کامیپوتر را در اختیار شما قرار نمی دهند. اما چیزهایی را نشان تان می دهند که به صورت پیش فرض در سیستم عامل ویندوز قابل مشاهده نیستند.(به ویژه در مورد سی پی یو، رم و کارت گرافیک) دیگر اطلاعات سخت افزاری مانند ظرفیت هارد دیسک از طریق سیستم عامل قابل بررسی هستند.تست سی پی یو: حالا نوبت تست سی پی یو می رسد. شما باید اطمینان حاصل کنید که پردازشگر کامپیوتر جدیدتان در هنگام فشار کاری دچار خطا نمی شود. برای این کار می توانید از نرم افزاری به نام Prime95 که برای تمام سیستم عامل ها در دسترس است استفاده کنید. این نرم افزار با محاسبه اعداد پرایم از تمام ظرفیت محاسباتی سی پی یو استفاده می کند و با این کار یک تست استرس خوب روی آن انجام می دهید و این همان چیزی است که می خواهیم. اجازه دهید که این نرم افزار برای چند ساعت پردازشگر شما را به صورت کامل پر کند.همزمان خوب است که دمای سی پی یو را هم تحت نظر داشته باشید ...

  • فرآيند توسعه نرم افزار

    فرآيند توسعه نرم افزار به بهانه تدريس اين بخش از درس مهندسي نرم افزار يک در دانشگاه بد نديدم، خلاصه اي از درس را تحت عنوان مروري بر فرآيند توسعه نرم افزار و روشهاي مختلف آن را در اينجا نيز ذکر کنم باشد که مورد استفاده علاقه مندان قرار گيرد.چرا؟ چون فکر می کنم چنانچه هم مشتری و هم تولید کننده با فرآیند توسعه نرم افزار آشنا باشند ارتباط بهتری با هم برقرار می کنند و هر یک وظیفه و حقوق خودش را بهتر می داند و بهتر می تواند بر جریان تولید نظارت داشته باشد. در ساخت يک سيستم نرم افزاري سه فرآيند مهم تاثير گذار مي باشند:- فرآيند توسعه (Development Process): سازماندهی فعالیت ها است برای ساخت یک سیستم- فرآيند مديريت (Management Process): انتخاب افراد، تجهیزات و فرآیند هاست برای توسعه یک سیستم و کنترل و نظارت بر روند اجرای پروژه (مدیریت پروژه)- فرآيند پشتيباني (Maintenance Process): کنترل و پشتیبانی نرم افزار پس از تولید آن در این بین در فرآیند توسعه هدف آن است که یک سیستم با مشخصات خواسته شده تولید شود و بنابراین برای تولید هر نوع سیستم متفاوت است.فرآیند توسعه از مرحله طرح یک راه حل مفهومی برای مساله خواسته شده (امکان سنجی) آغاز شده، پس از دریافت خواسته ها و تحلیل سیستم طراحی صورت گرفته و در نهایت این طراحی با کمک ابزارهای پیاده سازی تبدیل به یک سیستم واقعی می شود. هدف این فرآیند آن است که از یک سو برآورده ساختن نیازهای کاربران و از سوی دیگر کیفیت مناسب عملکرد سیستم تضمین گردد و بنابراین بایستی حاوی مکانیسم هایی برای اعتبار سنجی: خروجی مطابق با خواسته ها (Validation) و وارسی پذیری: صحت عملکرد خروجی (Verification) باشد. فرآیند توسعه ضمن دادن آزادی به تحلیل گر باید تضمین کند که زمانبندی رعایت شود. روشهای مختلفی برای فرآیند توسعه سیستم وجود دارد که در این میان می توان گفت 12 روش مطرح تر وجود دارد که بدون اشاره به مزایا و معایب آنها عبارتند از: 1- ساده ترین روش: تبدیل فرآیند توسعه سیستم در قالب دنباله ای از وظایف مشخص و ترسیم CPM: CriticalPath Model ، یک نمودار از تمام فعالیت ها 2- فرایند توسعه خطی Liner: به ترتیب مراحل انتخاب پروژه، تعریف مفهومی (تعریف مساله، امکان سنجی) ، تعریف مشخصات (خواسته ها ، تعریف مساله) ، طراحی (طراحی معماری، تفصیلی) ، توسعه (ساخت سیستم، تست) ، ارزیابی و درنهایت تعریف پروژه جدید 3- مدل آبشاری (WaterFall) : تقسیم وظائف توسعه سیستم در قالب یک مدل آبشاری از تعریف مساله، امکان سنجی، تحلیل (سیستم، خواسته ها)، طراحی ، پیاده سازی و تست ، یکپارچه سازی و تست، نصب و تست ، نگهداری و مرور , با امکان برگشت از یک مرحله به مرحله قبل 4- توسعه مرحله ای، افزایشی و یا نموی ...