Download presentation
Published byLeo Hodge Modified over 8 years ago
1
بشرا رجائی boshra.rajaei@stu-mail.um.ac.ir bo.rajaei@gmail.com
مبانی مهندسی نرم افزار بشرا رجائی
2
نرم افزار کدهایی که جهت برآورده شدن هدف خاص نوشته شده اند داده ها
مجموعه تمام مستندات دسته بندی محصولات نرم افزاری نرم افزارهای general نرم افزارهای customized
3
مهندسی نرم افزار The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software. An engineering discipline that is concerned with all aspects of software production. The establishment and use of sound engineering principles in order to economically obtain software that is reliable and works efficiently on real machines.
4
معیارهای کیفیت نرم افزار
Correctness – the software does what is specified to do Reliability – the software operates under all possible conditions – it doesn’t fail Efficiency – the software uses the most efficient solution to any problem specified for it to solve Integrity – the software gives the same answer to the same question, regardless of source of question Usability – the software is easy to use Maintainability – the software can be maintained Testability – the specification and software must be such that there is a given test that can be run to check if the software is performing to specification. Flexibility – the software must be written in such a way that change can be accommodated without major rewrites Portability – it should be possible to run the software on any operating system that supports the language in which it is written. Interoperability – it should be able to interface to other software Reusability – it should be packaged in such a way that it can be used as a component in another system Functionality-it should do what it is supposed to do and only that.
5
نرخ شکست
6
سه عنصر کلیدی در مهندسی نرم افزار
methods technical ‘how to’s for building software project management, requirement analysis, design of data structures and algorithm procedure, coding, testing and maintenance tools provide support procedures sequence in which methods are applied documents / deliverables produced controls and checks ensure quality milestones, to manage progress
7
مدلهای نرم افزاری یا متدولوژیها
Software engineering process is a set of steps that encompasses methods, tools and procedures Classic Life Cycle or Waterfall Model a software engineering process a systematic and sequential approach to software development oldest and most widely used software process model
8
Software Engineering tools methods process model
9
چرخه حیات divides the development of a software system into stages or phases, for each phase the life cycle specifies activities involved in each phase sequence in which the activities are ordered deliverables produced for the phase At the end of each phase a phase review meeting is scheduled to examine the deliverables from the phase to decide whether or not to proceed to the next phase
10
فازهای چرخه حیات Planning Feasibility Study Analysis Design
Code and Unit test System Testing Installation & Maintenance
11
برنامه ریزی و امکان سنجی
Planning Problem definition defines the problem area produces written statement of current problem and objectives of system Feasibility Study investigates whether a practical solution to the problem exists produces a feasibility study report
12
امکان سنجی امکان سنجی تکنیکی: امکان سنجی عملیاتی: امکان سنجی اقتصادی:
آیا تکنولوژی مورد نیاز برای سیستم پیشنهادی مهیاست؟ آیا نیاز به ارتقا سیستمهای فعلی وجود دارد؟ آیا تخصص لازم وجود دارد؟ امکان سنجی عملیاتی: کارایی تکنیکی: آیا سیستم می تواند اطلاعات مورد نیاز کاربران را مهیا کند؟ پذیرش در سازمان: آیا تغییر ساختار توسط کاربران پذیرفته می شود؟ امکان سنجی اقتصادی: آیا سرمایه گذاری مورد نیاز برای پیاده سازی سیستم، بازیابی می شود؟ تحلیل سود و هزینه
13
تحلیل و طراحی Analysis (What do we do?) Design (How do we do it?)
Fact finding investigate business process and the current system modelling the current and required systems deliverables - requirements specification logical models of the required system Design (How do we do it?) high level system design detailed design of components (i.e.. algorithms)
14
طراحی
15
کدنویسی و تست Code System Test
programming each component of the system Unit test - independent testing of each component producing user documentation System Test integrating all components and testing them together testing to ensure that the system meets its requirements
16
مراحل تست Component or unit testing System testing Acceptance testing
Individual components are tested independently; Components may be functions or objects or coherent groupings of these entities. System testing Testing of the system as a whole. Testing of emergent properties is particularly important. Acceptance testing Testing with customer data to check that the system meets the customer’s needs.
17
نصب و نگهداری Installation Maintenance
installing the system in the ‘live’ environment training the users Maintenance changing the live system correcting defects reported by the users implementing enhancements requested by the users mini life cycle in itself
18
فعالیت های پشتیبان Phases in the Life Cycle are complimented by a number of support activities Project Management Quality Assurance Configuration Management
19
مدیریت پروژه co-ordination and control of the people involved in the development includes budgeting scheduling monitoring progress reporting status corrective action
20
تضمین کیفیت ensuring, verifying and maintaining the quality of the system to be delivered includes performing reviews testing
21
مدیریت پیکربندی management of the documentation and code that is produced include procedure for storage retrieval control of change
22
مطالعه برخی مدلهای نرم افزاری
بشرا رجائی
23
مدل آبشاری
24
ویژگیها و مشکلات مدل آبشاری
مستندگرا و مدیریت آسان مناسب جهت محیطهایی که خواسته ها در طول زمان ثابت هستند و همچنین به خوبی درک شده اند مشکلات دیر تشخیص دادن خطاها بخصوص خطاهای منطقی تغییرات بسیار هزینه بر هستند ریسک بالا
25
مدل توسعه مرحله ای تجزيه و تحليل و تعريف خواسته ها توسعه يك مرحله
طراحي مفهومي (ساختار) سيستم كامل نيست تاييد مرحله ادغام مرحله در سيستم انتساب نيازمنديها به مراحل تاييد سيستم سيستم نهايي
26
مزایا و مشکلات موجود در مدل توسعه مرحله ای
جهت محیط هایی که خواسته ها بطور کامل درک نشده اند و یا شرایطی که اولویت نصب برخی قسمتها بالاتر است ریسک کمتر قسمت های مهمتر بیشتر تست شده و احتمال خرابی آنها در آینده کمتر است. مشکلات تقسیم بندی سیستم بین مراحل مجزا با عملکرد مشخص
27
مدل توسعه تکاملی مفاهيم اوليه طراحي وساخت نمونه اوليه
بهبود نمونه تا رسيدن به وضعيت قابل قبول تكميل و تحويل نمونه
28
ویژگیها و مشکلات مدل توسعه تکاملی
مناسب جهت سیستمها و تیمهای کوچک و متوسط شناخت خواسته های کاربر می تواند به مرور و با آشنایی بیشتر کاربر با نرم افزار صورت گیرد. تحویل سریع به دلیل حذف مراحل تحلیل و مستندسازی مشکلات فرآیند قابل مشاهده نبوده و مدیریت آن پیچیده است. سیستمها ساخت یافته نبوده و طول عمر کوتاهی خواهند داشت.
29
مدل مبتنی بر قطعه
30
مزایا و معایب مدل مبتنی بر قطعه
توسعه نرم افزار با هزینه کم و زمان تحویل کوتاه ریسک کم (قطعات قبلاً تست شده اند) معایب تعدیل خواسته ها دسترسی نداشتن به کد برخی قطعات
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.