Muutke küpsiste eelistusi

Developing Real-time Embedded Software in a Market-driven Company [Pehme köide]

  • Formaat: Paperback / softback, 352 pages, kõrgus x laius: 233x190 mm, kaal: 765 g
  • Sari: Wiley Series in Software Engineering Practice
  • Ilmumisaeg: 01-Apr-1994
  • Kirjastus: John Wiley & Sons Inc
  • ISBN-10: 0471594598
  • ISBN-13: 9780471594598
Teised raamatud teemal:
  • Formaat: Paperback / softback, 352 pages, kõrgus x laius: 233x190 mm, kaal: 765 g
  • Sari: Wiley Series in Software Engineering Practice
  • Ilmumisaeg: 01-Apr-1994
  • Kirjastus: John Wiley & Sons Inc
  • ISBN-10: 0471594598
  • ISBN-13: 9780471594598
Teised raamatud teemal:
Avoiding the usual overkill standards and methods used for larger-scale military or aerospace applications, shows how to analyze software for adherence to performance requirements early in the development process, make concise design documentation a natural product of the engineering process, make all documentation accurate and useable, and reduce the time it takes to get a system to market. Annotation copyright Book News, Inc. Portland, Or.

An accessible, simple, how-to handbook that addresses the needs of people who don't have time to learn a new way of doing things, referring instead to the most established design methodologies available. Organized around the application of a realistic case study, a disk controller for SCSI device, it clearly explains how to make useful, concise, design documentation a natural by-product of the engineering process. Also plans the performance analysis and testing phases of development.
Preface xiii
Introduction
1(6)
Design Approach
2(1)
Roadmap to the Case Study Development
2(1)
Introduction of the Case Study Problem
3(1)
Case Study Overview
4(1)
Structure of the Material
5(1)
Alternative Reading Approaches
5(1)
Summary
6(1)
What's Next
6(1)
Life Cycle for Real-Time Software
7(10)
Requirements Analysis
8(1)
Design Phase
9(1)
Organizing Knowledge
9(1)
Top-Level Architecture
9(1)
Performance Analysis
10(2)
Analyzing Scenarios
10(1)
Analyzing the System
11(1)
Planning Tasks and Selecting a Scheduling Algorithm
11(1)
Component Specification
12(1)
Coding
13(1)
Development Testing
13(1)
Unit Testing
13(1)
Integration Test
13(1)
Software Acceptance Testing
14(1)
Maintenance
14(1)
Summary
14(1)
What's Next
15(2)
Requirements Analysis Phase
17(18)
Describing the Product
17(1)
Design Goals
18(1)
Understanding the Environment
19(1)
A System Point of View
19(1)
A Hardware View
19(1)
Putting on Software Hats
20(5)
Identifying Boundaries
20(3)
Identifying Events
23(1)
Putting It Together
24(1)
Understanding the Operational Concept
25(2)
Completing the Context Diagram
27(1)
Understanding Error Handling
27(4)
Understanding Operational States
31(2)
Understanding Timing Constraints
33(1)
Summary
33(1)
What's Next
33(2)
Design Phase: Organizing Knowledge
35(10)
Restating Hardware Specs
36(1)
Understanding of Operations Sequences
37(4)
Operating System Assumptions
41(1)
Summary
42(1)
What's Next
42(3)
Design Phase: Top-Level Architecture
45(20)
Concurrency
46(2)
Fleshing Out the Interfaces
48(3)
Identifying Objects
51(6)
Identifying Attributes
52(1)
Relationships Between Objects
53(3)
Allocating Objects to Components
56(1)
Specifying Object Services
56(1)
Usage Scenarios Again
57(2)
Interprocess Communication
59(3)
Final Functional/Concurrency View
62(1)
Summary
63(1)
What's Next
64(1)
Performance Analysis: Analyzing a Scenario
65(18)
Background
66(1)
Walking Through a Usage Scenario
67(4)
Simple Model of System
71(1)
Pseudo Operations
72(1)
Gathering Numbers
73(1)
Defining Basic Resources and Pseudo Operations
74(1)
Characterizing the Basic Nodes
75(1)
Final Calculation for Scenario
75(3)
Analysis of Pseudo Operations
78(1)
Sensitivity Analysis
79(2)
Summary
81(1)
What's Next
81(2)
Performance Analysis: More Scenarios
83(8)
Walking Through Another Usage Scenario
83(3)
Characterizing the Basic Nodes
86(1)
Final Calculation for Scenario
86(1)
Analysis of Pseudo Operations
86(1)
Sensitivity Analysis
87(2)
Summary
89(1)
What's Next
89(2)
Performance Analysis: Analyzing the System
91(12)
System Model Analysis
93(1)
Average Service Time Calculation
94(1)
Resource Utilization Calculation
95(2)
Throughput Calculation for a Job Mix
97(1)
Elapsed Time Calculations
97(2)
System ``What-If''
99(1)
Conclusions
99(1)
Summary
99(1)
What's Next
99(4)
Tasking and Scheduling: Theory
103(18)
Framework
103(1)
Defining Terms
104(1)
Simple Periodic Tasking
104(4)
Earliest Deadline First Scheduling
108(1)
Adding Sporadic Tasks
108(1)
Handling Sporadic Events ``Periodically''
109(1)
Resource Sharing with Periodic Tasks Using Fixed Priorities
109(4)
Resource Sharing with Periodic Tasks Using EDF
113(3)
Resource Sharing with Sporadic Tasks
116(2)
Static VS. Dynamic Scheduling
118(1)
Summary
119(1)
What's Next
119(2)
Component Design
121(22)
Component Design---Responsibilities
122(1)
Component Design---Simple Components
123(2)
Component Design---State Machines
125(8)
Component Design---Interrupt Service Routines
133(1)
Add Services to the Objects
134(1)
Startup/Shutdown Requirements
134(2)
Exception Handling
136(1)
Revisit Earlier Diagrams
137(3)
Summary
140(2)
What's Next
142(1)
Tasking and Scheduling: Case Study
143(10)
Determining Which Tasking Model Applies
144(1)
Characterizing the Tasks
144(4)
Performing the Analysis
148(2)
Augmenting the Real-Time OS Scheduler
150(2)
Summary
152(1)
What's Next
152(1)
Development Testing
153(16)
Unit Test Planning
154(1)
Integration Test Planning
154(1)
Outlining the Increments
155(1)
Adding Detail
156(9)
Regression Testing
165(2)
Summary
167(1)
What's Next
167(2)
Software Engineering Concepts: Project Management
169(18)
Life Cycle
169(4)
Waterfall Model
170(1)
Spiral Model
171(1)
Incremental Model
171(1)
Process Architecture
172(1)
Recommendations
173(1)
Configuration Management
173(4)
Source Code Control
174(2)
Change Control
176(1)
Recommendations
177(1)
Quality Assurance
177(6)
Reviews
178(2)
Testing
180(2)
Metrics
182(1)
Recommendations
182(1)
Case Tools
183(1)
Documentation Standards and Guidelines
183(2)
Thoughts
184(1)
Recommendations
185(1)
Summary
185(1)
What's Next
185(2)
Software Engineering Concepts: Methodologies
187(14)
Structured Nonreal-Time Methods
187(2)
Structured Programming
188(1)
Structured Design
188(1)
Information Hiding
188(1)
Structured Analysis
189(1)
Object-Oriented Methods
189(3)
Object-Oriented Design (OOD)
189(1)
The Information Model
190(1)
Object Life Cycles
190(1)
Classes vs. Objects
190(1)
Use of Scenarios
191(1)
Thoughts
191(1)
Real-Time Methods
192(3)
Ward-Mellor Method
192(1)
Hatley-Pirbhai Method
193(1)
Darts
193(2)
Shumate-Keller
195(1)
Thoughts
195(1)
Issues
195(4)
The Functional vs. Object-Oriented Analysis Controversy
196(1)
Transition from Analysis to Design
196(1)
Real-Time Recursive Design
197(1)
Thoughts
198(1)
Summary
199(1)
What's Next
199(2)
Concepts for Real-Time Systems
201(8)
Multitasking
202(1)
Schedulers
202(1)
Event Flags
203(1)
Mailboxes and Message Queues
203(1)
Semaphores
203(1)
Interrupt Handling
204(1)
Summary
204(1)
What's Next
205(4)
Appendix A Software Requirements Specification 209(16)
Appendix B Peer Review Packet: Top-Level Design 225(24)
Appendix C Software Architecture Document 249(40)
Appendix D Performance Analysis Report 289(28)
Appendix E Software Integration Test Plan 317(16)
Appendix F Notation for Software Execution Graphs 333(4)
References 337(4)
Index 341