Essentials of software engineering
Book information
Description
Cover Title Page Copyright Contents Preface CHAPTER 1 Creating a Program 1.1 A Simple Problem 1.1.1 Decisions, Decisions 1.1.2 Functional Requirements 1.1.3 Nonfunctional Requirements 1.1.4 Design Constraints 1.1.5 Design Decisions 1.2 Testing 1.3 Estimating Effort 1.4 Implementations 1.4.1 A Few Pointers on Implementation 1.4.2 Basic Design 1.4.3 Unit Testing with JUnit 1.4.4 Implementation of StringSorter 1.4.5 User Interfaces 1.5 Summary 1.6 Review Questions 1.7 Exercises 1.8 References and Suggested Readings CHAPTER 2 Building a System 2.1 Characteristics of Building a System 2.1.1 Size and Complexity 2.1.2 Technical Considerations of Development and Support 2.1.3 Nontechnical Considerations of Development and Support 2.2 Building a Hypothetical System 2.2.1 Requirements of the Payroll System 2.2.2 Designing the Payroll System 2.2.3 Code and Unit Testing the Payroll System 2.2.4 Integration and Functionally Testing the Payroll System 2.2.5 Release of the Payroll System 2.2.6 Support and Maintenance 2.3 Coordination Efforts 2.3.1 Process 2.3.2 Product 2.3.3 People 2.4 Summary 2.5 Review Questions 2.6 Exercises 2.7 References and Suggested Readings CHAPTER 3 Engineering of Software 3.1 Examples and Characteristics of Software Failures 3.1.1 Project Failures 3.1.2 Software Product Failures 3.1.3 Coordination and Other Concerns 3.2 Software Engineering 3.2.1 What Is Software Engineering? 3.2.2 Definitions of Software Engineering 3.2.3 Relevancy of Software Engineering and Software 3.3 Software Engineering Profession and Ethics 3.3.1 Software Engineering Code of Ethics 3.3.2 Professional Behavior 3.4 Principles of Software Engineering 3.4.1 Davis’s Early Principles of Software Engineering 3.4.2 Royce’s More Modern Principles 3.4.3 Wasserman’s Fundamental Software Engineering Concepts 3.5 Summary 3.6 Review Questions 3.7 Exercises 3.8 References and Suggested Readings CHAPTER 4 Software Process Models 4.1 Software Processes 4.1.1 Goal of Software Process Models 4.1.2 The “Simplest” Process Model 4.2 Traditional Process Models 4.2.1 Waterfall Model 4.2.2 Chief Programmer Team Approach 4.2.3 Incremental Model 4.2.4 Spiral Model 4.3 A More Modern Process 4.3.1 General Foundations of Rational Unified Process Framework 4.3.2 The Phases of RUP 4.4 Entry and Exit Criteria 4.4.1 Entry Criteria 4.4.2 Exit Criteria 4.5 Process Assessment Models 4.5.1 SEI’s Capability Maturity Model 4.5.2 SEI’s Capability Maturity Model Integrated 4.6 Process Definition and Communication 4.7 Summary 4.8 Review Questions 4.9 Exercises 4.10 References and Suggested Readings CHAPTER 5 New and Emerging Process Methodologies 5.1 What Are Agile Processes? 5.2 Why Agile Processes? 5.3 Some Process Methodologies 5.3.1 Extreme Programming (XP) 5.3.2 The Crystal Family of Methodologies 5.3.3 The Unified Process as Agile 5.3.4 Scrum 5.3.5 Kanban Method: A New Addition to Agile 5.3.6 Open Source Software Development 5.3.7 Summary of Processes 5.4 Choosing a Process 5.4.1 Projects and Environments Better Suited for Each Kind of Process 5.4.2 Main Risks and Disadvantages of Agile Processes 5.4.3 Main Advantages of Agile Processes 5.5 Summary 5.6 Review Questions 5.7 Exercises 5.8 References and Suggested Readings CHAPTER 6 Requirements Engineering 6.1 Requirements Processing 6.1.1 Preparing for Requirements Processing 6.1.2 Requirements Engineering Process 6.2 Requirements Elicitation and Gathering 6.2.1 Eliciting High-Level Requirements 6.2.2 Eliciting Detailed Requirements 6.3 Requirements Analysis 6.3.1 Requirements Analysis and Clustering by Business Flow 6.3.2 Requirements Analysis and Clustering with Object-Oriented Use Cases 6.3.3 Requirements Analysis and Clustering by Viewpoint-Oriented Requirements Definition 6.3.4 Requirements Analysis and Prioritization 6.3.5 Requirements Traceability 6.4 Requirements Definition, Prototyping, and Reviews 6.5 Requirements Specification and Requirements Agreement 6.6 Summary 6.7 Review Questions 6.8 Exercises 6.9 References and Suggested Readings CHAPTER 7 Design: Architecture and Methodology 7.1 Introduction to Design 7.2 Architectural Design 7.2.1 What Is Software Architecture? 7.2.2 Views and Viewpoints 7.2.3 Meta-Architectural Knowledge: Styles, Patterns, Tactics, and Reference Architectures 7.2.4 A Network-based Web Reference Architecture—REST 7.3 Detailed Design 7.3.1 Functional Decomposition 7.3.2 Relational Database Design 7.3.3 Designing for Big Data 7.3.4 Object-Oriented Design and UML 7.3.5 User-Interface Design 7.3.6 Some Further Design Concerns 7.4 HTML-Script-SQL Design Example 7.5 Summary 7.6 Review Questions 7.7 Exercises 7.8 References and Suggested Readings CHAPTER 8 Design Characteristics and Metrics 8.1 Characterizing Design 8.2 Some Legacy Characterizations of Design Attributes 8.2.1 Halstead Complexity Metric 8.2.2 McCabe’s Cyclomatic Complexity 8.2.3 Henry-Kafura Information Flow 8.2.4 A Higher-Level Complexity Measure 8.3 “Good” Design Attributes 8.3.1 Cohesion 8.3.2 Coupling 8.4 OO Design Metrics 8.4.1 Aspect-Oriented Programming 8.4.2 The Law of Demeter 8.5 User-Interface Design 8.5.1 Good UI Characteristics 8.5.2 Usability Evaluation and Testing 8.6 Summary 8.7 Review Questions 8.8 Exercises 8.9 References and Suggested Readings CHAPTER 9 Implementation 9.1 Introduction to Implementation 9.2 Characteristics of a Good Implementation 9.2.1 Programming Style and Coding Guidelines 9.2.2 Comments 9.3 Implementation Practices 9.3.1 Debugging 9.3.2 Assertions and Defensive Programming 9.3.3 Performance Optimization 9.3.4 Refactoring 9.3.5 Code Reuse 9.4 Developing for the Cloud 9.4.1 Infrastructure as a Service 9.4.2 Platform as a Service 9.4.3 Cloud Application Services 9.4.4 Cloud Services for Developers 9.4.5 Advantages and Disadvantages of the Cloud 9.5 Summary 9.6 Review Questions 9.7 Exercises 9.8 References and Suggested Readings CHAPTER 10 Testing and Quality Assurance 10.1 Introduction to Testing and Quality Assurance 10.2 Testing 10.2.1 The Purposes of Testing 10.3 Testing Techniques 10.3.1 Equivalence-Class Partitioning 10.3.2 Boundary Value Analysis 10.3.3 Path Analysis 10.3.4 Combinations of Conditions 10.3.5 Automated Unit Testing and Test-Driven Development 10.3.6 An Example of Test-Driven Development 10.4 When to Stop Testing 10.5 Inspections and Reviews 10.6 Formal Methods 10.7 Static Analysis 10.8 Summary 10.9 Review Questions 10.10 Exercises 10.11 References and Suggested Readings CHAPTER 11 Configuration Management, Integration, and Builds 11.1 Software Configuration Management 11.2 Policy, Process, and Artifacts 11.2.1 Business Policy Impact on Configuration Management 11.2.2 Process Influence on Configuration Management 11.3 Configuration Management Framework 11.3.1 Naming Model 11.3.2 Storage and Access Model 11.4 Build and Integration and Build 11.5 Tools for Configuration Management 11.6 Managing the Configuration Management Framework 11.7 Summary 11.8 Review Questions 11.9 Exercises 11.10 References and Suggested Readings CHAPTER 12 Software Support and Maintenance 12.1 Customer Support 12.1.1 User Problem Arrival Rate 12.1.2 Customer Interface and Call Management 12.1.3 Technical Problem/Fix 12.1.4 Fix Delivery and Fix Installs 12.2 Product Maintenance Updates and Release Cycles 12.3 Change Control 12.4 Summary 12.5 Review Questions 12.6 Exercises 12.7 References and Suggested Readings CHAPTER 13 Software Project Management 13.1 Project Management 13.1.1 The Need for Project Management 13.1.2 The Project Management Process 13.1.3 The Planning Phase of Project Management 13.1.4 The Organizing Phase of Project Management 13.1.5 The Monitoring Phase of Project Management 13.1.6 The Adjusting Phase of Project Management 13.2 Some Project Management Techniques 13.2.1 Project Effort Estimation 13.2.2 Work Breakdown Structure 13.2.3 Project Status Tracking with Earned Value 13.2.4 Measuring Project Properties and GQM 13.3 Summary 13.4 Review Questions 13.5 Exercises 13.6 References and Suggested Readings CHAPTER 14 Epilogue and Some Contemporary Issues 14.1 Security and Software Engineering 14.2 Reverse Engineering and Software Obfuscation 14.3 Software Validation and Verification Methodologies and Tools 14.4 References and 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
Similar books
MySQL® Notes for Professionals book
2018 · PDF
MrExcel 2022: Boosting Excel
2022 · PDF
MrExcel 2022: Boosting Excel
2022 · PDF
Session C11: Ancient Cultural Landscapes in South Europe – their Ecological Setting and Evolution, Session C22: Gardeners from South America, Session S04: Agro-Pastoralism and Early Metallurgy Sessions, Session WS29: The Idea of Enclosure in Recent Iberian Prehistory, Session C88: Rhytmes et causalites des dynamiques de l'anthropisation en Europe entre 6500 ET 500 BC: Hypotheses socio-culturelles et/ou climatiques: Proceedings of the XV UISPP World Congress (Lisbon 4-9 September 2006) / Actes du XV Congrès Mondial (Lisbonne 4-9 Septembre 2006) Vol.36
2010 · PDF
THE BRITISH ARMY IN INDIA: ITS PRESERVATION BY AN APPROPRIATE CLOTHING, HOUSING, LOCATING, RECREATIVE EMPLOYMENT, AND HOPEFUL ENCOURAGEMENT OF THE TROOPS. with AN APPENDIX ON INDIA : THE CLIMATE OP ITS HILLS ; THE DEVELOPMENT OF ITS RESODRCBS, INDUSTRY, AND ARTS ; THE ADMINISTRATION OF JUSTICE ; THE BLACK ACT ; THE PROGRESS OF CHRISTIANITY ; THE TRAFFIC IN OPIUM ; THE VALUE OF INDIA ; PERMANENT CAUSES OF DISAFFECTION, AND OF THE RECENT REBELLION ; THE TRADITIONARY POLICY; MISGOVERNMENT BY NATIVE RULERS ; ANNEXATIONS OF THEIR TERRITORY, ETC.
1858 · PDF
Idries Shah 27 Books Collection : A Perfumed Scorpion, A Veiled Gazelle, Caravan of Dreams, Darkest England, Destination Mecca, Evenings with Idries Shah, Knowing How to Know, Learning How to Learn, Letters and Lectures of Idries Shah, Neglected aspects of Sufi study, Observations, Oriental Magic, Reflections, Seeker after Truth, Special Illumination, Special Problems in the study of Sufi ideas, Sufi thought and action, Tales of the Dervishes, The Dermis Probe, The Elephant in the Dark, The Englishman Handbook, Idries Shah Antology, The Magic Monastery, The natives are restless, wisdom of the Idiots PDF.
2022 · PDF
The travels of Capts. Lewis and Clarke from St. Louis, by way of the Missouri and Columbia rivers, to the Pacific ocean; performed in the years 1804, 1805 & 1806, by order of the government of the United States. Containing delineations of the manners, customs, religion, &c. of the Indians, comp. from various authentic sources, and original documents, and a summary of the Statistical view of the Indian nations, from the official communication of Meriwether Lewis. Illustrated with a map of the country, inhabited by the western tribes of Indians
1809 · PDF
Professional Linux kernel architecture ''Wrox programmer to programmer''--Cover. - ''What you are reading right now is the result of an evolution over more than seven years: After two years of writing, the first edition was published in German by Carl Hanser Verlag in 2003. It then described kernel 2.6.0. The test was used as a basis for the low-level design documentation for the EAL4+ security evaluation of Red Hat Enterprise Linux 5, requiring to update it to kernel 2.6.18 (if the EAL acronym does not mean anything to you, then Wikipedia is once more your friend). Hewlett-Packard sponsored the translation into English and has, thankfully, granted the rights to publish the result. Updates to kernel 2.6.24 were then performed specifically for this book''--P. ix
2008 · PDF