• مهمترین معیارهای QA. کار در Yandex Metrica جدید: دستورالعمل هایی برای تجزیه و تحلیل وب

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

    معیارهای کد

    نرم افزار متریک (متریک نرم افزار) - یک اندازه گیری عددی که به شما امکان می دهد ویژگی های خاصی از یک بخش خاص از کد برنامه را ارزیابی کنید. برای هر معیار، معمولاً شاخص های معیار آن وجود دارد که نشان می دهد در چه مقادیر شدید ارزش توجه به این بخش از کد را دارد. معیارهای کد به دسته‌هایی تقسیم می‌شوند و می‌توانند جنبه‌های کاملاً متفاوت یک سیستم نرم‌افزاری را ارزیابی کنند: پیچیدگی و ساختار کد برنامه، اتصال اجزاء، حجم نسبی. اجزای نرم افزارساده‌ترین معیار برای درک، تعداد خطوط کد در یک سیستم نرم‌افزاری است، اگرچه به صورت ابتدایی محاسبه می‌شود، اما در ترکیب با سایر معیارها می‌تواند برای به دست آوردن داده‌های رسمی برای ارزیابی کد مفید باشد. برای مثال، می‌توانید بین تعداد خطوط کد در یک کلاس و تعداد متدها/ویژگی‌های یک کلاس رابطه ایجاد کنید، و مشخصه‌ای را دریافت کنید که نشان می‌دهد متدهای یک کلاس چقدر حجیم هستند. علاوه بر این، چنین تخمین‌هایی را می‌توان همراه با معیارهای پیچیدگی (مثلاً پیچیدگی چرخه‌ای مک کیب) برای تعیین سخت‌ترین بخش‌ها در کد برنامه و انجام اقدامات مناسب مورد استفاده قرار داد.

    معیارهای کد همچنین می توانند برای شناسایی ویژگی های معماری مفید باشند. استفاده از چنین معیارهایی بیشترین تأثیر را در تجزیه و تحلیل سیستم های نرم افزاری بزرگ، هنگام تجزیه و تحلیل و بررسی دستی می دهد کد منبعممکن است زمان قابل توجهی طول بکشد. به عنوان مثال، همانطور که در شکل 1 نشان داده شده است، می توانید معیارها را به روش های مختلف تجسم کنید. 1، که در آن هر بلوک برنامه به عنوان یک مستطیل نشان داده می شود، در حالی که طول هر ضلع مستطیل نشان دهنده مقدار هر یک از معیارها (به عنوان مثال، پیچیدگی، ساختار، و غیره) است. چنین نمایشی را می توان هم برای نهادهای برنامه سطح بالا (مجموعه ها، کتابخانه ها، فضاهای نام) و هم برای عناصر خصوصی تر (ویژگی ها، روش ها) ساخت. در عین حال، هنگام تجزیه و تحلیل یک نمودار سطح بالا، می توانید به سرعت کتابخانه های مشکل دار را شناسایی کنید و برای بررسی موجودیت های مشکل دار به سطح پایین تر بروید.

    معیارهای کد ابزار مهمی هستند و امروزه توسط بسیاری از فروشندگان نرم افزار استفاده می شود. بنابراین، هنگام صدور گواهینامه به سطوح بالاتر طبق مدل‌های ISO/IEC یا CMM/CMMI، استفاده از معیارهای کد اجباری است، که امکان دستیابی به کنترل‌پذیری فرآیند توسعه را تا حد معینی ممکن می‌سازد.

    طبقه‌بندی‌های مختلفی از معیارهای نرم‌افزاری وجود دارد که معیارها را از دیدگاه‌های مختلف تفسیر می‌کنند و ویژگی‌های یکسان را بر اساس معیارهای مختلف رتبه‌بندی می‌کنند. یکی از این دسته بندی ها می تواند تقسیم معیارها به گروه ها بر اساس موضوعات ارزیابی باشد:

      اندازه- ارزیابی مقایسه ای اندازه نرم افزار؛

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

      قابلیت نگهداری- ارزیابی پتانسیل سیستم نرم افزاری برای اصلاحات بعدی.

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

    آیا اندازه مهم است؟

    متریک SLOC (خطوط منبع کد) تعداد خطوط کد منبع را منعکس می کند. این شاخص همیشه نمی تواند برای ارزیابی عینی حجم یک سیستم نرم افزاری استفاده شود - مقدار عددی آن به عوامل تصادفی زیادی مانند سبک کدگذاری بستگی دارد. مقایسه دو سیستم نرم افزاری تنها با این معیار به سختی قابل توجیه است، بنابراین بسیاری از شاخص های مشتق شده برای SLOC ظاهر شده اند: تعداد خطوط خالی. تعداد خطوط حاوی نظرات؛ درصد نظرات؛ تعداد خطوط کد موجود در متدها/توابع؛ میانگین تعداد خطوط کد در هر روش/تابع؛ میانگین تعداد خطوط کد در هر کلاس/بسته؛ میانگین تعداد خطوط کد در هر ماژول و غیره

    علاوه بر SLOC، هنگام تخمین اندازه، اغلب از نشانگر LSI (دستورالعمل های منبع منطقی) خطوط کد "منطقی" استفاده می شود که پس از عادی سازی (برآوردن کد منبع به فرم مناسب) فهرست محاسبه می شود: حذف قرار دادن چندین دستورالعمل در یک خط، خطوط خالی، پاک کردن نظرات، قالب بندی خطوط کد برای مقداردهی اولیه داده ها و غیره. چنین شاخصی می تواند برای ارزیابی عینی تر از حجم سیستم استفاده شود (نشانگر با نرمال سازی مانند SLOC به نظر می رسد - تعداد ردیف ها، اما نه فیزیکی، بلکه منطقی). LSI همچنین مشتقاتی دارد، مانند متریک که نه به عنوان تعداد فیزیکی خطوط کد در زبان برنامه نویسی اصلی، بلکه به عنوان تعداد دستورالعمل ها در یک زبان سطح پایین (زبان اسمبلر، MSIL و غیره) محاسبه می شود که نیاز به نرمال سازی را از بین می برد.

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

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

    پیچیدگی

    برای ارزیابی و کنترل کیفیت کد، می توان از معیارهای پیچیدگی به طور مستقیم استفاده کرد: پیچیدگی سیکلوماتیک، انسجام کد، عمق وراثت و غیره.

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

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

    گاهی اوقات آنها از متغیری از متریک استفاده می کنند که منعکس کننده انسجام کد - تعداد تماس های عملیات است. این معیار به شما این امکان را می دهد که اتصال یک سیستم را در قالب فراخوانی روش کمیت کنید. این معیار فقط تماس‌های عملیاتی را که توسط کاربر تعریف شده است، شمارش می‌کند. به عنوان مثال، اگر متد A() روش B() را سه بار فراخوانی کند، آنگاه مقدار این متریک برابر با یک خواهد بود. اگر متد B() یک بار از متدهای A()، C() و D(() فراخوانی شود، مقدار متریک سه خواهد بود. با این حال، بسته به رویکردهای طراحی و کدگذاری سیستم های نرم افزاری، قدر مطلق این متریک می تواند از پروژه ای به پروژه دیگر به طور قابل توجهی متفاوت باشد. حتی در تیم توسعه یکسان در پروژه‌های یکسان، ارزش این معیار ممکن است به دلیل عوامل ذهنی متفاوت باشد (به عنوان مثال، سبک یک توسعه‌دهنده خاص هنگام تفکیک منطق به روش‌های جداگانه) که هنگام ساختن یک سیستم نرم‌افزاری تحت تأثیر قرار می‌گیرد.

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

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

    به طور کلی، معیارهای پیچیدگی می تواند کمک بزرگی به تولیدکنندگان نرم افزار در فرآیند نظارت و مدیریت کیفیت نرم افزار کند.

    قابلیت نگهداری

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

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

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

    ابزار تحلیل کد

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

    Visual Stuido 2008 و Microsoft Build به شما اجازه نمی دهند که یک سلسله مراتب جدی از معیارها ایجاد کنید و برای این کار باید از ابزارهای دیگری مانند NDepend استفاده کنید که به پلتفرم دات نت اجازه می دهد انواع مختلف اتصال، ارث و انتزاع را محاسبه کند و در فرآیند ایجاد برنامه ها مطابق با الزامات یک تیم توسعه خاص یکپارچه شود.

    مشکلات استفاده از معیارهای کد

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

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

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

    سرگئی زوزدین ([ایمیل محافظت شده]) دانشجوی کارشناسی ارشد اورال جنوبی است دانشگاه دولتی(چلیابینسک).

    پرتال آموزش از راه دور در دانشگاه دولتی مسکو راه اندازی شد

    دانشکده آموزش از راه دور، دانشگاه دولتی مسکو M.V. لومونوسوف پورتال اینترنتی خود را باز کرد. این امکان دسترسی به کتابخانه الکترونیکی مشترک دانشگاه دولتی مسکو و آکادمی علوم روسیه، کتاب‌های درسی و دوره‌های آموزشی، مواد صوتی و تصویری، و همچنین برنامه‌های آموزشی با استفاده از فناوری‌های آموزش از راه دور را فراهم می‌کند. بخشی از منابع پورتال فقط در دسترس شنوندگان است برنامه های از راه دورکه طبق توافق با دانشگاه هزینه شهریه را پرداخت کردند. مواد ویدئویی MSU اکنون در دسترس هستند کانالدانشگاه در یوتیوب کانال آموزشی شامل ضبط سخنرانی ها و همچنین رویدادهای دانشگاه است.

    آموزش الکترونیکی فقط برای 17 درصد از شرکت های روسی

    مرکز تحقیقات پورتال SuperJob.ru نتایج یک نظرسنجی اختصاص داده شده به آموزش آنلاین پرسنل در شرکت های روسی را ارائه کرد. در بین کارفرمایان داخلی، استفاده از آموزش الکترونیکی در کار با پرسنل چندان رایج نیست. تنها 17 درصد از شرکت ها این شکل از آموزش را به کارکنان خود ارائه می دهند. این فناوری ها عمدتاً در شرکت های بزرگبا پرسنل 5 هزار نفری (50%). به طور کلی 79 درصد از کارفرمایان از این روش استفاده نمی کنند. دلایل آن یا در نبود تجهیزات فنی لازم و یا عدم تمایل مدیریت به استفاده از این نوع آموزش است. به طور کلی، تنها 11 درصد از مردم روسیه تجربه آموزش از راه دور را دارند. از این تعداد 9 درصد از پاسخ دهندگان از نتیجه راضی بودند و 2 درصد خوب مطالعه نکردند و رفتند. در میان کسانی که این آموزش را به پایان رساندند، تقریباً دو برابر زنان (به ترتیب 11 و 6 درصد) مردان بودند. در عین حال، روس‌های 35 تا 55 ساله بیشتر از جوانان از طریق اینترنت مطالعه می‌کنند. تجربه موفق در آموزش از راه دور می تواند به 12 درصد از پاسخ دهندگان 40 تا 50 ساله و تنها 9 درصد از روس ها زیر 23 سال افتخار کند.

    نتایج مسابقه "حداکثر مقیاس پذیری 2009"

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

    مسابقات جهانی برنامه نویسی آغاز شد

    سی و چهارمین مسابقه سالانه بین‌المللی برنامه‌نویسی دانشگاهی (ICPC) که توسط انجمن ماشین‌های محاسباتی (ACM) برگزار می‌شود و توسط IBM حمایت می‌شود، شاهد رقابت ۱۰۰ تیم دانشجویی برنده در فینال‌های منطقه‌ای خواهد بود. حداقل هشت کار به آنها داده می شود که باید در 5 ساعت حل شوند. فینال در 5 فوریه 2010 در دانشگاه مهندسی هاربین (چین) برگزار خواهد شد. از جمله کارهای سال های گذشته، به عنوان مثال، یافتن کشتی گم شده در دریا، مثلث بندی محل فرستنده رادیویی آسیب دیده، محاسبه موانع هنگام بازی گلف، رمزگذاری و رمزگشایی پیام ها، چاپ به خط بریل، یافتن راهی برای خروج از پیچ و خم بود. سال گذشته از چهار مدال طلا سه مدال را تیم های روسیه کسب کردند. در مرحله مقدماتی این مسابقات ۷۱۰۹ تیم از ۱۸۳۸ دانشگاه از ۸۸ کشور جهان شرکت کردند. تیم دانشگاه دولتی فناوری اطلاعات، مکانیک و اپتیک سن پترزبورگ برای دومین سال متوالی قهرمان جهان شد.

    کتاب جدیدی با عنوان «بازاریابی محتوای رسانه‌های اجتماعی: چگونه وارد ذهن مشترکان شویم و آنها را عاشق برند خود کنیم» منتشر کرده‌ایم.

    اشتراک در

    ما یک گزارش ایجاد می کنیم. در معیارها، "دستیابی به اهداف" - "هدفی که تبدیل شما برای آن پیکربندی شده است" را انتخاب کنید. این صفحه معمولاً یک صفحه "از خرید شما متشکرم" است.

    در نتیجه، اطلاعاتی در مورد تعداد خریدهای انجام شده برای هر AC و چه مقدار برای جذب کاربرانی که آنها را انجام داده اند، به دست خواهیم آورد. ما تعداد تبدیل ها را بر هزینه کلیک ها تقسیم می کنیم، هزینه یک سرنخ را دریافت می کنیم. اگر آن را راه‌اندازی کرده‌اید، می‌توانید یک ستون «درآمد» برای تخمین سود دریافتی اضافه کنید.

    بخش‌های هدف‌گذاری مجدد و تعدیل پیشنهاد: سطح جدیدی از روابط با خریداران بالقوه

    در این بخش، Yandex.Metrics را ایجاد و ذخیره می کنیم، تنظیماتی را برای استفاده در هنگام راه اندازی کمپین ها در Yandex.Direct تعریف می کنیم.

    فراموش نکنید که دوره زمانی را طوری تنظیم کنید که نمونه معرف باشد. لازم است که داده ها بر اساس رفتار گروه بزرگی از بازدیدکنندگان ساخته شوند.

    جنسیت و سن - سازگاری

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

    انتخاب کنید: "گزارش ها" - "بازدید کنندگان" - "جنسیت" (1).

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

    زمان و ساعت - تنظیم

    بازدیدکنندگان شما ممکن است در طول روز یا هفته فعالیت های متفاوتی داشته باشند، بنابراین در این پاراگراف ما بیشترین روزها و ساعات تبدیل را برای منبع شما شناسایی می کنیم، پس از آن می توانید تنظیمات زمان را در Yandex.Direct تنظیم کنید.

    "گزارش ها" - "بازدید کنندگان" - "حضور بر اساس ساعت روز".

    در گروه بندی ها، اضافه کنید: رفتار: تاریخ و زمان - "بخش هایی از تاریخ / زمان" - "روز هفته بازدید" (2). یک هدف را انتخاب کنید - مرتب سازی بر اساس تبدیل. ما گزارشی دریافت می کنیم که نشان می دهد در چه روزی و در چه ساعتی (تبدیل) حداکثر است.

    جغرافیا

    "گزارش ها" - "بازدید کنندگان" - "جغرافیا".

    این گزارش به سایت ها کمک می کند مناطقی را که فروش بهتری نسبت به سایرین دارند شناسایی کنند. معمولاً برای بسیاری از سوله ها، سهم عمده فروش از مسکو یا سن پترزبورگ و مناطق آنها می آید. بنابراین، اکثر تبلیغ کنندگان RK خود را به شهرهای دارای اهمیت فدرال و بقیه روسیه تقسیم می کنند.

    گزارش جغرافیا به شما کمک می‌کند دوره‌ای برای پراکندگی بیشتر کمپین‌های Yandex.Direct پیدا کنید یا تبلیغات منطقه‌ای با بازده ضعیف را شناسایی کنید.

    بخش "سبد فراموش شده"

    ایجاد: "گزارش ها" - "بازدید کنندگان" - "زمان از اولین بازدید".

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

    از گزارش می بینیم که هدف بیشتر در روز بازدید محقق می شود، اما حتی در طول ماه نیز کاربران برمی گردند و تبدیل می کنند.

    حالا خود بخش. بیایید آن را برای کسانی ایجاد کنیم که محصول را در سبد خرید گذاشته اند، اما آن را نخریده اند.

    بیایید به گزارش از قبل آشنا "منابع" - "خلاصه" برویم، یک علامت را فقط در ستون "انتقالات از تبلیغات" بگذاریم، + را فشار داده و از منو انتخاب کنید: "رفتار" - "دستیابی به اهداف" - "هدف: به سبد خرید اضافه شد" (هدف جاوا اسکریپت باید روی دکمه های "افزودن به سبد خرید" تنظیم شود). بخش را ذخیره و نامگذاری کنید، اکنون به دایرکت بروید.

    تبلیغی را می‌یابیم که می‌خواهیم به این بخش نشان دهیم، روی «شرایط انتخاب مخاطب» و سپس روی «افزودن شرایط» کلیک کنید.

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

    وب‌ویزر

    داده های آن به ما کمک می کند تا نقاط ضعف سایت را شناسایی کنیم، تا بفهمیم کاربران چه مشکلاتی دارند.

    بیایید بخش‌های Webvisor را برای بازدیدهایی در نظر بگیریم که در آنها هدف کلان ما محقق شده است.

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

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

    اسکرول/روی Maps کلیک کنید

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

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

    در این مقاله، می‌خواهم به برخی از مهم‌ترین معیارهای QA از نظر من نگاهی بیندازم. اینها شاخص‌ها، نسبت‌ها و شاخص‌هایی خواهند بود که تصویر کلی از آنچه در پروژه اتفاق می‌افتد را از نظر کیفیت به تصویر می‌کشند و مراحل بهبود آن را شناسایی می‌کنند. این معیارها 5 حوزه مختلف را پوشش می دهد: الزامات، کیفیت نرم افزار، اثربخشی تیم آزمایش، کیفیت QA و بازخورد. اندازه گیری و ردیابی شاخص ها به طور همزمان در بخش های مختلف فرآیند توسعه نرم افزار به منظور شناسایی مشکلات رایج و ریشه ای، توانایی تنظیم و بهینه سازی کل فرآیند بسیار مهم است.

    گروه 1 - الزامات نرم افزار توسعه یافته

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

    1. الزامات پوشش تست

    به عبارت دیگر، این تعداد تست در هر نیاز است.

    هدف متریک:نقاط ضعف در پوشش تست را شناسایی کنید، خطرات را برجسته کنید.

    • البته این معیار تنها در صورتی کار خواهد کرد که الزامات به خوبی تجزیه شده و کم و بیش برابر باشند. البته این همیشه امکان پذیر نیست، اما اگر بتوان الزامات را به اندازه کافی اتمی کرد، این متریک انحراف پوشش هر نیاز را از سطح متوسط ​​نشان می دهد. هرچه مقدار بیشتر با 1 متفاوت باشد، تست های کمتر/بیشتر برای یک نیاز نسبت به معمول نوشته می شود.
    • توجه به الزاماتی که برای آنها ضریب برابر یا نزدیک به 0 خواهد بود بسیار مهم است.
    • اگر الزامات اتمی نیستند، این معیار فقط اطمینان حاصل می کند که حداقل 1 آزمایش برای هر نیاز وجود دارد. برای این کار، ضریب باید همیشه بزرگتر از 0 باشد.

    2. درجه به هم پیوستگی الزامات

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

    هدف متریک:مبنایی برای ارزیابی زمان آزمایش و در نظر گرفتن خطرات احتمالی فراهم می کند. با دانستن میزان تأثیر متقابل الزامات روی یکدیگر، می توانید برای مثال زمان و موارد اضافی برای آزمایش سرتاسر برنامه ریزی کنید، بررسی های رگرسیون را انجام دهید، به سمت یکپارچگی و غیره نگاه کنید.

    • مقدار این متریک از 0 تا 1 متغیر خواهد بود. 1 به این معنی است که هر نیاز به هر یک مرتبط است و 0 به این معنی است که هیچ رابطه ای وجود ندارد.
    • ایجاد محدودیت برای مقادیر این ضریب دشوار است، تا حد زیادی به ویژگی های عملکرد، معماری و فناوری ها بستگی دارد. با این حال، از تجربه خودم می توانم بگویم که وقتی درجه اتصال از 0.2-0.3 تجاوز نمی کند خوب است. در غیر این صورت، اصلاح در چارچوب یکی از الزامات منجر به زنجیره ای از تغییرات و در نتیجه خطاهای احتمالی در بخش قابل توجهی از محصول می شود.

    3. ضریب ثبات مورد نیاز

    هدف متریک:نشان می دهد که در هنگام توسعه ویژگی های جدید، چه تعداد الزامات از قبل اجرا شده باید از نسخه به انتشار دوباره انجام شود.

    • البته، هیچ عملکرد کاملاً ایزوله ای وجود ندارد، اما تعداد الزامات جدید باید بر موارد تغییر یافته غالب باشد و ضریب ترجیحاً کمتر از 0.5 باشد. در این مورد، ما 2 برابر بیشتر از ویژگی‌های موجود را بازسازی می‌کنیم.
    • اگر ضریب بالاتر از 0.5 باشد، به خصوص اگر بزرگتر از 1 باشد، به احتمال زیاد به این معنی است که ما قبلاً کاری را انجام داده ایم که غیرضروری است. تمرکز تیم بر ایجاد ارزش تجاری جدید نیست، بلکه بر روی کار مجدد ویژگی‌های منتشر شده قبلی تمرکز دارد.
    • این معیار همچنین ایده ای از این که عملکرد سیستم به راحتی مقیاس پذیر است، ویژگی های جدید اضافه می شود، می دهد.

    گروه 2 - کیفیت محصول توسعه یافته

    همانطور که از نام آن پیداست، این گروه از معیارها کیفیت نرم افزار و همچنین کیفیت خود توسعه را نشان می دهد.

    1. تراکم عیوب

    نسبت نقص در هر ماژول جداگانه در طول یک تکرار یا انتشار محاسبه می شود.

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

    • علل تعداد زیادینقص در هر یک از ماژول های خاص (ضریب بیشتر از 0.3) می تواند متفاوت باشد: الزامات کیفیت پایین، صلاحیت های توسعه دهنده، پیچیدگی فنی و غیره. در هر صورت، این معیار بلافاصله توجه ما را به ناحیه مشکل جلب می کند.

    2. ضریب رگرسیون

    هدف متریک:نشان دهید که تلاش‌های تیم صرف چه چیزی می‌شود: آیا ما بیشتر درگیر ایجاد و اشکال‌زدایی ویژگی‌های جدید هستیم یا مجبوریم قسمت‌های موجود نرم‌افزار را اغلب اوقات اصلاح کنیم.

    • هر چه ضریب به 0 نزدیکتر باشد، خطاهای کمتری در عملکرد موجود هنگام اجرای الزامات جدید وارد می شود. اگر مقدار بیشتر از 0.5 باشد، بیش از نیمی از زمان را صرف بازیابی عملکردهای نرم افزاری می کنیم که قبلا کار می کردند.

    3. میزان عیوب بازگشایی شده

    هدف متریک:کیفیت توسعه و رفع عیوب و همچنین پیچیدگی محصول یا یک ماژول جداگانه را ارزیابی کنید

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

    4. میانگین هزینه رفع نقص

    نسبت مقدار هزینه های متحمل شده توسط تیم هنگام کار با تمام عیوب (به عنوان مثال، در داخل نسخه) به تعداد کل نقص ها.

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

    • البته، مقادیر صحیحی در اینجا وجود ندارد، همه چیز با توجه به ویژگی های یک موقعیت خاص تعیین می شود.

    5. تعداد نقص در کد یک توسعه دهنده خاص

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

    • به عنوان مثال، اگر 50٪ از تمام نقص ها روی 1 توسعه دهنده باشد و فقط 5 مورد از آنها در تیم وجود داشته باشد، به وضوح مشکل وجود دارد. از این نتیجه نمی شود که این برنامه نویس خوب کار نمی کند، اما نشان می دهد که درک دلایل چنین وضعیتی ضروری است.
    • متریک، در میان چیزهای دیگر، می تواند نشانگر یک ماژول/عملکردی/سیستم باشد که توسعه و نگهداری آن به ویژه دشوار است.

    گروه 3 - قابلیت ها و اثربخشی تیم QA

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

    1. سرعت کار (سرعت) تیم QA

    به عنوان نسبت نقاط داستان (یا نیازمندی ها یا داستان های کاربر) برای چندین، به عنوان مثال، 4-5 تکرار (Sprint) به تعداد تکرارهای انتخابی محاسبه می شود.

    هدف متریک:بیان عددی توانایی ها، سرعت تیم برای برنامه ریزی بیشتر محدوده کار و تجزیه و تحلیل روند توسعه

    • این معیار به شما امکان می دهد تا بر سرعت کار QA نظارت داشته باشید تا مشاهده کنید کدام فرآیندهای داخلی یا تأثیرات خارجی روی تیم می تواند بر این سرعت تأثیر بگذارد.

    2. طول عمر متوسط ​​یک نقص

    کل زمان باز بودن اشکالات در یک تکرار یا انتشار، به مجموع اشکالات.

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

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

    گروه 4 - کیفیت کار تیم آزمایش

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

    1. اثربخشی تست ها و مجموعه های تست

    هدف متریک:نشان می دهد که به طور متوسط ​​موارد ما به ما اجازه می دهند چند خطا را شناسایی کنیم. این معیار کیفیت طراحی تست را منعکس می کند و به پیگیری روند تغییر آن کمک می کند.

    • بهتر است این معیار را برای همه مجموعه‌های آزمایشی محاسبه کنید: برای گروه‌های جداگانه تست‌های عملکردی، مجموعه رگرسیون، تست دود و غیره.
    • این شاخص "کشنده بودن" آزمایش ها به شما امکان می دهد اثربخشی هر یک از مجموعه ها را کنترل کنید ، چگونه در طول زمان تغییر می کند و آنها را با آزمایش های "تازه" تکمیل کنید.

    2. میزان خطاهای از دست رفته توسط بهره وری

    تعداد اشکالات پیدا شده پس از انتشار \ تعداد کل اشکالات موجود در نرم افزار در طول آزمایش و پس از انتشار

    هدف متریک:کیفیت آزمایش و کارایی تشخیص خطا را نشان دهید - چه نسبتی از عیوب فیلتر شده و چه چیزی به تولید منتقل شده است.

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

    3. زمان واقعی تیم QA

    نسبت زمان صرف شده توسط تیم به طور مستقیم برای فعالیت QA به تعداد کل ساعت ها.

    هدف متریک:اولاً افزایش دقت برنامه ریزی و ثانیاً پیگیری و مدیریت عملکرد یک تیم خاص.

    • فعالیت های هدفمند عبارتند از تجزیه و تحلیل، طراحی، ارزیابی، آزمایش، جلسات کاری و موارد دیگر. عوارض جانبی احتمالی خرابی به دلیل مسدود کننده ها، مشکلات ارتباطی، در دسترس نبودن منابع و غیره است.
    • طبیعتا این ضریب هرگز برابر با 1 نخواهد بود. تمرین نشان می دهد که برای تیم های موثر می تواند 0.5-0.6 باشد.

    4. دقت تخمین زمان بر اساس مناطق/انواع/انواع کار

    هدف متریک:اجازه می دهد تا از یک عامل تصحیح برای ارزیابی های بعدی استفاده شود.

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

    5. سهم عیوب تایید نشده (رد شده).

    هدف متریک:نشان می دهد که چگونه بسیاری از نقص معرفی شد "بیکار".

    • اگر نسبت نقص هایی که رد شده اند از 20٪ بیشتر شود، تیم ممکن است در درک اینکه چه چیزی یک نقص است و چه چیزی نیست، عدم هماهنگی را تجربه کند.

    گروه 5 - بازخورد و رضایت کاربران

    و در نهایت، گروهی از معیارها نشان می دهد که چگونه محصول توسط کاربران نهایی پذیرفته شده است، چگونه انتظارات آنها را برآورده می کند. اما نه تنها بازخورد نرم افزار مهم است: یکی دیگر از وظایف مهم این گروه از معیارها این است که نشان دهد آیا کاربران از روند تعامل با تیم فناوری اطلاعات به طور کلی و QA به طور خاص راضی هستند یا خیر.

    1. رضایت کاربر از خدمات فناوری اطلاعات

    بررسی منظم رضایت کاربران از خدمات فناوری اطلاعات با امتیازدهی.

    هدف متریک:نشان می دهد که آیا کاربران به تیم فناوری اطلاعات اعتماد دارند، آیا می دانند که چگونه و چرا کار آن سازماندهی شده است، چگونه این کار انتظارات را برآورده می کند.

    • این معیار می‌تواند به عنوان یک شاخص برای تمرکز بر بهینه‌سازی فرآیند یا شفاف‌تر کردن آن برای کاربران باشد.
    • امتیاز رضایت را می توان بر اساس نتایج نظرسنجی پس از انتشار محاسبه کرد. ما تمام نمرات را جمع آوری می کنیم و میانگین امتیاز را محاسبه می کنیم. پس از ایجاد تغییرات در فرآیند، می توان این امتیاز را مجدداً محاسبه کرد.

    2. رضایت کاربر از محصول

    نظرسنجی های منظم کاربران در مورد میزان رضایت آنها از محصول.

    هدف متریک:برای تعیین اینکه محصول در حال توسعه چگونه انتظارات کاربران را برآورده می کند، آیا ما در مسیر درست حرکت می کنیم، آیا به درستی اهمیت ویژگی ها را تعیین می کنیم و راه حل ها را انتخاب می کنیم.

    • برای محاسبه این معیار، یک نظرسنجی از کاربران نیز انجام می دهیم و میانگین امتیاز را محاسبه می کنیم. با محاسبه چنین شاخصی به صورت منظم (مثلاً پس از هر انتشار)، می توانید روند رضایت کاربران را دنبال کنید.

    3. مشارکت ذینفعان

    تعداد ابتکارات و پیشنهادات برای بهبود فرآیند و محصول دریافت شده در طول تکرار (انتشار) از ذینفعان

    هدف متریک:تعیین میزان مشارکت ذینفعان خارجی در کار روی محصول. با در دست داشتن چنین معیاری، می توانید بفهمید که از کجا باید بازخورد دریافت کنید تا روزی با تحقیر و نفرت، مشکلات و سوء تفاهم مواجه نشوید.

    چرنیکوف الکسی

    1. معرفی

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

    بنابراین برای حل این مشکل از روش‌های پیچیده و نسبتاً پیچیده‌ای استفاده می‌شود که نیاز به مسئولیت بالا در کاربرد و زمان معینی برای انطباق دارد (تعدیل ضریب).

    نوین سیستم های پیچیدهبرآورد ویژگی های پروژه های توسعه نرم افزار می تواند برای حل وظایف زیر استفاده شود:

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

    1. معرفی
    2 معیارها
    2.1 معیارهای ابعاد گرا (شاخص های برآورد حجم)
    2.1.1 برآورد LOC (خطوط کد)
    2.1.1.1 معیارهای سبک و قابل فهم بودن برنامه ها
    2.1.2 مجموع برای SLOC
    2.2 معیارهای دشواری
    2.2.2 معیارهای Halsted
    2.2.4 معیارهای چاپین

    2.4 فهرست کلی معیارها
    2.4 جمع بندی
    6 منابع اینترنتی

    2. معیارها

    معیارهای پیچیدگی برنامه معمولاً به سه گروه اصلی تقسیم می شوند:

    • معیارهای اندازه برنامه؛
    • معیارهای پیچیدگی جریان کنترل برنامه؛
    • معیارهای پیچیدگی جریان داده برنامه

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

    معیارهای گروه دوم بر اساس تجزیه و تحلیل نمودار کنترل برنامه است. نماینده این گروه متریک مک کیب است.

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

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

    2.1 معیارهای ابعادی گرا (شاخص های برآورد حجم)

    2.1.1 برآورد LOC (خطوط کد)

    معیارهای بعدی به طور مستقیم محصول نرم افزاری و فرآیند توسعه آن را اندازه گیری می کنند. چنین معیارهایی بر اساس برآوردهای LOC هستند.

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

    رایج‌ترین معیارها در توسعه نرم‌افزار، معیارهای اندازه‌گرا هستند. در سازمان هایی که مشغول توسعه محصولات نرم افزاری برای هر پروژه هستند، مرسوم است که شاخص های زیر را ثبت کنند:

    • کل هزینه های نیروی کار (بر حسب ماه انسان، ساعت کار)؛
    • اندازه برنامه (در هزاران خط کد منبع -LOC)؛
    • هزینه توسعه؛
    • حجم اسناد؛
    • خطاهای کشف شده در طول سال بهره برداری؛
    • تعداد افرادی که روی محصول کار می کنند؛
    • دوره توسعه

    بر اساس این داده ها، معیارهای ساده معمولاً برای ارزیابی بهره وری نیروی کار (KLOC / فرد-ماه) و کیفیت محصول محاسبه می شود.

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

    تعداد خطوط کد منبع (Lines of Code - LOC, Source Lines of Code - SLOC) ساده ترین و رایج ترین راه برای تخمین میزان کار روی یک پروژه است.

    در ابتدا، این شاخص به عنوان راهی برای ارزیابی میزان کار روی پروژه ای که در آن از زبان های برنامه نویسی استفاده شده است که ساختار نسبتاً ساده ای دارند ایجاد شد: "یک خط کد = یک دستور زبان". همچنین مدتهاست که مشخص شده است که عملکرد یکسانی را می توان در تعداد خطوط مختلف نوشت و اگر یک زبان سطح بالا (C ++، جاوا) را در نظر بگیریم، می توان 5-6 خط عملکرد را در یک خط نوشت - این مشکلی نیست. و این نیمی از دردسر خواهد بود: امکانات مدرنخود برنامه نویسی هزاران خط کد برای یک عملیات کوچک تولید می کند.

    بنابراین، روش LOC تنها یک روش ارزیابی است (که باید مورد توجه قرار گیرد، اما بر اساس برآورد نیست) و به هیچ وجه اجباری نیست.

    بسته به نحوه در نظر گرفتن کد مشابه، دو شاخص اصلی SLOC متمایز می شوند:

    1. تعداد خطوط "فیزیکی" کد - SLOC (مخفف های استفاده شده عبارتند از LOC, SLOC, KLOC, KSLOC, DSLOC) - به عنوان تعداد کل خطوط کد منبع از جمله نظرات و خطوط خالی تعریف می شود (هنگام اندازه گیری نشانگر تعداد خطوط خالی معمولاً محدودیتی در نظر گرفته می شود - وقتی تعداد خطوط خالی از 2 درصد تجاوز نمی کند، تعداد خطوط خالی در نظر گرفته نمی شود). در بلوک کد اندازه گیری شده).
    2. تعداد خطوط "منطقی" کد - SLOC (مخفف های استفاده شده از LSI، DSI، KDSI، که در آن "SI" - دستورالعمل های منبع) - به عنوان تعداد دستورات تعریف می شود و به زبان برنامه نویسی مورد استفاده بستگی دارد. در صورتی که زبان اجازه قرار دادن چندین دستور در یک خط را ندهد، تعداد SLOCهای "منطقی" با تعداد "فیزیکی" مطابقت دارد، به جز تعداد خطوط خالی و خطوط نظر. در صورتی که زبان برنامه نویسی از قرار دادن چندین دستور در یک خط پشتیبانی می کند، یک خط فیزیکی باید به عنوان چندین خط منطقی در نظر گرفته شود که حاوی بیش از یک دستور زبان باشد.

    برای متریک SLOC، تعداد زیادی مشتقات طراحی شده برای به دست آوردن شاخص های پروژه جداگانه وجود دارد که اصلی ترین آنها عبارتند از:

    • تعداد خطوط خالی؛
    • تعداد خطوط حاوی نظرات؛
    • درصد نظرات (نسبت خطوط کد به خطوط نظر، متریک سبک مشتق شده)؛
    • میانگین تعداد خطوط برای توابع (کلاس ها، فایل ها)؛
    • میانگین تعداد خطوط حاوی کد منبع برای توابع (کلاس ها، فایل ها)؛
    • میانگین تعداد ردیف ها برای ماژول ها

    2.1.1.1 معیارهای سبک و قابل فهم بودن برنامه ها

    گاهی اوقات مهم است که نه تنها تعداد خطوط نظر در کد را بشمارید و به سادگی آنها را با خطوط منطقی کد مرتبط کنید، بلکه برای یافتن تراکم نظرات مهم است. یعنی کد اول خوب مستند شده بود بعد بد. یا این گزینه: سر یک تابع یا کلاس مستند شده و نظر داده می شود، اما کد نیست.

    Fi = SIGN (Ncomm. i / Ni - 0.1)

    ماهیت متریک ساده است: کد به n قطعه مساوی تقسیم می شود و Fi برای هر یک از آنها تعیین می شود.

    2.1.2 مجموع برای SLOC

    معایب بالقوه SLOC که مورد انتقاد قرار می گیرند:

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

    و نکته اصلی که باید به خاطر بسپارید: متریک SLOC پیچیدگی ایجاد یک برنامه را منعکس نمی کند
    .

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

    عصبانیت رهبر حد و مرزی نداشت - او یک لوفر پیدا کرد! و برای برنامه نویس بد است اگر مدیر پروژه توضیح ندهد که: خطایی در برنامه پیدا شد، مشتری VIP آن را پیدا کرد، خطا بر تجارت مشتری تأثیر می گذارد و باید فوراً حذف شود، زیرا این مجری خاص انتخاب شد که پایه را مستقر کرد، محیط مشتری را غرق کرد، جلوه خطا را تأیید کرد و شروع به جستجو و حذف آن کرد. طبیعتاً در پایان، او کدی را که در آن شرایط نادرست وجود داشت و همه چیز کار می کرد، تغییر داد.

    موافقم، احمقانه است که هزینه های نیروی کار را با این معیار محاسبه کنیم - یک ارزیابی جامع لازم است ...

    2.2 معیارهای دشواری

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

    2.2.1 معیارهای شی گرا

    که در شرایط مدرناکثر پروژه های نرم افزاری بر اساس رویکرد OO ایجاد می شوند و بنابراین تعداد قابل توجهی از معیارها وجود دارد که به ما امکان می دهد پیچیدگی پروژه های شی گرا را ارزیابی کنیم.

    معیارهای

    شرح

    روش های وزنی در هر کلاس (WMC) اندازه گیری نسبی پیچیدگی یک کلاس را بر اساس پیچیدگی چرخه ای هر یک از روش های آن منعکس می کند. کلاسی با متدهای پیچیده تر و مقدار زیادروش ها پیچیده تر در نظر گرفته می شوند. کلاس های والد هنگام محاسبه متریک در نظر گرفته نمی شوند.
    روش‌های وزنی در هر کلاس (WMC2)

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

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

    جفت شدن بین اشیا

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

    پاسخ برای کلاس تعداد متدهایی که می توانند توسط نمونه های کلاس فراخوانی شوند. هم مجموع تعداد روش های محلی و هم تعداد روش های راه دور را محاسبه می کند

    2.2.2 معیارهای Halsted

    متریک Halstead به معیارهای محاسبه شده بر اساس تجزیه و تحلیل تعداد خطوط و عناصر نحوی کد منبع برنامه اشاره دارد.

    معیارهای هالستد بر اساس چهار ویژگی برنامه قابل اندازه گیری است:

    • NUOprtr (تعداد اپراتورهای منحصر به فرد) - تعداد اپراتورهای برنامه منحصر به فرد، از جمله کاراکترهای جداکننده، نام رویه ها و علائم عملیات (فرهنگ لغت اپراتور).
    • NUOprnd (تعداد عملوندهای منحصر به فرد) - تعداد عملوندهای برنامه منحصر به فرد (فرهنگ واژه نامه عملوند).
    • Noprtr (تعداد اپراتورها) - تعداد کل اپراتورها در برنامه؛
    • Noprnd (تعداد عملوندها) - تعداد کل عملوندهای برنامه.

    بر اساس این ویژگی ها، برآوردها محاسبه می شوند:

    • فرهنگ لغت برنامه
      (Halstead Program Vocabulary, HPVoc): HPVoc = NUOprtr + NUOprnd;
    • طول برنامه
      (طول برنامه Halstead، HPLen): HPLen = Noprtr + Noprnd;
    • محدوده برنامه
      (حجم برنامه Halstead، HPVol): HPVol = HPLen log2 HPVoc;
    • پیچیدگی برنامه
      (Halstead Difficulty, HDiff): HDiff = (NUOprtr/2) × (NOprnd / NUOprnd);
    • بر اساس شاخص HDiff، پیشنهاد می شود تلاش های یک برنامه نویس در طول توسعه با استفاده از نشانگر HEff (Halstead Effort) ارزیابی شود: HEff = HDiff × HPVol.

    2.2.3 متریک پیچیدگی سیکلوماتیک مک کیب

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

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

    یک فرمول ساده برای محاسبه پیچیدگی سیکلوماتیک به شرح زیر است:

    C \u003d e - n + 2،

    جایی که الکترونیکیتعداد دنده ها ، و nتعداد گره ها
    در گراف منطقی کنترل

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

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

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

    شاخص پیچیدگی سیکلوماتیک را می توان برای یک ماژول، روش و سایر واحدهای ساختاری برنامه محاسبه کرد.

    تعداد قابل توجهی اصلاحات در شاخص پیچیدگی سیکلوماتیک وجود دارد.

    • پیچیدگی سیکلوماتیک "اصلاح شده" - هر شاخه از اپراتور چند گزینه ای (سوئیچ) را در نظر نمی گیرد، بلکه کل اپراتور را به عنوان یک کل در نظر می گیرد.
    • پیچیدگی سیکلوماتیک "سخت" - شامل عملگرهای منطقی است.
    • محاسبه "ساده شده" پیچیدگی سیکلوماتیک - محاسبه را نه بر اساس یک نمودار، بلکه بر اساس شمارش عبارات کنترل فراهم می کند.

    2.2.4 معیارهای چاپین

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

    ماهیت روش ارزیابی قدرت اطلاعات یک ماژول برنامه واحد با تجزیه و تحلیل ماهیت استفاده از متغیرها از لیست I/O است.

    کل مجموعه متغیرهایی که لیست I/O را تشکیل می دهند به چهار گروه عملکردی تقسیم می شوند.

    Q = a1P + a2M + a3C + a4T، که در آن a1، a2، a3، a4 ضرایب وزنی هستند.

    Q=P+2M+3C+0.5T.

    2.3 ارزیابی اولیه بر اساس روش های آماری بسته به مراحل توسعه برنامه

    هنگام استفاده از ابزارهای یکپارچه در شرکت های در حال توسعه راه حل های استاندارد(این دسته شامل به اصطلاح "Inhousers" - شرکت هایی است که در خدمات کسب و کار اصلی فعالیت می کنند) امکان پیش بینی پیچیدگی برنامه ها بر اساس آمارهای جمع آوری شده وجود دارد. روش آماریبرای حل چنین مشکلات معمولی مناسب است و عملا برای پیش بینی پروژه های منحصر به فرد مناسب نیست. در مورد پروژه های منحصر به فرد از رویکردهای دیگری استفاده می شود که بحث در مورد آنها از حوصله این مطالب خارج است.

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

    بیایید مراحل معمول در توسعه برنامه ها را مشخص کنیم:

    • توسعه مشخصات مورد نیاز برای برنامه؛
    • تعریف معماری؛
    • مطالعه ساختار مدولار برنامه، توسعه رابط بین ماژول ها. توسعه الگوریتم ها؛
    • توسعه و آزمایش کد

    حال بیایید سعی کنیم تعدادی از معیارها را در نظر بگیریم که اغلب برای ارزیابی اولیه در دو مرحله اول استفاده می شوند.

    2.3.1 ارزیابی اولیه پیچیدگی برنامه در مرحله توسعه مشخصات الزامات برنامه

    برای ارزیابی نتایج کار این مرحله می توان از متریک تعداد پیش بینی شده عملگرهای Nprog برنامه استفاده کرد:

    Npron \u003d NF * Ned


    کجا: NF تعداد توابع یا الزامات در مشخصات الزامات برنامه در حال توسعه است.
    Ned یک مقدار واحد از تعداد عملگرها است (میانگین تعداد عملگرها به ازای یک تابع یا نیاز متوسط). ارزش ند آماری است.

    2.3.2 برآورد پیچیدگی در فاز معماری

    Si \u003d NI / (NF * NIed * Ksl)

    جایی که:
    NI تعداد کل متغیرهایی است که از طریق واسط بین اجزای برنامه منتقل می شود (آماری نیز می باشد).
    NIed یک مقدار واحد از تعداد متغیرهای منتقل شده از طریق واسط بین مؤلفه ها است (متوسط ​​تعداد متغیرهای منتقل شده از طریق واسط ها به ازای یک تابع یا نیاز متوسط).
    Ксл ضریب پیچیدگی برنامه توسعه یافته است، رشد پیچیدگی واحد برنامه (پیچیدگی هر تابع یا نیاز به مشخصات الزامات برنامه) را برای برنامه های بزرگ و پیچیده نسبت به میانگین PS در نظر می گیرد.

    2.4 فهرست کلی معیارها

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

    همچنین توجه داشته باشید که هدف این مقاله نشان دادن اصل است، و نه توصیف تمام معیارهای ممکن در ترکیبات متعدد.

    5). قابلیت نگهداری

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

    قابلیت نگهداری شامل ویژگی های فرعی است:

    – قابلیت تجزیه و تحلیل – مشخصه ای که تلاش های لازم را برای تشخیص خرابی ها یا شناسایی قطعاتی که اصلاح خواهند شد را تعیین می کند.

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

    - ثبات - یک ویژگی که نشان دهنده خطر اصلاح است.

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

    – سازگاری – مشخصه ای که نشان دهنده انطباق این ویژگی با مواردی است که در استانداردها، کنوانسیون ها، قوانین و مقررات تعریف شده است.

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

    قابلیت حمل شامل ویژگی های فرعی است:

    سازگاری - ویژگی ای که تلاش های صرف شده برای سازگاری با محیط های مختلف را تعیین می کند.

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

    – همزیستی – خصوصیتی که امکان استفاده از نرم افزار خاص را در محیط سیستم عامل تعیین می کند.

    - جایگزینی - ویژگی است که امکان همکاری زمانی را فراهم می کند کار مشترکبا سایر برنامه ها با نصب یا سازگاری لازم نرم افزار؛

    – سازگاری – مشخصه ای که نشان دهنده انطباق با استانداردها یا توافقات برای اطمینان از قابلیت حمل نرم افزار است.

    9.1.1. معیارهای کیفیت نرم افزار

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

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

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

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

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

    انواع متریک. سه نوع معیار وجود دارد:

    - معیارهای محصول نرم افزاری که در اندازه گیری ویژگی های آن استفاده می شود.

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

    - معیارهای استفاده

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

    - معیارهای خارجی که ویژگی های محصول را برای کاربر قابل مشاهده است.

    - معیارهای داخلی که مشخص کننده ویژگی هایی است که فقط برای تیم توسعه قابل مشاهده است.

    معیارهای خارجیمحصول شامل معیارهای زیر است:

    - قابلیت اطمینان محصول، که برای تعیین تعداد عیوب کار می کند.

    - عملکردی که حضور و صحت اجرای عملکردها را در محصول مشخص می کند.

    - تعمیر و نگهداری، که با کمک آن منابع محصول اندازه گیری می شود (سرعت، حافظه، محیط).

    - قابلیت کاربرد محصول، که به تعیین درجه دسترسی برای مطالعه و استفاده کمک می کند.

    - هزینه، که قیمت تمام شده محصول ایجاد شده را تعیین می کند.

    معیارهای داخلیمحصول شامل معیارهای:

    - ابعاد لازم برای اندازه گیری محصول با استفاده از ویژگی های داخلی آن؛

    - پیچیدگی مورد نیاز برای تعیین پیچیدگی محصول؛

    - سبک هایی که در خدمت تعریف رویکردها و فناوری ها برای ایجاد اجزای فردی محصول و اسناد آن هستند.

    معیارهای داخلی عملکرد یک محصول را اندازه گیری می کنند و با معیارهای خارجی مرتبط هستند.

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

    معیارهای محصول اغلب توسط مجموعه‌ای از مدل‌ها برای تنظیم ویژگی‌ها و مقادیر مختلف مدل کیفیت یا پیش‌بینی توصیف می‌شوند. اندازه گیری ها معمولاً پس از کالیبراسیون معیارها در مراحل اولیه پروژه انجام می شود. اندازه گیری مشترکدرجه ردیابی است که با تعداد ردیابی با استفاده از مدل های سناریو (مثلا UML) تعیین می شود و می تواند تعداد موارد زیر باشد:

    - الزامات؛

    - سناریوها و بازیگران؛

    - اشیاء موجود در سناریو و محلی سازی الزامات برای هر سناریو؛

    - پارامترها و عملیات شی و غیره

    استاندارد ISO/IEC 9126-2 انواع اقدامات زیر را تعریف می کند:

    معیار اندازه نرم افزار در است واحدهای مختلفاندازه گیری ها (تعداد توابع، خطوط در برنامه، اندازه ذخیره سازی دیسکو غیره.)؛

    - اندازه گیری زمان (عملکرد سیستم، اجرای اجزا و غیره)؛

    - اندازه گیری تلاش (بازده کار، شدت کار و غیره)؛

    - اقدامات حسابداری (تعداد خطاها، تعداد خرابی ها، پاسخ های سیستم و غیره).

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

    - تعداد کل اشیاء و تعداد موارد قابل استفاده مجدد.

    - تعداد کل عملیات، استفاده مجدد و عملیات جدید؛

    - تعداد کلاس هایی که عملیات خاصی را به ارث می برند.

    - تعداد کلاس هایی که این کلاس به آنها بستگی دارد.

    - تعداد کاربران یک کلاس یا عملیات و غیره

    هنگام تخمین تعداد کل برخی کمیت‌ها، معمولاً از معیارهای آماری متوسط ​​استفاده می‌شود (به عنوان مثال، میانگین تعداد عملیات در یک کلاس، میانگین تعداد جانشین‌های یک کلاس یا عملیات یک کلاس و غیره).

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

    نمونه‌ای از معیارهای برنامه خارجی پرکاربرد، معیارهای Halsted است - اینها ویژگی‌های برنامه‌هایی هستند که بر اساس ساختار استاتیک برنامه در یک زبان برنامه‌نویسی خاص شناسایی می‌شوند: تعداد رخدادهای متداول‌ترین عملوندها و عملگرها؛ طول توضیحات برنامه به عنوان مجموع تعداد وقوع همه عملوندها و عملگرها و غیره.

    بر اساس این ویژگی ها می توان زمان برنامه نویسی، سطح برنامه (ساختار و کیفیت) و زبان برنامه نویسی (انتزاع ابزارهای زبان و تمرکز بر روی یک مسئله معین) و غیره را محاسبه کرد.

    معیارهای فرآیندشامل معیارها:

    - هزینه هایی که هزینه های ایجاد یک محصول یا معماری پروژه را با در نظر گرفتن اصالت، پشتیبانی، اسناد توسعه تعیین می کند.

    - برآورد هزینه کار متخصصان به ازای هر نفر - روز یا ماه.

    - عدم اطمینان فرآیند - تعداد نقص هایی که در طول طراحی شناسایی نشده اند.

    - تکرارپذیری، که درجه استفاده از اجزای مکرر را تعیین می کند.

    معیارهای فرآیند می تواند زمان توسعه، تعداد خطاهای یافت شده در مرحله آزمایش و غیره باشد. معیارهای فرآیند زیر عملاً مورد استفاده قرار می گیرند:

    کل زمانتوسعه و زمان جداگانه برای هر مرحله.

    - زمان اصلاح مدل؛

    - زمان اجرای کار روی فرآیند؛

    - تعداد خطاهای یافت شده در حین بازرسی؛

    - هزینه کنترل کیفیت؛

    - هزینه فرآیند توسعه

    معیارهای استفادهبرای اندازه گیری میزان ارضای نیازهای کاربر در حل مشکلات او استفاده می شود. آنها به ارزیابی نه ویژگی های خود برنامه، بلکه نتایج عملکرد آن - کیفیت عملیاتی کمک می کنند. به عنوان مثال، دقت و کامل بودن اجرای وظایف کاربر و همچنین منابع (هزینه های نیروی کار، بهره وری و غیره) صرف شده برای حل موثر وظایف کاربر است. ارزیابی نیازهای کاربر عمدتاً با کمک معیارهای خارجی انجام می شود.

    9.1.2. روش استاندارد برای ارزیابی مقادیر شاخص کیفیت

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

    بر اساس ISO/IES 9126-2، معیار کیفیت نرم افزار "یک مدل اندازه گیری برای یک ویژگی مرتبط با نمره کیفیت نرم افزار" است. برای استفاده از معیارها هنگام اندازه گیری شاخص های کیفیت این استانداردبه شما امکان می دهد انواع اقدامات زیر را تعریف کنید:

    - اندازه گیری اندازه در واحدهای مختلف اندازه گیری (تعداد توابع، اندازه برنامه، مقدار منابع و غیره)؛

    - معیارهای زمان - دوره های زمان واقعی، پردازنده یا تقویم (زمان عملیات سیستم، زمان اجرای جزء، زمان استفاده و غیره)؛

    - اقدامات تلاش - زمان مولد صرف شده برای اجرای پروژه (بهره وری نیروی کار تک تک شرکت کنندگان پروژه، شدت کار جمعی و غیره).

    - اندازه گیری فواصل بین رویدادها، به عنوان مثال زمان بین شکست های پی در پی.

    - شمارش اقدامات - شمارنده برای تعیین تعداد خطاهای شناسایی شده، پیچیدگی ساختاری برنامه، تعداد عناصر ناسازگار، تعداد تغییرات (به عنوان مثال، تعداد خرابی های شناسایی شده و غیره).

    معیارهای کیفیت برای ارزیابی درجه تست پذیری پس از آزمایش نرم افزار در انواع تست ها (عملکرد بدون خطا، امکان سنجی عملکردها، سهولت استفاده از رابط های کاربری، پایگاه های داده و غیره) استفاده می شود.

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

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

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

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

    آن ها هنگام ارزیابی یک شاخص فردی با استفاده از عناصر ارزیابی، یک ضریب وزنی محاسبه می شود ک- متریک، j- فهرست مطالب، من- صفت. به عنوان مثال، به عنوان jبیایید قابلیت حمل را به عنوان یک شاخص در نظر بگیریم. این شاخص بر اساس پنج ویژگی ( i = 1، ...، 5، و هر یک از آنها در ضریب مربوطه k i ضرب می شود.

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

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

    برای ارائه ارزیابی مقادیر شاخص های کیفیت از استانداردی استفاده می شود که در آن روش های زیر ارائه می شود: اندازه گیری، ثبت، محاسبه و کارشناسی (و همچنین ترکیبی از این روش ها).

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

    روش ثبت نامهنگام محاسبه زمان، تعداد خرابی ها یا خرابی ها، شروع و پایان نرم افزار در روند اجرای آن استفاده می شود.

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

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

    برای ارزیابی مقادیر شاخص های کیفیت، بسته به ویژگی های ویژگی هایی که استفاده می کنند، هدف و روش های تعیین آنها، از مقیاس های زیر استفاده می شود:

    - متریک (1.1 - مطلق، 1.2 - نسبی، 1.3 - انتگرال)؛

    - ترتیبی (رتبه)، امکان رتبه بندی ویژگی ها در مقایسه با موارد مرجع.

    - طبقه بندی که فقط وجود یا عدم وجود ویژگی در نظر گرفته شده را در نرم افزار ارزیابی شده مشخص می کند.

    شاخص هایی که با استفاده از مقیاس های متریک محاسبه می شوند، کمی و با کمک ترتیب و طبقه بندی - کیفی نامیده می شوند.

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

    - مقیاس اسمی دسته بندی ویژگی های شی ارزیابی شده را بدون ترتیب آنها منعکس می کند.

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

    - مقیاس فاصله ویژگی های اساسی شی (به عنوان مثال، تاریخ تقویم) را تنظیم می کند.

    - مقیاس نسبی مقداری نسبت به واحد انتخاب شده تعیین می کند.

    - مقیاس مطلق مقدار واقعی کمیت را نشان می دهد (مثلاً تعداد خطاهای برنامه 10 است).

    9.1.3. مدیریت کیفیت PS

    زیر مدیریت کیفیتبه کلیت ساختار سازمانی و افراد مسئول و همچنین رویه ها، فرآیندها و منابع برای برنامه ریزی و مدیریت دستیابی به کیفیت PS اشاره دارد. مدیریت کیفیت - SQM (مدیریت کیفیت نرم افزار) بر اساس استفاده از مقررات استاندارد برای تضمین کیفیت - SQA (تضمین کیفیت نرم افزار) است.

    هدف از فرآیند SQA این است که اطمینان حاصل شود که محصولات و فرآیندها مطابق با الزامات، مطابقت با برنامه ها و شامل فعالیت های زیر است:

    - معرفی استانداردها و رویه های مربوطه برای توسعه PS در مراحل چرخه حیات؛

    - ارزیابی انطباق با مفاد این استانداردها و رویه ها.

    تضمین کیفیت به شرح زیر است:

    - بررسی سازگاری و امکان سنجی طرح ها؛

    - هماهنگی محصولات کار میانی با شاخص های برنامه ریزی شده؛

    - تأیید محصولات تولید شده با الزامات مشخص.

    - تجزیه و تحلیل فرآیندهای اعمال شده برای انطباق با قرارداد و برنامه ها؛

    - محیط و روش های توسعه با دستور توسعه سازگار است.

    - تأیید معیارهای پذیرفته شده محصولات، فرآیندها و روش های اندازه گیری آنها مطابق با استاندارد و روش های اندازه گیری مصوب.

    هدف از فرآیند مدیریت SQM نظارت بر کیفیت (کنترل سیستماتیک) برای اطمینان از اینکه محصول رضایت مصرف کننده را جلب می کند و شامل فعالیت های زیر است:

    - تعیین ویژگی های کمی کیفیت بر اساس نیازهای شناسایی شده و پیش بینی شده کاربر.

    - مدیریت اجرای اهداف تعیین شده برای دستیابی به کیفیت.

    SQM بر این اطمینان استوار است که:

    - اهداف کیفیت برای همه محصولات کاری در نقاط عطف محصول تعیین می شود.

    - استراتژی برای دستیابی به کیفیت، معیارها، معیارها، تکنیک ها، الزامات فرآیند اندازه گیری و غیره؛

    - اقدامات مربوط به ارائه خواص با کیفیت به محصولات تعریف و انجام می شود.

    - کنترل کیفیت (SQA، تأیید و اعتبار سنجی) و اهداف انجام می شود، در صورت عدم دستیابی به آنها، فرآیندها تنظیم می شوند.

    - فرآیندهای اندازه گیری و ارزیابی انجام می شود محصول نهاییبرای رسیدن به کیفیت مورد نیاز

    مقررات استاندارد اصلی برای ایجاد یک محصول با کیفیت و ارزیابی سطح دستاورد، دو فرآیند تضمین کیفیت را در مراحل چرخه عمر PS متمایز می کند:

    - تضمین (تأیید) کیفیت PS، در نتیجه فعالیت های خاص در هر مرحله از چرخه عمر با بررسی انطباق سیستم با استانداردها و رویه های متمرکز بر دستیابی به کیفیت.

    - مهندسی کیفیت، به عنوان فرآیندی برای ارائه محصولات نرم افزاری با ویژگی های عملکرد، قابلیت اطمینان، نگهداری و سایر ویژگی های کیفی.

    فرآیندهای دستیابی به کیفیت برای موارد زیر طراحی شده اند:

    الف) مدیریت، توسعه و حفظ پادمان ها مطابق با استانداردها و رویه های مشخص شده؛

    ب) مدیریت پیکربندی (شناسایی، گزارش وضعیت و فعالیت های احراز هویت)، مدیریت ریسک و پروژه مطابق با استانداردها و رویه ها.

    ج) کنترل نسخه اصلی PS و ویژگی های کیفی اجرا شده در آن.

    اجرای این فرآیندها شامل اقدامات زیر است:

    - ارزیابی استانداردها و رویه هایی که در توسعه برنامه ها دنبال می شود.

    - بازنگری در مدیریت، توسعه و تضمین کیفیت نرم افزار، و همچنین مستندات پروژه (گزارش ها، برنامه های توسعه، پیام ها و غیره)؛

    - کنترل بازرسی ها و بررسی های رسمی؛

    - تجزیه و تحلیل و کنترل آزمون پذیرش (تست) PS.

    برای سازمانی که یک سیستم نرم افزاری، از جمله اجزای سازنده، توسعه می دهد، مهندسی کیفیت نرم افزار باید توسط یک سیستم کیفیت پشتیبانی شود. , مدیریت کیفیت (برنامه ریزی، حسابداری و کنترل).

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

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

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

    در رویکرد دوم، اقداماتی برای پیشگیری، شناسایی و رفع سریع خطاها پیش بینی و اتخاذ می شود که از ابتدا مراحل اولیهچرخه زندگی مطابق با برنامه و رویه ها برای اطمینان از کیفیت PS توسعه یافته. این رویکرد در سری استانداردهای ISO 9000 و 9000-1,2,3 ارائه شده است. هدف استاندارد 9000-3 این است که به سازمان های در حال توسعه توصیه کند که یک سیستم کیفیت را طبق طرح نشان داده شده در شکل 9.3 ایجاد کنند.

    مشترک

    سیستم کنترل کار مدیر مسئول

    کیفیت از مجری از مشتری

    سیاست کلی

    مسئوليت

    و قدرت ها

    کنترل ها

    طرح دستاورد

    کیفیت PS

    شکل 9.3. الزامات استاندارد برای سازماندهی سیستم کیفیت

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

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

    مدیریت عملیاتیشامل روش ها و فعالیت های ماهیت عملیاتی برای مدیریت فعلی فرآیند طراحی، حذف علل عملکرد نامطلوب PS.

    تضمین کیفیتشامل انجام و تأیید اینکه هدف توسعه مطابق با الزامات کیفیت مشخص شده است. اهداف تضمین کیفیت می تواند داخلی یا خارجی باشد. اهداف داخلی - ایجاد اطمینان در مدیر پروژه مبنی بر تضمین کیفیت. اهداف بیرونی ایجاد اطمینان در کاربر از دستیابی به کیفیت مورد نیاز و نتیجه نرم افزار با کیفیت است.

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

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

    9.2. مدل های ارزیابی قابلیت اطمینان

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

    قابلیت اطمینان PS پیچیده به طور قابل توجهی با قابلیت اطمینان تجهیزات متفاوت است. حامل های داده (فایل ها، سرور و غیره) بسیار قابل اعتماد هستند؛ سوابق روی آنها را می توان برای مدت طولانی بدون تخریب ذخیره کرد، زیرا در معرض تخریب و پیری نیستند.

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

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

    نرم افزار سند

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