₹355.50 ₹395.00 Save: ₹39.50 (10%)
Go to cartISBN: 9789380853925
Bind: Paperback
Year: 2015
Pages: 352
Size: 165 x 229 mm
Publisher: Jones & Bartlett Learning
Published in India by: Jones & Bartlett India
Exclusive Distributors: Viva Books
Sales Territory: India, Nepal, Pakistan, Bangladesh, Sri Lanka
Description:
A Concise and Accessible Exploration of Software Engineering
Updated with new case studies and content, the fully revised third edition of Essentials of Software Engineering offers a comprehensive, accessible, and concise introduction to core topics and methodologies of software development. Designed for undergraduate students in introductory courses, the text covers essential topics emphasized by the IEEE Computer Society-sponsored Software Engineering Body of Knowledge (SWEBOK). In-depth coverage of key issues, combined with a strong focus on software quality, makes Essentials of Software Engineering, Third Edition the perfect text for students entering the fast-growing and lucrative field of software development. The text includes thorough overviews of programming concepts, system analysis and design, principles of software engineering, development and support processes, methodologies, and product management.
The revised and updated Third Edition includes all-new sections on Scrum and HTMLScript- SQL Design, as well as expanded discussions of User-Interface Design, Flow of Interactions, Cognitive Models, and other UI design issues. Covering all phases of the software production lifecycle and emphasizing quality throughout, Essentials of Software Engineering, Third Edition is a superb resource for students of software engineering.
Key features of the revised Third Edition:
Target Audience:
This book is ideal for the students and academicians of Software Engineering.
Contents:
Preface
Chapter 1: Writing a Program • A Simple Problem • Decisions, Decisions • Functional Requirements • Nonfunctional Requirements • Design Constraints • Design Decisions • Testing • Estimating Effort • Implementations • A Few Pointers on Implementation • Basic Design • Unit Testing with JUnit • Implementation of StringSorter • User Interfaces • Summary • Review Questions • Exercises • Suggested Readings
Chapter 2: Building a System • Characteristics of Building a System • Size and Complexity • Technical Considerations of Development and Support • Nontechnical Considerations of Development and Support • Building a Hypothetical System • Requirements of the Payroll System • Designing the Payroll System • Code and Unit Testing the Payroll System • Integration and Functionally Testing the Payroll System • Release of the Payroll System • Support and Maintenance • Coordination Efforts • Process • Product • People • Summary • Review Questions • Exercises • Suggested Readings
Chapter 3: Engineering of Software • Examples and Characteristics of Software Failures • Project Failures • Software Product Failures • Coordination and Other Concerns • Software Engineering • What Is Software Engineering? • Definitions of Software Engineering • Relevancy of Software Engineering and Software • Software Engineering Profession and Ethics • Software Engineering Code of Ethics • Professional Behavior • Principles of Software Engineering • Davis's Early Principles of Software Engineering • Royce's More Modern Principles • Wasserman's Fundamental Software Engineering Concepts • Summary • Review Questions • Exercises • Suggested Readings
Chapter 4: Software Process Models • Software Processes • Goal of Software Process Models • The ?Simplest? Process Model • Traditional Process Models • Waterfall Model • Chief Programmer Team Approach • Incremental Model • Spiral Model • A More Modern Process • General Foundations of Rational Unified Process Framework • The Phases of RUP • Entry and Exit Criteria • Entry Criteria • Exit Criteria • Process Assessment Models • SEI's Capability Maturity Model • SEI's Capability Maturity Model Integrated • Process Definition and Communication • Summary • Review Questions • Exercises • Suggested Readings
Chapter 5: New and Emerging Process Methodologies • What Are Agile Processes? • Why Agile Processes? • Some Process Methodologies • Extreme Programming (XP) • The Crystal Family of Methodologies • The Unified Process as Agile • Scrum • Open Source Software Development • Summary of Processes • Choosing a Process • Projects and Environments Better Suited for Each Kind of Process • Main Risks and Disadvantages of Agile Processes • Main Advantages of Agile Processes • Summary • Review Questions • Exercises • Suggested Readings
Chapter 6: Requirements Engineering • Requirements Processing • Preparing for Requirements Processing • Requirements Engineering Process • Requirements Elicitation and Gathering • Eliciting High-Level Requirements • Eliciting Detailed Requirements • Requirements Analysis • Requirements Analysis and Clustering by Business Flow • Requirements Analysis and Clustering with Object- Oriented Use Cases Requirements Analysis and Clustering by Viewpoint- Oriented Requirements Definition • Requirements Analysis and Prioritization • Requirements Traceability • Requirements Definition, Prototyping, and Reviews • Requirements Specification and Requirements Agreement • Summary • Review Questions • Exercises • Suggested Readings
Chapter 7: Design: Architecture and Methodology • Introduction to Design • Architectural Design • What Is Software Architecture? • Views and Viewpoints • Meta-Architectural Knowledge: Styles, Patterns, Tactics, and Reference Architectures • Detailed Design • Functional Decomposition • Relational Database Design • Object-Oriented Design and UML • User-Interface Design • Some Further Design Concerns • HTML-Script-SQL Design Example • Summary • Review Questions • Exercises • Suggested Readings
Chapter 8: Design Characteristics and Metrics • Characterizing Design • Some Legacy Characterizations of Design Attributes • Halstead Complexity Metric • McCabe's Cyclomatic Complexity • Henry-Kafura Information Flow • A Higher-Level Complexity Measure • ?Good? Design Attributes • Cohesion • Coupling • Object-Oriented Design Metrics • Aspect-Oriented Programming • The Law of Demeter • User-Interface Design • Good UI Characteristics • Usability Evaluation and Testing • Summary • Review Questions • Exercises • Suggested Readings
Chapter 9: Implementation • Introduction to Implementation • Characteristics of a Good Implementation • Programming Style and Coding Guidelines • Comments • Debugging • Assertions and Defensive Programming • Performance Optimization • Refactoring • Summary • Review Questions • Exercises • Suggested Readings
Chapter 10: Testing and Quality Assurance • Introduction to Testing and Quality Assurance • Testing • The Purposes of Testing • Testing Techniques • Equivalence Class Partitioning • Boundary Value Analysis • Path Analysis • Combinations of Conditions • Automated Unit Testing and Test-Driven Development • An Example of Test-Driven Development • When to Stop Testing • Inspections and Reviews • Formal Methods • Static Analysis • Summary • Review Questions • Exercises • Suggested Readings
Chapter 11: Configuration Management, Integration, and Builds • Software Configuration Management • Policy, Process, and Artefacts • Business Policy Impact on Configuration Management • Process Influence on Configuration Management • Configuration Management Framework • Naming Model • Storage and Access Model • Build and Integration and Build • Tools for Configuration Management • Managing the Configuration Management Framework • Summary • Review Questions • Exercises • Suggested Readings
Chapter 12: Software Support and Maintenance • Customer Support • User Problem Arrival Rate • Customer Interface and Call Management • Technical Problem/Fix • Fix Delivery and Fix Installs • Product Maintenance Updates and Release Cycles • Change Control • Summary • Review Questions • Exercises • Suggested Readings
Chapter 13: Software Project Management • The Necessity of Project Management • The Project Management Process • Planning • Organizing • Monitoring • Adjusting • Some Project Management Techniques • Project Effort Estimation • Work Breakdown Structure • Project Status Tracking with Earned Value • Measuring Project Properties and GQM • Summary • Review Questions • Exercises • Suggested Readings
Chapter 14: Epilogue and Some Contemporary Issues • Security and Software Engineering • Reverse Engineering and Software Obfuscation • Software Validation and Verification Methodologies and Tools • Suggested Readings
Appendix A • Essential Software Development Plan (SDP)
Appendix B • Essential Software Requirements Specifications (SRS) • Example 1: Essential SRS—Descriptive • Example 2: Essential SRS—Object Oriented • Example 3: Essential SRS—IEEE Standard • Example 4: Essential SRS—Narrative Approach
Appendix C • Essential Software Design • Example 1: Essential Software Design—UML • Example 2: Essential Software Design— Structural
Appendix D • Essential Test Plan
Glossary
Index
About the Authors:
Frank Tsui, PhD-Southern Polytechnic State University
Professor Tsui has more than 30 years of experience in the Software and IT industry. He is currently a full time faculty member of the School of Computing and Software Engineering at SPSU. He has also been an adjunct faculty at both Georgia Tech and Southern Polytechnic State University (SPSU). Frank's formal education includes a PhD in computer science from Georgia Tech, MS from Indiana State University and a BS from Purdue. His experience includes compiler writing for RCA, business applications programming for BlueCross BlueShield, operating system development and software product management with IBM Corp., Director of Software Development with MARCAM, Vice President of Technology with PSInet/Metamor, and Chief Technology Officer with RiverLogic Inc. Several well known industry software products were developed under Tsui's guidance: IBM's CMAS construction package, IBM's MVS/JES3 Operating System, IBM's MAPICS ERP (Second Release) package, and IBM's EDI package. He is actively involved with the software industry and is especially interested in: Development Processes, Configuration Management, Product and Service Quality, Measurements and Metrics, Testing and Validation.
Orlando Karam-Southern Polytechnic State University
Orlando Karam's experiences are in Agile development and open source environment. He has also developed software for the Yucatan State Government and several companies in Mexico. Orlando holds a PhD in computer science from Tulane University and is a faculty member of Southern Polytechnic State University. Orlando is also actively involved in the studies of complexities of software.
Barbara Bernal-Southern Polytechnic State University, Marietta, Georgia
Barbara is a professor of software engineering at SPSU. Her expertise is in the area of user interfaces and user centered design. She has been active in the American Society of Engineering Education and the education of software engineers.