Skip to:Content
|
Bottom
Cover image for Software engineering fundamentals
Title:
Software engineering fundamentals
Personal Author:
Publication Information:
New York, NY : Oxford University Press, 1996
ISBN:
9780195105391
Subject Term:
Added Author:

Available:*

Library
Item Barcode
Call Number
Material Type
Item Category 1
Status
Searching...
30000004735431 QA76.758 B434 1996 Open Access Book Book
Searching...

On Order

Summary

Summary

Software Engineering Fundamentals provides a comprehensive overview of software engineering and its process, builds on experience drawn from actual practice, and guides engineering students towards a better understanding of various disciplines, tasks, and specialities that contribute to the development of a software product. Intended for both students and professionals, the text follows the full software development life cycle, including a thorough coverage of methods, tools, principles, and guidelines. Software Engineering Fundamentals is unique in its coverage of such topics as software metrics, real-time software design, quality assurance, reliability, risk management, cost and schedule estimation, sizing, planning, test and integration process, technical management, and human factors. It establishes the concept of software development as an engineering process and software as an engineered product, and describes software development as a team-oriented activity usually conducted in a system development setting. The notion of using software metrics (attributes) to measure properties of the software product as a means to evaluate and control the development process is introduced, software metrics are presented as a management tool, and the software development process is described using an accepted review and documentation structure as an outline. Many interim products of the software engineering process are described in enough detail to permit the reader to produce a credible draft of these products. While encouraging the use of modeling techniques for sizing, cost and schedule estimation, reliability, risk assessment, and real-time design, the authors emphasize the need to calibrate models with actual data. Explicit guidance is provided for virtually every task that a software engineer may be assigned, and realistic case studies and examples are used extensively to reinforce the topics presented. Software Engineering Fundamentals presents a unique blend of practical and theoretical treatment of software engineering topics for students and professional use.


Author Notes

Ali Behforooz is at Towson State University. Frederick J. Hudson is at Towson State University.


Table of Contents

Unit 1 Introduction
1 Overview of System and Software Development Life Cycles
1.0 Objectives
1.1 Introduction
1.2 System: Definition and Discussion
1.3 System Level Project Planning
1.4 System Development Life Cycle Definition and Overview
1.5 Software Development Life Cycle: A Brief Overview
1.6 SWDLC Models
1.7 The Software Engineering Process
1.8 Some General Observations on SDLC and SWDLC
1.9 Chapter Summary
1.10 Exercises
2 Case Studies
2.0 Objectives
2.1 Introduction
2.2 Case Study Problem Statements
2.3 The XYZ Project: Analysis
2.4 The Bidder Perspective
2.5 Chapter Summary
2.6 Exercises
3 Technical Planning
3.0 Objectives
3.1 Introduction
3.2 Software Development Planning
3.3 The Use of SDP as a Management Tool
3.4 Attribute (Metrics) Estimation
3.5 Automated Planning Tools
3.6 Management, Methodology and Metrics
3.7 Chapter Summary
3.8 Unit One Summary
3.9 Exercises
Unit 2 Analysis and Design
4 Software Specifications and Requirement Analysis
4.0 Objectives
4.1 Introduction
4.2 People Involved in the Software Development Process
4.3 Software Requirements Specification (SRS)
4.4 Examples of SRS Preparation
4.5 Other Software Specification Documents
4.6 Software Specification Attributes
4.7 Chapter Summary
4.8 Exercies
5 Software Specification Tools
5.0 Objectives
5.1 Introduction
5.2 Data Dictionary
5.3 Decision Support Tools
5.4 Data Flow Diagrams
5.5 Finite State Machines
5.6 Petri Nets
5.7 Mathematical Logic
5.8 Operational Timelines
5.9 Chapter Summary
5.10 Exercises
6 Software Development Environment
6.0 Objectives
6.1 Introduction
6.2 Software Development Environment Configuration
6.3 Software Development Platform (SDPF)
6.4 Computer-Aided Software Engineering Tools
6.5 An Ideal Software Development Platform
6.6 Chapter Summary
6.7 Exercises
7 Software Design
7.0 Objectives
7.1 Introduction
7.2 An Overview of the Software Design Process
7.3 Software Design
7.4 A Design Example
7.5 Chapter Summary
7.6 Exercises
8 Object-Oriented Analysis and Design
8.0 Objectives
8.1 Introduction
8.2 Object-Oriented Paradigm
8.3 Basic Definitions and Symbols
8.4 Object-Oriented Analysis
8.5 Object-Oriented Design
8.6 Chapter Summary
8.7 Exercises
Unit 3 Implementation and Maintenance
9 Fundamentals of Coding
9.0 Objectives
9.1 Introduction
9.2 Programming Languages
9.3 Programming Style and Program Quality
9.4 A Programming Example
9.5 Chapter Summary
9.6 Exercises
10 Software System Test and Integration
10.0 Objectives
10.1 Introduction
10.2 Basic Concepts in Testing
10.3 An Overview of System and Software Test and Integration
10.4 The Incremental Build of Modules into Systems
10.5 Test and Integration Plan
10.7 Perspective on Build Testing
10.8 Alpha and Beta Testing
10.9 Chapter Summary
10.10 Exercises
11 Module Level Testing
11.0 Objectives
11.1 Introduction
11.2 Module Test Planning
11.3 Static Testing
11.4 Dynamic Testing
11.5 Test Case Execution
11.6 Formal Testing
11.7 Perspective on Module Testing
11.8 Chapter Summary
11.9 Exercises
12 Debugging
12.0 Objectives
12.1 Introduction
12.2 Program Errors
12.3 The Debugging Process
12.4 Perspectives on Debugging
12.5 Debugging Tools
12.6 An Example
12.7 Chapter Summary
12.8 Exercises
13 Software Maintenance and Maintainability
13.0 Objectives
13.1 Introduction
13.2 Software Maintenance
13.3 Software Maintenance Process
13.4 Maintenance Resource Estimation
13.5 Directly Specified Maintenace Attributes
13.6 Reverse Engineering
13.7 Re-engineering a Software Product
13.8 Chapter Summary
13.9 Exercises
Unit 4 Software Metrics or Attributes
14 Software Attributes and Their Estimation
14.0 Objectives
14.1 Introduction
14.2 Identification Related Attributes
14.3 Size Related Attributes
14.4 Design and Development Attributes
14.5 Software Quality Attributes
14.6 Complexity Related Attributes
14.7 Execution Time Related Attributes
14.8 Test Related Attributes
14.9 Documentation Related Attributes
14.10 Performance Related Attributes
14.11 Labor Related Attributes
14.12 Operating Environment Attributes
14.13 Data Collection
14.14 Chapter Summary
14.15 Exercises
15 Software Developement Resource Estimation
15.0 Objectives
15.1 Introduction
15.2 Software Product Cost and Schedule Estimation
15.3 Cost and Schedule Estimation Models
15.4 Grass Roots Resource and Schedule Estimation
15.5 An Example of Schedule Development
15.6 Closing Comments
15.7 Chapter Summary
15.8 Exercises
16 Software Development Risk Assessment and Containment
16.0 Objectives
16.1 Introduction
16.2 Software Development Risk Areas
16.3 The Risk Model
16.4 Risk Containment and Risk Management
16.5 Technical Performance Management
16.6 Examples to Illustrate Software Development Risk Analysis
16.7 Chapter Summary
16.8 Exercises
17 Reliability
17.0 Objectives
17.1 Introduction
17.2 Overview
17.3 Review of Probability Theory
17.4 Reliability Definitions
17.5 Reliability Models
17.6 Software Faults
17.7 Design Rules
17.8 System Reliability and Availability
17.9 Applications of a Software Reliability Model
17.10 Redundancy and Fault Tolerance
17.11 Failure Modes and Effects and Other Analysis Tools
17.12 Chapter Summary
17.13 Exercises
18 Software Quality and Quality Assurance
18.0 Objectives
18.1 Introduction
18.2 Software Quality Assurance Planning
18.3 Software Quality Assurance Process
18.4 Software Quality Attributes
18.5 Guidelines and Checklists
18.6 Software Safety
18.7 Chapter Summary
18.8 Exercises
Unit 5 Special Topics
19 Real-Time Software
19.0 Objectives
19.1 Introduction
19.2 Real-Time Requirements Specification
19.3 Design Guidlines for Real-Time Software
19.4 Schedulability Concerns
19.5 Testing Real-Time Software
19.6 Chapter Summary
19.7 Exercises
20 Human Factors in Software Engineering
20.0 Objectives
20.1 Introduction
20.2 Human Factors History
20.3 HCI Requirements and Design Process
20.4 The Human as an Information System Component
20.5 Operator Task Development
20.6 Operator Characteristics
20.7 Chapter Summary
20.8 Exercises
Appendix A Communication Skills
Appendix B Cost Benefit Analysis
Appendix C Decisions and Trade-Offs
Appendix D Reviews
Go to:Top of Page