چه کسانی این کتاب را می‌خوانند

دانشجوعلاقه‌مند یادگیری
کتابخوان حرفه‌ایلذت مطالعه
نویسندهالهام‌گیری

Concise Guide to Software Engineering : From Fundamentals to Application Methods

Gerard O'Regan

قیمت نهایی

۴۴٬۰۰۰ تومان۴۹٬۰۰۰ تومان۱۰٪ تخفیف
  • تخفیف زمان‌دار−۵٬۰۰۰ تومان

۵٬۰۰۰ تومان صرفه‌جویی نسبت به قیمت اصلی

نسخه اصلی و اورجینال

بلافاصله پس از خرید، فایل کتاب روی دستگاه شما آمادهٔ دانلود است.

تحویل فوری
پرداخت امن
ضمانت فایل
پشتیبانی

مشخصات کتاب

نویسنده
Gerard O'Regan
سال انتشار
۲۰۲۲
فرمت
PDF
زبان
انگلیسی
حجم فایل
۱۳ مگابایت
شابک
9783031078156، 9783031078163، 3031078152، 3031078160

دربارهٔ کتاب

This essential textbook presents a concise introduction to the fundamental principles of software engineering, together with practical guidance on how to apply the theory in a real-world, industrial environment. The wide-ranging coverage encompasses all areas of software design, management, and quality. Topics and features: Presents a broad overview of software engineering, including software lifecycles and phases in software development, and project management for software engineering Examines the areas of requirements engineering, software configuration management, software inspections, software testing, software quality assurance, and process quality Covers topics on software metrics and problem solving, software reliability and dependability, and software design and development, including Agile approaches Explains formal methods, a set of mathematical techniques to specify and derive a program from its specification, introducing the Z specification language Discusses software process improvement, describing the CMMI model, and introduces UML, a visual modelling language for software systems Reviews a range of tools to support various activities in software engineering, and offers advice on the selection and management of a software supplier Describes such innovations in the field of software as distributed systems, service-oriented architecture, software as a service, cloud computing, and embedded systems Includes key learning topics, summaries and review questions in each chapter, together with a useful glossary This practical and easy-to-follow textbook/reference is ideal for computer science students seeking to learn how to build high quality and reliable software on time and on budget. The text also serves as a self-study primer for software engineers, quality professionals, and software managers. Preface Overview Organization and Features Audience Acknowledgments Contents List of Figures List of Tables 1 Fundamentals of Software Engineering Abstract 1.1 Introduction 1.2 What is Software Engineering? 1.3 Challenges in Software Engineering 1.4 Software Processes and Lifecycles 1.4.1 Waterfall Lifecycle 1.4.2 Spiral Lifecycles 1.4.3 Rational Unified Process 1.4.4 Agile Development 1.4.5 Continuous Software Development 1.5 Activities in Software Development 1.5.1 Requirements Definition 1.5.2 Design 1.5.3 Implementation 1.5.4 Software Testing 1.5.5 Support and Maintenance 1.6 Software Inspections 1.7 Software Project Management 1.8 CMMI Maturity Model 1.9 Formal Methods 1.10 Review Questions 1.11 Summary References 2 Professional Responsibility of Software Engineers Abstract 2.1 Introduction 2.2 What is a Code of Ethics? 2.2.1 Role of a Whistle Blower 2.3 IEEE Code of Ethics 2.4 British Computer Society Code of Conduct 2.5 ACM Code of Professional Conduct and Ethics 2.6 Precautionary Principle 2.7 Review Questions 2.8 Summary 3 Ethical Software Engineering Abstract 3.1 Introduction 3.2 Safety and Ethics 3.2.1 Therac-25 Disaster 3.2.2 Space Shuttle Challenger Disaster 3.3 Ethical Project Management 3.4 Ethical Software Design and Development 3.4.1 Volkswagen Emissions Scandal 3.5 Ethical Software Testing 3.6 Review Questions 3.7 Summary 4 Software Project Management Abstract 4.1 Introduction 4.2 Project Start Up and Initiation 4.3 Estimation 4.3.1 Estimation Techniques 4.3.2 Work Breakdown Structure 4.4 Project Planning and Scheduling 4.5 Risk Management 4.6 People Management in Projects 4.7 Quality Management in Projects 4.8 Project Monitoring and Control 4.9 Managing Issues and Change Requests 4.10 Remote Project Management 4.11 Outsourcing 4.12 Project Board and Governance 4.13 Project Reporting 4.14 Project Closure 4.15 Prince 2 Methodology 4.16 Project Manager Professional 4.17 Project Management Office 4.18 Program Management 4.19 Project Portfolio Management 4.20 Project Management in the Agile World 4.21 Review Questions 4.22 Summary References 5 Requirements Engineering Abstract 5.1 Introduction 5.2 Requirements Process 5.2.1 Requirements Elicitation and Specification 5.2.2 Requirements Analysis 5.2.3 Requirements Verification and Validation 5.2.4 Requirements Management 5.2.5 Requirements Traceability 5.3 System Modelling 5.4 Requirements Definition in the Agile World 5.5 Review Questions 5.6 Summary References 6 Software Design and Development Abstract 6.1 Introduction 6.2 Architecture Design 6.3 Low-Level Design and Development 6.3.1 Function-Oriented Design 6.3.2 Object-Oriented Design 6.3.3 User-Interface Design 6.3.4 Open-Source Development 6.3.5 Customized-off-the-Shelf Software 6.3.6 Software Reuse 6.3.7 Design Patterns 6.3.8 Object-Oriented Programming 6.4 Software Maintenance and Evolution 6.5 Software Design and Development in the Agile World 6.6 Review Questions 6.7 Summary References 7 Software Inspections Abstract 7.1 Introduction 7.2 Economic Benefits of Software Inspections 7.3 Informal Reviews 7.4 Structured Walkthrough 7.5 Semi-formal Review Meeting 7.6 Fagan Inspections 7.6.1 Fagan Inspection Guidelines 7.6.2 Inspectors and Roles 7.6.3 Inspection Entry Criteria 7.6.4 Preparation 7.6.5 The Inspection Meeting 7.6.6 Inspection Exit Criteria 7.6.7 Issue Severity 7.6.8 Defect Type 7.7 Automated Software Inspections 7.8 Review Questions 7.9 Summary References 8 Software Testing Abstract 8.1 Introduction 8.2 Test Process 8.3 Test Planning 8.4 Test Case Design and Definition 8.5 Test Execution 8.6 Test Reporting and Project Sign-Off 8.7 Testing and Quality Improvement 8.8 Traceability of Requirements 8.9 Test Tools 8.10 E-Commerce Testing 8.11 Testing in the Agile World 8.12 Review Questions 8.13 Summary 9 Ethics and Privacy Abstract 9.1 Introduction 9.2 Business Ethics 9.3 What is Computer Ethics? 9.3.1 Ethical Problems in Computing 9.3.2 The Ethical Software Engineer 9.3.3 Ethics in Data Science 9.4 Privacy 9.4.1 Social Media 9.4.1.1 Data Analytics for Social Media 9.4.2 Internet of Things 9.4.3 AI and Facial Recognition 9.4.4 Privacy and the Law 9.4.5 EU GDPR Privacy Law 9.5 Review Questions 9.6 Summary References 10 Software Metrics and Problem Solving Abstract 10.1 Introduction 10.2 The Goal Question Metric Paradigm 10.3 The Balanced Scorecard 10.4 Metrics for an Organization 10.4.1 Customer Satisfaction Metrics 10.4.2 Process Improvement Metrics 10.4.3 Human Resources and Training Metrics 10.4.4 Project Management Metrics 10.4.5 Development Quality Metrics 10.4.6 Quality Audit Metrics 10.4.7 Customer Care Metrics 10.4.8 Miscellaneous Metrics 10.5 Implementing a Metrics Program 10.5.1 Data Gathering for Metrics 10.6 Problem-Solving Techniques 10.6.1 Fishbone Diagram 10.6.2 Histograms 10.6.3 Pareto Chart 10.6.4 Trend Graphs 10.6.5 Scatter Graphs 10.6.6 Metrics and Statistical Process Control 10.7 Review Questions 10.8 Summary References 11 Supplier Selection and Management Abstract 11.1 Introduction 11.2 Planning and Requirements 11.3 Identifying Suppliers 11.4 Prepare and Issue RFP 11.5 Evaluate Proposals and Select Supplier 11.6 Formal Agreement 11.7 Managing the Supplier 11.8 Acceptance of Software 11.9 Rollout and Customer Support 11.10 Ethical Software Outsourcing 11.11 Legal Breach of Contact 11.12 Review Questions 11.13 Summary 12 Configuration Management Abstract 12.1 Introduction 12.2 Configuration Management System 12.2.1 Identify Configuration Items 12.2.2 Document Control Management 12.2.3 Source Code Control Management 12.2.4 Configuration Management Plan 12.3 Change Control 12.4 Configuration Management Audits 12.5 Review Questions 12.6 Summary 13 Software Quality Assurance Abstract 13.1 Introduction 13.2 Audit Planning 13.3 Audit Meeting 13.4 Audit Reporting 13.5 Follow Up Activity 13.6 Audit Escalation 13.7 Review of Audit Activities 13.8 Other Audits 13.9 Review Questions 13.10 Summary 14 Agile Methodology Abstract 14.1 Introduction 14.2 Scrum Methodology 14.3 User Stories 14.4 Estimation in Agile 14.5 Test Driven Development 14.6 Pair Programming 14.7 Review Questions 14.8 Summary Reference 15 Software Reliability and Dependability Abstract 15.1 Introduction 15.2 Software Reliability 15.2.1 Software Reliability and Defects 15.2.2 Cleanroom Methodology 15.2.3 Software Reliability Models 15.3 Dependability 15.4 Computer Security 15.5 System Availability 15.6 Safety Critical Systems 15.7 Review Questions 15.8 Summary References 16 Formal Methods Abstract 16.1 Introduction 16.2 Why Should We Use Formal Methods? 16.3 Applications of Formal Methods 16.4 Tools for Formal Methods 16.5 Approaches to Formal Methods 16.5.1 Model-Oriented Approach 16.5.2 Axiomatic Approach 16.6 Proof and Formal Methods 16.7 The Future of Formal Methods 16.8 The Vienna Development Method 16.9 VDM♣, the Irish School of VDM 16.10 The Z Specification Language 16.11 The B Method 16.12 Predicate Transformers and Weakest Preconditions 16.13 The Process Calculii 16.14 Finite State Machines 16.15 The Parnas Way 16.16 Usability of Formal Methods 16.16.1 Why are Formal Methods Difficult? 16.16.2 Characteristics of a Usable Formal Method 16.17 Review Questions 16.18 Summary References 17 Z Specification Language Abstract 17.1 Introduction 17.2 Sets 17.3 Relations 17.4 Functions 17.5 Sequences 17.6 Bags 17.7 Schemas and Schema Composition 17.8 Reification and Decomposition 17.9 Proof in Z 17.10 Review Questions 17.11 Summary References 18 Unified Modelling Language Abstract 18.1 Introduction 18.2 Overview of UML 18.3 UML Diagrams 18.4 Object Constraint Language 18.5 Tools for UML 18.6 Rational Unified Process 18.7 Review Questions 18.8 Summary References 19 Software Process Improvement Abstract 19.1 Introduction 19.2 What is a Software Process? 19.3 What is Software Process Improvement? 19.4 Benefits of Software Process Improvement 19.5 Software Process Improvement Models 19.6 Process Mapping 19.7 Process Improvement Initiatives 19.8 Barriers to Success 19.9 Setting Up an Improvement Initiative 19.10 Appraisals 19.11 Review Questions 19.12 Summary References 20 Capability Maturity Model Integration Abstract 20.1 Introduction 20.2 The CMMI 20.3 CMMI Maturity Levels 20.3.1 CMMI Representations 20.4 Categories of CMMI Processes 20.5 CMMI Process Areas 20.6 Components of CMMI Process Areas 20.7 SCAMPI Appraisals 20.8 Review Questions 20.9 Summary References 21 Software Engineering Tools Abstract 21.1 Introduction 21.2 Tools for Project Management 21.3 Tools for Requirements 21.4 Tools for Design and Development 21.5 Tools for Agile Development 21.6 Tools for Configuration Management and Change Control 21.7 Tools for Code Analysis and Code Inspections 21.8 Tools for Testing 21.9 Review Questions 21.10 Summary References 22 A Miscellany of Innovation Abstract 22.1 Introduction 22.2 Distributed Systems 22.3 Service-Oriented Architecture 22.4 Software as a Service 22.5 Cloud Computing 22.6 Embedded Systems 22.7 Software Engineering and Innovation 22.7.1 Aspect-Oriented Software Engineering 22.8 Review Questions 22.9 Summary References 23 Legal Aspects of Software Engineering Abstract 23.1 Introduction 23.2 Intellectual Property 23.2.1 Patents 23.2.2 Copyright 23.2.3 Copyright of Software 23.2.4 Software Licensing 23.3 Lawsuits 23.3.1 Tort in Software Engineering 23.3.2 Software Licenses and Failure 23.3.3 Legal Aspects of Outsourcing 23.4 Computer Crime 23.5 Review Questions 23.6 Summary Reference 24 Cybersecurity and Cybercrime Abstract 24.1 Introduction 24.1.1 Scams 24.1.2 Malware 24.1.3 Cyberextortion and Ransomware 24.2 Hacking 24.3 Cybersecurity 24.4 Review Questions 24.5 Summary References 25 Epilogue Abstract 25.1 The Future of Software Engineering Glossary Index This long-awaiting new edition of an essential textbook concisely introduces the fundamental principles of software engineering, also offering practical guidance on how to apply the theory in a real-world, industrial environment. The wide-ranging coverage encompasses all areas of software design, management, and quality. Topics and features: Presents a broad overview of software engineering, including software lifecycles and phases in software development, and project management for software engineering Includes key learning topics, summaries, and review questions in each chapter, together with a useful glossary Discusses professional responsibilities of software engineers Discusses ethical and privacy challenges in software engineering, software design and development, and project management and outsourcing Explains formal methods, a set of mathematical techniques to specify and derive a program from its specification Describes innovations in the field of software as distributed systems, service-oriented architecture, software as a service, cloud computing, and embedded systems Investigates legal aspects of software engineering including patent and copyright law, as well as legal aspects of outsourcing Examines the field of cybersecurity and cybercrime This practical and easy-to-follow textbook/reference is ideal for computer science students seeking to learn how to build high-quality and reliable software on time and on budget. The text also serves as a self-study primer for software engineers, quality professionals, and software managers. Dr. Gerard ORegan is an Assistant Professor in Mathematics at the University of Central Asia in Kyrgyzstan. He is the author of several books in the Mathematics and Computing fields, including A Brief History of Computing, with Springer

قیمت نهایی

۴۴٬۰۰۰ تومان