Software engineering: principles and practice
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
Hoboken, NJ
Wiley
2008
|
Ausgabe: | 3. ed. |
Schlagworte: | |
Online-Zugang: | Publisher description Table of contents only Inhaltsverzeichnis |
Beschreibung: | Literaturverz. S. 673 - 703 Includes bibliographical references and index |
Beschreibung: | XXVI, 713 S. |
ISBN: | 9780470031469 |
Internformat
MARC
LEADER | 00000nam a2200000zc 4500 | ||
---|---|---|---|
001 | BV023325523 | ||
003 | DE-604 | ||
005 | 20110727 | ||
007 | t | ||
008 | 080603s2008 xxu |||| 00||| eng d | ||
020 | |a 9780470031469 |9 978-0-470-03146-9 | ||
035 | |a (OCoLC)300304334 | ||
035 | |a (DE-599)BVBBV023325523 | ||
040 | |a DE-604 |b ger |e aacr | ||
041 | 0 | |a eng | |
044 | |a xxu |c US | ||
049 | |a DE-861 |a DE-Aug4 |a DE-824 |a DE-91G |a DE-473 |a DE-29T |a DE-11 |a DE-355 |a DE-573 |a DE-703 |a DE-859 | ||
050 | 0 | |a QA76.758 | |
082 | 0 | |a 005.1 | |
084 | |a ST 230 |0 (DE-625)143617: |2 rvk | ||
084 | |a DAT 310f |2 stub | ||
100 | 1 | |a Vliet, Hans van |e Verfasser |4 aut | |
245 | 1 | 0 | |a Software engineering |b principles and practice |c Hans van Vliet |
250 | |a 3. ed. | ||
264 | 1 | |a Hoboken, NJ |b Wiley |c 2008 | |
300 | |a XXVI, 713 S. | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
500 | |a Literaturverz. S. 673 - 703 | ||
500 | |a Includes bibliographical references and index | ||
650 | 4 | |a Génie logiciel | |
650 | 4 | |a Software engineering | |
650 | 0 | 7 | |a Software Engineering |0 (DE-588)4116521-4 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Softwareentwicklung |0 (DE-588)4116522-6 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a Software Engineering |0 (DE-588)4116521-4 |D s |
689 | 0 | |5 DE-604 | |
689 | 1 | 0 | |a Softwareentwicklung |0 (DE-588)4116522-6 |D s |
689 | 1 | |5 DE-604 | |
856 | 4 | |u http://www.loc.gov/catdir/enhancements/fy0827/2008004317-d.html |3 Publisher description | |
856 | 4 | |u http://www.loc.gov/catdir/enhancements/fy0827/2008004317-t.html |3 Table of contents only | |
856 | 4 | 2 | |m Digitalisierung UB Bamberg |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=016509543&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
999 | |a oai:aleph.bib-bvb.de:BVB01-016509543 |
Datensatz im Suchindex
_version_ | 1804137666384494592 |
---|---|
adam_text | Contents
Foreword
xvii
Preface
xix
Introduction
....................................................... 1
1.1
What Is Software Engineering?
................................. 5
1.2
Phases in the Development of Software
......................... 10
1.3
Maintenance or Evolution
..................................... 15
1.4
From the Trenches
............................................ 17
1.4.1 Ariane 5,
Flight
501.................................... 18
1.4.2
Therac^
............................................ 19
1.4.3
The London Ambulance Service
........................ 21
1.4.4
Who Counts the Votes?
................................ 23
1.5
Software Engineering Ethics
................................... 24
1.6
Quo
Vadis?
.................................................. 27
1.7
Summary
.................................................... 29
1.8
Further Reading
.............................................. 30
Exercises
..................................................... 31
Part I Software Management
35
1
Introduction to Software Engineering Management
................... 37
2.1
Planning a Software Development Project
....................... 40
2.2
Controlling a Software Development Project
.................... 43
2.3
Summary
.................................................... 45
Exercises
..................................................... 46
3
The Software Life Cycle Revisited
................................... 49
3.1
The Waterfall Model
.......................................... 52
3.2
Agile Methods
............................................... 54
Viii CONTENTS
3.2.1
Prototyping
........................................... 56
3.2.2
Incremental Development
.............................. 60
3.2.3
Rapid Application Development and Dynamic Systems
Development Method
................................. 62
3.2.4
Extreme Programming
................................. 66
3.3
The Rational Unified Process
(RUP)
............................ 68
3.4
Model-Driven Architecture
.................................... 71
3.5
Intermezzo: Maintenance or Evolution
.......................... 72
3.6
Software Product Lines
........................................ 75
3.7
Process Modeling
.............................................
~П
3.8
Summary
.................................................... 80
3.9
Further Reading
.............................................. 81
Exercises
..................................................... 82
4
Configuration Management
......................................... 85
4.1
Tasks and Responsibilities
..................................... 87
4.2
Configuration Management Plan
............................... 92
4.3
Summary
.................................................... 93
4.4
Further Reading
.............................................. 94
Exercises
..................................................... 94
5
People Management and Team Organization
......................... 97
5.1
People Management
.......................................... 99
5.1.1
Coordination Mechanisms
............................. 101
5.1.2
Management Styles
.................................... 102
5.2
Team Organization
........................................... 104
5.2.1
Hierarchical Organization
.............................. 104
5.2.2
Matrix Organization
................................... 106
5.2.3
Chief Programmer Team
............................... 107
5.2.4
SWAT Team
.......................................... 107
5.2.5
Agile Team
........................................... 108
5.2.6
Open Source Software Development
.................... 108
5.2.7
General Principles for Organizing a Team
...............
Ill
5.3
Summary
.................................................... 112
5.4
Further Reading
.............................................. 113
Exercises
..................................................... 113
6
On Managing Software Quality
..................................... 115
6.1
On Measures and Numbers
.................................... 118
6.2
A Taxonomy of Quality Attributes
............................. 123
6.3
Perspectives on Quality
....................................... 130
6.4
The Quality System
.......................................... 134
6.5
Software Quality Assurance
.................................... 135
6.6
The Capability Maturity Model (CMM)
........................ 137
CONTENTS
ІХ
6.6.1 Personal Software
Process
.............................. 142
6.6.2
BOOTSTRAP
and SPICE
.............................. 143
6.6.3
Some Critical Notes
................................... 143
6.7
Getting Started
............................................... 144
6.8
Summary
.................................................... 147
6.9
Further Reading
.............................................. 148
Exercises
..................................................... 149
Cost Estimation
.................................................... 153
7.1
Algorithmic Models
........................................... 158
7.1.1
Walston-Felix
........................................ 160
7.1.2
COCOMO
........................................... 162
7.1.3
Putnam
............................................... 163
7.1.4
Function Point Analysis
................................ 165
7.1.5
COCOMO
2:
Variations on a Theme
................... 168
7.1.6
Use-Case Points: Another Variation on a Theme
......... 173
7.2
Guidelines for Estimating Cost
................................. 175
7.3
Distribution of Manpower over Time
........................... 179
7.4
Agile Cost Estimation
......................................... 183
7.5
Summary
.................................................... 184
7.6
Further Reading
.............................................. 186
Exercises
..................................................... 187
Project Planning and Control
........................................ 189
8.1
A Systems View of Project Control
............................. 190
8.2
A Taxonomy of Software Development Projects
................. 192
8.2.1
Realization Control Situation
........................... 194
8.2.2
Allocation Control Situation
............................ 195
8.2.3
Design Control Situation
............................... 195
8.2.4
Exploration Control Situation
........................... 196
8.2.5
Summary of Control Situations
......................... 197
8.3
Risk Management
............................................. 198
8.4
Techniques for Project Planning and Control
.................... 201
8.5
Summary
.................................................... 207
8.6
Further Reading
.............................................. 208
Exercises
..................................................... 208
Part II The Software Life Cycle
211
9
Requirements Engineering
........................................... 213
9.1
Requirements Elicitation
....................................... 220
9.1.1
Requirements Engineering Paradigms
.................... 224
CONTENTS
9.1.2
Requirements Elicitation Techniques
.................... 226
9.1.3 Goals
and Viewpoints
.................................. 234
9.1.4
Prioritizing Requirements
.............................. 237
9.1.5
COTS selection
....................................... 239
9.1.6
Crowdsourcing
........................................ 240
9.2
Requirements Documentation and Management
................. 241
9.2.1
Requirements Specification
............................. 241
9.2.2
Requirements Management
............................. 247
9.3
Requirements Specification Techniques
......................... 249
9.3.1
Choosing a Notation
.................................. 250
9.3.2
Specifying Non-Functional Requirements
................ 252
9.4
Verification and Validation
.................................... 253
9.5
Summary
.................................................... 254
9.6
Further Reading
.............................................. 255
Exercises
........................................................... 257
10
Modeling
.......................................................... 261
10.1
Classic Modeling Techniques
.................................. 263
10.1.1
Entity-Relationship Modeling
.......................... 263
10.1.2
Finite State Machines
.................................. 265
10.1.3
Data Flow Diagrams
................................... 267
10.1.4 CRC
Cards
........................................... 267
10.2
On Objects and Related Stuff
.................................. 268
10.3
The Unified Modeling Language
............................... 274
10.3.1
The Class Diagram
.................................... 276
10.3.2
The State Machine Diagram
............................ 279
10.3.3
The Sequence Diagram
................................ 283
10.3.4
The Communication Diagram
.......................... 284
10.3.5
The Component Diagram
.............................. 285
10.3.6
The Use Case
......................................... 286
10.4
Summary
.................................................... 287
10.5
Further Reading
.............................................. 287
Exercises
..................................................... 288
11
Software Architecture
............................................... 289
11.1
Software Architecture and the Software Life Cycle
............... 293
11.2
Architecture Design
........................................... 294
11.3
Architectural Views
........................................... 298
11.4
Architectural Styles
........................................... 303
11.5
Software Architecture Assessment
.............................. 317
11.6
Summary
.................................................... 321
11.7
Further Reading
.............................................. 322
Exercises
..................................................... 322
CONTENTS Xi
12 Software Design.................................................... 325
12.1 Design
Considerations
........................................ 329
12.1.1
Abstraction...........................................
330
12.1.2
Modularity
........................................... 333
12.1.3 Information
Hiding
.................................... 336
12.1.4
Complexity
........................................... 337
12.1.5
System Structure
...................................... 344
12.1.6
Object-Oriented Metrics
............................... 348
12.2
Classical Design Methods
..................................... 351
12.2.1
Functional Decomposition
.............................. 353
12.2.2
Data Flow Design (SA/SD)
............................. 356
12.2.3
Design Based on Data Structures
........................ 361
12.3
Object-Oriented Analysis and Design Methods
.................. 369
12.3.1
The Booch Method
.................................... 376
12.3.2
Fusion
................................................ 377
12.3.3
RUP
Revisited
......................................... 379
12.4
How to Select a Design Method
............................... 380
12.4.1
Design Method Classification
........................... 381
12.4.2
Object Orientation: Hype or the Answer?
................ 382
12.5
Design Patterns
............................................... 385
12.6
Design Documentation
........................................ 389
12.7
Verification and Validation
.................................... 393
12.8
Summary
.................................................... 393
12.9
Further Reading
.............................................. 398
Exercises
..................................................... 399
1 3
Software Testing
................................................... 405
13.1
Test Objectives
.............................................. 410
13.1.1
Test Adequacy Criteria
................................. 412
13.1.2
Fault Detection Versus Confidence Building
.............. 413
13.1.3
From Fault Detection to Fault Prevention
................ 415
13.2
Testing and the Software Life Cycle
............................ 417
13.2.1
Requirements Engineering
.............................. 417
13.2.2
Design
............................................... 419
13.2.3
Implementation
....................................... 420
13.2.4
Maintenance
.......................................... 420
13.2.5
Test-Driven Development (TDD)
....................... 421
13.3
Verification and Validation Planning and Documentation
......... 422
13.4
Manual Test Techniques
...................................... 425
13.4.1
Reading
.............................................. 425
13.4.2
Walkthroughs and Inspections
.......................... 426
13.4.3
Correctness Proofs
.................................... 428
13.4.4
Stepwise Abstraction
................................... 429
Xii CONTENTS
13.5 Coverage-Based Test
Techniques
............................... 430
13.5.1
Control-Flow Coverage
................................ 431
13.5.2 Data
Flow Coverage
................................... 433
13.5.3
Coverage-Based Testing of Requirements Specifications
... 435
13.6
Fault-Based Test Techniques
................................... 437
13.6.1
Error Seeding
......................................... 437
13.6.2
Mutation Testing
...................................... 438
13.7
Error-Based Test Techniques
................................... 440
13.8
Comparison of Test Techniques
................................ 441
13.8.1
Comparison of Test Adequacy Criteria
.................. 442
13.8.2
Properties of Test Adequacy Criteria
.................... 443
1 3.8.3
Experimental Results
................................... 446
13.9
Test Stages
................................................... 448
13.10
Estimating Software Reliability
................................. 450
13.11
Summary
.................................................... 457
13.12
Further Reading
.............................................. 458
Exercises
..................................................... 459
14
Software Maintenance
.............................................. 465
14.1
Maintenance Categories Revisited
.............................. 468
14.2
Major Causes of Maintenance Problems
......................... 471
14.3
Reverse Engineering and
Refactoring
........................... 475
14.3.1
Refactoring...........................................
478
14.3.2
Inherent Limitations
................................... 480
14.3.3
Tools
................................................. 484
14.4
Software Evolution Revisited
................................... 486
14.5
Organizational and Managerial Issues
........................... 488
14.5.1
Organization of Maintenance Activities
.................. 488
14.5.2
Software Maintenance from a Service Perspective
......... 492
14.5.3
Control of Maintenance Tasks
.......................... 497
14.5.4
Quality Issues
......................................... 500
14.6
Summary
.................................................... 501
14.7
Further Reading
.............................................. 502
Exercises
..................................................... 504
1 5
Software Tools
..................................................... 507
15.1
Toolkits
..................................................... 511
15.2
Language-Centered Environments
.............................. 513
15.3
Integrated Environments and WorkBenches
..................... 514
15.3.1
Analyst WorkBenches
.................................. 515
15.3.2
Programmer WorkBenches
............................. 516
15.3.3
Management WorkBenches
............................. 520
15.3.4
Integrated Project Support Environments
................ 520
CONTENTS Xiii
15.4 Process-Centered Environments................................ 521
15.5
Summary
.................................................... 522
15.6
Further Reading
.............................................. 524
Exercises.....................................................
525
Partili
Advanced
Topics
527
1 6 User Interface Design............................................... 529
16.1
Where Is the User
Interface?................................... 532
16.2
What Is the User Interface?
.................................... 536
16.3
Human Factors in Human-Computer Interaction
................ 537
16.3.1
Humanities
........................................... 537
16.3.2
Artistic Design
........................................ 538
16.3.3
Ergonomics
........................................... 539
16.4
The Role of Models in Human-Computer Interaction
............ 540
16.4.1
A Model of Human Information Processing
.............. 542
16.4.2
Mental Models of Information Systems
.................. 544
16.4.3
Conceptual Models in User Interface Design
............. 547
16.5
The Design of Interactive Systems
.............................. 549
16.5.1
Design as an Activity Structure
......................... 550
16.5.2
Design as Multi-Disciplinary Collaboration
.............. 552
16.6
Task Analysis
................................................ 553
16.6.1
Task Analysis in HCI Design
........................... 554
16.6.2
Analysis Approaches for Collaborative Work
............. 556
16.6.3
Sources of Knowledge and Collection Methods
.......... 557
16.6.4
An Integrated Approach to Task Analysis:
СТА
.......... 558
16.7
Specification of the User Interface Details
....................... 559
16.7.1
Dialog
................................................ 560
16.7.2
Representation
........................................ 561
16.8
Evaluation
................................................... 562
16.8.1
Evaluation of Analysis Decisions
........................ 562
16.8.2
Evaluation of UVM Specifications
....................... 563
16.8.3
Evaluation of Prototypes
............................... 566
16.9
Summary
.................................................... 567
16.10
Further Reading
.............................................. 568
Exercises
..................................................... 569
1 7
Software Reusability
................................................ 571
17.1
Reuse Dimensions
............................................ 574
17.2
Reuse of Intermediate Products
................................. 576
17.2.1
Libraries of Software Components
...................... 576
17.2.2
Templates
............................................ 580
Xiv CONTENTS
17.2.3 Reuse
of Architecture
.................................. 581
17.2.4 Application Generators
and Fourth-Generation Languages
. 581
17.3
Reuse and the Software Life Cycle
.............................. 582
17.4
Reuse Tools and Techniques
................................... 585
17.4.1
From Module Interconnection Language
to Architecture Description Language
................... 586
17.4.2
Middleware
........................................... 588
17.5
Perspectives of Software Reuse
................................. 591
17.6
Non-Technical Aspects of Software Reuse
....................... 594
17.6.1
Economics
............................................ 596
17.6.2
Management
.......................................... 597
17.6.3
Psychology of Programmers
............................ 598
17.7
Summary
.................................................... 599
17.8
Further Reading
.............................................. 601
Exercises
..................................................... 601
18
Component-Based Software Engineering
............................. 605
18.1
Why Component-Based Software Engineering?
.................. 607
18.2
Component Models and Components
.......................... 608
18.2.1
Component Forms in Component Models
............... 610
18.2.2
Architecture and Component Models
.................... 614
18.3
Component-Based Development Process and Component
Life Cycle
................................................... 619
18.3.1
Component-Based System Development Process
......... 620
18.3.2
Component Assessment
................................ 622
18.3.3
Component Development Process
...................... 623
18.4
Architectural Approaches in Component-Based Development
..... 625
18.4.1
Architecture-Driven Component Development
........... 626
18.4.2
Product-Line Development
............................. 626
18.4.3
COTS-Based Development
............................. 627
18.4.4
Selecting an Approach
................................. 627
18.5
Summary
.................................................... 628
18.6
Further Reading
.............................................. 628
Exercises
..................................................... 629
19
Service Orientation
................................................. 631
19.1
Services, Service Descriptions, and Service Communication
....... 634
19.2
Service-Oriented Architecture
(SOA)
........................... 639
19.3
Web Services
................................................ 641
19.3.1
Extensible Markup Language (XML)
..................... 643
19.3.2
Simple Object Access Protocol (SOAP)
.................. 644
19.3.3
Web Services Description Language (WSDL)
............ 644
19.3.4
Universal Description, Discovery, and Integration (UDDI)
646
CONTENTS XV
19.3.5
Business Process Execution Language for Web Services
(BPEL4WS)
........................................... 647
19.4
Service-Oriented Software Engineering
......................... 650
19.5
Summary
.................................................... 652
19.6
Further Reading
.............................................. 652
Exercises
..................................................... 653
20
Global Software Development
....................................... 655
20.1
Challenges of Global System Development
..................... 657
20.2
How to Overcome Distance
................................... 664
20.2.1
Common Ground
..................................... 664
20.2.2
Coupling of Work
..................................... 666
20.2.3
Collaboration Readiness
................................ 666
20.2.4
Technology Readiness
................................. 666
20.2.5
Organizing Work in Global Software Development
....... 668
20.3
Summary
.................................................... 670
20.4
Further Reading
.............................................. 670
Exercises
..................................................... 671
Bibliography
673
Index
705
|
adam_txt |
Contents
Foreword
xvii
Preface
xix
Introduction
. 1
1.1
What Is Software Engineering?
. 5
1.2
Phases in the Development of Software
. 10
1.3
Maintenance or Evolution
. 15
1.4
From the Trenches
. 17
1.4.1 Ariane 5,
Flight
501. 18
1.4.2
Therac^
. 19
1.4.3
The London Ambulance Service
. 21
1.4.4
Who Counts the Votes?
. 23
1.5
Software Engineering Ethics
. 24
1.6
Quo
Vadis?
. 27
1.7
Summary
. 29
1.8
Further Reading
. 30
Exercises
. 31
Part I Software Management
35
1
Introduction to Software Engineering Management
. 37
2.1
Planning a Software Development Project
. 40
2.2
Controlling a Software Development Project
. 43
2.3
Summary
. 45
Exercises
. 46
3
The Software Life Cycle Revisited
. 49
3.1
The Waterfall Model
. 52
3.2
Agile Methods
. 54
Viii CONTENTS
3.2.1
Prototyping
. 56
3.2.2
Incremental Development
. 60
3.2.3
Rapid Application Development and Dynamic Systems
Development Method
. 62
3.2.4
Extreme Programming
. 66
3.3
The Rational Unified Process
(RUP)
. 68
3.4
Model-Driven Architecture
. 71
3.5
Intermezzo: Maintenance or Evolution
. 72
3.6
Software Product Lines
. 75
3.7
Process Modeling
.
~П
3.8
Summary
. 80
3.9
Further Reading
. 81
Exercises
. 82
4
Configuration Management
. 85
4.1
Tasks and Responsibilities
. 87
4.2
Configuration Management Plan
. 92
4.3
Summary
. 93
4.4
Further Reading
. 94
Exercises
. 94
5
People Management and Team Organization
. 97
5.1
People Management
. 99
5.1.1
Coordination Mechanisms
. 101
5.1.2
Management Styles
. 102
5.2
Team Organization
. 104
5.2.1
Hierarchical Organization
. 104
5.2.2
Matrix Organization
. 106
5.2.3
Chief Programmer Team
. 107
5.2.4
SWAT Team
. 107
5.2.5
Agile Team
. 108
5.2.6
Open Source Software Development
. 108
5.2.7
General Principles for Organizing a Team
.
Ill
5.3
Summary
. 112
5.4
Further Reading
. 113
Exercises
. 113
6
On Managing Software Quality
. 115
6.1
On Measures and Numbers
. 118
6.2
A Taxonomy of Quality Attributes
. 123
6.3
Perspectives on Quality
. 130
6.4
The Quality System
. 134
6.5
Software Quality Assurance
. 135
6.6
The Capability Maturity Model (CMM)
. 137
CONTENTS
ІХ
6.6.1 Personal Software
Process
. 142
6.6.2
BOOTSTRAP
and SPICE
. 143
6.6.3
Some Critical Notes
. 143
6.7
Getting Started
. 144
6.8
Summary
. 147
6.9
Further Reading
. 148
Exercises
. 149
Cost Estimation
. 153
7.1
Algorithmic Models
. 158
7.1.1
Walston-Felix
. 160
7.1.2
COCOMO
. 162
7.1.3
Putnam
. 163
7.1.4
Function Point Analysis
. 165
7.1.5
COCOMO
2:
Variations on a Theme
. 168
7.1.6
Use-Case Points: Another Variation on a Theme
. 173
7.2
Guidelines for Estimating Cost
. 175
7.3
Distribution of Manpower over Time
. 179
7.4
Agile Cost Estimation
. 183
7.5
Summary
. 184
7.6
Further Reading
. 186
Exercises
. 187
Project Planning and Control
. 189
8.1
A Systems View of Project Control
. 190
8.2
A Taxonomy of Software Development Projects
. 192
8.2.1
Realization Control Situation
. 194
8.2.2
Allocation Control Situation
. 195
8.2.3
Design Control Situation
. 195
8.2.4
Exploration Control Situation
. 196
8.2.5
Summary of Control Situations
. 197
8.3
Risk Management
. 198
8.4
Techniques for Project Planning and Control
. 201
8.5
Summary
. 207
8.6
Further Reading
. 208
Exercises
. 208
Part II The Software Life Cycle
211
9
Requirements Engineering
. 213
9.1
Requirements Elicitation
. 220
9.1.1
Requirements Engineering Paradigms
. 224
CONTENTS
9.1.2
Requirements Elicitation Techniques
. 226
9.1.3 Goals
and Viewpoints
. 234
9.1.4
Prioritizing Requirements
. 237
9.1.5
COTS selection
. 239
9.1.6
Crowdsourcing
. 240
9.2
Requirements Documentation and Management
. 241
9.2.1
Requirements Specification
. 241
9.2.2
Requirements Management
. 247
9.3
Requirements Specification Techniques
. 249
9.3.1
Choosing a Notation
. 250
9.3.2
Specifying Non-Functional Requirements
. 252
9.4
Verification and Validation
. 253
9.5
Summary
. 254
9.6
Further Reading
. 255
Exercises
. 257
10
Modeling
. 261
10.1
Classic Modeling Techniques
. 263
10.1.1
Entity-Relationship Modeling
. 263
10.1.2
Finite State Machines
. 265
10.1.3
Data Flow Diagrams
. 267
10.1.4 CRC
Cards
. 267
10.2
On Objects and Related Stuff
. 268
10.3
The Unified Modeling Language
. 274
10.3.1
The Class Diagram
. 276
10.3.2
The State Machine Diagram
. 279
10.3.3
The Sequence Diagram
. 283
10.3.4
The Communication Diagram
. 284
10.3.5
The Component Diagram
. 285
10.3.6
The Use Case
. 286
10.4
Summary
. 287
10.5
Further Reading
. 287
Exercises
. 288
11
Software Architecture
. 289
11.1
Software Architecture and the Software Life Cycle
. 293
11.2
Architecture Design
. 294
11.3
Architectural Views
. 298
11.4
Architectural Styles
. 303
11.5
Software Architecture Assessment
. 317
11.6
Summary
. 321
11.7
Further Reading
. 322
Exercises
. 322
CONTENTS Xi
12 Software Design. 325
12.1 Design
Considerations
. 329
12.1.1
Abstraction.
330
12.1.2
Modularity
. 333
12.1.3 Information
Hiding
. 336
12.1.4
Complexity
. 337
12.1.5
System Structure
. 344
12.1.6
Object-Oriented Metrics
. 348
12.2
Classical Design Methods
. 351
12.2.1
Functional Decomposition
. 353
12.2.2
Data Flow Design (SA/SD)
. 356
12.2.3
Design Based on Data Structures
. 361
12.3
Object-Oriented Analysis and Design Methods
. 369
12.3.1
The Booch Method
. 376
12.3.2
Fusion
. 377
12.3.3
RUP
Revisited
. 379
12.4
How to Select a Design Method
. 380
12.4.1
Design Method Classification
. 381
12.4.2
Object Orientation: Hype or the Answer?
. 382
12.5
Design Patterns
. 385
12.6
Design Documentation
. 389
12.7
Verification and Validation
. 393
12.8
Summary
. 393
12.9
Further Reading
. 398
Exercises
. 399
1 3
Software Testing
. 405
13.1
Test Objectives
. 410
13.1.1
Test Adequacy Criteria
. 412
13.1.2
Fault Detection Versus Confidence Building
. 413
13.1.3
From Fault Detection to Fault Prevention
. 415
13.2
Testing and the Software Life Cycle
. 417
13.2.1
Requirements Engineering
. 417
13.2.2
Design
. 419
13.2.3
Implementation
. 420
13.2.4
Maintenance
. 420
13.2.5
Test-Driven Development (TDD)
. 421
13.3
Verification and Validation Planning and Documentation
. 422
13.4
Manual Test Techniques
. 425
13.4.1
Reading
. 425
13.4.2
Walkthroughs and Inspections
. 426
13.4.3
Correctness Proofs
. 428
13.4.4
Stepwise Abstraction
. 429
Xii CONTENTS
13.5 Coverage-Based Test
Techniques
. 430
13.5.1
Control-Flow Coverage
. 431
13.5.2 Data
Flow Coverage
. 433
13.5.3
Coverage-Based Testing of Requirements Specifications
. 435
13.6
Fault-Based Test Techniques
. 437
13.6.1
Error Seeding
. 437
13.6.2
Mutation Testing
. 438
13.7
Error-Based Test Techniques
. 440
13.8
Comparison of Test Techniques
. 441
13.8.1
Comparison of Test Adequacy Criteria
. 442
13.8.2
Properties of Test Adequacy Criteria
. 443
1 3.8.3
Experimental Results
. 446
13.9
Test Stages
. 448
13.10
Estimating Software Reliability
. 450
13.11
Summary
. 457
13.12
Further Reading
. 458
Exercises
. 459
14
Software Maintenance
. 465
14.1
Maintenance Categories Revisited
. 468
14.2
Major Causes of Maintenance Problems
. 471
14.3
Reverse Engineering and
Refactoring
. 475
14.3.1
Refactoring.
478
14.3.2
Inherent Limitations
. 480
14.3.3
Tools
. 484
14.4
Software Evolution Revisited
. 486
14.5
Organizational and Managerial Issues
. 488
14.5.1
Organization of Maintenance Activities
. 488
14.5.2
Software Maintenance from a Service Perspective
. 492
14.5.3
Control of Maintenance Tasks
. 497
14.5.4
Quality Issues
. 500
14.6
Summary
. 501
14.7
Further Reading
. 502
Exercises
. 504
1 5
Software Tools
. 507
15.1
Toolkits
. 511
15.2
Language-Centered Environments
. 513
15.3
Integrated Environments and WorkBenches
. 514
15.3.1
Analyst WorkBenches
. 515
15.3.2
Programmer WorkBenches
. 516
15.3.3
Management WorkBenches
. 520
15.3.4
Integrated Project Support Environments
. 520
CONTENTS Xiii
15.4 Process-Centered Environments. 521
15.5
Summary
. 522
15.6
Further Reading
. 524
Exercises.
525
Partili
Advanced
Topics
527
1 6 User Interface Design. 529
16.1
Where Is the User
Interface?. 532
16.2
What Is the User Interface?
. 536
16.3
Human Factors in Human-Computer Interaction
. 537
16.3.1
Humanities
. 537
16.3.2
Artistic Design
. 538
16.3.3
Ergonomics
. 539
16.4
The Role of Models in Human-Computer Interaction
. 540
16.4.1
A Model of Human Information Processing
. 542
16.4.2
Mental Models of Information Systems
. 544
16.4.3
Conceptual Models in User Interface Design
. 547
16.5
The Design of Interactive Systems
. 549
16.5.1
Design as an Activity Structure
. 550
16.5.2
Design as Multi-Disciplinary Collaboration
. 552
16.6
Task Analysis
. 553
16.6.1
Task Analysis in HCI Design
. 554
16.6.2
Analysis Approaches for Collaborative Work
. 556
16.6.3
Sources of Knowledge and Collection Methods
. 557
16.6.4
An Integrated Approach to Task Analysis:
СТА
. 558
16.7
Specification of the User Interface Details
. 559
16.7.1
Dialog
. 560
16.7.2
Representation
. 561
16.8
Evaluation
. 562
16.8.1
Evaluation of Analysis Decisions
. 562
16.8.2
Evaluation of UVM Specifications
. 563
16.8.3
Evaluation of Prototypes
. 566
16.9
Summary
. 567
16.10
Further Reading
. 568
Exercises
. 569
1 7
Software Reusability
. 571
17.1
Reuse Dimensions
. 574
17.2
Reuse of Intermediate Products
. 576
17.2.1
Libraries of Software Components
. 576
17.2.2
Templates
. 580
Xiv CONTENTS
17.2.3 Reuse
of Architecture
. 581
17.2.4 Application Generators
and Fourth-Generation Languages
. 581
17.3
Reuse and the Software Life Cycle
. 582
17.4
Reuse Tools and Techniques
. 585
17.4.1
From Module Interconnection Language
to Architecture Description Language
. 586
17.4.2
Middleware
. 588
17.5
Perspectives of Software Reuse
. 591
17.6
Non-Technical Aspects of Software Reuse
. 594
17.6.1
Economics
. 596
17.6.2
Management
. 597
17.6.3
Psychology of Programmers
. 598
17.7
Summary
. 599
17.8
Further Reading
. 601
Exercises
. 601
18
Component-Based Software Engineering
. 605
18.1
Why Component-Based Software Engineering?
. 607
18.2
Component Models and Components
. 608
18.2.1
Component Forms in Component Models
. 610
18.2.2
Architecture and Component Models
. 614
18.3
Component-Based Development Process and Component
Life Cycle
. 619
18.3.1
Component-Based System Development Process
. 620
18.3.2
Component Assessment
. 622
18.3.3
Component Development Process
. 623
18.4
Architectural Approaches in Component-Based Development
. 625
18.4.1
Architecture-Driven Component Development
. 626
18.4.2
Product-Line Development
. 626
18.4.3
COTS-Based Development
. 627
18.4.4
Selecting an Approach
. 627
18.5
Summary
. 628
18.6
Further Reading
. 628
Exercises
. 629
19
Service Orientation
. 631
19.1
Services, Service Descriptions, and Service Communication
. 634
19.2
Service-Oriented Architecture
(SOA)
. 639
19.3
Web Services
. 641
19.3.1
Extensible Markup Language (XML)
. 643
19.3.2
Simple Object Access Protocol (SOAP)
. 644
19.3.3
Web Services Description Language (WSDL)
. 644
19.3.4
Universal Description, Discovery, and Integration (UDDI)
646
CONTENTS XV
19.3.5
Business Process Execution Language for Web Services
(BPEL4WS)
. 647
19.4
Service-Oriented Software Engineering
. 650
19.5
Summary
. 652
19.6
Further Reading
. 652
Exercises
. 653
20
Global Software Development
. 655
20.1
Challenges of Global System Development
. 657
20.2
How to Overcome Distance
. 664
20.2.1
Common Ground
. 664
20.2.2
Coupling of Work
. 666
20.2.3
Collaboration Readiness
. 666
20.2.4
Technology Readiness
. 666
20.2.5
Organizing Work in Global Software Development
. 668
20.3
Summary
. 670
20.4
Further Reading
. 670
Exercises
. 671
Bibliography
673
Index
705 |
any_adam_object | 1 |
any_adam_object_boolean | 1 |
author | Vliet, Hans van |
author_facet | Vliet, Hans van |
author_role | aut |
author_sort | Vliet, Hans van |
author_variant | h v v hv hvv |
building | Verbundindex |
bvnumber | BV023325523 |
callnumber-first | Q - Science |
callnumber-label | QA76 |
callnumber-raw | QA76.758 |
callnumber-search | QA76.758 |
callnumber-sort | QA 276.758 |
callnumber-subject | QA - Mathematics |
classification_rvk | ST 230 |
classification_tum | DAT 310f |
ctrlnum | (OCoLC)300304334 (DE-599)BVBBV023325523 |
dewey-full | 005.1 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 005 - Computer programming, programs, data, security |
dewey-raw | 005.1 |
dewey-search | 005.1 |
dewey-sort | 15.1 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Informatik |
discipline_str_mv | Informatik |
edition | 3. ed. |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>01892nam a2200481zc 4500</leader><controlfield tag="001">BV023325523</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20110727 </controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">080603s2008 xxu |||| 00||| eng d</controlfield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9780470031469</subfield><subfield code="9">978-0-470-03146-9</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)300304334</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV023325523</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">aacr</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="044" ind1=" " ind2=" "><subfield code="a">xxu</subfield><subfield code="c">US</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-861</subfield><subfield code="a">DE-Aug4</subfield><subfield code="a">DE-824</subfield><subfield code="a">DE-91G</subfield><subfield code="a">DE-473</subfield><subfield code="a">DE-29T</subfield><subfield code="a">DE-11</subfield><subfield code="a">DE-355</subfield><subfield code="a">DE-573</subfield><subfield code="a">DE-703</subfield><subfield code="a">DE-859</subfield></datafield><datafield tag="050" ind1=" " ind2="0"><subfield code="a">QA76.758</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">005.1</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 230</subfield><subfield code="0">(DE-625)143617:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">DAT 310f</subfield><subfield code="2">stub</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Vliet, Hans van</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Software engineering</subfield><subfield code="b">principles and practice</subfield><subfield code="c">Hans van Vliet</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">3. ed.</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Hoboken, NJ</subfield><subfield code="b">Wiley</subfield><subfield code="c">2008</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XXVI, 713 S.</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="500" ind1=" " ind2=" "><subfield code="a">Literaturverz. S. 673 - 703</subfield></datafield><datafield tag="500" ind1=" " ind2=" "><subfield code="a">Includes bibliographical references and index</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Génie logiciel</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Software engineering</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Software Engineering</subfield><subfield code="0">(DE-588)4116521-4</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Softwareentwicklung</subfield><subfield code="0">(DE-588)4116522-6</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Software Engineering</subfield><subfield code="0">(DE-588)4116521-4</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="689" ind1="1" ind2="0"><subfield code="a">Softwareentwicklung</subfield><subfield code="0">(DE-588)4116522-6</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="856" ind1="4" ind2=" "><subfield code="u">http://www.loc.gov/catdir/enhancements/fy0827/2008004317-d.html</subfield><subfield code="3">Publisher description</subfield></datafield><datafield tag="856" ind1="4" ind2=" "><subfield code="u">http://www.loc.gov/catdir/enhancements/fy0827/2008004317-t.html</subfield><subfield code="3">Table of contents only</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">Digitalisierung UB Bamberg</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=016509543&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="999" ind1=" " ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-016509543</subfield></datafield></record></collection> |
id | DE-604.BV023325523 |
illustrated | Not Illustrated |
index_date | 2024-07-02T20:55:26Z |
indexdate | 2024-07-09T21:15:55Z |
institution | BVB |
isbn | 9780470031469 |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-016509543 |
oclc_num | 300304334 |
open_access_boolean | |
owner | DE-861 DE-Aug4 DE-824 DE-91G DE-BY-TUM DE-473 DE-BY-UBG DE-29T DE-11 DE-355 DE-BY-UBR DE-573 DE-703 DE-859 |
owner_facet | DE-861 DE-Aug4 DE-824 DE-91G DE-BY-TUM DE-473 DE-BY-UBG DE-29T DE-11 DE-355 DE-BY-UBR DE-573 DE-703 DE-859 |
physical | XXVI, 713 S. |
publishDate | 2008 |
publishDateSearch | 2008 |
publishDateSort | 2008 |
publisher | Wiley |
record_format | marc |
spelling | Vliet, Hans van Verfasser aut Software engineering principles and practice Hans van Vliet 3. ed. Hoboken, NJ Wiley 2008 XXVI, 713 S. txt rdacontent n rdamedia nc rdacarrier Literaturverz. S. 673 - 703 Includes bibliographical references and index Génie logiciel Software engineering Software Engineering (DE-588)4116521-4 gnd rswk-swf Softwareentwicklung (DE-588)4116522-6 gnd rswk-swf Software Engineering (DE-588)4116521-4 s DE-604 Softwareentwicklung (DE-588)4116522-6 s http://www.loc.gov/catdir/enhancements/fy0827/2008004317-d.html Publisher description http://www.loc.gov/catdir/enhancements/fy0827/2008004317-t.html Table of contents only Digitalisierung UB Bamberg application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=016509543&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis |
spellingShingle | Vliet, Hans van Software engineering principles and practice Génie logiciel Software engineering Software Engineering (DE-588)4116521-4 gnd Softwareentwicklung (DE-588)4116522-6 gnd |
subject_GND | (DE-588)4116521-4 (DE-588)4116522-6 |
title | Software engineering principles and practice |
title_auth | Software engineering principles and practice |
title_exact_search | Software engineering principles and practice |
title_exact_search_txtP | Software engineering principles and practice |
title_full | Software engineering principles and practice Hans van Vliet |
title_fullStr | Software engineering principles and practice Hans van Vliet |
title_full_unstemmed | Software engineering principles and practice Hans van Vliet |
title_short | Software engineering |
title_sort | software engineering principles and practice |
title_sub | principles and practice |
topic | Génie logiciel Software engineering Software Engineering (DE-588)4116521-4 gnd Softwareentwicklung (DE-588)4116522-6 gnd |
topic_facet | Génie logiciel Software engineering Software Engineering Softwareentwicklung |
url | http://www.loc.gov/catdir/enhancements/fy0827/2008004317-d.html http://www.loc.gov/catdir/enhancements/fy0827/2008004317-t.html http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=016509543&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT vliethansvan softwareengineeringprinciplesandpractice |