چهارشنبه , آبان ۲۳ ۱۳۹۷

SCM

تعریف مدیریت پیکر بندی نرم افزار

مدیریت پیکر بندی نرم افزارعبارت است از یک فعالیت جامع که در طول فرایند نرم‏ افزاری اجرا می‏گردد.

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

در واقع مدیریت وضعیت نرم افزار یعنی مجموعه‏ای از فعالیت‏هایی که برای کنترل تغییر در طول چرخه زندگی نرم‏ افزار کامپیوتری به وقوع می‏پیوندد.

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

دلایل پیکر بندی نرم ‏افزار

مدیریت پیکر بندی نرم‏ افزار یک فعالیت پشتیبانی است که در سرتاسر فرآیند نرم افزار قابل اجرا است. به دلیل اینکه امکان تغییر در هر زمانی وجود دارد فعالیت مدیریت پیکر بندی نرم افزار به این دلایل انجام می‏شوند:

۱٫ شناسایی تغییر

۲٫ کنترل تغییر

۳٫ حصول اطمینان از این که تغییر به درستی اجرا می‏شود.

۴٫ گزارش تغییر به کسانی که علاقه مند به دانستن آن هستند.

 

مدیریت پیکر بندی نرم‏ افزار

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

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

قانون اول مهندسی سیستم‏ها بیان می‏کند:

در هر کجای چرخه حیات سیستم باشید، سیستم تغییر می‏کند و تمایل به تغییر در سرتاسر چرخه حیات سیستم باقی است.

منشأ اساسی تغییرها

  1. شرایط جدید کاری و یا تجاری که تغییردر شرایط محصول و یا قوانین تجاری را دیکته می‏کند.
  2. نیازهای جدید مشتریان که اصلاحات داده‏هایی راکه توسط سیستم‏های اطلاعاتی ایجاد می‏شوند، عملکردی که توسط محصولات عرضه می‏شوند، و یا خدماتی که توسط یک سیستم کامپیوتری ارائه می‏شوند را عرضه می‏نمایند.
  3. تغییرات در اولویت پروژه و یا ساختار تیم مهندسی نرم‏ افزار
  4. مشکلات مربوط به بودجه و یا برنامه‏ریزی که سبب تعریف دوباره سیستم و یا محصول می‏گردد.

تفاوت بین پشتیبانی از نرم افزار و مدیریت پیکر بندی نرم افزار

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

 

 

اقلام پیکر بندی نرم افزار

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

خط مبنا

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

در رابطه با مهندسی نرم‏ افزار، یک خط مبنا، علامت نشان‏دهنده‏ای در توسعه نرم افزار می‏باشد که با تحویل یک یا چند قلم پیکر بندی نرم افزار و موافقت این SCIها (Software Configuration Items) از طریق بازبینی تکنیکی رسمی علامت گذاری می‏شود.

IEEE خط مبنا را به شرح زیر تعریف می‏کند:

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

فرایند مدیریت پیکر بندی نرم افزار

شامل پنج مرحله به ترتیب زیر است:

  1. شناسایی
  2. کنترل نسخه
  3. کنترل تغییر
  4. بررسی پیکر بندی
  5. گزارش دادن

هرگونه بحث در مورد SCM پرسش‏هایی را مطرح می‏سازد:

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

شناسایی اشیاء در پیکر بندی نرم افزار

دو نوع شی قابل شناسایی هستند:

۱٫ شی‏های پایه  ۲٫ شی‏های مجتمع

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

 نام، توصیف، فهرستی از منابع….

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

توصیف شی عبارت است از فهرستی از قلم‏های داده‏ها که موارد زیر را شناسایی می‏نماید:

  • نوع SCI که به وسیله شی مشخص می‏شود
  • شناسه پروژه
  • اطلاعات مربوط به نسخه ویا تغییر

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

کنترل نسخه

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

کنترل نسخه؛ روش‏ها و ابزارها را ترکیب می‏نماید تا نسخه‏های گوناگونی از شی‏های پیکر بندی را که طی فرایند نرم‏ افزار ایجاد شده‏اند مهار نمایند.

یکی از راه‏های نمایش نسخه‏های گوناگون یک سیستم نمودار تکاملی است.

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

هر نسخه نرم‏ افزار عبارت است از مجموعه‏ای از SCI ها و هر نسخه می‏تواند ترکیبی از متغییرهای گوناگون باشد.

کنترل تغییرات

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

کنترل تغییر، فعالیتی است که با اعمال تغییرات به شیء پیکر بندی کیفیت و هماهنگی آن را تضمین می‏نماید.

فرایند کنترل تغییر با یک درخواست آغاز شده، منجر به اتخاذ تصمیم برای ساخت و یا رد درخواست برای تغییر می‏شود و با یک به روزرسانی کنترل شدۀ SCI ای که قرار است تغییر کند خاتمه می‏یابد.

دو رکن اصلی کنترل تغییر وجود دارد:

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

کنترل همزمانی: کمک می‏کند اطمینان حاصل شودکه تغییرات مشابهی که توسط دو فرد مختلف انجام می‏شوند؛ بر روی هم کپی نشوند.

وارسی پیکر بندی

شناسایی، کنترل نسخه و کنترل تغییرات به نرم افزار نویس کمک می‏کند تا نظم امور را حفظ کند ولی، حتی مؤثرترین راهکارهای کنترل نیز یک تغییر را تا جایی پیکر بندی می‏کنند که یک سفارش تغییر مهندسی (ECO) تولید شود. چگونه می‏توان اطمینان یافت که تغییر به طور مناسب پیاده سازی شده است؟ پاسخ دو جنبه دارد:

۱٫ بررسی‏های فنی رسمی                     ۲٫ وارسی پیکر بندی نرم‏ افزار

۱٫ بررسی‏های فنی رسمی: به صحت شی پیکر بندی که اصلاح گردیده می‏پردازد. که باید در تمام و حتی جزیی‏ترین تغییرات اعمال گردد.

۲٫ وارسی پیکر بندی نرم‏ افزار: وارسی پیکر بندی نرم‏ افزار بررسی فنی رسمی را از طریق ارزیابی یک شی پیکربندی که معمولاً طی بررسی در نظر گرفته نمی‏شود تکمیل می‏نماید.

در حین بازرسی و بازبینی سؤالاتی مطرح می‏شود و پاسخ آنها نیز داده می‏شود:

  1. آیا تغییر مشخص شده در سفارش تغییر مهندسی اعمال شده است؟ آیا اصلاحی صورت پذیرفته است؟
  2. آیا بازبینی فنی رسمی برای سنجش درستی کار اجرا شده است؟
  3. آیا فرایند نرم افزار دنبال شده است و استانداردهای مهندسی نرم افزار به طور مناسب به اجرا درآمده‏اند؟
  4. آیا تغییر در SCIها نمایان و مشهود است؟ آیا داده‏های تغییر و صاحب تغییر مشخص است؟ آیا صفات شیئی پیکر بندی این تغییر را منعکس می‏کنند؟
  5. آیا روال‏های SCM برای شناسایی تغییر، ثبت و گزارش آن دنبال شده‏اند؟
  6. آیا همه SCIها مربوطه به طور مناسب بهنگام سازی شده‏اند؟

گزارش وضعیت

گزارش وضعیت پیکر بندی که به آن صورت وضعیت هم می‏گویند؛ یکی از وظایف مدیریت پیکر بندی است.

—       هر بار که یک SCI، هویت جدید و یا به روزی را انتخاب می‏نماید، یک مورد CSR ایجاد می‏شود. هر بار که وارسی پیکر بندی  صورت می‏پذیرد، نتایج به عنوان  بخشی از گزارش وضعیت گزارش می‏گردند.

—       گزارش وضعیت، اطلاعاتی را دربارۀ هر تغییر به کسانی که نیازمند آگاهی از آن هستند ارائه می‏نماید.

گزارش دهی به سؤالات زیر پاسخ می‏دهد:

ü     چه اتفاقی رخ داده است؟

ü     چه کسی مسبب آن بوده است؟

ü     چه زمانی رخ داده است؟

ü     چه چیزهای دیگری از آن تأثیر خواهند پذیرفت؟

 

استانداردهای مدیریت پیکر بندی نرم‏ افزار

بسیاری استانداردهای مدیریت پیکر بندی نرم‏ افزار بیش از دو دهه است که ارائه می‏شود. همچنین بسیاری از استانداردهای اولیه بر توسعه و ساخت نرم‏ افزارهای نظامی متمرکز شده و تأکید داشته‏اند.

استانداردهای ANSI/IEEE برای نرم‏ افزارهای غیر نظامی به کار می‏رود و برای سازمان‏های مهندسی نرم‏ افزار کوچک و بزرگ توصیه می‏شود.

  • استانداردهای اولیه مانند:  MIL-STD-483، DOD_STD_480A و MIL-STD-1521A
  • استانداردهای ANSI-IEEE مانند:  NO.1042-1987، ANSI/IEEE Stds. NO.828-1983

درباره‌ رضا رمضانی

رضا رمضانی

جوابی بنویسید

ایمیل شما نشر نخواهد شدخانه های ضروری نشانه گذاری شده است. *

*