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, reliabilty, risk management, cost and schedule estimation, sizing, planning, test and integration process, technical management, and human factors. It estabilishes 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 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.