𝔖 Scriptorium
✦   LIBER   ✦

📁

What Every Engineer Should Know about Software Engineering

✍ Scribed by Philip A. Laplante


Publisher
CRC Press
Year
2007
Tongue
English
Leaves
330
Category
Library

⬇  Acquire This Volume

No coin nor oath required. For personal study only.

✦ Synopsis


Do you…

  • Use a computer to perform analysis or simulations in your daily work?
  • Write short scripts or record macros to perform repetitive tasks?
  • Need to integrate off-the-shelf software into your systems or require multiple applications to work together?
  • Find yourself spending too much time working the kinks out of your code?
  • Work with software engineers on a regular basis but have difficulty communicating or collaborating? If any of these sound familiar, then you may need a quick primer in the principles of software engineering. Nearly every engineer, regardless of field, will need to develop some form of software during their career. Without exposure to the challenges, processes, and limitations of software engineering, developing software can be a burdensome and inefficient chore. In What Every Engineer Should Know about Software Engineering, Phillip Laplante introduces the profession of software engineering along with a practical approach to understanding, designing, and building sound software based on solid principles. Using a unique question-and-answer format, this book addresses the issues and misperceptions that engineers need to understand in order to successfully work with software engineers, develop specifications for quality software, and learn the basics of the most common programming languages, development approaches, and paradigms.
  • ✦ Table of Contents


    Cover......Page 0
    What Every Engineer Should Know about Software Engineering......Page 6
    ISBN-13: 9780849372285......Page 7
    What Every Engineer Should Know: Series Statement......Page 8
    How is this book different from other software engineering books?......Page 10
    Did anyone help you with this book?......Page 11
    Are there copyrights and trademarks to be cited?......Page 12
    Can you tell me about yourself?......Page 13
    Table of Contents......Page 14
    What is software engineering?......Page 18
    What is the difference between software engineering and systems engineering?......Page 19
    What is the role of the software engineer?......Page 20
    What kind of education do software engineers need?......Page 21
    Why are there so many software engineers without the proper education?......Page 22
    There are many proprietary certifications for software engineering practitioners. Are any of these valuable to a software engineer?......Page 23
    Are there standards for software engineering practices, documentation, and so forth?......Page 24
    Product Standards......Page 25
    What is the Software Engineering Body of Knowledge?......Page 26
    Are there any “fundamental theorems” of software engineering?......Page 28
    Why is software so buggy and unreliable?......Page 29
    Aren’t errors an unavoidable side effect of software development?......Page 30
    1.5 Further Reading......Page 31
    2.1 Introduction......Page 32
    What is “software reliability”?......Page 33
    What is a “bathtub curve”?......Page 34
    How do we characterize software usability?......Page 36
    What are the advantages of an open system?......Page 37
    What is “verifiability”?......Page 38
    Are there other software qualities?......Page 39
    Isn’t every software process model just an abstraction?......Page 40
    How many phases should the waterfall model have?......Page 41
    What happens during the software design phase of the waterfall process model?......Page 43
    What happens during the testing phase of the waterfall process model?......Page 44
    What is the V model for software?......Page 45
    What is the spiral model for software?......Page 46
    What are evolutionary models?......Page 47
    Why use the incremental model?......Page 48
    Where is the UPM used?......Page 49
    What is Extreme Programming?......Page 50
    What are some of the practices of XP?......Page 51
    When should agile methodologies be used?......Page 52
    All of these process models look rather simplistic, artificial, or too prescriptive. Should they really be used?......Page 53
    What is the DOD-STD-498 standard?......Page 54
    What is in the ISO 9000-3 standard?......Page 55
    What is ISO/IEC standard 12207?......Page 56
    2.5 Further Reading......Page 57
    3.1 Introduction......Page 60
    What are the core requirements engineering activities?......Page 61
    What are user requirements specifications?......Page 62
    What are functional requirements?......Page 63
    What are design constraint requirements?......Page 64
    What is requirements elicitation?......Page 65
    What is JAD?......Page 66
    What are some of the ground rules for JAD sessions?......Page 67
    What is QFD?......Page 68
    But doesn’t the customer have to have teaching ability for this technique to work?......Page 69
    Why can’t requirements just be communicated in English?......Page 70
    What is a structured language specification?......Page 71
    What are use cases?......Page 72
    What are user stories?......Page 73
    What are informal and semiformal methods?......Page 74
    What are some of the formal methods techniques?......Page 75
    How are FSAs represented?......Page 76
    Can you give an example of an FSM?......Page 77
    Can you give an example of a Mealy machine?......Page 78
    What are statecharts?......Page 79
    What is the advantage of using statecharts over FSMs?......Page 80
    What is a chain reaction?......Page 81
    When are petri nets used in requirements analysis and specification?......Page 82
    Are their drawbacks to the use of formal methods?......Page 83
    What is structured analysis and structured design?......Page 86
    Can you give an example of SA?......Page 87
    When is it appropriate to use OOA vs. SA?......Page 88
    Who uses the requirements documents?......Page 89
    How do you represent specific requirements in the SRS?......Page 90
    What does a traceability matrix look like?......Page 92
    Are there special challenges when engineers specify software systems?......Page 93
    What wording is appropriate in requirements specifications?......Page 94
    What is requirements triage?......Page 95
    How are requirements validated?......Page 96
    How does the tool measure specification depth?......Page 97
    3.8 Further Reading......Page 98
    4.1 Introduction......Page 100
    What are the principal activities of software design?......Page 101
    Can modular design lead to separation of concerns?......Page 102
    What is cohesion?......Page 103
    What is coupling?......Page 105
    How do I do Parnas partitioning?......Page 107
    Can you give an example of Parnas partitioning?......Page 108
    How does incrementality manifest in software design?......Page 109
    What are some typical software architectures?......Page 110
    How do I go from SA to SD?......Page 111
    Can you give an example?......Page 113
    What is a data dictionary?......Page 114
    Are there any problems with SDs?......Page 115
    Can I use FSMs to derive a design?......Page 116
    What is OOD?......Page 117
    The Liskov Substitution Principle......Page 118
    How does the UML help us with software design?......Page 119
    What is the UML 2.0?......Page 120
    What are the benefits of patterns?......Page 121
    What are the “GRASP” patterns?......Page 122
    What are structural patterns?......Page 125
    How do I achieve traceability from requirements through design and testing?......Page 126
    4.6 Further Reading......Page 128
    5.1 Introduction......Page 130
    So how many programming languages are there?......Page 131
    Then what are object-oriented languages?......Page 132
    What do you mean by visible features of programming languages?......Page 133
    What about global variables?......Page 134
    Are there any drawbacks to recursive algorithm formulations?......Page 135
    What is meant by “strong typing” in a programming language?......Page 136
    Which languages have the best exception handling facilities?......Page 137
    Do object-oriented languages support a form of modularity?......Page 138
    Is Ada still used?......Page 139
    C is my favorite programming language. When can it be used?......Page 140
    When should C++ be used?......Page 141
    What about Java?......Page 142
    What are the differences between Java and C++?......Page 143
    It’s pretty easy to learn an object-oriented language, isn’t it?......Page 144
    What is a compiler?......Page 145
    Can you describe further the compilation process?......Page 146
    Do you have any debugging tips?......Page 147
    Is there any way to automatically debug code?......Page 148
    What is a source code control system?......Page 149
    What are in-circuit emulators?......Page 150
    What about other tools?......Page 151
    What is the conditional logic code smell?......Page 152
    What are data clumps?......Page 153
    What are dubious constraints?......Page 154
    What are lazy methods and lazy procedure?......Page 155
    What is the one big loop code smell and how is it refactored?......Page 156
    What are tell-tale comments?......Page 157
    How can I improve the run-time performance of the code I write?......Page 158
    What do coding standards look like?......Page 159
    5.5 Further Reading......Page 160
    6.1 Introduction......Page 162
    What is software quality?......Page 163
    What is the history of the CMM?......Page 164
    What are the levels of CMM?......Page 165
    What is CMM Level 2?......Page 166
    What is CMM Level 4?......Page 167
    How can my organization use the CMM?......Page 168
    Are there “conventional” objections to using the CMM?......Page 169
    What is ISO 9000?......Page 170
    Are there any similarities between ISO 9000-3 and CMM?......Page 171
    What is Six Sigma?......Page 172
    How does ITIL help with software quality management?......Page 173
    without triggering a slash-and-burn frenzy?......Page 174
    What is the role of testing with respect to software quality?......Page 175
    What is a good test?......Page 176
    What is unit level testing?......Page 177
    What is boundary value testing?......Page 178
    Are there any disadvantages to black box testing?......Page 179
    What is DU path testing?......Page 180
    What is formal program proving?......Page 181
    What is bottom-up testing?......Page 182
    What kinds of interfaces can be tested?......Page 184
    What kinds of errors can occur at the interfaces?......Page 186
    How can clusters of cooperating objects be tested?......Page 187
    What is beta testing?......Page 188
    What is software fault injection?......Page 189
    How do I write a test plan?......Page 190
    What are some motivations for measurement?......Page 191
    What is the delta lines of code metric?......Page 192
    Can you help me visualize the cyclomatic complexity?......Page 193
    What are Halstead’s metrics?......Page 194
    What are the primary drivers for FPs?......Page 195
    What are feature points?......Page 196
    What are commonly used class level metrics?......Page 197
    What are use case points?......Page 198
    Can you give a simple example?......Page 199
    What are recovery blocks?......Page 200
    What are software black boxes?......Page 201
    Should built-in-test software test memory?......Page 202
    What is an appropriate model for software reengineering?......Page 203
    Since you like models so much, can you give me a maintenance process model?......Page 204
    What is software reuse?......Page 205
    Are there special techniques for achieving reuse in procedural languages?......Page 206
    What is the “Second System Effect?”......Page 207
    6.7 Further Reading......Page 208
    7.1 Introduction......Page 210
    How does team chemistry involve software projects?......Page 211
    What is Theory X?......Page 212
    What is Theory W?......Page 213
    What is Principle Centered Leadership?......Page 214
    How do I deal with difficult people?......Page 215
    The principle of job matching:......Page 216
    I want to select the right people, but how is it done in the software industry?......Page 217
    You don’t seem to like these tests. How do I assess the potential of a candidate besides checking references?......Page 218
    How should I reference-check a potential hire?......Page 219
    How do I manage agile development teams?......Page 220
    What is a project?......Page 221
    What does the software project manager control?......Page 222
    How does the project manager put all of these control factors together?......Page 223
    What is a work breakdown structure and why is it important to project tracking?......Page 224
    What is a Gantt chart?......Page 225
    How can the Gantt chart be used for ongoing project management?......Page 226
    What are the steps in CPM planning?......Page 227
    Can you illustrate the technique using the baggage inspection system?......Page 228
    Are there any downsides to using PERT?......Page 229
    What is basic COCOMO?......Page 231
    What about the intermediate and detailed COCOMO models?......Page 232
    What is the effort adjustment factor?......Page 233
    What is COCOMO II?......Page 234
    What is WEBMO?......Page 236
    What is an example of a project ROI justification?......Page 237
    What is NPV and how can I use it?......Page 238
    What is an IRR?......Page 239
    How can using PI suboptimize the decision?......Page 240
    What is discounted payback?......Page 241
    Is there a predictive model for the likelihood of any of these risks?......Page 242
    Do you have any other advice about management risk in software projects?......Page 243
    7.8 Further Reading......Page 245
    What is OSS?......Page 248
    What kinds of code can be found as open source?......Page 249
    Who contributes to OSS systems?......Page 250
    What is software evolution?......Page 251
    How does software requirements engineering occur in OSS?......Page 252
    What is software archeology?......Page 253
    Can you give an example of an archeological study?......Page 254
    What is outsourcing?......Page 259
    To whom should you outsource?......Page 260
    When should outsourcing be done and at what stage of the process?......Page 261
    Do you have any rules of thumb for outsourcing and offshoring?......Page 262
    What software process can be used for GSD?......Page 263
    What are the challenges for GSD?......Page 264
    8.5 Further Reading......Page 265
    A.1.2 Scope......Page 268
    Detention basin......Page 269
    Wet well......Page 270
    A.2.1 Wet Well Overview......Page 271
    Pump Control Unit......Page 273
    Control Display Panel......Page 274
    A.2.3 Product Functions......Page 275
    A.3.1 External Interface Requirements......Page 276
    A.3.2.1 Pump Control Unit......Page 277
    A.3.2.2 Control Display Panel......Page 278
    A.3.2.5 Methane Sensor......Page 279
    A.4 References......Page 280
    B.1.2 Scope......Page 282
    B.2.1 Wet Well Overview......Page 283
    B.3.1 Class Model......Page 285
    B.3.2.1 CWetWellSimulator......Page 289
    B.3.2.3 CXmlData......Page 290
    B.3.2.4 CWetWellSimulationData......Page 291
    B.3.2.9 CMethaneState......Page 292
    Methane Sensors Reliability......Page 295
    Methane Sensor Reading Period......Page 296
    B.3.2.14 CWaterSensorRelay......Page 297
    B.3.2.16 CPumpSensor......Page 298
    B.3.2.18 CVentilationState......Page 299
    B.3.3 Sequence Diagram......Page 300
    B.4 References......Page 302
    Appendix C: Object Models for a Wastewater Pumping Station Wet Well Control System......Page 304
    Index......Page 310


    📜 SIMILAR VOLUMES


    What Every Engineer Should Know about So
    ✍ Philip A. Laplante 📂 Library 📅 2007 🏛 CRC Press 🌐 English

    Do you…Use a computer to perform analysis or simulations in your daily work?Write short scripts or record macros to perform repetitive tasks?Need to integrate off-the-shelf software into your systems or require multiple applications to work together?Find yourself spending too much time working the k

    What Every Engineer Should Know about So
    ✍ Phillip A. Laplante, Mohamad Kassab 📂 Library 📅 2022 🏛 CRC Press 🌐 English

    <p><span>This book offers a practical approach to understanding, designing, and building sound software based on solid principles. Using a unique Q&amp;A format, this book addresses the issues that engineers need to understand in order to successfully work with software engineers, develop specificat

    What Every Engineer Should Know about So
    ✍ Philip A. Laplante 📂 Library 📅 2007 🏛 Taylor & Francis 🌐 English

    Do you… <li>Use a computer to perform analysis or simulations in your daily work? </li><li>Write short scripts or record macros to perform repetitive tasks? </li><li>Need to integrate off-the-shelf software into your systems or require multiple applications to work together? </li><li>Find yourself s

    What Every Engineer Should Know About Bu
    ✍ John X. Wang 📂 Library 📅 2008 🌐 English

    Engineers must possess a range of business communication skills that enable them to effectively communicate the purpose and relevance of their idea, process, or technical design. This unique business communication text is packed with practical advice that will improve your ability to—             

    What every engineer should know about co
    ✍ Thomas A. Salomone 📂 Library 📅 1995 🏛 M. Dekker 🌐 English

    This work offers a step-by-step approach to the overall concurrent engineering (CE) development process, presenting both fundamental principles and advanced concepts, while focusing on rapid product development and cost-effective designs. The book also provides an introduction to Cost Driven Design,

    What Every Engineer Should Know about Co
    ✍ Thomas A. Salomone (Author) 📂 Library 📅 1995 🏛 Routledge

    <p>This work offers a step-by-step approach to the overall concurrent engineering (CE) development process, presenting both fundamental principles and advanced concepts, while focusing on rapid product development and cost-effective designs. The book also provides an introduction to Cost Driven Desi