
最 低 价:¥42.90
定 价:¥0.00
作 者:(意)Carlo Ghezzi,Mehdi Jazayeri,Dino Ma 著
出 版 社:中国电力出版社
出版时间:2006 年1月
I S B N:7508338766
| Carlo Ghezzi 米兰工业大学计算机科学教授,主讲软件工程。鉴于他对软件工程研究方面的贡献,美国计算机协会于2000年授予其名誉会员称号。. Mehdi Jazayeri 维也纳工业大学计算机科学教授,主讲分布式系统。他曾经在美国硅谷做过多年的软件开发,包括在美国加州的惠普实验室那10年的经历。.. Dino Mandrioli 米兰工业大学计算机科学教授,主讲计算机科学原理。他的研究兴趣主要是软件工程实践中的形式化方法。... .. << 查看详细 |
| software engineering:a preview 1 1.1 the role of software engineering in system design 2 1.2a shortened history of software engineering 3 1.3the role of the software engineer 5 1.4 the software life cycle 6 1.5 the relationship of software engineering to other areas of computer science 8 1.5.1 programming languages 9 1.5.2 operating systems 10 1.5.3 data bases 10 1.5.4 artificial intelligence 11 1.5.5 theoretical models 12 1.6 the relationship of software engineering to other disciplines 12 1.6.1 management science 13 1.6.2 systemsengineering 13 1.7 concluding remarks 13 bibliographic notes 14 chapter 2 software:its nature and qualities 15 2.1 classification of software qualities 16 2.1.1 external versus internal qualities 16 .2.1.2 product and process qualities 16 2.2 representative qualities 17 2.2.1 correctness,reliability,and robustness 17 2.2.2 performance 20 2.2.3 usability 22 2.2.4 verifiabilitv 23 2.2.5 maintainabilitv 23 2.2.6 reusability 26 2.2.7 portability 28 2.2.8 understandability 28 2.2.9 interoperability 29 2.2.10 productivity 30 2.2.11 timeliness 30 2.2.12 visibility 32 2.3 quality requirements in different application areas 33 2.3.1 information systems 33 2.3.2 real-time systems 34 2.3.3 distributed systems 36 2.3.4 embedded systems 36 2.4 measurement of quality 37 2.5 concluding remarks 38 further exercises 38 hints and sketchy solutions 39 biblio graphic notes 39 cha pter 3 software engineering principles. 41 3.1 rigor and formality 42 3.2 separation of concerns 44 3.3 modularitv 47 3.4 abstraction 49 3.5 anticip ation of change 50 3.6 generality 52 3.7 incrementality 53 3.8 two case studies illustrating software engineering principles 54 3.8.1 application of software engineering principles to compiler construction 54 3.8.2 a case study in system engineering 59 3.9concluding remarks 64 further exercises 65 hints and sketchy solutions 65 bibliographic notes 66 chapter 4 design and software architecture 67 4.1 the software design activity and its objectives 70 4.1.1 design for change 72 4.1.2 product families 76 4.2 modularization techniques 78 4.2.1 the module structure and its representation 79 4.2.2 interface,implementation,and information hiding 86 4.2.3 design notations 93 4.2.4 categories of modules 100 4.2.5 some specific techniques for design for change 108 4.2.6 stepwise refinement 111 4.2.7 top-down versus bottom-up design 117 4.3 handling anomalies 118 4.4 a case study in design 121 4.5 concurrent software 124 4.5.1 shared data 124 4.5.2 real-time software 132 4.5.3 distributed software 134 4.6 object—oriented design 139 4.6.1 generalization and specialization 140 4.6.2 associations 143 4.6.3 aggregation 145 4.6.4 more on uml class diagrams 146 4.7 architecture and components 146 4.7.1 standard architectures 147 4.7.2 software components 149 4.7.3 architecture as framework for component integration 152 4.7.4 architectures for distributed systems 153 4.8 concluding remarks 154 further exercises 156 hints and sketchy solutions 158 bibliographic notes 159 chapter 5 specification 5.1 the uses of specifications 162 5.2 specification qualities 165 5.3classification of specification styles 167 5.4verification of specifications 170 5.5operational specifications 171 5.5.1data flow diagrams:specifying functions of information systems 171 5.5.2 uml diagrams for specifying behaviors177 5.5.3 finite state machines:describing control flow 179 5.5.4 petri nets:specifying asynchronous systems 185 5.6 descriptive specifications 210 5.6.1 entity-relationship diagrams 210 5.6.2 logic specifications 213 5.6.3 algebraic specifications 229 5.7 building and using specifications in practice 236 5.7.1 requirements for specification notations 236 5.7.2 building modular specifications 240 5.7.3 specifications for the end user 257 concluding~remarks 258 further exercises 259 hints and sketchy solutions 262 biblio graphic notes 266 chapter 6 verification 269 6.1goals and requirements of verification 270 6.1.1 everything must b e verifled 271 6.1.2 the results of verification mav not be binary 271 6.1.3 verification may be objective or subjective 272 6.1.4 even implicit qualities must be verifled 273 6.2 approaches to verification 274 6.3testing 274 6.3.1 goals for testing 275 6.3.2 theoretical foundations of testing 277 6.3.3 empirical testing principles 280 6.3.4 testing in the small 282 6.3.5 testing in the large 302 6.3.6 separate concerns in the testing activity 312 6.3.7 testing concurrent and real-time systems 313 6.4analysis 316 6.4.1 informal analysis techniq ues 317 6.4.2 correctness proofs 320 6.5 symbolic execution 337 6.5.1 basic concepts of symbolic execution 339 6.5.2 programs with arrays 342 6.5.3 the use of symbolic execution in testing 345 6.6.model checking 347 6.7putting it a11 together 349 6.8d ebugging 351 6.9verfying other software properties 355 6.9.1 verifying performance 356 6.9.2 verifying reliability 356 6.9.3 verifying subjective qualities 360 concluding remarks 371 further exercises 372 hints and sketchy solutions 378 b iblio graphic notes 381 chapter 7 the software production process 385 7.1 what is a software process model? 386 7.2 why are software process models important? 388 7.3 the main activities of software production 391 7.3.1 feasibility study 391 7.3.2 eliciting,understanding,and specifying requirements 392 7.3.3 definition of the software architecture and detailed design 399 7.3.4 coding and module testing 399 7.3.5 integration and system testing 400 7.3.6 delivery,deployment.and maintenance 400 7.3.7 other activities 401 7.4 an overview of software process models 403 7.4.1 waterfall models 403 7.4.2 evolutionary models 410 7.4.3 transformation model 413 7.4.4 spiral model 416 7.4.5 an assessment of process models 417 7.5 dealing with legacy software 420 7.6 case studies 421 7.6.1 case study:a telephone switching system 421 7.6.2 case study:a budget control system 426 7.6.3 case study:the microsoft synchronize and stabilize process 430 7.6.4 case study:the open source approach 431 7.7 organizing the process 433 7.7.1 structured analvsis/structured design 434 7.7.2 jackson's system development and structured programming 439 7.7.3 the unified software development process 444 7.8 organizing artifacts:configuration management 447 7.9 software standards 451 7.1 0 concluding remarks 451 further exercises 452 hints and sketchy solutions 453 bibliographic notes 454 chapter 8 management of software engineering 457 8.1 management functions 459 8.2 project planning 460 8.2.1 software productivity 462 8.2.2 people and productivity 469 8.2.3 cost estimation 469 8.3project control 476 8.3.1 work breakdown structures 477 8.3.2 gantt charts 478 8.3.3 pert charts 479 8.3.4 dealing with deviations from the plan 482 8.4organization 483 8.4.1 centralized-control team organization 486 8.4.2 decentralized-control team organization 487 8.4.3 mixed-control team organization 488 8.4.4 an assessment of team organizations 489 8.5risk management 490 8.5.1 8.5.1 typical management risks in software engineering 491 8.6 8.6 capability maturity model 492 8.7 8.7 concluding remarks 495 further exercises 497 hints and sketchy solutions 498 bibliographic notes 499 chapter 9 software engineering tools and environments 501 9.1 historical evolution of tools and environments 502 9.2 dimensions for comparing softwaretools 503 9.3 representative tools 507 9.3.1 editors 507 9.3.2 linkers 508 9.3.3 interpreters 508 9.3.4 code generators 509 9.3.5 debuggers 510 9.3.6 tools used in software testing 511 9.3.7 static analyzers 512 9.3.8 graphical user interface tools 514 9.3.9 configuration management tools 516 9.3.10 tracking tools 520 9.3.11 reverse and reengineering tools 521 9.3.12 process support tools 522 9.3.13 management tools 522 9.4 tool integration 523 9.5 forces influencing the evolution of tools 524 9.6 concluding remarks 525 further exercises 526 hints and sketchy solutions 526 biblio graphic notes 526 chapter 1 0 epilogue 529 10.1 the future 529 10.2 ethics and social responsibility 532 10.3 software engineering code of ethics 533 10.4 concluding remarksemarks 534 biblio graphic notes 534 appendix 536 case studies case study a:automatinga law office 536 a.1 economlc and financial planning 538 a.2 technical planning and management 538 a.3 project monitoring 540 a.4 initial delivery 540 a.5 partial recovery 541 case study b:building a family of compliers 541 b.1 initial product planning 541 b.2 economic and financial planning 542 b.3 technical planning and management 542 b.4 early development phases 543 b.5 project monitoring 543 b.6 project reexamination,revival,and goal setting 544 b.7 assignment of responsibility 545 b.8 steady progress and release of the product 546 b.9 product distribution 546 b.10 remarks 546 case study c:incremental delivery 549 case study d.applying formal methods in industry 550 d.1 education and training 551 d.2 requirements specification 552 d.3 requirements validation and verification planning 553 d.4 design,implementation,and verification 555 d.5 overall evaluation and assessment 555 d.6 the impact of the project on company’s strategy 557 concluding remarks 558 bibliographic notes 559 bibliography 560 index 589 |
商品评论(0条)