
Software Engineering for Image Processing Systems
by Laplante; Phillip A.Buy New
Rent Textbook
Rent Digital
Used Textbook
We're Sorry
Sold Out
How Marketplace Works:
- This item is offered by an independent seller and not shipped from our warehouse
- Item details like edition and cover design may differ from our description; see seller's comments before ordering.
- Sellers much confirm and ship within two business days; otherwise, the order will be cancelled and refunded.
- Marketplace purchases cannot be returned to eCampus.com. Contact the seller directly for inquiries; if no response within two days, contact customer service.
- Additional shipping costs apply to Marketplace purchases. Review shipping costs at checkout.
Summary
Author Biography
Table of Contents
Software Engineering: An Overview | p. 1 |
Introduction | p. 1 |
A Case for a Software Engineering Approach to Building Imaging Systems | p. 2 |
The Role of the Software Engineer | p. 3 |
The Nature of Software for Imaging Systems | p. 4 |
Case Study: A Visual Inspection System | p. 5 |
Misconceptions about Software Engineering | p. 7 |
Exercises | p. 8 |
Imaging Software and Its Properties | p. 9 |
Classification of Software Qualities | p. 9 |
Reliability | p. 9 |
Correctness | p. 12 |
Performance | p. 12 |
Usability | p. 13 |
Interoperability | p. 13 |
Maintainability | p. 13 |
Portability | p. 14 |
Verifiability | p. 14 |
Summary of Software Properties and Associated Metrics | p. 14 |
Basic Software Engineering Principles | p. 15 |
Rigor and Formality | p. 15 |
Separation of Concerns | p. 15 |
Modularity | p. 15 |
Anticipation of Change | p. 18 |
Generality | p. 20 |
Incrementality | p. 20 |
Traceability | p. 20 |
Exercises | p. 22 |
Software Process and Life Cycle Models | p. 23 |
Software Processes and Methodologies | p. 23 |
Software Life Cycle Models | p. 23 |
The Waterfall Model | p. 24 |
Software Conception | p. 25 |
Requirements Specification | p. 25 |
Software Design | p. 26 |
Software Development | p. 26 |
Testing | p. 27 |
Software Maintenance | p. 27 |
Backtracking Transitions in the Waterfall Life Cycle | p. 27 |
Waterfall Model Summary | p. 28 |
V Model | p. 28 |
The Spiral Model | p. 28 |
Evolutionary Model | p. 30 |
Incremental Model | p. 31 |
Fountain Model | p. 31 |
Lightweight Methodologies | p. 32 |
Unified Process Model | p. 34 |
Capability Maturity Model | p. 34 |
CMM-1: Initial | p. 34 |
CMM-2: Repeatable | p. 34 |
CMM-3: Defined | p. 35 |
CMM-4: Managed | p. 35 |
CMM-5: Optimizing | p. 35 |
CMM-I | p. 35 |
Prototyping and Risk | p. 35 |
Software Standards | p. 36 |
DOD-STD-2167A | p. 37 |
DOD-STD-498 | p. 37 |
ISO 9000-3 | p. 38 |
ISO/IEC | p. 39 |
Exercises | p. 40 |
Software Requirements | p. 41 |
Requirements Engineering Process | p. 41 |
Types of Requirements | p. 42 |
Requirements Users | p. 43 |
Formal Methods in Software Specification | p. 44 |
Limitations of Formal Methods | p. 45 |
Z | p. 46 |
Finite State Machines | p. 46 |
Statecharts | p. 49 |
Petri Nets | p. 51 |
Specification of Imaging Systems: A Survey of Current Practices | p. 53 |
Multiresolution Block-Matching System Specification Using a Block Diagram and Flowchart | p. 55 |
Collision Testing of Graphical Objects Using Pseudo-Code | p. 56 |
Functional Representation of Machine Vision System Using a Structured Approach | p. 56 |
Markov Random Fields Image Reconstruction Using Object-Oriented Design | p. 57 |
Case Study | p. 58 |
Structured Analysis and Design | p. 59 |
Structured Analysis | p. 59 |
Object-Oriented Analysis | p. 61 |
Object-Oriented vs. Structured Analysis | p. 62 |
Recommendations on Specification Approach for Imaging Systems | p. 64 |
Organizing the Requirements Document | p. 64 |
Writing Good Requirements | p. 66 |
Requirements Validation and Review | p. 67 |
Some Surprises about Current Software Specification Practices | p. 68 |
Surprise 1 | p. 68 |
Surprise 2 | p. 68 |
Surprise 3 | p. 68 |
Surprise 4 | p. 69 |
Exercises | p. 69 |
Software System Design | p. 71 |
The Design Activity | p. 71 |
Procedural-Oriented Design | p. 72 |
Parnas Partitioning | p. 72 |
Structured Design | p. 74 |
Transitioning from Structured Analysis to Structured Design | p. 74 |
Data Dictionaries | p. 76 |
Problems with SASD in Imaging Applications | p. 77 |
Real-Time Extensions of SASD | p. 78 |
Design in Procedural Form Using Finite State Machines | p. 78 |
Object-Oriented Design | p. 80 |
Benefits of Object Orientation | p. 81 |
Open-Closed Principle | p. 81 |
Once and Only Once | p. 82 |
Dependency Inversion Principle | p. 82 |
Liskov Substitution Principle | p. 82 |
Design Patterns | p. 83 |
Object-Oriented Design Using Unified Modeling Language | p. 84 |
Modeling Time Explicitly | p. 84 |
Visual Inspection System Case Study | p. 88 |
Hardware Considerations in Imaging System Design | p. 93 |
Processors | p. 94 |
Non-von Neumann Architectures | p. 95 |
Single Instruction Single Data | p. 95 |
Single Instruction Multiple Data | p. 95 |
Multiple Instruction Single Data | p. 96 |
Multiple Instruction Multiple Data | p. 96 |
Interrupt Handling | p. 96 |
Memory | p. 97 |
Input and Output | p. 97 |
Fault-Tolerant Design | p. 99 |
Spatial Fault Tolerance | p. 99 |
Using a Kalman Filter in the Case Study System | p. 99 |
Checkpoints | p. 102 |
Recovery Blocks | p. 102 |
Software Black Boxes | p. 104 |
N-Version Programming | p. 105 |
Built-In Test Software | p. 105 |
CPU Testing | p. 106 |
Memory Testing | p. 106 |
Other Devices | p. 107 |
Exercises | p. 107 |
The Software Production Process | p. 109 |
Programming Languages | p. 109 |
Parameter Passing Techniques | p. 110 |
Call-by-Value and Call-by-Reference | p. 110 |
Global Variables | p. 110 |
Recursion | p. 111 |
Dynamic Memory Allocation | p. 111 |
Typing | p. 112 |
Exception Handling | p. 112 |
Modularity | p. 113 |
Brief Survey of Languages | p. 114 |
Ada 95 | p. 114 |
Assembly Language | p. 115 |
C | p. 115 |
C++ | p. 116 |
Fortran | p. 116 |
Java | p. 117 |
Writing and Testing Code | p. 118 |
Example: The Unix/Linux C Compiler | p. 119 |
Handling Compiler Errors | p. 120 |
Some Debugging Tips: Unit-Level Testing | p. 120 |
Extended Syntax and Semantic Checking | p. 120 |
Symbolic Debugging | p. 121 |
Test-First Coding | p. 122 |
Know the Compiler | p. 122 |
Coding Standards | p. 123 |
Reviews and Audits | p. 124 |
Documentation | p. 126 |
Exercises | p. 127 |
Software Measurement and Testing | p. 129 |
The Role of Metrics | p. 129 |
Lines of Code | p. 129 |
McCabe's Metric | p. 130 |
Measuring Software Complexity | p. 130 |
Determining the Limit on Number of Test Cases | p. 132 |
Halstead's Metrics | p. 132 |
Function Points | p. 133 |
Feature Points | p. 137 |
Metrics for Object-Oriented Software | p. 137 |
Objections to Metrics | p. 138 |
Faults, Failures, and Bugs | p. 138 |
The Role of Testing | p. 139 |
Testing Techniques | p. 139 |
Unit-Level Testing | p. 139 |
Black Box Testing | p. 139 |
White Box Testing | p. 141 |
Testing Object-Oriented Software | p. 142 |
System-Level Testing | p. 142 |
Cleanroom Testing | p. 143 |
Stress Testing | p. 143 |
Design of Testing Plans | p. 144 |
Exercises | p. 144 |
Hardware-Software Integration and Maintenance | p. 145 |
Goals of System Integration | p. 145 |
System Unification | p. 145 |
System Verification | p. 146 |
System Integration Tools | p. 146 |
Multimeter | p. 147 |
Oscilloscope | p. 147 |
Logic Analyzer | p. 147 |
Timing Instructions | p. 148 |
Timing Code | p. 148 |
In-Circuit Emulator | p. 149 |
Software Simulators | p. 149 |
Hardware Prototypes | p. 149 |
Software Integration | p. 150 |
A Simple Integration Strategy | p. 150 |
Patching | p. 150 |
The Probe Effect | p. 152 |
Postintegration Software Optimization | p. 153 |
CPU Utilization Estimation | p. 153 |
Execution Time Estimation | p. 154 |
Scaled Numbers | p. 154 |
Binary Angular Measure | p. 155 |
Look-Up Tables | p. 155 |
Imprecise Computation | p. 157 |
Optimizing Memory Usage | p. 157 |
A Software Reengineering Process Model | p. 157 |
A Maintenance Process Model | p. 158 |
Software Reuse | p. 159 |
When Not to Reuse | p. 160 |
Achieving Reuse | p. 160 |
In Procedural Languages | p. 161 |
In Object-Oriented Languages | p. 162 |
Pareto's Principle | p. 162 |
The Second System Effect | p. 162 |
Code and Program Maintenance | p. 163 |
Exercises | p. 163 |
Management of Software Projects | p. 165 |
Why Software Project Management? | p. 165 |
Software Project Management Themes | p. 166 |
General Project Management Basics | p. 166 |
What Does the Project Manager Control? | p. 166 |
Software Project Management | p. 167 |
Managing and Mitigating Risks | p. 168 |
Personnel Management | p. 169 |
The n-Body Problem | p. 170 |
Some Approaches to Leading Teams | p. 171 |
Theory X | p. 171 |
Theory Y | p. 171 |
Theory Z | p. 171 |
Theory W | p. 172 |
Principle-Centered Leadership | p. 173 |
Management by Sight | p. 173 |
Management by Objectives | p. 173 |
Dealing with Difficult People | p. 174 |
Assessment of Project Personnel | p. 174 |
Skills Testing | p. 174 |
Recommended Practices | p. 175 |
Tracking and Reporting Progress | p. 177 |
Gantt Chart | p. 177 |
Critical Path Method | p. 178 |
Program Evaluation and Review Technique | p. 179 |
Cost Estimation Using COCOMO | p. 180 |
Basic COCOMO | p. 180 |
Intermediate and Detailed COCOMO | p. 182 |
COCOMO II | p. 183 |
Exercises | p. 183 |
Glossary | p. 185 |
References | p. 203 |
Index | p. 209 |
Table of Contents provided by Ingram. All Rights Reserved. |
An electronic version of this book is available through VitalSource.
This book is viewable on PC, Mac, iPhone, iPad, iPod Touch, and most smartphones.
By purchasing, you will be able to view this book online, as well as download it, for the chosen number of days.
Digital License
You are licensing a digital product for a set duration. Durations are set forth in the product description, with "Lifetime" typically meaning five (5) years of online access and permanent download to a supported device. All licenses are non-transferable.
More details can be found here.
A downloadable version of this book is available through the eCampus Reader or compatible Adobe readers.
Applications are available on iOS, Android, PC, Mac, and Windows Mobile platforms.
Please view the compatibility matrix prior to purchase.