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 |