Upload
api-3809277
View
418
Download
3
Tags:
Embed Size (px)
Citation preview
چرخه حيات محصوالت نرم افزاري
Software Product Life Cycle
دکتر ناصر مديري
هللا
طرح مسئله
•PLCروش ، ابزار، تجربه، تخصص، مجموعه اي از فرهنگو مراحل مشخص در توليد يك محصول نرم افزاري است.
•PLC چهار چوب و نظامي است براي معرفي نمودنسازمان در جهت طرح و توليد يك محصول نرم افزاري
جديد. • PLC در بر گيرنده كليد راه كارها، مسائل و مشكالت يك
:محصول نرم افزاري جديد استاز مرحله اوليه بازار سنجي– تا توليد انبوه و در نهايت جايگزين كردن محصول –
ارتباطات، كليه مراحل توليد فرآيند، همراه با PLC در •نهايي تا(Deliverables) وابستگي ها، خروجي هاي اصلي
توضيح داده شده اند. (Hands-off)نمودن
طرح مسئله
بنا به تعريف مهندسي) كه شامل قانونمند بودن و •رعايت ترتيب است( مهندسي ياد گرفتن قوانين و نظم گرفتن در روشي است كه بتوان استفاده كرد.
كه كار مهندسي در توليد نرم افزار ضروري است چرا•نرم افزار گروهي است و براي رسيدن به يك جواب
مشترك بايد اصول مهندسي در توليد رعايت شود.طبق اصول مهندسي نرم افزار كار نبايد وابسته به •
وابسته به تكنولوژي PLCتكنولوژي باشد كه با نخواهيم بود و با تغيير تكنولوژي تغييري در روند كار
ايجاد نخواهد شد.
فهرست
ساختار هاي تشکيالتي روش توليد نرم افزار• ساختار هاي تشکيالتي روش توليد نرم افزار•
ديدگاه هاي روش توليد نرم افزار• ديدگاه هاي روش توليد نرم افزار•
روشهاي توليد نرم افزار• روشهاي توليد نرم افزار•
انواع محصوالت نرم افزاري• انواع محصوالت نرم افزاري•
مخاطبين چرخه حيات محصوالت نرم افزاري• مخاطبين چرخه حيات محصوالت نرم افزاري•
مدل چرخه حيات محصوالت نرم افزاري• مدل چرخه حيات محصوالت نرم افزاري•
استاندارد هاي مهندسي نرم افزار• استاندارد هاي مهندسي نرم افزار•
System Platforms
Hardware Platform
Operating System Platform
Database Platform
Application Platform
API Platform
Application Programs
Communications Platform
ProductLife
Cycle(PLC)
ManMachinesToolsTechniques
ساختار هاي سازماني
ماتريسيسلسله مراتبي
تخت
پروژه ايمجازي
ترکيبي
ديدگاه هاي توليد نرم افزار
ProductOriented
CustomerOriented
Production Oriented
Packages
روشهاي توليدروشهاي توليد
Waterfall
RUP
Prototyping
Prototyping & Prototyping & WaterfallWaterfall
ديدگاه ها در رابطه با چرخه توليد نرم افزار
کارفرما با سيستم دستي
باشد. نزديک بودن سيستمي که قرار است تهيه شود با سيستم دستي موجود•.گردش کار سيستم مانند گردش کار دستي باشد•نياز به آموزش زيادي نداشته باشد.•کارفرماي اصلي دوست دارد صحت کارش بيشتر شود.•هزينه ها پايين بيايد.•زياد به سيستم وابسته نباشد و سريع روي سيستم دستي اش سوييچ کند.•استفاده از سليقه هاي مختلف در سيستم جديد.•پشتيباني خوب.•محيط جديد مشکلي برايش ايجاد نکند.•وقت زيادي با توليد کننده سيستم صرف نکند.•پول زيادي ندهد.•دخيل در تکنولوژيهاي اوليه نشود.• باشد. Dependableسيستمي ••Version.ديگري نداشته باشد سيستمي پيشرفته تر باشد.•انتقال مطمئن از سيستم کامپيوتري به دستي مي خواهد.•نظرات از همه گرفته ميشود.•
مي باشد چون دراين شيوه به خوبي مي تواند سليقه هاي prototypeسيستم مناسب مختلف را اعمال کند
کارفرما با سيستم نيمه دستي
افزايش سرعت•کاهش هزينه ها•وسيع کردن زمينه کار•رقابتي کردن کار•پيش بردن اهداف سازماني•بدست آوردن رضايت مشتري•عالقه به شناخت کامل نيازهاي •
کاريدرخواست مستندات فني بيشتر•درخواست نتايج تست ها•فرصت کافي دادن براي •
Btestingمي خواهد با تكنولوژي •
پيرامونش هماهنگي داشته باشد.
ميشناسد را ها نيازمندي ميخواهد prototypeچون هم را هايي
Prototype &waterfall
شناخت جامعي نسبت به سيستم اش • و legacy systemداشته باشيم و
current system را در صورت موجود بودن کامال بفهميم و در سيستم جديد
لحاظ کنيم.در خواست مستندات فني بيشتر دارد.• را درخواست کند sourceممکن است •درخواست آموزش بيشتر با كيفيت باالتر •
مي کندمقدار زماني که محصولش تست مي شود •
طوالني است.هزينه هاي اضافه را قبول نخواهد کرد و •
سرويسهاي متفرقه را رد خواهد کرد.کامال تخصصي بايد با وي رفتار شود.•
مديريت.فازها تفکيک شده و جدا از هم باشند.هزينه هاي هر قسمت کامال بيان شوند .پيشرفت و کنترل کار مهم استپيشروي کار در زمان مقرر تعيين مقطع ريالي و زماني در مورد نيروهايي که به خدمت
ميگيرد. .پيش بيني ها دقيق است برآورد کردن نقطهDiminishing Return .ابزار و سرمايه گذاري روي ابزار مهم است.نيروي انساني ماهر و متخصص را بکار گيرد.بايد پويايي خودش را حفظ کند
چون فازها کامال تفکيک شده Waterfall
توسعه دهنده
بكار بردن تكنيك هاي خوب•داشتن مهارت•توليد محصول فني خوب•ديدن آموزشهاي متنوع و مختلف•دريافت در آمد خوب متناسب با فنون و •
عالقه مندي اي كه دارا ميباشند.تمايل به داشتن مسئوليت كم•نداشتن ارتباط زياد با مشتري نهائي•Technologyهمراه بودن با •
Technology RUP/UML
روشهاي توليد نرم افزار
• Waterfall • Linear Waterfall• Sequential Waterfall• Spiral• WinWin Spiral• Formal Specification• Prototyping• Extreme Programming• Object Oriented
Linear ModelsIterative ModelsObject Oriented Models
مهندسي نرم افزار
متدولوژي
SSADM
RUP
مفاهيم استانداردها
Tick it
CMM
مديريت
پروژه نيازمندي
پيکربندي تغييرات
کيفيت
SLCو PLC
آناليز طراحي
تست
پياده سازي
معماري نرم افزار
کالينت/سرور
يک اليه چند اليه
پايگاه داده ها
اوراکل
اس کيو ال سرور
ماي اس کيو ال
تعاريف اهداف
انواع و ويژگيسيستم ها
مهندسي نرم افزار
زبان هاي برنامه نويسي
جاوا VB
C
مهندسي نرم افزار
پروتکل ها
TCP/IP HTTP
FTP
محيطهاي توسعه نرم افزار
RationalDeveloper
Power Design
متريک هاي نرم افزار
به نسبت خط تعداد Command
Objective Metrics
Subjective Metrics
مهندسي نرم افزار
انواع نرم افزار ها
1. Single Licensee2. Package3. Bi-Product4. Off-The-Shelf5. Application Programmers Interface (API)6. Component7. Total Solution8. Turn Key Solution9. Flag-Ship
Well Engineered Software Engineering Software Software
high medium low عمر 1
high medium low updateقابليت 2
high medium low درستي و صحت 3
high medium low User friendly 4
high medium low نگهداري قابليت 5
high medium low دهي سرويس قابليت 6
high medium low بودن سازگار 7
دارد کاربرد به بستگي دارد کاربرد به بستگي دارد کاربرد به بستگي سرعت 8
high medium low Setup 9
high medium low توليد هزينه 10
low medium high حمل قابليت 11
high medium low مجدد استفاده قابليت 12
high medium low کارايي 13
high medium low اطمينان قابليت 14
high medium low Capability 15
high medium low Scalability 16
high medium low مستندات ميزان 17
high medium low امنيت 18
high medium low ارتقا قابليت 19
high medium low Modular بودن 20
high medium low نگهداري هزينه 21
high medium low ديگر هاي باسيستم ارتباط 22
high medium low شدگي توزيع ميزان 23
افزار نرم نوع 24
مقايسه نرم افزار ها
high medium low testميزان 25
no Yes/no yes Bug release دارد آسان 26
yes Yes/no no نه يا دارد مختلفي هاي نسخه 27
high medium low Requirementآناليز 28
high medium low دارد آموزشي مطالب مقدار چه 29
high medium low تکنولوژي انتقال 30
high medium low کاري هاي تيم تعداد 32
high medium low تکثير هزينه 33
high medium low توليد زمان مدت 34
high medium low حجم/ ميزان 35
high medium low Capacity 36
high medium low Customize بودن 37
high medium low با مختلف platformهمخواني هاي 38
high medium low کد حجم 39
high medium low نه يا است توليد استانداردهاي تابع 40
high medium low testingکيفيت 41
high medium low تست زنده محيط يا آزمايشگاه در محصول ميزان چهشده
42
medium little Very little نه يا دارد مشابه آيا 43
high medium low محصول به نيازمندي بررسي و تحليل زمان مدت 44
high medium low کارها تفکيک 45
high medium low يا است شده عمل شده شناخته متدولوژي اساس بر آيانه
46
yes yes yes نه يا کند کار که باشد مي محصولي آيا 47
high medium low Third party software requirement 48
high medium low OEM production 49
yes Yes/no no سيستم نه criticalآيا يا هست 50
high medium low افزار نرم توليد در ريسک ميزان 51
high medium low Change control نه يا دارد 52
مقايسه نرم افزار ها
درجه اول :
مديران عامل و معاونين
مديران توليد و معاونين
رئيس گروه هاي كاري
PLCمخاطبين
مديران و دست اندركاران برنامه مديران و دست اندركاران برنامه ريزيريزي
مديران و دست اندركاران توليدمديران و دست اندركاران توليدمديران و دست اندركاران عملياتي مديران و دست اندركاران عملياتي
سازمانسازمانروابط فروشندگان / فراهم كنندگان روابط فروشندگان / فراهم كنندگان
كليديكليديمشتريان كليديمشتريان كليدي
شركاء تجاريشركاء تجاري
اشخاصي كه ارزش افزوده به محصول خواهد آورد.
درجه دوم :
گروه ها و شركتهاي همكار مشتري هاي خاص )با كنترل دقيق (
Third)ارائه دهندگان و فروشندگان سيستم ها Party)
PLCمخاطبين
مهندسي
نرم افزار
مهندسي نرم افزار
مفهوم مهندسي نرم افزار
تعريف مهندسي نرم افزار
اهداف مهندسي نرم افزار
انواع نرم افزار)سنتي، مهندسي ساز، خوب (
چرخه حيات نرم افزار
متدولوژيهاي توليد نرم افزار
مديريت پروژه
اصول و مفاهيم تحليل و طراحي
پروژه
نگهداري و توسعه نرم افزار
معماري پروژه
بررسي اوليه وامكان سنجي
تجزيه-تحليل و طراحي سيستم
برنامه سازي وآزمايش
استقرار-اجرا ونگهداري سيستم
مهندسي فرايند نرم افزار
مدل هاي فرايند نرم افزار
مدل آبشاري
و...winwinمدل
چرخه حيات محصول
مفاهيم مديريت پروژه
نقشه پروژه
طيف مديريت
افراد، محصول ، فرايند و...پروژه
تعيين پايگاه داده
تعيين پرتكلتعيين زبان برنامه
نويسي
تحليل خواسته ها و اصول تحليل
ساخت نمونه و ...
طراحي نرم افزار ومهندسي نرم افزار
مفاهيم طراحي و مدل طراحي و مستند سازي
معماري نرم افزار
طراحي داده ها
سبك هاي معماري و ....
موضوعات مهندسي نرم افزار
Birth
Maturity
Death
Time To Market
PLCساختار کلي
جمع اينكه از كجا بايد اطالعات ونيستتعريف محصول مشخص .آوري نمود
كه قرار است معلوم نيست محصولي كه عرضه مي شود سرويسهايي راارائه كند برآورده مي كند يا خير .
انبوه آن برنامه اي نداريم: توليد محصول أيجاد شده است اما براي Controlled Product Release
نداريم.General Availability به CPRبرنامه اي براي تبديل
نداشته باشيم چه مشكالتي PLCاگر بوجود مي آيد ؟
Deliverزماني مي گيريم ولي ديد نداريم كه چه سفارش براي يك محصول خواهد شد.
مستندات را داريم اما گروهي كه مي خواهد آن را پياده كند مشخص نيست.
Product Time To Market مشخص نيست چه زمان طول كشيده اما منابع براي تمام كردنش شده، كار بر روي يك محصول شروع است.
يم كه بدانيم كار را با چه ا چون برنامه ريزي نداشته مشخص نيست،.يما شروع كرده يوسعت
، نيستمحصول براي اولين مشتري آماده است اما گروه پشتيبان آن آماده PLCرا مي دهد كه اگر روزي محصول آماده شد ي امكان PLC تشكيالت آن
نيز آماده خواهد بود
PLCنبود
Cumulative time & money
The way it could
The way it has been
Threshold of pain
Frustration
Point Of No Return
Point of No Return
نخستين الگوي توليد محصول در شركتنخستين الگوي توليد محصول در شركت
PLC براي هركدام از عمليات Metricsأيجاد زير بنا و PLC براي هركدام از عمليات Metricsأيجاد زير بنا و
به حداقل رساندن زمان عرضه به بازاربه حداقل رساندن زمان عرضه به بازار
و فرهنگ يكسان براي استفادهMediaأيجاد و فرهنگ يكسان براي استفادهMediaأيجاد
مشخص كردن برنامه ها و انجام فعاليتهاي هرواحدمشخص كردن برنامه ها و انجام فعاليتهاي هرواحد
تقويت مهارتهاي مديريت پروژه كه در نتيجه باعث مشخص شدن زمان عرضه به بازار مي شود
تقويت مهارتهاي مديريت پروژه كه در نتيجه باعث مشخص شدن زمان عرضه به بازار مي شود
افزايش ديدگاهافزايش ديدگاه
أيجاد مديريت پوياأيجاد مديريت پويا
PLCاهداف
باشد. بايد بتوان اعمالش كرد.Flexible و Adaptableبايد
به بهبود رود.رو باشد و Living Processبايد
باشد. بتوان در همه واحدهاApplicable to Allبايد بكاربرد.
PLCخواص
مراحل ايجاد و توليد يک نرم افزار
مستندسازي نرم افزار مطابق بانيازهاي ارائه روشي مدون براي توليد و,هدف از متدولوژيهاي تحليل وطراحي•متقاضيان است . در واقع توليد يک نرم افزار بطور کلي داراي مجموعه اي ازمراحل تفکيک شده است که اهم�
اين موارد عبارتند از:شناخت–تحليل –تجزيه –تخمينها و برآوردها–طراحي –برنامه سازي–پياده سازي و اجرا–پشتيباني –
,ارائه روشي جامع جهت توليد نرم افزار مبتني بر نيازهاي واقعي متقاضيان است , هدف در مهندسي نرم افزار• براي رسيدن به اين هدف بايد در اولين مراحل نيازها را شناخت و حاصل شناخت را در قالب مدل هائي گويا و
در طي چندين مرحله انجام مي شود. يا بالعکس و بدون ابهام مطرح نمود. شناخت نيازها بصورت کل به جزء وتا حد امکان تجربه بايد قادر به تحليل نيازها بوده و با تحليلگر خبره و , پس از يک شناخت اوليه از نيازمنديها •
کارها سريعتر ماژول شود و ,بتواند آنها را به قسمتهاي کوچکتري تجزيه کند که کار در عمل بصورت ما ژول با شناخت کامل اوليه اقدام به ارائه راه نرم افزاري را دقيقا" شناخت و جلو رود. با يد امکانات سخت افزاري و
حل نمود . تجزيه به پايان رسيد نوبت به طراحي ميرسد در اينجا است که بايد شماي کلي نرم بعد از اينکه مرحله تحليل و•
افزار را طرح کرد در اين مرحله تمام کار را بدون کد نويسي روي کاغذ مي آوريم .بعد از مرحله طراحي نوبت به پياده سازي نرم افزار مي رسد در اين مرحله نرم افزار مورد نظر را با زبا ني که •
مي خواهيم کدنويسي مي کنيم .در مرحله آخر هم بايد گروهي براي پشتيباني نرم افزار وجود داشته باشد تا هر زماني نرم افزار موجود با •
مشکلي روبرو شد آن تيم مشکل را حل کنند .
مدل چرخه حيات محصول
Product Life Cycle
Product
Proposal DesignInvestigation DevelopmentQuality Testing
Controlled Product Release
General Availability Obsolescent
ميباشد؟PLC نياز به آيا در محيط كار ميباشد؟PLC نياز به آيا در محيط كار
پيچيده باشد، نيار به يك روش مهندسي داريم كه بتوانيم اگر كاري بزرگ و مي PLCكار را بشكنيم و عالوه برآن بتوانيم كار را تكرار كنيم. با كمك
شرح عملكرد پروژه هاي نرم الگويي براي تعريف و توانيم چهارچوب و.افزاري داشته باشيم
پيچيده باشد، نيار به يك روش مهندسي داريم كه بتوانيم اگر كاري بزرگ و مي PLCكار را بشكنيم و عالوه برآن بتوانيم كار را تكرار كنيم. با كمك
شرح عملكرد پروژه هاي نرم الگويي براي تعريف و توانيم چهارچوب و.افزاري داشته باشيم
A Framework for specification of project softwareA Framework for specification of project software
ين است كه زمان و هزينه بصورت باالنس قرار گيرند. اهدف ين است كه زمان و هزينه بصورت باالنس قرار گيرند. اهدف
Product Life Cycle
بايد يكسري مرورهاي دوره أي برنامه PLCدر انجام فازهاي گفته مي شود. هر فاز Check-pointsين مرورها ابه ريزي شود.
ن فازآ مي باشد كه در انتهاي Check-pointsحداقل داراي يك ها كي وكجا chpين بستگي به شما دارد كه ساير امي باشد و
.باشندChp ها در واقع Critical Gateهستند كه موقعيتي را براي ها فاز
را بازنگري كرده و با Processمديريت فراهم مي آورند كه كل ها تصميم بگيرند كار را chpين اعات دريافتي از اتوجه به اطل
ند يا خير.هانجام د review و به هنگام مي شوددر هنگام تست نرم افزار چك
.شوندكارهاي انجام شده را مرور مي
Check Points
Investigate
Design
Development
Qualification
Controlled Product Release
General Availability
Project Requirements
Project Authorization
Engineering Release
Controlled Product Release
General Availability
General Phase LevelReview Criteria
General Check PointReview Criteria
Concepts/Ideas
Products
Check Points
Check-points ها gate:هايي هستند كه وضعيت پروژه را همراه با بودجه و زمانبندي مشخص مي
را مشخص مي كند كه چطور تكميل Deliverableوضعيتكند. FURP/SMIآمادگي محصول در مقابل شاخصهاي خواهند شد.
Check Points
مستندات
مستندات توليد شده در هر فاز بايد پاسخگوي مستندات توليد شده در هر فاز بايد پاسخگوي 1.1.نيازهاي فاز بعدي باشد و براي فاز بعد كامال قابل نيازهاي فاز بعدي باشد و براي فاز بعد كامال قابل
فهم باشد.فهم باشد..2.2PLCPLC مراحلي است كه با طي آن يك محصول در مراحلي است كه با طي آن يك محصول در
بهينه ترين زمان و هزينه با موفقيت توليد مي شود.بهينه ترين زمان و هزينه با موفقيت توليد مي شود..3.3PLCPLC نحوه عمل كليه گروها را مشخص و تعريف نحوه عمل كليه گروها را مشخص و تعريف
..مي نمايدمي نمايد.4.4PLCPLC كليه نيازها براي انجام موفق پروژه را در بر كليه نيازها براي انجام موفق پروژه را در بر
مي گيرد.مي گيرد..5.5PLCPLC ضمانتنامه اي است براي موفقيت پروژه ضمانتنامه اي است براي موفقيت پروژه ..
مستندات فازمسئله،جمع آوري اهداف انجام کار و تعريف
امکان سنجي،هانيازمنديها،تحليل نيازتحليلتجزيه
اوليه
تجزيه سيستم،ساختار برنامه طراحي
شناسايي ماجولهاي قابل استفاده مجدد برنامه نويسي
نوشتن كد،تغيير كد و ويرايش كداصالح
، تست هاسيستمزيرتست واحد، تست سيستم
تست
آموزش به كاربران،پشتيباني،سرويس دادن به مشتري
عمليات سيستم
نصب سيستمبارگذاري
بهبود سيستم،استراتژيهاي جايگزين پشتيباني و نگهداري
مستندات
مستندات خروجي هر مرحله
Proposal
Definition of the Problem
Alternative Solutions and Expected Benefits
Global Problem Analysis
Decide Future Worth of Software
Investigation
Product Specification Documents
customer communication
Determine exist resources
Determine financial capability of customer
Determine the technical requests
Planning
Global Problem Analysis
Required Resources
Required Costs
Required Delivery Dates
Software requirements Operating system
Suitable languages
Suitable DATA BASE
Risk analysis
Determine probable risks
Determine main factor in each probable risk
Determine possible ways to cover the probable risk
Engineering
Architectural Design Identify modules
Detailed Design
Design each modules
Determine duty for developers
Determine strategy for checking quality
Determine suitable method for training end users and administrator
Construction & release
Commented source code
Product testing
Module Testing also via Standards
Alternatives Implemented and Evaluated
Acceptance testing
Integration testing
System testing
مستندات خروجي هر مرحله
Customer evaluation
Documentation of non- equal technical requirement
Software
Hardware
Data base
Re – defining developer team ‘s duties
Final Maintenance
Determine Duty of maintenance team’s members
Determine the whole strategy in maintenance which follow by company
Documented changes
Regression test cases
Report of beta testing
Changes to User Requirements
Documentation of Changes in Data Format
Documentation of Emergency Fixes
Routine debugging
Hardware Changes
Documentation Improvements
Efficiency Improvements
ProposalInvestigate
Design
Development
QualificationControlled Product Release
General Availability
Enhancements/Fixes - Follow-on Products
Beta Release CP
New product Initiation
Project RequirementProject Authorization
Engineering ReleaseControlled Product Release
General
Availability
Check point Phase Reviews
Product Life Cycle
Time to Market Window
First Customer Ship
Time To Market
Proposal
PhaseInvestigation
Phase
Requirement
Design
Phase
Development
Phase
Develop
Integrate
Qualification
Phase
External
InternalControlled
Product
Release
Phase
General
Availability
Phase
Obsolescence
Phase
ConceptProject
Requirement
Check-pointProject
Authorization
Check-point
Engineering
Release
Check-point
Time to market Window
Beta
Release
Check-point
Controlled
Product
Release
Check-point
First
Customer
Ship
General
Availability
Check-point
Product Life Cycle Model
HIGH-QUALITY SOFTWARE IS POSSIBLE.
GIVE PRODUCTS TO CUSTOMERS EARLY.
DETERMINE THE PROBLEM BEFORE WRITING THE REQUIREMENS.EVALUATE DESIGN ALTERNATIVES.
USE AN APPROPRIATE PROCESS MODEL.
MAKE QUALITY NUMBER
USE DIFFERENT LANGUAGES FOR DIFFERENT PHASESMINIMIZE INTELECTUAL DISTANCE.
پانزده نکته اصلي در مهندسي نرم افزار
GET IT RIGHT BRFORE YOU MAKE IT FASTER.
INSPECT CODE.
GOOD MANAGEMENT IS MORE IMPTANT THAN GOOD TECHNOLOGY
PEOPLE ARE KEY TO SUCCESS.
FOLLOW WITH CARE.
PUT TECHNIQUE BEFORE TOOLS.
TAKE RESPONSIBILITY.
پانزده نکته اصلي در مهندسي نرم افزار
The more they see, The more they need.The more they see, The more they need.Plan to throw one away.Plan to throw one away.
Design for change.Design for change.
Design without documentation is not design.Design without documentation is not design.USE tools, but be realistic.USE tools, but be realistic.
Avoid tricks.Avoid tricks.
Encapsulate.Encapsulate.
Understand The Customer s Priories.Understand The Customer s Priories.,,
پانزده نکته مهندسي نرم افزار
Use mcCabe complexity measure.
Analyze causes for errors.
People and time are not interchangeable.
Use coupling and cohesion.
Expect excellence.
Realize that software's entropy increases.
,
Don t test your own software.,
پانزده نکته مهندسي نرم افزار
صنعت نرم افزار به علت پييچيدگي ذاتي دايمي و سريع 1.و عدم آشنايي خريداران و كارفرمايان با نكات فني از جمله صنايعي است كه نياز مبرم به استاندارد دارد. به
همين دليل استانداردهاي فراواني در زمينه نرم افزار از IEEEطرف مراجع مختلف تدوين شده است. موسسه
سه گونه استاندارد نرم افزاري را معرفي و تعريف هاي زير را براي آن ها ارائه كرده است:
(- الزاماتي كه براي توصيه Conventionsقراردادها )2.رويكردي يكنواهت و منظم با مساله فراهم آوردن
سازگاري در يك محصول نرم افزاري به كار برده شوند، به عبارت ديگر الگوها و اشكال يكنواخت براي مرتب
كردن داده ها است.
(-الزاماتي كه براي توصيه Practices)تجارب عملي 3.رويكردي يكنواهت و منظم با فرايند توليد نرم افزار به
كار برده مي شوند.
(- الزاماتي اجباري كه براي توصيه Standardsاستانداردها )4.رويكردي يكنواخت و منظم با فرايند توليد نرم افزار به
كار گرفته شده و به كار برده شدنشان بر ديگران تحميل مي شوند. بنابر اين قراردادها و تجارب عملي اجباري در
حقيقت استاندارد هستند.
استانداردها
تقسيم بندي استانداردها بر اساس نوع آن ها نوع استاندارد 4انجام مي پذيرد. بدين ترتيب
فرايند، فرآورده، حرفه اي و عاليم پديد مي آيد.
تقسيم بندي استانداردها بر اساس نوع آن ها نوع استاندارد 4انجام مي پذيرد. بدين ترتيب
فرايند، فرآورده، حرفه اي و عاليم پديد مي آيد.
تقسيم بندي استانداردها
استانداردها بندي (Standard Partition)تقسيم
فرآيند (Process Standards)استانداردهاي
(Method)روش
(Technique)فن گيري (Measurement)اندازه
فراورده Product)استانداردهايStandards )
اجزا يا (Component)جزو
(Requirements)الزامات نيازها -
ساخت (Design)طرح
اي حرفه ( Professional Standards)استانداردهايشغلي ( Occupational Titles)عناوين
اخالقي ( Code Of Ethics)مباني
مجوز ( Licensing)صدور
( Certification)گواهي
درسي ( Curriculum)مباحث
(Description)شرح
(Plan)برنامه
(Report)گزارش
عاليم Notation)استانداردهايStandards )
(Nomenclature)واژگان
(Representation)نمايش
(Language)زبان
تقسيم بندي استانداردها
(Job Functionعملكرد شغلي )(product Engineering Functionsعمل كردهاي مهندسي فرآورده )
(Requirement Analysisتحليل نيازها )
(Designطراحي )
(Codingكد كردن )
&Verificationصحت سنجي و اعتبار سنجي )Validation ) ( بازبيني ها و مميزيReviews And Audits )
( Product Analysisتحليل فرآورده )
( Testingآزمايش )
(Integrationمجتمع سازي )
(Conversionتبديل )
(Debuggingعيب يابي )
(Product Supportپشتيباني از فرآورده )
(Software Maintenanceنگه داشت نرم افزار )
Technical Managementعمل كردهاي مديريت فني )Functions ) ( مديريت فرآيندprocess Management)
(product Managementمديريت محصول )
(Resource Managementمديريت منابع )
Retirementمرحله بازنشستگي ) Phase) مرحله كاربرد و نگه
داشت (Operations & Maintenance Phase) ( Life Cycleدوره حيات )
مرحله نصب و بررسي (Installation & Checkout Phase)
(Manufacturing Phaseمرحله تكثير )
مرحله تاييد كيفيت(Qualification Phase)
(Test Phaseمرحله آزمايش )
Implementationمرحله ساخت ) Phase)
(Design Phaseمرحله طراحي )
(Requirements Phaseمرحله نيازها )(Concept Phaseمرحله مفهومي )
تقسيم بندي هاي مهندسي نرم افزار
Conclusions?Conclusions?
Pointers?Pointers?
Questions?Questions?
Suggestions?Suggestions?
The End
Dr. Nasser [email protected]