C A Software Engineering Approach - Peter A. Darnell, Philip E. Margolis

C A Software Engineering Approach

Buch | Softcover
498 Seiten
1996 | 3rd ed. 1996
Springer-Verlag New York Inc.
978-0-387-94675-7 (ISBN)
85,59 inkl. MwSt
to Software Engineering For 'tis the sport to have the engineer Hoist with his own petar. Shakespeare, Hamlet In the previous chapter, we introduced same basic information about pro­ gramming and programming languages, particularly C. If this were a book about building bridges, this first chapter might have been an introduction to the tools you would neeci-hammer, saw, drill, etc. Obviously there is a lot more to building a good bridge than simply knowing how to use the tools. Similarly, creating software products requires considerably more skill than simply wielding the programming tools. There is an entire discipline called software engineering that deals with designing, creating, testing, and maintaining large software products. In this chapter we introduce some key software engineering themes, many of which we will revisit through­ out the course of the book. 10 2: Introduction to Software Engineering 2.1 Introduction Though the cost of computer hardware-the silicon chips containing the millions of transistors that form the instruction set and memories-has shown a consistent trend downward over the years, the cost of software has not followed suit. The high cost of software is due largely (and para­ doxically) to the ease and flexibility with which it can be shaped.

1: Introduction to Programming.- 1.1 High-Level Programming Languages.- 1.2 History of C.- 1.3 ANSI and ISO Standards.- 1.4 Nature of C.- 2: Introduction to Software Engineering.- 2.1 Introduction.- 2.2 Stages of Software Production.- 2.3 Product Specification.- 2.4 Architectural Design.- 2.5 Project Planning.- 2.6 Detailed Design.- 2.7 Coding.- 2.8 Debugging.- 2.9 Testing.- 2.10 Maintenance.- 2.11 The Bridge Metaphor.- 3: C Essentials.- 3.1 Program Development.- 3.2 Functions.- 3.3 Variables and Constants.- 3.4 Names.- 3.5 Expressions.- 3.6 Formatting Source Files.- 3.7 The main() Function.- 3.8 The printf() Function.- 3.9 The scanf() Function.- 3.10 The Preprocessor.- 3.11 Exercises.- 4: Scalar Data Types.- 4.1 Declarations.- 4.2 Different Kinds of Integer Constants.- 4.3 Floating-Point Types.- 4.4 Scientific Notation.- 4.5 Initialization.- 4.6 Mixing Types.- 4.7 Explicit Conversions—Casts.- 4.8 Enumeration Types.- 4.9 The void Data Type.- 4.10 Typedefs.- 4.11 Finding the Address of an Object.- 4.12 Introduction to Pointers.- 4.13 Exercises.- 5: Control Flow.- 5.1 Conditional Branching.- 5.2 The switch Statement.- 5.3 Looping.- 5.4 Nested Loops.- 5.5 A Simple Calculator Program.- 5.6 The break and continue Statements.- 5.7 The goto Statement.- 5.8 Infinite Loops.- 5.9 Exercises.- 6: Operators and Expressions.- 6.1 Precedence and Associativity.- 6.2 Unary Plus and Minus Operators.- 6.3 Binary Arithmetic Operators.- 6.4 Arithmetic Assignment Operators.- 6.5 Increment and Decrement Operators.- 6.6 Comma Operator.- 6.7 Relational Operators.- 6.8 Logical Operators.- 6.9 Bit-Manipulation Operators.- 6.10 Bitwise Assignment Operators.- 6.11 Cast Operator.- 6.12 sizeof Operator.- 6.13 Conditional Operator (?:).- 6.14 Memory Operators.- 6.15 Exercises.- 7: Arrays andPointers.- 7.1 Declaring an Array.- 7.2 How Arrays Are Stored in Memory.- 7.3 Initializing Arrays.- 7.4 Example: Encryption and Decryption.- 7.5 Pointer Arithmetic.- 7.6 Passing Pointers as Function Arguments.- 7.7 Accessing Array Elements Through Pointers.- 7.8 Passing Arrays as Function Arguments.- 7.9 Sorting Algorithms.- 7.10 Strings.- 7.11 Multidimensional Arrays.- 7.12 Arrays of Pointers.- 7.13 Pointers to Pointers.- 7.14 Exercises.- 8: Storage Classes.- 8.1 Fixed vs. Automatic Duration.- 8.2 Scope.- 8.3 Global Variables.- 8.4 The register Specifier.- 8.5 The const Storage-Class Modifier.- 8.6 The volatile Storage-Class Modifier.- 8.7 Summary of Storage Classes.- 8.8 Dynamic Memory Allocation.- 8.9 Exercises.- 9: Structures and Unions.- 9.1 Structures.- 9.2 Linked Lists.- 9.3 Unions.- 9.4 enum Declarations.- 9.5 Exercises.- 10: Functions.- 10.1 Passing Arguments.- 10.2 Declarations and Calls.- 10.3 Pointers to Functions.- 10.4 Recursion.- 10.5 The main() Function.- 10.6 Complex Declarations.- 10.7 Exercises.- 11: The C Preprocessor.- 11.1 Macro Substitution.- 11.2 Conditional Compilation.- 11.3 Include Facility.- 11.4 Line Control.- 11.5 Exercises.- 12: Input and Output.- 12.1 Streams.- 12.2 Buffering.- 12.3 The Header File.- 12.4 Opening and Closing a File.- 12.5 Reading and Writing Data.- 12.6 Selecting an I/O Method.- 12.7 Unbuffered I/O.- 12.8 Random Access.- 12.9 Exercises.- 13: Software Engineering—A Case Study.- 13.1 Style Review.- 13.2 Product Specification.- 13.3 Architectural Design.- 13.4 Project Planning.- 13.5 Detailed Design.- 13.6 Software Tools for Software Production.- 13.7 Documentation.- 13.8 Exercises.- Appendices.- A: The ANSI Runtime Library.- A.1 Function Names.- A.2 Header Files.- A.3 Synopses.- A.4 Functions vs. Macros.- A.5 ErrorHandling.- A.6 Diagnostics.- A.7 Character Handling.- A.8 Setting Locale Parameters.- A.9 Mathematics.- A.10 Nonlocal Jumps.- A.11 Signal Handling.- A.12 Variable Argument Lists.- A.13 I/O Functions.- A.14 General Utilities.- A.15 String-Handling Functions.- A.16 Multibyte Character Functions.- A.17 Date and Time Functions.- B: Implementation Limits.- B.1 Translation Limits.- B.2 Numerical Limits.- C: Differences Between the ANSI and K&R Standards.- C.1 Source Translation Differences.- C.2 Data Type Differences.- C.3 Statement Differences.- C.4 Expression Differences.- C.5 Storage Class and Initialization Differences.- C.6 Preprocessor Differences.- D: Reserved Names.- E: ASCII Codes.

Zusatzinfo 191 Illustrations, black and white; XXVIII, 498 p. 191 illus.
Verlagsort New York, NY
Sprache englisch
Maße 178 x 254 mm
Themenwelt Mathematik / Informatik Informatik Programmiersprachen / -werkzeuge
Mathematik / Informatik Informatik Software Entwicklung
Informatik Theorie / Studium Compilerbau
ISBN-10 0-387-94675-6 / 0387946756
ISBN-13 978-0-387-94675-7 / 9780387946757
Zustand Neuware
Haben Sie eine Frage zum Produkt?
Mehr entdecken
aus dem Bereich
Grundlagen und Anwendungen

von Hanspeter Mössenböck

Buch | Softcover (2024)
dpunkt (Verlag)
29,90
a beginner's guide to learning llvm compiler tools and core …

von Kai Nacke

Buch | Softcover (2024)
Packt Publishing Limited (Verlag)
47,35