چکیده
در حوزه فعلی توسعه نرم افزاری، تعداد زیادی از مدل های چرخه دوام برای توسعه نظام مند نرم افزار و پروژه های رایانه ای، نظیر مدل آبشار، مدل آبشار تکرارشوند، مدل نمونه، مدل مارپیچی و غیره در دسترس هستند. این مدل ها دارای ویژگی های خاص خود بوده و برای موقعیت خاصی از توسعه نرم افزاری و نرم افزار مناسب هستند. ممکن است مشخص شود که یک مدل چرخه دوام نرم افزار بسته به محیط توسعه پربازده تر از دیگری باشد. در این مقاله، تلاش شده است تا از این جنبه مدل های مختلف چرخه دوام نرم افزاری مورد تجزیه و تحلیل قرار گیرند. علاوه بر این، تلاش هایی نیز برای توسعه هستی شناسی دسته های مختلفی از پروژه های نرم افزاری و بررسی مدل های چرخه دوام نرم افزاری بر اساس این دسته بندی ها صورت گرفته است.
1. مقدمه
پروژه نرم افزاری، بدون توجه به این که کوچک یا بزرگ باشند، ازمیان مراحل مشخصی عبور می کنند که با یکدیگر به عنوان چرخه دوام توسعه نرم افزاری (SDLC) شناخته می شوند. پنج مرحله وجود دارد که بخشی از SDLC به شمار می روند. این مراحل عبارت هستند از: تعریف ملزومات، طراحی، کد گذاری، آزمودن، و نگهداری.
مدل های SDLC بر اساس مراحل مختلف SDLC، ترتیبی که آنها طبق آن روی می دهند و تعامل بین آنها ایجاد می شوند. خروجی ناشی از هر مرحله به عنوان ورودی مرحله بعد عمل می کند. در بخش بعد، به بحث در مورد برخی از مدل های SDLC خواهیم پرداخت. مکن است ثابت شود که یکی از مدل های چرخه دوام توسعه نرم افزاری بسته به محیط توسعه، پربازده تر از مدل های دیگر باشد. در این مقاله، تلاش شده است تا مدل های مختلف SDLC از این دیدگاه مورد تجزیه و تحلیل قرار گیرند. دسته بندی هستی شناسی پروژه های نرم افزاری مختلف نیز در این مقاله ارائه می شود.
به غیر از مقدمه ارائه شده در بخش 1، این مقاله به صورت زیر سازماندهی شده است. در بخش 2، خلاصه ای در مورد مدل های مختلف SDLC ارائه شده است. تحلیل تناسب مدل های گوناگون در بخش 3 انجام شده است. در بخش 4، دسته بندی کلی انواع مختلف پروژه های نرم افزاری ارائه شده است. در این بخش، به هستی شناسی نیز پرداخته می شود. بخش 5 به ارائه مشاهدات ما از کار پرداخته و در بخش 6 نیز جمع بندی صورت می گیرد.
2. مدل های SDLC
A. مدل آبشار
مدل آبشار رویکردی کلاسیک است که در مهندسی نرم افزار برای اطمینان از موفقیت پروژه به صورت گسترده ای مورد استفاده قرار می گیرد.
B. مدل نمونه
مدل نمونه به سرعت نمونه کاری را توسعه می دهد که به لحاظ کارکردی با یکی از مؤلفه های پروژه برابر می باشد.
C. RAD
RAD مفهومی است که بر طبق آن محصولات می توانند با استفاده از تکنیک های خاصی با کیفیت بالاتری سریع تر توسعه یابند.
D. مدل فزاینده
این مدل اجرای ناقصی از کل سیستم را ارائه می دهد. سپس، به تدریج بر کارکرد آن اضافه می کند.
E. مدل مارپیچی
این مدل ویژگی های مدل نمونه و مدل آبشار را با یکدیگر ترکیب می کند؛ و سپس، تحلیل خطر، RAD 4gl و نمونه ای از مدل آبشار را اضافه می نماید.
F. مدل XP (برنامه ریزی نهایت)
مدل XP برای تیم های کوچک تا متوسط استفاده می شود که با ملزومات نامشخص یا به سرعت متغیر به توسعه نرم افزار می پردازند. کدگذاری مهم ترین کار در یک پروژه نرم افزاری می باشد.
G. مدل ازدحامی
این مدل شبیه به سایر مدل های چرخه دوام است که از توسعه تکرارشونده برای رسیدگی به ملزومات متغیر استفاده می کند، اما در آن، تکرارها معمولا سی روز طول می کشند.
مدل های SDLC مختلف دارای خصوصیات و الزامات منحصر به فرد خود هستند. بر اساس این جنبه ها، این مقاله به ارائه تحقیقی تحلیلی در مورد تناسب مدل های مختلف SDLC برای استفاده در توسعه پروژه های نرم افزاری می پردازد. علاوه بر این، برای دسته های مختلف پروژه های نرم افزاری هستی شناسی صورت می گیرد و بر اساس این دسته بندی ها، مدل های چرخه دوام نرم افزاری مورد بررسی قرار می گیرند. این هستی شناسی در زبان توسعه هستی شناسی شبکه معنایی ، زبان هستی شناسی شبکه ارائه داده شده است.
Abstract
In this current era of software development, a large number of life cycle models are available for the systematic development of computer software and projects such as waterfall model, iterative waterfall model, prototyping model, spiral model etc. These models have their own unique characteristics and are suited to a particular situation of software development and software types. One software life cycle model may prove to be more efficient than the other one depending upon the development environment. In this paper, the work has been done to analyze the various software life cycle models from this aspect. Further, the work has been done to develop the ontology for various categories of the software projects and an observation on software life cycle models according to these categories. The ontology has been developed in the Semantic Web ontology development language, Web Ontology Language (OWL).
I. INTRODUCTION
A software project, regardless of whether it is large or small, goes through certain defined stages, which together, are known as the Software Development Life Cycle (SDLC) [4]. There are five phases that are the part of the SDLC. These phases are: requirements definition, design, coding, testing, and maintenance.
SDLC models are created based on the various phases of the SDLC, the order in which they occur and the interaction between them. The output generated by each phase serves as the input for the next [14]. Some of the SDLC models are discussed in the next section. One software life cycle model may prove to be more efficient than the other one depending upon the development environment. The paper analysis the various SDLC models from this point of view. The paper also presents the ontological classification of various software projects.
Apart from Introduction in Section-1, the work has been organized as follows. Section-2 presents the brief of various SDLC models. The suitability analysis of various models has been done in Section-3. In section-4, a broad classification of various types of software projects has been presented. The section also presents its ontological presentation. Section-5 presents our observations from the work and the work has been concluded in the Section-6.
II. SDLC MODELS
A. Waterfall Model
Waterfall model is a classical approach, widely used in Software Engineering to ensure success of the project [4, 14].
B. Prototyping Model
Prototyping Model quickly develops a working model that is functionally equivalent to a component of the project [4, 14].
C. RAD (Rapid Application Development)
RAD is a concept that products can be developed faster and of higher quality by using some special techniques [4, 14].
D. Incremental Model
It constructs a partial implementation of a total system. Then slowly add increased functionality [4, 14].
E. Spiral Model
This model combines the features of the prototyping model and the waterfall model; it adds risk analysis, and 4gl RAD prototyping to the waterfall model [4, 14].
F. XP (Extreme Programming) Model
XP model is used for small-to-medium-sized teams developing software with vague or rapidly changing requirements. Coding is the key activity throughout a software project [1].
G. Scrum Model
It is similar to other life cycle models that use iterative development to address changing requirements, but in it, the repetitions are referred to as sprints, which normally last thirty days [1].
Different SDLC models have their unique characteristics and requirements. On the basis of these aspects, this paper presents an analysis survey on the suitability of various SDLC models on the situation of its use for software project development. Further, an ontology is developed for the various categories of the software projects and an observation is presented on software life cycle models according to these categories. The ontology has been developed in the Semantic Web ontology development language, Web Ontology Language (OWL).
چکیده
1. مقدمه
2. مدل های SDLC
A. مدل آبشار
B. مدل نمونه
C. RAD
D. مدل فزاینده
E. مدل مارپیچی
F. مدل XP (برنامه ریزی نهایت)
G. مدل ازدحامی
3. دسته بندی کلی پروژه های نرم افزاری و هستی شناسی آنها
A. دسته بندی پروژه های نرم افزاری
B. بازنمایی هستی شناختی طبقه بندی پیشنهادی
4. مشاهده
5. جمع بندی
منابع
Abstract
1. INTRODUCTION
2. SDLC MODELS
A. Waterfall Model
B. Prototyping Model
C. RAD (Rapid Application Development)
D. Incremental Model
E. Spiral Model
F. XP (Extreme Programming) Model
G. Scrum Model
3. SUITABILITY ANALYSIS OF VARIOUS SDLC MODELS
4. BROAD CLASSIFICATION OF SOFTWARE PROJECTS AND ITS ONTOLOGY
A. Classification of Software Projects
5. OBSERVATION
6. CONCLUSION
REFERENCES