Software engineering with Java

副标题:无

作   者:(美)[S.R.沙赫]Stephen R.Schach著

分类号:

ISBN:9787111067146

微信扫一扫,移动浏览光盘

简介

   Stephen R. Schach: Software Engineering with JAVA.    Copyright ?1998 by The McGraw-Hill Companies, Inc. All rights reserved. Jointlypublished by China Machine Press/McGraw-Hill. This edition may be sold in the People Republic of China only. This book cannot be re-exported and is not for sale outside the People Republic of China.   

目录

contents

prologue 1

part i

introduction to the

software process 3

chaptir i

scope of software engineering 5

1.1 historical aspects 6

1.2 economic aspects 9

1.3 maintenance aspects 10

1.4 specification and design aspects 14

1.5 team programming aspects 16

1.6 the object-oriented paradigm 17

1.7 terminology 22

chapter review 24

for further reading 25

problems 26

references 27

chapter 2

the software process and

.its problems 30

2.1 client, developer, and user 32

2.2 requirements phase 33

2.2.1 requirements phase testing 34

2.3 specification phase 35

2.3.1 specification phase testing 36

2.4 planning phase 36

2.4.1 planning phase testing 37

2.5 design phase 38

2.5.1 design phase testing 39

2.6 implementation phase 39

2.6.1 implementation phase testing 39

2.7 integration phase 40

2.7.1 integration phase testing 40

2.8 maintenance phase 41

2.8.1 maintenance phase testing 42

2.9 retirement 42

2.10 problems with software production:

essence and accidents 43

2.10.1 complexity 44

2.10.2 conformity 46

2.10.3 changeability 47

2.10.4 invisibility 48

2.10.5 no silver bullet? 49

chapter review 50

for further reading 50

problems 51

references 52

chapter 3

software life-cycle models 53

3.1 build-and-fix model 53

3.2 waterfall model 54

3.2.1 analysis of the waterfall model 57

3.3 rapid prototyping model 59

3.3.1 integrating the waterfall and rapidprototyping models 61

3.4 incremental model 61

3.4.1 analysis of the incrementalmodel 63

3.5 spiral model 66

3.5.1 analysis of the spiral model 70

3.6 comparison of life-cycle models 71

3.7 capability maturity model 71

3.8 iso 9000 75

chapter review 76

for further reading 77

problems 78

references 78

chapter 4

stepwise refinement, case, and

other tools of the trade 82

4.1 stepwise refinement 82

4.1.1 stepwise refinement example 83

4.2 cost-benefit analysis 89

4.3 case (computer-aided software

engineering) 90

4.3.1 taxonomy of case 90

4.4 scope of case 92

4.5 software versions 96

4.5.1 revisions 96

4.5.2 variations 97

4.6 configuration control 98

4.6.1 configuration control during product

maintenance 100

4.6.2 baselines 101

4.6.3 configuration control during product

development 10 1

4.7 build tools 102

4.8 productivity gains with case

technology 103

4.9 software metrics 103

chapter review 105

for further reading 105

problems 106

references 108

chapter 5

testing principles 110

5.1 quality issues iii

5.1.1 software quality assurance i 11

5.1.2 managerial independence 112

5.2 nonexecution-based testing 113

5.2.1 walkthroughs 113

5.2.2 managing walkthroughs 114

5.2.3 inspections 115

5.2.4 comparison of inspections and

walkthroughs 117

5.2.5 metrics for inspections 118

5.3 execution-based testing 118

5.4 what should be tested? 119

5.4.1 utility 120

5.4.2 reliability 120

5.4.3 robustness 121

5.4.4 performance 121

5.4.5 correctness 122

5.5 testing versus correctness proofs 124

5.5.1 example of a correctness proof 124

5.5.2 correctness proof case study 128

5.5.3 correctness proofs and software

engineering 129

5.6 who should perform execution-based

testing? 131

5.7 when testing stops 133

chapter review 134

for further reading 134

problems 135

references 137

chapter 6

introduction to objects 140

6.1 what is a module? 140

6.2 cohesion 144

6.2.1 coincidental cohesion 145

6.2.2 logical cohesion 145

6.2.3 temporal cohesion 146

6.2.4 procedural cohesion 147

6.2.5 communicational cohesion 148

6.2.6 informational cohesion 148

6.2.7 functional cohesion 149

6.2.8 cohesion example 150

6.3 coupling 151

6.3.1 content coupling 151

6.3.2 common coupling 151

6.3.3 control coupling 154

6.3.4 stamp coupling 154

6.3.5 data coupling 155

6.3.6 coupling example 156

.6.4 data encapsulation 157

6.4.1 data encapsulation and product

development 161

6.4.2 data encapsulation and product

maintenance 163

6.5 abstract data types 166

6.6 information hiding 168

6.7 objects 171

6.8 polymorphism and dynamic binding 175

6.9 cohesion and coupling of objects 177

6.10 reuse 178

6.10.1 impediments to reuse 179

6.11 reuse case studies 180

6.11.1 raytheon missile systems

division 180

6.11.2 toshiba software factory182

6.11.3 nasa software 183

6.11.4 gte data services 184

6.11.5 hewlett-packard 184

6.12 reuse and maintenance 185

6.13 objects and productivity 186

chapter review 188

for further reading 188

problems 189

references 191

part 2

the phases of the

software process 195

chapter 7

requirements phase 197

7.1 requirements analysis techniques 198

7.2 rapid prototyping 199

7.3 human factors 201

7.4 rapid prototyping as a specification

technique 203

7.5 reusing the rapid prototype 205

7.6 other uses of rapid prototyping 207

7.7 management implications of the rapid

prototyping model 208

7.8 experiences with rapid prototyping 209

7.9 joint application design 211

7.10 comparison of requirements analysis

techniques 211

7.11 testing during the requirements phase 212

7.12 case tools for the requirements

phase 212

7.13 metrics for the requirements phase 213

7.14 msg case study: requirements phase 214

7.15 msg case study: rapid prototype 216

chapter review 217

for further reading 218

problems 219

references 220

chapter 8

specification phase 222

8.1 the specification document 222

8.2 informal specifications 224

8.2.1 case study: text processing 225

8.3 structured systems analysis 226

8.3.1 sally’s software shop 226

8.4 other semiformal techniques 234

8.5 entity-relationship modeling 235

8.6 finite state machines 237

8.6.1 elevator problem: finite state

machines 239

8.7 petri nets 244

8.7.1 elevator problem: petri nets 247

8.8 z 250

8.8.1 elevator problem: z 251

8.8.2 analysis of z 253

8.9 other formal techniques 255

8.10 comparison of specification

techniques 256

8.11 testing during the specification phase 256

8.12 case tools for the specification

phase 257

8.13 metrics for the specification phase 258

8.14 msg case study: structured systems

analysis 258

chapter review 260

for further reading 261

problems 262

references 264

chapter 9

object-oriented

analysis phase 268

9.1 object-oriented versus structured

paradigm 268

9.2 object-oriented analysis 270

9.3 elevator problem: object-oriented

analysis 272

9.3.1 class modeling 272

9.3.2 dynamic modeling 275

9.3.3 functional modeling 278

9.4 object-oriented life-cycle models 280

9.5 case tools for the object-oriented

analysis phase 282

9.6 msg case study: object-oriented

analysis 283

chapter review 286

for further reading 286

problems 288

references 289

chapter 10

planning phase 291

10.1 estimating duration and cost 291

10.1.1 metrics for the size of a

product 293

10.1.2 techniques of cost estimation 297

10.1.3 intermediate cocomo 299

10.1.4 tracking duration and cost

estimates 303

10.2 components of a software project

management plan 303

10.3 software project management plan

framework 305

10.4 ieee software project management

plan 305

10.5 planning of testing 308

10.6 planning of object-oriented projects 310

10.7 training requirements 310

10.8 documentation standards 311

10.9 case tools for the planning phase 312

10.10 testing during the planning phase 315

10.11 msg case study: planning phase 315

chapter review 315

for further reading 316

problems 317

references 318

c hapte r i i

design phase 322

11.1 design and abstraction 322

11.2 action-ofiented design 324

11.3 data flow analysis 324

11.3.1 data flow analysis example 325

11.3.2 extensions 329

11.4 transaction analysis 329

11.5 data-oriented design 332

11.6 jackson system development 333

11.6.1 overview of jackson system

development 333

11. 6.2 why jackson system development

is presented in this chapter 335

11.6.3 elevator problem: jackson syst em

development 336

11.6.4 analysis of jackson system

development 344

11.7 techniques of jackson, warnier, and

orr 345

11.8 object-oriented design 346

11.8.1 elevator problem: object-oriented

design 347

11.9 detailed design 350

11.10 comparison of action-, data-, and

object-oriented design 352

11.11 difficulties associated with real-time

systems 353

11.12 real-time design techniques 354

11.13 testing during the design phase 355

11.14 case tools for the design phase 356

11.15 metrics for the design phase 357

11.16 msg case study: object-oriented

design 358

chapter review 359

for further reading 361

problems 363

references 364

chapter 12

implementation phase 368

12.1 choice of programming language 368

12.2 fourth generation languages 372

12.3 structured programming 375

12.3.1 history of structured

programming 375

12.3.2 why the goto statement is

considered harmful 377

12.4 good programming practice 378

12.5 coding standards 383

12.6 team organization 385

12.7 democratic team approach 387

12.7.1 analysis of the democratic team

approach 388

12.8 classical chief programmer team

approach 388

12.8.1 the new york times project 390

12.8.2 impracticality of the classical chief

programmer team approach 391

12.9 beyond chief programmer and

democratic teams 392

12.10 portability 396

12.10.1 hardware incompatibilities 396

12.10.2 operating system

incompatibilities 398

12.10.3 numerical software

incompatibilities 398

12.10.4 compiler incompatibilities 399

12.11 why portability? 402

12.12 techniques for achieving portability 404

12.12.1 portable system software 404

12.12.2 portable application software 405

12.12.3 portable data 406

12.13 module reuse 407

12.14 module test case selection 407

12.14.1 testing to specifications versus

testing to code 408

12.14.2 feasibility of testing to

specifications 408

12.14.3 feasibility of testing to code 409

12.15 black-box module-testing

techniques 411

12.15.1 equivalence testing and boundary

value analysis 411

12.15.2 functional testing 413

12.16 glass-box module-testing

techniques 414

12.16.1 structural testing: statement,

branch, and path coverage 414

12.16.2 complexity metrics 415

12.17 code walkthroughs and inspections 418

12.18 comparison of module-testing

techniques 418

12.19 cleanroom 419

12.20 testing objects 420

12.21 management aspects of module-testing 423

12.21.1 when to rewrite rather than

debug a module 424

12.22 testing distributed software 425

12.23 testing real-time software 427

12.24 case tools for the implementation

phase 429

12.25 msg case study: black-box test

cases 429

chapter review 431

for further reading 431

problems 433

references 435

chapter 13

implementation and

integration phase 441

13.1 implementation and integration 441

13.1.1 top-down implementation and

integration 442

13.1.2 bottom-up implementation and

integration 444

13.1.3 sandwich implementation and

integration 445

13.1.4 implementation and integration of

object-oriented products 446

13.1.5 management issues during the implementation and integration phase 446

13.2 testing during the implementation and

integration phase 447

13.3 integration testing of graphical user

interfaces 447

13.4 product testing 448

13.5 acceptance testing 449

13.6 case tools for the implementation and

integration phase 450

13.7 case tools for the complete software

process 451

13.8 language-centered environments 451

13.9 structure-oriented environments 452

13.10 toolkit environments 452

13.11 integrated environments 452

13.11.1 process integration 453

13.11.2 tool integration 454

13.11.3 other forms of integration 456

13.12 environments for business

applications 456

13.13 public tool infrastructures 457

13.14 comparison of environment types 458

13.15 metrics for the implementation and

integration phase 458

13.16 msg case study: implementation and

integration phase 459

chapter review 460

for further reading 460

problems 461

references 462

chapter 14

maintenance phase 465

14.1 why maintenance is necessary 465

14.2 what is required of maintenance

programmers 466

14.3 maintenance case study 468

14.4 management of maintenance 470

14.4.1 fault reports 470

14.4.2 authorizing changes to the

product 471

14.4.3 ensuring maintainability 472

14.4.4 problem of repeated

maintenance 472

14.5 maintenance of object-oniented

software 473

14.6 maintenance skills versus development

skills 476

14.7 reverse engineering 476

14.8 testing during the maintenance

phase 477

14.9 case tools for the maintenance

phase 478

14.10 metrics for the maintenance phase 479

chapter review 479

for further reading 480

problems 480

references 481

epilogue 483

appendices

appendix a

osbert oglesby-art dealer 491

appendix b

software

engineering resources 494

appendix c

msg case study:

rapid prototype 496

appendix d

msg case study: structured

systems analysis 509

appendix e

msg case study:

object-oriented analysis 513

appendix f

msg case study: software project

management plan 514

appendix g

msg case study: design 519

appendix h

msg case study: black-box

test cases 539

appendix i

msg case study: source

code 542

bibliography 581

author index 605

subject index 608



已确认勘误

次印刷

页码 勘误内容 提交人 修订印次

Software engineering with Java
    • 名称
    • 类型
    • 大小

    光盘服务联系方式: 020-38250260    客服QQ:4006604884

    意见反馈

    14:15

    关闭

    云图客服:

    尊敬的用户,您好!您有任何提议或者建议都可以在此提出来,我们会谦虚地接受任何意见。

    或者您是想咨询:

    用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问

    Video Player
    ×
    Audio Player
    ×
    pdf Player
    ×
    Current View

    看过该图书的还喜欢

    some pictures

    解忧杂货店

    东野圭吾 (作者), 李盈春 (译者)

    loading icon