ورود به حساب

نام کاربری گذرواژه

گذرواژه را فراموش کردید؟ کلیک کنید

حساب کاربری ندارید؟ ساخت حساب

ساخت حساب کاربری

نام نام کاربری ایمیل شماره موبایل گذرواژه

برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید


09117307688
09117179751

در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید

دسترسی نامحدود

برای کاربرانی که ثبت نام کرده اند

ضمانت بازگشت وجه

درصورت عدم همخوانی توضیحات با کتاب

پشتیبانی

از ساعت 7 صبح تا 10 شب

دانلود کتاب Fundamentals of software engineering

دانلود کتاب مبانی مهندسی نرم افزار

Fundamentals of software engineering

مشخصات کتاب

Fundamentals of software engineering

ویرایش: Fifth edition. 
نویسندگان:   
سری: Eastern Economy Edition 
ISBN (شابک) : 9789388028028, 9388028031 
ناشر: PHI Learning Private Limited 
سال نشر: 2018 
تعداد صفحات: 614 
زبان: English 
فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود) 
حجم فایل: 72 مگابایت 

قیمت کتاب (تومان) : 42,000



ثبت امتیاز به این کتاب

میانگین امتیاز به این کتاب :
       تعداد امتیاز دهندگان : 13


در صورت تبدیل فایل کتاب Fundamentals of software engineering به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.

توجه داشته باشید کتاب مبانی مهندسی نرم افزار نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.


توضیحاتی درمورد کتاب به خارجی



فهرست مطالب

Title
Fundamentals of Software Engineering, Fifth Edition
Copyright
Dedication
CONTENTS
List of Figures
Preface
Preface to the First Edition
1. Introduction
	1.1 Evolution—From an Art Form to an Engineering Discipline
	1.1.1 Evolution of an Art into an Engineering Discipline
	1.1.2 Evolution Pattern for Engineering Disciplines
	1.1.3 A Solution to the Software Crisis
	1.2 Software Development Projects
	1.2.1 Programs versus Products
	1.2.2 Types of Software Development Projects
	1.2.3 Software Projects Being Undertaken by Indian Companies
	1.3 Exploratory Style of Software Development
	1.3.1 Perceived Problem Complexity: An Interpretation Based on Human
 Cognition Mechanism
	1.3.2 Principles Deployed by Software Engineering to Overcome Human
 Cognitive Limitations
	1.4 Emergence of Software Engineering
	1.4.1 Early Computer Programming
	1.4.2 High-level Language Programming
	1.4.3 Control Flow-based Design
	1.4.4 Data Structure-oriented Design
	1.4.5 Data Flow-oriented Design
	1.4.6 Object-oriented Design
	1.4.7 What Next
	1.4.8 Other Developments
	1.5 Notable Changes in Software Development Practices
	1.6 Computer Systems Engineering
	Summary
	Exercises
2. Software Life Cycle Models
	2.1 A Few Basic Concepts
	2.2 Waterfall Model and Its Extensions
	2.2.1 Classical Waterfall Model
	2.2.2 Iterative Waterfall Model
	2.2.3 V-Model
	2.2.4 Prototyping Model
	2.2.5 Incremental Development Model
	2.2.6 Evolutionary Model
	2.3 Rapid Application Development (RAD
	2.3.1 Working of RAD
	2.3.2 Applicability of RAD Model
	2.3.3 Comparison of RAD with Other Models
	2.4 Agile Development Models
	2.4.1 Essential Idea behind Agile Models
	2.4.2 Agile versus Other Models
	2.4.3 Extreme Programming Model
	2.4.4 Scrum
	2.4.5 Lean Software Development
	2.5 Spiral Model
	2.5.1 Phases of the Spiral Model
	2.6 A Comparison of Different Life Cycle Models
	2.6.1 Selecting an Appropriate Life Cycle Model for a Project
	Summary
	Exercises
3. Software Project Management
	3.1 Software Project Management Complexities
	3.2 Responsibilities of a Software Project Manager
	3.2.1 Job Responsibilities for Managing Software Projects
	3.2.2 Skills Necessary for Managing Software Projects
	3.3 Project Planning
	3.3.1 Sliding Window Planning
	3.3.2 The SPMP Document of Project Planning
	3.4 Metrics for Project Size Estimation
	3.4.1 Lines of Code (LOC
	3.4.2 Function Point (FP) Metric
	3.5 Project Estimation Techniques
	3.5.1 Empirical Estimation Techniques
	3.5.2 Heuristic Techniques
	3.5.3 Analytical Estimation Techniques
	3.6 Empirical Estimation Techniques
	3.6.1 Expert Judgement
	3.6.2 Delphi Cost Estimation
	3.7 COCOMO—A Heuristic Estimation Technique
	3.7.1 Basic COCOMO Model
	3.7.2 Intermediate COCOMO
	3.7.3 Complete COCOMO
	3.7.4 COCOMO 2
	3.8 Halstead’s Software Science—An Analytical Technique
	3.8.1 Length and Vocabulary
	3.8.2 Program Volume
	3.8.3 Potential Minimum Volume
	3.8.4 Effort and Time
	3.8.5 Length Estimation
	3.9 Staffing Level Estimation
	3.9.1 Norden’s Work
	3.9.2 Putnam’s Work
	3.9.3 Jensen’s Model
	3.10 Scheduling
	3.10.1 Work Breakdown Structure
	3.10.2 Activity Networks
	3.10.3 Critical Path Method (CPM
	3.10.4 PERT Charts
	3.10.5 Gantt Charts
	3.11 Organisation and Team Structures
	3.11.1 Organisation Structure
	3.11.2 Team Structure
	3.12 Staffing
	3.13 Risk Management
	3.13.1 Risk Management Approaches
	3.13.2 Risk Identification
	3.13.3 Risk Assessment
	3.13.4 Risk Mitigation
	3.13.5 Boehm’s Top 10 Risks and Counter Measures
	3.14 Software Configuration Management
	3.14.1 Necessity of Software Configuration Management
	3.14.2 Configuration Management Activities
	Summary
	Exercises
4. Requirements Analysis and Specification
	4.1 Requirements Gathering and Analysis
	4.1.1 Requirements Gathering
	4.1.2 Requirements Analysis
	4.2 Software Requirements Specification (SRS
	4.2.1 Users of SRS Document
	4.2.2 Why Spend Time and Resource to Develop an SRS Document
	4.2.3 Characteristics of a Good SRS Document
	4.2.4 Attributes of Bad SRS Documents
	4.2.5 Important Categories of Customer Requirements
	4.2.6 Functional Requirements
	4.2.7 How to Identify the Functional Requirements
	4.2.8 How to Document the Functional Requirements
	4.2.9 Traceability
	4.2.10 Organisation of the SRS Document
	4.2.11 Techniques for Representing Complex Logic
	4.3 Formal System Specification
	4.3.1 What is a Formal Technique
	4.3.2 Operational Semantics
	4.4 Axiomatic Specification
	4.5 Algebraic Specification
	4.5.1 Auxiliary Functions
	4.5.2 Structured Specification
	4.6 Executable Specification And 4GL
	Summary
	Exercises
5. Software Design
	5.1 Overview of the Design Process
	5.1.1 Outcome of the Design Process
	5.1.2 Classification of Design Activities
	5.1.3 Classification of Design Methodologies
	5.2 How to Characterise a Good Software Design
	5.2.1 Understandability of a Design: A Major Concern
	5.3 Cohesion and Coupling
	5.3.1 Classification of Cohesiveness
	5.3.2 Classification of Coupling
	5.4 Layered Arrangement of Modules
	5.5 Approaches to Software Design
	5.5.1 Function-oriented Design
	5.5.2 Object-oriented Design
	Summary
	Exercises
6. Function-Oriented Software Design
	6.1 Overview of SA/SD Methodology
	6.2 Structured Analysis
	6.2.1 Data Flow Diagrams (DFDs
	6.3 Developing the DFD Model of a System
	6.3.1 Context Diagram
	6.3.2 Level 1 DFD
	6.3.3 Extending DFD Technique to make it Applicable to Real-time
 Systems
	6.4 Structured Design
	6.4.1 Transformation of a DFD Model into Structure Chart
	6.5 Detailed Design
	6.6 Design Review
	Summary
	Exercises
7. Object Modelling Using UML
	7.1 Basic Object-Orientation Concepts
	7.1.1 Basic Concepts
	7.1.2 Class Relationships
	7.1.3 How to Identify Class Relationships
	7.1.4 Other Key Concepts
	7.1.5 Related Technical Terms
	7.1.6 Advantages and Disadvantages of OOD
	7.2 Unified Modelling Language (UML
	7.2.1 Origin of UML
	7.2.2 Evolution of UML
	7.3 UML Diagrams
	7.4 Use Case Model
	7.4.1 Representation of Use Cases
	7.4.2 Why Develop the Use Case Diagram
	7.4.3 How to Identify the Use Cases of a System
	7.4.4 Essential Use Case versus Real Use Case
	7.4.5 Factoring of Commonality among Use Cases
	7.4.6 Use Case Packaging
	7.5 Class Diagrams
	7.6 Interaction Diagrams
	7.7 Activity Diagram
	7.8 State Chart Diagram
	7.9 Postscript
	7.9.1 Package, Component, and Deployment Diagrams
	7.9.2 UML 2.0
	Summary
	Exercises
8. Object-Oriented Software Development
	8.1 Introduction to Patterns
	8.1.1 Basic Pattern Concepts
	8.1.2 Types of Patterns
	8.1.3 More Pattern Concepts
	8.2 Some Common Design Patterns
	8.3 An Object-Oriented Analysis and Design (OOAD) Methodology
	8.3.1 Unified Process
	8.3.2 Overview of the OOAD Methodology
	8.3.3 Use Case Model Development
	8.3.4 Domain Modelling
	8.3.5 Identification of Entity Objects
	8.3.6 Booch’s Object Identification Method
	8.3.7 Interaction Modelling
	8.3.8 Class-Responsibility-Collaborator (CRC) Cards
	8.4 Applications of the Analysis and Design Process
	8.5 OOD Goodness Criteria
	Summary
	Exercises
9. User Interface Design
	9.1 Characteristics of a Good User Interface
	9.2 Basic Concepts
	9.2.1 User Guidance and On-line Help
	9.2.2 Mode-based versus Modeless Interface
	9.2.3 Graphical User Interface (GUI) versus Text-based User Interface
	9.3 Types of User Interfaces
	9.3.1 Command Language-based Interface
	9.3.2 Menu-based Interface
	9.3.3 Direct Manipulation Interfaces
	9.4 Fundamentals of Component-based GUI Development
	9.4.1 Window System
	9.4.2 Types of Widgets
	9.4.3 An Overview of X-Window/MOTIF
	9.4.4 X Architecture
	9.4.5 Size Measurement of a Component-based GUI
	9.5 A User Interface Design Methodology
	9.5.1 Implications of Human Cognition Capabilities on User Interface
 Design
	9.5.2 A GUI Design Methodology
	Summary
	Exercises
10. Coding and Testing
	10.1 Coding
	10.1.1 Coding Standards and Guidelines
	10.2 Code Review
	10.2.1 Code Walkthrough
	10.2.2 Code Inspection
	10.2.3 Cleanroom Technique
	10.3 Software Documentation
	10.3.1 Internal Documentation
	10.3.2 External Documentation
	10.4 Testing
	10.4.1 Basic Concepts and Terminologies
	10.4.2 Testing Activities
	10.4.3 Why Design Test Cases
	10.4.4 Testing in the Large versus Testing in the Small
	10.4.5 Tests as Bug Filters
	10.5 Unit Testing
	10.6 Black-Box Testing
	10.6.1 Equivalence Class Partitioning
	10.6.2 Boundary Value Analysis
	10.6.3 Summary of the Black-box Test Suite Design Approach
	10.7 White-Box Testing
	10.7.1 Basic Concepts
	10.7.2 Statement Coverage
	10.7.3 Branch Coverage
	10.7.4 Condition Coverage
	10.7.5 Condition and Decision Coverage
	10.7.6 Multiple Condition Coverage
	10.7.7 Multiple Condition/Decision Coverage (MC/DC
	10.7.8 Path Coverage
	10.7.9 McCabe’s Cyclomatic Complexity Metric
	10.7.10 Data Flow-based Testing
	10.7.11 Mutation Testing
	10.8 Debugging
	10.8.1 Debugging Approaches
	10.8.2 Debugging Guidelines
	10.9 Program Analysis Tools
	10.9.1 Static Analysis Tools
	10.9.2 Dynamic Analysis Tools
	10.10 Integration Testing
	10.10.1 Phased versus Incremental Integration Testing
	10.11 Testing Object-Oriented Programs
	10.11.1 What is a Suitable Unit for Testing Object-oriented Programs
	10.11.2 Do Various Object-orientation Features Make Testing Easy
	10.11.3 Why are Traditional Techniques Considered Not Satisfactory for
 Testing Object-oriented Programs
	10.11.4 Grey-Box Testing of Object-oriented Programs
	10.11.5 Integration Testing of Object-oriented Programs
	10.12 System Testing
	10.12.1 Smoke Testing
	10.12.2 Performance Testing
	10.12.3 Error Seeding
	10.13 Some General Issues Associated with Testing
	Summary
	Exercises
11. Software Reliability and Quality Management
	11.1 Software Reliability
	11.1.1 Hardware versus Software Reliability
	11.1.2 Reliability Metrics of Software Products
	11.1.3 Reliability Growth Modelling
	11.2 Statistical Testing
	11.2.1 Steps in Statistical Testing
	11.3 Software Quality
	11.3.1 Software Quality Models
	11.4 Software Quality Management System
	11.4.1 Evolution of Quality Systems
	11.4.2 Product Metrics versus Process Metrics
	11.5 ISO 9000
	11.5.1 What is ISO 9000 Certification
	11.5.2 ISO 9000 for Software Industry
	11.5.3 Why Get ISO 9000 Certification
	11.5.4 How to Get ISO 9000 Certification
	11.5.5 Summary of ISO 9001 Requirements
	11.5.6 Salient Features of ISO 9001 Requirements
	11.5.7 ISO 9000-2000
	11.5.8 Shortcomings of ISO 9000 Certification
	11.6 SEI Capability Maturity Model
	11.6.1 Comparison between ISO 9000 Certification and SEI/CMM
	11.6.2 Is SEI CMM Applicable to Small Organisations
	11.6.3 Capability Maturity Model Integration (CMMI
	11.7 Few Other Important Quality Standards
	11.8 Six Sigma
	Summary
	Exercises
12. Computer Aided Software Engineering
	12.1 CASE and Its Scope
	12.2 CASE Environment
	12.2.1 Benefits of CASE
	12.3 CASE Support in Software Life Cycle
	12.3.1 Prototyping Support
	12.3.2 Structured Analysis and Design
	12.3.3 Code Generation
	12.3.4 Test Case Generator
	12.4 Other Characteristics of CASE Tools
	12.4.1 Hardware and Environmental Requirements
	12.4.2 Documentation Support
	12.4.3 Project Management
	12.4.4 External Interface
	12.4.5 Reverse Engineering Support
	12.4.6 Data Dictionary Interface
	12.4.7 Tutorial and Help
	12.5 Towards Second Generation CASE Tool
	12.6 Architecture of a CASE Environment
	Summary
	Exercises
13. Software Maintenance
	13.1 Characteristics of Software Maintenance
	13.1.1 Characteristics of Software Evolution
	13.1.2 Special Problems Associated with Software Maintenance
	13.2 Software Reverse Engineering
	13.3 Software Maintenance Process Models
	13.4 Estimation of Maintenance Cost
	Summary
	Exercises
14. Software Reuse
	14.1 What can be Reused
	14.2 Why Almost no Reuse So Far
	14.3 Basic Issues in any Reuse Program
	14.4 A Reuse Approach
	14.4.1 Domain Analysis
	14.4.2 Component Classification
	14.4.3 Searching
	14.4.4 Repository Maintenance
	14.4.5 Reuse without Modifications
	14.5 Reuse at Organisation Level
	14.5.1 Current State of Reuse
	Summary
	Exercises
15. Emerging Trends
	15.1 Client-Server Software
	15.2 Client-Server Architectures
	15.3 CORBA
	15.3.1 CORBA Reference Model
	15.3.2 CORBA ORB Architecture
	15.3.3 CORBA Implementations
	15.3.4 Software Development in CORBA
	15.4 COM/DCOM
	15.4.1 COM
	15.4.2 DCOM
	15.5 Service-Oriented Architecture (SOA
	15.5.1 Service-oriented Architecture (SOA): Nitty-Gritty
	15.6 Software as a Service (SaaS
	Summary
	Exercises
References
Index
Back cover




نظرات کاربران