𝔖 Scriptorium
✦   LIBER   ✦

πŸ“

Concise Guide to Software Engineering: From Fundamentals to Application Methods

✍ Scribed by Gerard O'Regan


Publisher
Springer
Year
2022
Tongue
English
Leaves
457
Series
Undergraduate Topics in Computer Science
Edition
2
Category
Library

⬇  Acquire This Volume

No coin nor oath required. For personal study only.

✦ Synopsis


This 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.

✦ Table of Contents


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


πŸ“œ SIMILAR VOLUMES


Concise Guide to Software Engineering: F
✍ Gerard O'Regan πŸ“‚ Library πŸ“… 2022 πŸ› Springer 🌐 English

<span>This 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.

Concise Guide to Software Engineering: F
✍ Gerard O'Regan πŸ“‚ Library πŸ“… 2017 πŸ› Springer 🌐 English

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 qual

Concise Guide to Software Engineering: F
✍ Gerard O'Regan πŸ“‚ Library πŸ“… 2017 πŸ› Springer 🌐 English

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 qual

Concise Guide to Software Engineering: F
✍ Gerard O'Regan πŸ“‚ Library πŸ“… 2022 πŸ› Springer 🌐 English

<span>This 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.

Concise Guide to Software Engineering: F
✍ Gerard O'Regan (auth.) πŸ“‚ Library πŸ“… 2017 πŸ› Springer International Publishing 🌐 English

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 qual