مهندسي نرم‌افزار چيست؟

Slides:



Advertisements
Similar presentations
Software Development Practices and Methodologies Svetlin Nakov Telerik Corporation
Advertisements

Figures-Chapter 2.
Building Software to Support an Agile Organization
National Association for Regulatory Administration September 13, 2011 IT’s NOT Like Building a House Mark Parker (800)
SDLC – Beyond the Waterfall
Research Methods.
Software development process improvement Ville Wettenhovi Master thesis presentation Supervisor:Professor Jukka Manner Instructor:M.Sc. Markus Aalto Date:23th.
The Software Process ECE 417/617: Elements of Software Engineering
CHAPTER TWO Object Oriented System Analysis and Design 1.
SOFTWARE ENGINEERING METHODOLOGY / MODEL
Business Driven Technology Unit 5
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
Software Life Cycles ECE 417/617: Elements of Software Engineering
Software Development. Sub Processes Analysis - Environment, Requirements, Use cases Design - Program, Module, Function Implementation Validation - Test,
The Challenge to Survive in Today’s Software Development Environment Evaluating the Agile Methodology.
In the name of God Toward Better Software Development: Software Engineering Principles By: Mohsen Sadighi Moshkenani Chapter 1.
Introduction to Agile Methodologies and Concepts Roy Osherove Principal, Team Agile Blog : ISerializable.com.
Classical vs. Agile Requirements Development Svetlin Nakov Telerik Software Academy academy.telerik.com Senior Technical Trainer
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 1 Method/Process = step-by-step description of the steps involved.
Software Development Life Cycle (SDLC)
Presented By: Anusha. Topics Introduction Terminology The Agile Manifesto Some Agile Methodologies Summary References.
Tsvetelina Kovacheva, Quality Manager Musala Soft June 19, 2007 Implementing Models and Standards for Software Development Benefits and Risks.
Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Object Oriented.
Software Development Process
Method comparison: for Situational Method Engineering Mohssen Ali.
Copyright 2011 Agile Foundation Training, Corporation Agile Foundation Training Presented by: Certified Scrum Professional Ken Ward
CPSC 371 John D. McGregor Session 22 Process. Specification and design problem solution specification implementation specification.
© 2006 ITT Educational Services Inc. SE350 System Analysis for Software Engineers: Unit 4 Slide 1 Chapter 1 The Systems Development Environment.
Agile Methodologies: Comparative Study and Future Direction 林佳蓁 資工 4B.
Classical vs. Agile Requirements Development Svetlin Nakov Telerik Software Academy academy.telerik.com Senior Technical Trainer
Software development process ธนวัฒน์ แซ่ เอียบ. The development process Process –set of rules which define how a development project. Methodology and.
June 05 David A. Gaitros Jean Muhammad Introduction to OOD and UML Dr. Jean Muhammad.
11 Software Architecture & Design Pattern InstructorProfessor Yu Tang (028)
The Confounding World of Process Methodologies By Thelma Hataria.
Software Development Overview CPSC 315 – Programming Studio Spring 2013.
1 Software Development By Rick Mercer with help from these sources: Rational Unified Process Computing Fundamentals with C++, Rick Mercer Designing Object.
________________________________________________________________________ Jonsson School of Engineering and Computer Science Dr. Mark C. Paulk 2015 ASEE.
1 12/5/2015ã 2007, Spencer Rugaber Software Engineering Software engineering is concerned with the production of large scale software artifacts by teams.
Component 4: Introduction to Information and Computer Science Unit 9: Components and Development of Large Scale Systems Lecture 2 This material was developed.
Teaching slides Chapter 2. Chapter 2 Software Engineering Methodologies Introduction Why a methodology? Agile methodologies Waterfall model Rational Unified.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Software Development Methodologies
Agile/XP Introduction
Software Development.
Teaching slides Chapter 2
CSC 355 – Newer Approaches to System Development Life Cycles & Processes, Spring 2017 March 2017 Dr. Dale Parson.
Chapter 1: Introduction to Systems Analysis and Design
Environment. Waterfall.
TIM 58 More on Chapter 1: Introduction to Systems Analysis and Design
Engineering Activities In Software Development
Two part course Software Engineering option only!
Introduction to Software Engineering
Teaching slides Chapter 1.
Abstract Machine for Software Process Models
مهندسي نرم‌افزار چيست؟
مدل‌هاي فرايند پيشنهادي
تاریخچه گروه مهندسی مواد دانشگاه سمنان
Lecture 2 Revision of Models of a Software Process
كارگاه مهندسي نرم افزار
Design Space of Development Methodologies
Basic SDLC Models SDLC  System Development Life Cycle.
امنیت در معماری سرویس گرا Service Oriented architecture
CSE432: Object-Oriented Software Engineering
Software Engineering Fundamentals
Computer Science & Engineering Electrical Engineering
Chapter 1: Introduction to Systems Analysis and Design
Chapter 1: Introduction to Systems Analysis and Design
Advanced Software Engineering Ch. 2 – SE as Engineering Science
System Development Methods
Presentation transcript:

مهندسي نرم‌افزار چيست؟ فصل نخست مهندسي نرم‌افزار چيست؟ به سوي توليد بهتر نرم‌افزار: اصول مهندسي نرم‌افزار نوشته: دكتر محسن صديقي مُشكناني www.sadighim.ir

فهرست مطالب افراد و مسئوليت‌هايشان در قبال نرم‌افزار نرم‌افزار خوب چرخه‌ي عمر و فرايند نرم‌افزار مهندسي نرم‌افزار چرا مهندسي نرم‌افزار؟ / اهميت مهندسي نرم‌افزار مدل نرم‌افزار چند مفهوم مرتبط

افراد و مسئوليت‌هايشان در قبال نرم‌افزار كارفرمايان: خريداران و يا تصميم‌گيرندگان كاربران متصديان: مسئولين فعال نگاه داشتن محصول در محيط اجرايي توليدكنندگان: دست‌اندكاران ايجاد نرم‌افزار نگهداران: مسئولين نگهداري از محصول توزيع‌كنندگان و فروشندگان: رابط بين توليدكنندگان و كارفرمايان

نرم‌افزار خوب از نظر كاربر از نظر كارفرما از نظر نگهدارنده از نظر توزيع‌كننده و فروشنده از نظر توليدكننده

چرخه‌ي عمر و فرايند نرم‌افزار تدوين مشخصات توليد تحليل طراحي پياده‌سازي آزمايش استقرار تكامل بازنشستگي

مراحل ساخت نرم افزار – process model مسئله مراحل ساخت نرم افزار – process model A مهندسی خواسته ها بررسی و تایید کاربر مستند سازی مدیریت کنترل پروژه گزارش تایید شده مشخصه خواسته ها پیاده سازی تحلیل خواسته ها سیستم آماده آزمون گزارش امکان سنجی بررسی و تایید کاربر آزمون و تست سیستمی که کار میکند گزارش تایید شده طراحی کلان استقرار سیستم گزارش طراحی کلان سیستم عملیاتی طراحی تفضیلی نگهداری مشخصه فنی سیستم اصلاح شده A

مهندسي نرم‌افزار بر اساس تعريف بر اساس اهداف بر اساس واژه‌ها ديدگاه نظام‌مند به توليد، كاركرد، نگهداري و بازنشستگي نرم‌افزار بر اساس اهداف توليد نرم‌افزار باكيفيت، به‌موقع و به‌قيمت بر اساس واژه‌ها نرم‌افزار مهندسي

چرا مهندسي نرم‌افزار؟/ اهميت مهندسي نرم‌افزار سابقه‌ي تاريخي نقش و اهميت رو به تزايد تقاضاي بيشتر كاهش قيمت و افزايش توان سخت‌افزار افزايش سرمايه‌گذاري ويژگي‌هاي نرم‌افزار گراني و دشواري توليد نرم‌افزار كمبود نيروي انساني متخصص

مدل نرم‌افزار تجسم و تجريدي از كل فرايند نرم‌افزار (فصل12) نقش مدل نرم‌افزار معرفي مراحل مختلف فرايند نرم‌افزار و چهارچوب فعاليت‌هاي هر مرحله معرفي محصولات هر مرحله معرفي معيار(هاي) گذر از يك مرحله به مرحله‌ي ديگر معرفي نظام علامت‌گذاري

مدل توليد سريع تأكيد روي فرايند فزاينده و فوق‌العاده سريع

مدل بلوغ قابليت جدول1-1: سطح بلوغ سطح نام فرايند 1 بدوي (initial) پراكنده. 2 قابل تكرار (repeatable) موفقيت‌هاي توليد قابل تكرار هستند. 3 تعريف شده (defined) به خوبي مشخص و درك شده؛پ تعريف شده در رويه‌هاي استاندارد؛ با ابزارها و روش‌ها؛ تنها كميت قابل پيش‌بيني است. 4 مديريت شده به لحاظ كميت (quantitatively managed) استفاده از اندازه‌گيري‌هاي دقيق؛ زير فرايندهاي كنترل شده؛ كيفيت قابل پيش‌بيني است. 5 بهينه شونده (optimizing) رشد مداوم؛ رشد محصول و رشد فنّاوري؛ هم فرايندهاي تعريف شده و هم مجموعه استانداردهاي سازماني؛ هردو هدفِ فعاليت‌هاي رشدِ قابل اندازه‌گيري هستند.

چند مفهوم مرتبط تكرار و تكامل

چند مفهوم مرتبط تداوم فعاليت‌ها

روش، روش‌شناسي و رويكرد روش: دستورالعمل‌ها و دنباله‌اي از گام‌ها روش‌شناسي: مجموعه‌اي مدون از شيوه‌ها و راه و رسم پيشنهادي و گاهي همراه با مواد و برنامه‌ي آموزشي رسمي، كارگاه و ابزار است (جدول1-2) رويكرد: انتخاب مدل و روش مورد نظر از مجموعه مدل‌ها و روش‌ها و يا حتي خارج از آن‌ها توسط توليدكننده‌ي نرم‌افزار

جدول1-2: مثالهايي از روش‌شناسي مهندسي نرم‌افزار Agile Unified Process (AUP) Constructionist design methodology (CDM) Dynamic Systems Development Method Enterprise Unified Process (EUP) Extreme Programming (XP) since 1999 Flowcharting ICONIX Process (use case driven object modeling with UML) Information Engineering (IE/IEM) Jackson Structured Programming Metaprogramming, subject of Charles Simonyi's doctoral thesis MPMM Object Oriented Design using Prototype Methodology (OODPM) since 1994 Open Unified Process Praxis Rational Unified Process (RUP) Scrum (development) Structured programming since 1969 Structure System Analysis and Design Method (SSADM) System Development Methodology Top-down programming Virtual finite state machine (VFSM) since 1990's Waterfall model