توسعه نرم افزار

توسعه نرم افزار < حوزه فنی و نرم افزار
آزمون پذیرش کاربر(User Acceptance Test) مرحله ای از تست سیستم مورد توسعه بوده که بطور معمول پس از گذراندن تست های "واحد" و تست "تجمیع و سیستم" توسط کاربر سیستم به انجام می رسد.به همین منظور لازم است روال مدونی ارایه گردد که بر اساس موارد تست( Test Case)  انجام شده این اطمینان برای کاربر نهایی سیستم ایجاد گردد که کلیه قابلیت های سیستم مطابق با نیازمندی های خریدار توسعه یافته است. 
روش انجام تست:
روش آزمون پذیرش را می توان ازنوع ازمون های جعبه سیاه به شمار اورد. در واقع رویکرد انتخاب شده در اینگونه از ازمون ها ارزیابی عملکرد سیستم بوده و چندان توجهی به روش های فنی در پیاده سازی قابلیت ها نمی گردد. نکته مهم در اینگونه از ازمون ها این بوده که ازمون در محیط بسیار نزدیک به محیط واقعی و اجرایی سیستم و با داده های مشابه اطلاعات واقعی انجام می پذیرد.  مراحل روال در دسته بندی زیر قرار می گیرد:
1- برنامه ریزی ازمون پذیرش کاربر
2- طراحی  موارد  تستی Test Case 
3- انتخاب تیم تست کننده از کاربران 
4- اجرای موارد تستی 
5- مستند سازی از مراحل و نتایج تست 
6- رفع اشکالات و نواقص 
7- صورتجلسه 
 MDA مخفف عبارت(Model Driven Architecture) می باشد و می توان برای آن معادل فارسی "معماری بر پایه مدل" را بکار برد یک چارچوب معماری برای سیستم های نرم افزاری است که فلسفه آن بر مبنای جداسازی فضای کسب و کار از مفهوم منطقی سیستم های نرم افزاری و نیز سکوی پیاده سازی آن بنا شده است. 
در این چارچوب از مدل بعنوان اساس و پایه هرگونه فعالیت تولید و توسعه استفاده میشود و در واقع این مدل ها هستند که کار تولید نرم افزار را به پبش می برند.. در MDA سه نوع مدل وجود دارد که عبارتند از CIM ، PIM و PCM
1- CIM یا Computation Independent Model  همان مدل های مستقل از محاسبه، مدل های مجردی هستند که می بایست مرتبط با نیازمندی های سیستم و یا فضای کسب و کار طراحی شده باشند.
2- مدل های نرم افزاری در MDA با عنوان مدل های مستقل از سکو به نام PIM معادل Platform Independent Model شناخته می شوند که شامل منطق کسب و کار بدون ورود به جزئیات تکنیکی می باشند.
3-مدل های وابسته به سکو PSM معادل Platform Specific Model که بر حسب سکوی پیاده سازی جزئیات نرم افزار را نشان می دهند.
یکی از مفاهیم کلیدی در MDA انتقال دهنده ها (Transformers) می باشند. انتقال دهنده ها، ابزارهایی هستندکه انواع مدل را ها را بیکدیگر تبدیل می کنند. بر مبنای رهنمودهای MDA و با استفاده از گام های صحیح و انتقال دهنده های مناسب میان انواع مدل ها ما می توانیم یک نرم افزار مناسب با فضای کسب و کار تولید کنیم.
 
فرایند توسعه نرم افزار به مجموعه ای از فعالیت های مهندسی نرم افزار اطلاق می شود که با هدف مدیریت چرخه عمر یک محصول نرم افزاری، طراحی و برنامه ریزی می گردد. فرایندهای تولید نرم افزار با این هدف بوجود آمده اند که این مجموعه فعالیت ها را در یک چارچوب مشخص سازمان دهی، استاندارد و مستند کرده و به این ترتیب سرعت و کیفیت تولید نرم افزار را بهبود بخشند.
اگر چه چرخه عمر یک محصول نرم افزاری شامل مراحل متعددی نظیر تعریف، استخراج نیازمندی ها، تحلیل، طراحی، پیاده سازی، آزمون، نگهداری و ... می باشد لیکن در یک نگاه کلی می توان آن در سه بخش عمده برنامه ریزی ( امکان سنجی، تعریف، تبیین نیازمندی ها ) ، اجرا ( طراحی، پیاده سازی، آزمون، مستند سازی ) و نگهداری تقسیم بندی نمود. فرایندهای تولید نرم افزار می بایست برای هرکدام از این بخش ها و جزئیات آنها روش، قواعد و اصول معینی را ارائه نمایند.
فرایند های تولید نرم افزار بر اساس مدل تولید نرم افزار منتخب خود به چند دسته تقسیم می شوند که عبارتند از :
1- مدل آبشاری (Waterfall Model): در این مدل فعالیت های تولید نرم افزار در قالب فازهای با توالی مشخص و به ترتیب، برنامه ریزی و اجرا می شوند. اشکال عمده این روش این است که بازبینی و تجدید نظر در فازهای انجام شده امکان پذیر نیست لذا خطای تخمین ابعاد پروژه، ریسک اشتباه در فهم درست و تحلیل نیازمندی ها و نیز امکان انتخاب نابجای معماری بسیار بالا می باشد.
2- مدل حلزونی (Spiral Model): این مدل برای بهبود مدیریت ریسک در تمام مراحل تولید نرم افزار بوجود آمد و ترکیبی بود از مدل آبشاری بهمراه امکان نمونه سازی (Prototyping) سریع. این مدل اگر چه برخی جنبه های مدل آبشاری را بهبود می داد لیکن از نارسایی های فراوان آن مدل متاثر بود.
3- مدل تکراری و افزایشی(Incremental Model): این مدل امکان می دهد که بتوان پروژه را ابتدا در مقیاس بسیار کوچک شروع کرده و کلیه مراحل را طی نمود سپس بمرور زمان سیستم را رشد داده و بسمت سیستم نهایی سوق داد. این روش باعث می شود در حین اجرای کار مشکلات مهم قبل از اینکه باعث خراب شدن کل سیستم شوند شناسایی شده و حل شوند. ضمنا به کاربران اجازه داده می شود نیاز های خود را بتدریج و بر حسب شرایط عینی سیستم بازنگری و عنوان کنند.
4- مدل چابک(Agile Model): در این مدل روش تکراری و افزایشی بعنوان پایه و مبنا پذیرفته می شود ولی تشریفات فراوان و برنامه ریزی های مفصل کنار گذاشته شده و فرایند براساس بازخوردهایی که از آزمون محصول بدست می آیند، کنترل و مدیریت می شود. این مدل اکنون بجهت نتایج قابل توجه خود، بسیار مورد استقبال بوده و بر اساس آن روش های متنوعی ایجاد شده که از آن میان می توان به ایکس پی و اسکرام اشاره نمود.
 
OLAP (Online Analytical Processing) یک رویکرد (approach) برای ارائه پاسخ سریع به پرس و جوهای تحلیلی چند بعدی (multi-dimensional analytical)است. در حقیقت OLAP خود جزئی از بخش بزرگتری به نام business intelligence است که تکامل یافته سیستم های OLTP (Online Transaction Processing) می باشد. برنامه های کاربردی معمول OLAP شامل گزارشهای تجاری مرتبط با فروش و بازیابی، مدیریت فرآیند کسب و کار (business process management)، تعیین بودجه و پیش بینی آن و گزارش های مالی از این دست می باشند. در حقیقت OLAP کاربران را قادر به تجزیه و تحلیل چند بعدی و تعاملی از دیدگاه های محتلف می سازد. در حقیقت این سیستم ها اطلاعات مورد نیاز خود را با استفاده از یک ساختار Hierarchical و یک Data Model چند بعدی اقدام به ساده سازی محاسبات پرداخته و به گونه ای متفاوت از سیستم های عملیاتی قادر است تا گزارشهای معنی دارتر و کلان تر و مدیریتی را با سرعتی مناسب تهیه نماید. عملکرد OLAP به این صورت است که اطلاعات گوناگونی را از سیستم های عملیاتی بصورت مداوم و خلاصه شده بروی مکعب های OLAP ( OLAP cube) کپی میکند. در حقیقت هسته اصلی OLAP مکعبهای OLAP هستند این مکعبها به نام های multidimensional cube یا hypercube نیز نامیده می شوند. باید توجه داشت که در OLAP معیار های مهم تحلیل بعنوان ابعاد مختلف مکعب درنظر گرفته می شوند این مکعب ها از حقایق عددی تشکیل شده اند که بوسیله ابعاد مختلف مکعب دسته بندی شده اند(حقایق عددی measures نامیده می شود). به عنوان مثال در یک سیستم OLAP مکعب فروش را در نظر بگیرید. در این مکعب، سه معیار اساسی زمان، محصول و مشتری به عنوان ابعاد مکعب درنظر گرفته می شود. هر بعد می تواند دارای سلسله مراتبی نیز باشد، در این مثال سلسله مراتب زمان می تواند ماه، هفته، روز و ... باشد. در یک سیستم OLAP پس از تکمیل مکعب های متعدد مورد نیاز و معرفی جداول مختلف از پایگاه داده های مختلف به عنوان منبع تغذیه مکعبها، سیستم های OLAP واسط کاربری لازم را در اختیار کاربران قرار میدهد تا هر یک از آنها قادر باشند گزارشهای مورد نیاز خود را از منظر و دیدگاه خود تهیه نمایند.
 OLAP شامل سه عملیات عمده تحلیل است:
1- consolidation (roll-up) : این مرحله شامل تجمیع داده هایی است که می تواند بروی یک یا چند بعد محاسبه و قرار داده شده باشد . به عنوان مثال می توان اطلاعات تمامی دفاتر فروش را در واحد فروش انباشته کرد و یا فروش را بر اساس مقدار بیشتر فروش در هر دفتر بخش بندی کرد.
2- drill-down: یک تکنیک است که به کاربران اجازه می دهد بر اساس جزئیات حرکت کنند.  به عنوان مثال کاربر مقدار فروش یک محصول خاص را در منظقه مورد نظر خود مشاهده نمایند.
3- slicing and dicing : یک ویژگی است که به کاربران اجازه می دهد برشی از اطلاعات یک مکعب OLAP را بر مبنای دیدگاه های متفاوت مشاهده نماید.
برخی از بزرگترین تولید کنندگان سیستم های OLAP در دنیا بر اساس میزان فروش به ترتیب عبارتند از : Microsoft ،Oracle ، IBM و SAP