Beginning Software Engineering
![Beginning Software Engineering](/img/big/00/82/20/822059.jpg)
Реклама. ООО «ЛитРес», ИНН: 7719571260.
Оглавление
Stephens Rod. Beginning Software Engineering
INTRODUCTION
WHAT IS SOFTWARE ENGINEERING?
WHY IS SOFTWARE ENGINEERING IMPORTANT?
WHO SHOULD READ THIS BOOK?
APPROACH
WHAT THIS BOOK COVERS (AND WHAT IT DOESN'T)
WHAT TOOLS DO YOU NEED?
CONVENTIONS
ERRATA
IMPORTANT URLS
CONTACTING THE AUTHOR
DISCLAIMER
PART I. Software Engineering Step-by-Step
CHAPTER 1. Software Engineering from 20,000 Feet
REQUIREMENTS GATHERING
HIGH-LEVEL DESIGN
LOW-LEVEL DESIGN
DEVELOPMENT
TESTING
DEPLOYMENT
MAINTENANCE
WRAP-UP
EVERYTHING ALL AT ONCE
SUMMARY
CHAPTER 2. Before the Beginning
DOCUMENT MANAGEMENT
HISTORICAL DOCUMENTS
CODE
CODE DOCUMENTATION
APPLICATION DOCUMENTATION
SUMMARY
CHAPTER 3. Project Management
EXECUTIVE SUPPORT
PROJECT MANAGEMENT
SUMMARY
CHAPTER 4. Requirement Gathering
REQUIREMENTS DEFINED
REQUIREMENT CATEGORIES
GATHERING REQUIREMENTS
REFINING REQUIREMENTS
RECORDING REQUIREMENTS
VALIDATION AND VERIFICATION
CHANGING REQUIREMENTS
SUMMARY
CHAPTER 5. High-Level Design
THE BIG PICTURE
WHAT TO SPECIFY
UML
SUMMARY
CHAPTER 6. Low-Level Design
OO DESIGN
DATABASE DESIGN
SUMMARY
CHAPTER 7. Development
USE THE RIGHT TOOLS
SELECTING ALGORITHMS
TOP-DOWN DESIGN
PROGRAMMING TIPS AND TRICKS
SUMMARY
CHAPTER 8. Testing
TESTING GOALS
REASONS BUGS NEVER DIE
LEVELS OF TESTING
TESTING TECHNIQUES
TESTING HABITS
HOW TO FIX A BUG
ESTIMATING NUMBER OF BUGS
SUMMARY
CHAPTER 9. Deployment
SCOPE
THE PLAN
CUTOVER
DEPLOYMENT TASKS
DEPLOYMENT MISTAKES
SUMMARY
CHAPTER 10. Metrics
WRAP PARTY
DEFECT ANALYSIS
SOFTWARE METRICS
SUMMARY
CHAPTER 11. Maintenance
MAINTENANCE COSTS
TASK CATEGORIES
TASK EXECUTION
SUMMARY
PART II. Process Models
CHAPTER 12. Predictive Models
MODEL APPROACHES
PREREQUISITES
PREDICTIVE AND ADAPTIVE
WATERFALL
WATERFALL WITH FEEDBACK
SASHIMI
INCREMENTAL WATERFALL
V-MODEL
SYSTEMS DEVELOPMENT LIFE CYCLE
SUMMARY
CHAPTER 13. Iterative Models
ITERATIVE VERSUS PREDICTIVE
ITERATIVE VERSUS INCREMENTAL
PROTOTYPES
SPIRAL
UNIFIED PROCESS
CLEANROOM
SUMMARY
CHAPTER 14. RAD
RAD PRINCIPLES
JAMES MARTIN RAD
AGILE
XP
SCRUM
LEAN
CRYSTAL
FEATURE-DRIVEN DEVELOPMENT
AGILE UNIFIED PROCESS
DISCIPLINED AGILE DELIVERY
DYNAMIC SYSTEMS DEVELOPMENT METHOD
KANBAN
SUMMARY
APPENDIX. Solutions to Exercises
GLOSSARY
ABOUT THE AUTHOR
ABOUT THE TECHNICAL EDITOR
CREDITS
ACKNOWLEDGMENTS
WILEY END USER LICENSE AGREEMENT
Отрывок из книги
With modern development tools, it's easy to sit down at the keyboard and bang out a working program with no previous design or planning, and that's fine under some circumstances. My VB Helper (www.vb-helper.com) and C# Helper (www.csharphelper.com) websites contain thousands of example programs written in Visual Basic and C#, respectively, and built using exactly that approach. I had an idea (or someone asked me a question) and I pounded out a quick example.
Those types of programs are fine if you're the only one using them and then for only a short while. They're also okay if, as on my websites, they're intended only to demonstrate a programming technique and they never leave the confines of the programming laboratory.
.....
Often, however, things don’t go so smoothly. Deployment can be difficult, time-consuming, and expensive. For example, suppose you’ve written a new billing system to track payments from your company’s millions of customers. Deployment might involve any or all of the following:
As soon as the users start pounding away on your software, they’ll find bugs. (This is another software axiom. Bugs that were completely hidden from testers appear the instant users touch the application.)
.....