O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Software Engineering

Book Description

This book addresses basic and advanced concepts in software engineering and is intended as a textbook for an undergraduate-level engineering course. In addition to covering important concepts in software engineering, this book also addresses the perspective of decreasing the overall effort of writing quality software. It covers the entire spectrum of the software engineering life cycle starting from the requirement analysis until the implementation and maintenance of the project.

Table of Contents

  1. Cover
  2. Title page
  3. Contents
  4. Foreword
  5. Preface
  6. Acknowledgements
  7. About the Authors
  8. Section 1 – Introduction to Software Engineering
    1. 1 Software Engineering – Introduction
      1. 1.1 Introduction to Software Engineering
      2. 1.2 Software Process
      3. 1.3 Software Process Models
      4. 1.4 Software Product
  9. Section 2 – Requirement Engineering
    1. 2 Requirements Engineering Principles
      1. 2.1 Introduction
      2. 2.2 What is Requirements Engineering?
      3. 2.3 Importance of Requirements
      4. 2.4 Types of Requirements
      5. 2.5 Steps Involved in Requirements Engineering
    2. 3 Requirement Analysis Modeling
      1. 3.1 Analysis Modeling Approaches
      2. 3.2 Structured Analysis
      3. 3.3 Object-Oriented Analysis
  10. Section 3 – Design and Architectural Engineering
    1. 4 Design and Architectural Engineering
      1. 4.1 Design Process and Concepts
      2. 4.2 Basic Issues in Software Design
      3. 4.3 Characteristics of a Good Design
      4. 4.4 Software Design and Software Engineering
      5. 4.5 Function-Oriented System vs Object-Oriented System
      6. 4.6 Modularity, Cohesion, Coupling, Layering
      7. 4.7 Real-Time Software Design (RTS Design)
      8. 4.8 Design Models
      9. 4.9 Design Documentation
    2. 5 Object-oriented Concepts
      1. 5.1 Introduction
      2. 5.2 Fundamental Parts of Object-oriented Approach
      3. 5.3 Data Hiding and Class Hierarchy Creation
      4. 5.4 Relationships
      5. 5.5 Role of Unified Modeling Language (UML) in OO Design
      6. 5.6 Design Patterns
      7. 5.7 Frameworks
    3. 6 Object-oriented Analysis and Design
      1. 6.1 Introduction
      2. 6.2 Object-oriented Analysis
      3. 6.3 Object-oriented Design
    4. 7 User Interface Design
      1. 7.1 Introduction
      2. 7.2 Concepts of User Interface
      3. 7.3 Elements of the User Interface
      4. 7.4 Designing the User Interface
      5. 7.5 User Interface Evaluation (User Interface Design Evaluation)
      6. 7.6 Golden Rules of User Interface Design
      7. 7.7 User Interface Models (User Interface Design Models)
      8. 7.8 Usability
  11. Section 4 – Software Coding
    1. 8 Software Coding
      1. 8.1 Introduction
      2. 8.2 Programming Principles
      3. 8.3 Programming Guidelines
      4. 8.4 Coding Conventions (Programming Practices)
      5. 8.5 Key Concepts in Software Coding
  12. Section 5 – Software Metrics and Estimation
    1. 9 Introduction to Software Measurement and Metrics
      1. 9.1 Introduction
      2. 9.2 Measurement
      3. 9.3 Metrics
      4. 9.4 Other Concepts
    2. 10 LOC, Function Point, and Object-oriented Metrics
      1. 10.1 Introduction
      2. 10.2 Lines of Code
      3. 10.3 Function Point Count (Fp Estimation)
      4. 10.4 Extended Function Point Metrics
      5. 10.5 Object-oriented Metrics
      6. 10.6 DeMarco’s System BANG
    3. 11 Software Estimation Tools, Techniques and Models
      1. 11.1 Introduction
      2. 11.2 Definition of Estimation
      3. 11.3 Importance of Accurate Estimation
      4. 11.4 Efforts and Duration
      5. 11.5 Estimation Process
      6. 11.6 Basic Estimation Principles
      7. 11.7 Estimation Techniques
      8. 11.8 Estimating Styles
      9. 11.9 Precision versus Accuracy
      10. 11.10 Tools for Analyzing Metrics and Estimations
      11. 11.11 Project Cost Estimation
      12. 11.12 Earned Value Management
      13. 11.13 Other Concepts in Costing
  13. Section 6 – Software Configuration
    1. 12 Software Configuration Management
      1. 12.1 Introduction
      2. 12.2 Basic Concepts of Configuration Management
      3. 12.3 Software Configuration Management Process
      4. 12.4 Configuration Identification
      5. 12.5 Configuration Control
      6. 12.6 Configuration Status Accounting
      7. 12.7 Configuration Authentication
      8. 12.8 Tools Used in Software Configuration Management
      9. 12.9 SCM and SEI Capability Maturity Model
      10. 12.10 Configuration Management Activities
      11. 12.11 Software Configuration Management Plan (SCMP)
  14. Section 7 – Software Project Management
    1. 13 Project Management Introduction
      1. 13.1 Introduction
      2. 13.2 Process
      3. 13.3 Project
      4. 13.4 Environmental Factors that Mandate Projects in Organizations
      5. 13.5 Project Management
      6. 13.6 Program Management
      7. 13.7 Portfolio Management
      8. 13.8 Project Management Office
      9. 13.9 Project Planning and Monitoring
      10. 13.10 Project Scope Management
      11. 13.11 Project Quality Management
    2. 14 Risk Analysis and Management
      1. 14.1 Introduction
      2. 14.2 Software Risk
      3. 14.3 Types of Risk
      4. 14.4 Plan Risk Management
    3. 15 Communication and Team Management
      1. 15.1 Introduction
      2. 15.2 Dimensions of Communication
      3. 15.3 Forms of Communication
      4. 15.4 Process of Communication
      5. 15.5 Handling Communication in a Software Project
      6. 15.6 Project Performance Reports
      7. 15.7 Managing the Project Team
    4. 16 Project Time and Cost Management
      1. 16.1 Introduction
      2. 16.2 Time Management
      3. 16.3 Cost Management
    5. 17 Project Stakeholder Management
      1. 17.1 Introduction
      2. 17.2 Stakeholders and their Characteristics
      3. 17.3 Identifying the Stakeholders
      4. 17.4 Managing the Stakeholder Engagement
      5. 17.5 Procurement Process and Suppliers
    6. 18 Computer-aided Software Engineering
      1. 18.1 Introduction
      2. 18.2 Case Tool
      3. 18.3 Case-Building Blocks
      4. 18.4 Components of Case Tools
      5. 18.5 Quality of Case Tools
      6. 18.6 Productivity of Case Tools
      7. 18.7 Functions of A Case Tool
      8. 18.8 List of White Box Testing Commercial Tools and Their Purpose
      9. 18.9 Workbenches
  15. Section 8 – Software Testing
    1. 19 Introduction to Software Testing
      1. 19.1 Introduction
      2. 19.2 Psychology of Testing
      3. 19.3 Software Testing Scope
      4. 19.4 Software Testing Objectives
      5. 19.5 Strategic Approach to Software Testing
      6. 19.6 Types of Software Testing
    2. 20 Software Testing Plan and Test Case Preparation
      1. 20.1 Introduction
      2. 20.2 Test Plan
      3. 20.3 Introduction to Test Case
    3. 21 Test Automation
      1. 21.1 Introduction
      2. 21.2 Expectations from Test Automation
      3. 21.3 Limitations of Automation
      4. 21.4 Automation Strategy
      5. 21.5 Automation Frameworks
      6. 21.6 Automation Metrics
  16. Section 9 – Software Maintenance
    1. 22 Software Maintenance
      1. 22.1 Introduction
      2. 22.2 Maintenance Activities
      3. 22.3 Maintenance Process
      4. 22.4 Maintenance Cost
      5. 22.5 Software Evolution
      6. 22.6 Reverse Engineering
      7. 22.7 Re-engineering
      8. 22.8 Re-structuring
      9. 22.9 Maintenance Strategies
      10. 22.10 Maintenance Mind Set
      11. 22.11 Service Perspective to Software Maintenance
      12. 22.12 Gap Model - Service
      13. 22.13 Software Maintenance Tools
      14. 22.14 Issues in Software Maintenance
      15. 22.15 Difference between Software Maintenance and Support
      16. 22.16 Common Metrics in Software Maintenance and Support
  17. Section 10 – Web Engineering
    1. 23 Web Engineering
      1. 23.1 Introduction
      2. 23.2 Introduction to Web
      3. 23.3 General Web Characteristics
      4. 23.4 Web Applications Categories
      5. 23.5 How Web Application Work?
      6. 23.6 Advantages of Web Applications
      7. 23.7 Drawbacks of Web Applications
      8. 23.8 Web Engineering
  18. Section 11 – Emerging Trends in Software Engineering
    1. 24 Emerging Trends in Software Engineering
      1. 24.1 Introduction
      2. 24.2 Web 2.0
      3. 24.3 Rapid Delivery
      4. 24.4 Open Source Software Development
      5. 24.5 Security Engineering
      6. 24.6 Service-oriented Software Engineering
      7. 24.7 Web Service
      8. 24.8 Software as a Service
      9. 24.9 Service-oriented Architecture
      10. 24.10 Cloud Computing
      11. 24.11 Aspect-oriented Software Development (AOSD)
      12. 24.12 Test-driven Development (TDD)
      13. 24.13 Social Computing
  19. Section 12 – Introduction to Agile Software Development
    1. 25 Introduction to Agile Software Development
      1. 25.1 Introduction
      2. 25.2 What is Agile?
      3. 25.3 Various Characteristics of Agile Projects
      4. 25.4 Agile manifesto
      5. 25.5 Generic Agile Project Life Cycle
      6. 25.6 Agile-related Concepts
      7. 25.7 Epics, Features, User Stories
      8. 25.8 Communication in Agile Projects
      9. 25.9 Diff erent Agile Methodologies
    2. 26 Case Studies on Software Engineering Practices
      1. Case Study 1: Software Project Management Lifecycle – A Product Development Case study
      2. Case Study 2: Maintenance Project Case Study – Lifecycle and How it is Managed
      3. Case Study 3: Agile Project Case Study – How it is Structured and Executed
      4. Case Study 4: Testing Case Study – How the Testing Methodologies are Used in a Project
      5. Case Study 5: Software SDLC Case Study
  20. Model Question Paper
  21. Model Solved Question Paper
  22. Copyright