Book description
This text provides a comprehensive, but concise introduction to software engineering. It adopts a methodical approach to solving software engineering problems proven over several years of teaching, with outstanding results.
The book covers concepts, principles, design, construction, implementation, and management issues of software systems. Each chapter is organized systematically into brief, reader-friendly sections, with itemization of the important points to be remembered. Diagrams and illustrations also sum up the salient points to enhance learning. Additionally, the book includes a number of the author’s original methodologies that add clarity and creativity to the software engineering experience, while making a novel contribution to the discipline.
Upholding his aim for brevity, comprehensive coverage, and relevance, Foster’s practical and methodical discussion style gets straight to the salient issues, and avoids unnecessary topics and minimizes theoretical coverage.
Table of contents
- Cover
- Title
- Copyright
- Dedication
- Contents at a Glance
- Contents
- About the Author
- Acknowledgments
- Preface
-
Part A: Fundamentals
-
Chapter 1: Introduction to Software Engineering
- 1.1 Definitions and Concepts
- 1.2 The Organization as a System
- 1.3 Information Levels in the Organization
- 1.4 Software Life Cycle
- 1.5 Categories of Software
- 1.6 Alternate Software Acquisition Approaches
- 1.7 Software Engineering Paradigms
- 1.8 Desirable Features of Computer Software
- 1.9 Summary and Concluding Remarks
- 1.11 References and/or Recommended Readings
-
Chapter 2: The Role of the Software Engineer
- 2.1 Historical Role
- 2.2 Modern Role of the Software Engineer
- 2.3 Job Description of the Software Engineer
- 2.4 Tools used by the Software Engineer
- 2.5 Management Issues with Which the Software Engineer must be Familiar
- 2.6 Summary and Concluding Remarks
- 2.7 Review Questions
- 2.8 References and/or Recommended Readings
-
Chapter 1: Introduction to Software Engineering
-
Part B: Software Investigation and Analysis
-
Chapter 3: Project Selection and the Initial System Requirements
- 3.1 Project Selection
- 3.2 Problem Definition
- 3.3 The Proposed Solution
- 3.4 Scope and Objectives of the System
- 3.5 System Justification
- 3.6 Feasibility Analysis Report
- 3.7 Alternate Approach to the Feasibility Analysis
- 3.8 Summary of System Inputs and Outputs
- 3.9 Initial Project Schedule
- 3.10 Project Team
- 3.11 Summary and Concluding Remarks
- 3.12 Review Questions
- 3.13 References and/or Recommended Readings
- Chapter 4: The Requirements Specification
-
Chapter 5: Information Gathering
- 5.1 Rationale for Information Gathering
- 5.2 Interviewing
- 5.3 Questionnaires and Surveys
- 5.4 Sampling and Experimenting
- 5.5 Observation and Document Review
- 5.6 Prototyping
- 5.7 Brainstorming and Mathematical Proof
- 5.8 Object Identification
- 5.9 Summary and Concluding Remarks
- 5.10 Review Questions
- 5.11 References and/or Recommended Readings
-
Chapter 6: Communicating Via Diagrams
- 6.1 Introduction
- 6.2 Traditional System Flowcharts
- 6.3 Procedure Analysis Chart
- 6.4 Innovation: Topology Charts
- 6.5 Data Flow Diagrams
- 6.6 Object FlowDiagram
- 6.7 Other Contemporary Diagramming Techniques
- 6.8 Program Flowchart
- 6.9 Summary and Concluding Remarks
- 6.10 Review Questions
- 6.11 References and/or Recommended Readings
- Chapter 7: Decision Models for System Logic
- Chapter 8: Project Management Aids
-
Chapter 3: Project Selection and the Initial System Requirements
-
Part C: Software Design
- Chapter 9: Overview of Software Design
- Chapter 10: Database Design
-
Chapter 11: User Interface Design
- 11.1 Introduction
- 11.2 Types of User Interfaces
- 11.3 Steps in User Interface Design
- 11.4 Overview of Output Design
- 11.5 Output Methods versus Content and Technology
- 11.6 Guidelines for Designing Output
- 11.7 Overview of Input Design
- 11.8 Guidelines for Designing Input
- 11.9 Summary and Concluding Remarks
- 11.10 Review Questions
- 11.11 References and/or Recommended Reading
- Chapter 12: Operations Design
- Chapter 13: Other Design Considerations
-
Part D: Software Development
- Chapter 14: Sof tware Development Issues
-
Chapter 15: Human Resource Management
- 15.1 Management Responsibilities
- 15.2 Management Styles
- 15.3 Developing Job Descriptions
- 15.4 Hiring
- 15.5 Maintaining the Desired Environment
- 15.6 Preserving Accountability
- 15.7 Grooming and Succession Planning
- 15.8 Summary and Concluding Remarks
- 15.9 Review Questions
- 15.10 References and/or Recommended Readings
- Chapter 16: Software Economics
-
Part E: Software Implementation and Management
- Chapter 17: Software Implementation Issues
- Chapter 18: Software Management
- Chapter 19: Organizing for Effective Management
-
Part F: Final Preparations
-
Chapter 20: Sample Exercises and Examination Questions
- 20.1 Introduction
- 20.2 Assignment 1A
- 20.3 Assignment 2
- 20.4 Assignment 3A
- 20.5 Assignment 4A
- 20.6 Assignment 5A
- 20.7 Assignment 6A
- 20.8 Assignment 7A
- 20.9 Assignment 8A
- 20.10 Sample Interim Examination 1A
- 20.11 Sample Interim Examination 2B
- 20.12 Sample Final Examination A
- 20.13 Sample Final Examination B
-
Chapter 20: Sample Exercises and Examination Questions
-
Part G: Appendices
-
Appendix 1: Introduction to Object Oriented Methodologies
- A1.1 Software Revolution and Rationale for Object-Oriented Techniques
- A1.2 Information Engineering and the Object-Oriented Approach
- A1.3 Integrating Hi-tech Technologies
- A1.4 Characteristics of Object-Oriented Methodologies
- A1.5 Benefits of Object-Oriented Methodologies
- A1.6 Summary and Concluding Remarks
- A1.7 Recommended Readings
-
Appendix 2: Basic Concepts of Object-Oriented Methodologies
- A2.1 Objects and Object Types
- A2.2 Operations
- A2.3 Methods
- A2.4 Encapsulation and Classes
- A2.5 Inheritance and Amalgamation
- A2.6 Requests
- A2.7 Polymorphism and Reusability
- A2.8 Interfaces
- A2.9 Late Binding
- A2.10 Multithreading
- A2.11 Perception versus Reality
- A2.12 Overview of the Object-Oriented Software Engineering Process
- A2.13 Summary and Concluding Remarks
- A2.14 Recommended Readings
- Appendix 3: Object-Oriented Information Engineering
-
Appendix 4: Basic Guidelines for Object-Oriented Methodologies
-
A4.1 Object Identification
- A4.1.1 Using Things to be Modeled
- A4.1.2 Using the Definitions of Objects, Categories and Interfaces
- A4.1.3 Using Decomposition
- A4.1.4 Using Generalizations and Subclasses
- A4.1.5 Using OO Domain Analysis or Application Framework
- A4.1.6 Reusing Hierarchies, Individual Objects and Classes
- A4.1.7 Using Personal Experience
- A4.1.8 Using the Descriptive Narrative Approach
- A4.1.9 Using the Class-Responsibility-Collaboration Method
- A4.1.10 Using the Rule-of-Thumb Method
- A4.2 End User Involvement
- A4.3 OO Diagramming
- A4.4 Enterprise-wide Design
- A4.5 Emphasis on OO-CASE Tools versus OO-Programming Language
- A4.6 OO Modeling
- A4.7 Summary and Concluding Remarks
- A4.8 References and/or Recommended Reading
-
A4.1 Object Identification
-
Appendix 5: Categorizing Objects
- A5.1 Identifying Object Relationships
- A5.2 Fern Diagram
- A5.3 Information Topology Chart
- A5.4 Object Relationship Diagrams
- A5.5 Representing Details about Object Types
- A5.6 Avoiding Multiple Inheritance Relationships
- A5.7 Top-Down versus Bottom-Up
- A5.8 Summary and Concluding Remarks
- A5.9 References and/or Recommended Reading
- Appendix 6: Specifying Object Behavior
-
Appendix 7: Tools for Object-Oriented Methodologies
- A7.1 Introduction
- A7.2 Categories of CASE Tools
- A7.3 Universal Database Management Systems
- A7.4 Benefits of OO-CASE Tools and UDBMS Suites
- A7.5 Object Oriented Programming Languages
- A7.6 Modeling and Code Generation
- A7.7 Standards for OOM
- A7.8 Summary and Concluding Remarks
- A7.9 References and/or Recommended Readings
- Appendix 8: Project Proposal for a Generic Inventory Management System
- Appendix 9: Requirements Specification for a Generic Inventory Management System
- Appendix 10: Design Specification for a Generic Inventory Management System
-
Appendix 1: Introduction to Object Oriented Methodologies
- Index
Product information
- Title: Software Engineering: A Methodical Approach
- Author(s):
- Release date: December 2014
- Publisher(s): Apress
- ISBN: 9781484208472
You might also like
book
Modern Software Engineering: Doing What Works to Build Better Software Faster
Improve Your Creativity, Effectiveness, and Ultimately, Your Code In Modern Software Engineering, continuous delivery pioneer David …
book
Designing Data-Intensive Applications
Data is at the center of many challenges in system design today. Difficult issues need to …
book
CMDB Systems
CMDB Systems: Making Change Work in the Age of Cloud and Agile shows you how an …
book
Practical Process Automation
In today's IT architectures, microservices and serverless functions play increasingly important roles in process automation. But …