Siêu thị PDFTải ngay đi em, trời tối mất

Thư viện tri thức trực tuyến

Kho tài liệu với 50,000+ tài liệu học thuật

© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Software engineering
PREMIUM
Số trang
376
Kích thước
12.0 MB
Định dạng
PDF
Lượt xem
1667

Software engineering

Nội dung xem thử

Mô tả chi tiết

Software Engineering

This page intentionally left blank

Software Engineering

Architecture-Driven

Software Development

Richard F. Schmidt

AMSTERDAM • BOSTON • HEIDELBERG • LONDON

NEW YORK • OXFORD • PARIS • SAN DIEGO

SAN FRANCISCO • SINGAPORE • SYDNEY • TOKYO

Morgan Kaufmann is an imprint of Elsevier

Acquiring Editor: Todd Green

Editorial Project Manager: Lindsay Lawrence

Project Manager: Priya Kumaraguruparan

Designer: Mark Rogers

Morgan Kaufmann is an imprint of Elsevier

225 Wyman Street, Waltham, MA, 02451, USA

Copyright © 2013 Published by Elsevier Inc. All rights reserved

No part of this publication may be reproduced or transmitted in any form or by any means,

electronic or mechanical, including photocopying, recording, or any information storage and

retrieval system, without permission in writing from the publisher. Details on how to seek

permission, further information about the Publisher’s permissions policies and our

arrangements with organizations such as the Copyright Clearance Center and the

Copyright Licensing Agency, can be found at our website: www.elsevier.com/permissions.

This book and the individual contributions contained in it are protected under copyright by the

Publisher (other than as may be noted herein).

Notices

Knowledge and best practice in this field are constantly changing. As new research and experience

broaden our understanding, changes in research methods or professional practices, may become

necessary. Practitioners and researchers must always rely on their own experience and knowledge in

evaluating and using any information or methods described herein. In using such information or

methods they should be mindful of their own safety and the safety of others, including parties for

whom they have a professional responsibility.

To the fullest extent of the law, neither the Publisher nor the authors, contributors, or editors,

assume any liability for any injury and/or damage to persons or property as a matter of products

liability, negligence or otherwise, or from any use or operation of any methods, products,

instructions, or ideas contained in the material herein.

Library of Congress Cataloging-in-Publication Data

Schmidt, Richard, 1956-

Software engineering: architecture-driven software development / Richard Schmidt.

pages cm

Includes bibliographical references and index.

ISBN 978-0-12-407768-3

1. Software engineering. 2. Software architecture. 3. Computer software—Development. I. Title.

QA76.758.S364 2013

005.1—dc23 2013000589

British Library Cataloguing-in-Publication Data

A catalogue record for this book is available from the British Library

Printed in the United States of America

13 14 15 16 17 10 9 8 7 6 5 4 3 2 1

For information on all MK publications visit our website at www.mkp.com

v

Contents

A Note from the Author...........................................................................................xv

Preface....................................................................................................................xvii

SECTION 1 SOFTWARE ENGINEERING FUNDAMENTALS

CHAPTER 1 Introduction to Software Engineering..............................7

1.1 Specifying software requirements..............................................10

1.2 Software architecture..................................................................11

1.3 Integrated product and process development .............................12

1.4 Integrated product teams............................................................13

1.5 Work breakdown structure .........................................................15

1.6 Software breakdown structure....................................................15

1.7 Specification and documentation trees.......................................17

1.8 Integrated master plan and schedule ..........................................17

1.9 Reviews and audits.....................................................................18

1.10 Configuration management and change control.........................20

1.11 Trade-off analysis.......................................................................22

1.12 Risk management .......................................................................24

1.13 Modeling and simulation............................................................24

CHAPTER 2 Generic Software Development Framework.................29

2.1 Software breakdown structure ....................................................31

2.2 Software development process ...................................................34

2.2.1 Requirements definition stage ...........................................35

2.2.2 Preliminary architecture definition stage...........................36

2.2.3 Critical architecture definition stage..................................37

2.2.4 Software unit code and testing stage .................................38

2.2.5 Software component integration and testing stage ............39

2.2.6 Product testing stage..........................................................39

2.2.7 Acceptance testing stage....................................................40

2.3 Summary.....................................................................................41

CHAPTER 3 Software Architecture ............................................... 43

3.1 Stakeholder needs relationships and dependencies ....................46

3.2 Software requirements baseline relationships and

dependencies...............................................................................48

3.3 Computing environment relationships and dependencies...........49

3.4 Test and evaluation relationships and dependencies...................49

3.5 Functional architecture relationships and dependencies.............50

vi Contents

3.6 Physical architecture relationships and dependencies................51

3.7 Post-development process relationships and dependencies........51

3.8 Motivation for the software architecture.....................................52

CHAPTER 4 Understanding the Software Project Environment.....55

4.1 Integrated product teams.............................................................60

4.2 Software architecture ..................................................................61

4.3 Complexity control mechanisms ................................................63

4.3.1 Work breakdown structure...............................................63

4.3.2 Product breakdown structure ...........................................64

4.3.3 Specification tree .............................................................65

4.3.4 Documentation tree .........................................................65

4.3.5 Software product baselines..............................................65

4.3.6 Requirements traceability guidelines ..............................67

4.3.7 Trade-off analysis............................................................68

4.3.8 Software complexity measures........................................70

4.4 Software nomenclature registry..................................................74

4.5 Software integration strategy ......................................................74

4.6 Project and technical planning....................................................75

4.6.1 Technical organization plans...........................................75

4.6.2 Project plans ....................................................................77

CHAPTER 5 Software Integrated Product and Process

Development...........................................................................79

5.1 Application of IPPD to software.................................................82

5.1.1 Customer focus................................................................84

5.1.2 Concurrent development of products and processes .......84

5.1.3 Early and continuous life-cycle planning ........................86

5.1.4 Maximize flexibility for optimization and use

of contractor unique approaches......................................87

5.1.5 Encourage robust design and improved

process capability ............................................................88

5.1.6 Event-driven scheduling ..................................................88

5.1.7 Multidisciplinary teamwork ............................................88

5.1.8 Empowerment..................................................................88

5.1.9 Seamless management tools............................................89

5.1.10 Proactive identification and management of risk.............89

5.2 Software engineering and development......................................89

CHAPTER 6 Impediments to Software Design.....................................93

6.1 Software as a raw material..........................................................95

6.2 Evolution of software technologies ............................................98

Contents vii

6.2.1 Software development methods and standards................101

6.2.2 Agile manifesto ...............................................................105

6.3 Architecture-driven software development...............................108

SECTION 2 SOFTWARE ENGINEERING PRACTICES

CHAPTER 7 Understanding Software Requirements.......................121

7.1 Step 1: Soliciting stakeholder needs and expectations .............124

7.2 Step 2: Requirement analysis and specification........................127

7.2.1 Balancing and deconflicting stakeholder needs...............129

7.2.2 Maintaining the scope of the project ...............................129

7.2.3 The availability of experienced software personnel ........132

7.3 Step 3: Task definition and scheduling .....................................132

7.4 Step 4: Resource identification, estimation, and allocation......133

7.5 Step 5: Establish organizational work packages.......................133

7.6 Step 6: Technical planning........................................................133

7.7 Step 7: Project planning............................................................134

7.8 Exploring stakeholder needs.....................................................135

CHAPTER 8 Software Requirements Analysis Practice.................139

8.1 Project analysis tasks................................................................140

8.1.1 Analyze project goals and objectives ..............................141

8.1.2 Identify development success criteria..............................142

8.1.3 Solicit stakeholder needs and expectations .....................142

8.1.4 Prioritize stakeholder needs.............................................144

8.2 Operational analysis tasks.........................................................144

8.2.1 Identify operational concepts ..........................................145

8.2.2 Identify operational scenarios..........................................145

8.2.3 Identify the computing environment characteristics........146

8.2.4 Identify external interfaces..............................................147

8.3 Product analysis tasks...............................................................147

8.3.1 Identify modes of operation.............................................148

8.3.2 Identify functional behaviors...........................................148

8.3.3 Identify resource utilization needs...................................150

8.3.4 Identify data processing conditional logic.......................150

8.3.5 Identify data persistence needs........................................151

8.3.6 Identify data security needs.............................................151

8.3.7 Identify data storage transactions....................................152

8.3.8 Identify measures of performance ...................................152

8.4 Sustainment analysis tasks........................................................152

8.4.1 Identify post-development process

operational concepts........................................................152

viii Contents

8.4.2 Identify post-development process

operational scenarios.....................................................153

8.4.3 Identify post-development process characteristics........153

8.4.4 Identify architectural guidelines and principles ............154

8.5 Project assessment tasks...........................................................155

8.5.1 Assess requirements sensitivity.....................................155

8.5.2 Identify the software test strategy..................................155

8.5.3 Assess proposed changes...............................................156

8.5.4 Assess project feasibility ...............................................157

8.6 Establish the requirements baseline..........................................157

CHAPTER 9 Software Requirements Management........................159

9.1 Embracing change ....................................................................160

9.1.1 Time is a valuable resource ...........................................160

9.1.2 Change impact analysis.................................................162

9.1.3 Adjusting project milestones.........................................164

9.2 Specifying requirements...........................................................166

9.3 Requirements decomposition and allocation............................168

9.3.1 Functional analysis........................................................169

9.3.2 Performance allocation..................................................169

9.3.3 Structural unit synthesis ................................................170

9.3.4 Structural component synthesis.....................................170

9.4 Requirements traceability .........................................................170

9.4.1 Change control...............................................................171

9.4.2 Configuration audits ......................................................172

CHAPTER 10 Formulating the Functional Architecture ..................173

10.1 Motivation for the functional architecture ................................174

10.2 Functional architecture ontology ..............................................176

10.2.1 Functional component ...................................................176

10.2.2 Functional unit...............................................................177

10.2.3 Data item .......................................................................177

10.2.4 Functional interface .......................................................177

10.2.5 External interface...........................................................178

10.2.6 Control structures ..........................................................178

10.2.7 Resource ........................................................................178

10.2.8 Data store.......................................................................179

10.3 Conceiving the functional architecture .....................................179

10.4 Documenting the functional architecture..................................181

10.4.1 Functional hierarchy......................................................181

10.4.2 Behavior model..............................................................182

10.4.3 Functional timeline........................................................183

Contents ix

10.4.4 Resource utilization profile..........................................183

10.4.5 Functional specifications.............................................184

10.4.6 Requirements allocation sheet.....................................184

CHAPTER 11 Functional Analysis and Allocation Practice ..........185

11.1 Assess functional complexity ...................................................187

11.2 Behavioral analysis...................................................................189

11.2.1 Identify functional scenarios .......................................190

11.2.2 Identify functional sequences......................................190

11.2.3 Identify data flows.......................................................191

11.2.4 Identify control behaviors............................................192

11.2.5 Identify data processing procedures............................193

11.2.6 Identify resource prerequisites ....................................194

11.2.7 Identify failure conditions ...........................................194

11.2.8 Identify systems monitoring procedures .....................196

11.2.9 Identify data retention capacity requirements .............197

11.2.10 Identify data security procedures.................................197

11.2.11 Identify data persistence and retention functions........197

11.3 Performance allocation .............................................................198

11.3.1 Allocate performance budgets.....................................199

11.3.2 Allocate resource budgets............................................199

11.4 Architectural assessment ..........................................................200

11.4.1 Assess requirements fulfillment ..................................200

11.4.2 Assess software performance ......................................200

11.4.3 Assess architectural complexity ..................................200

11.4.4 Assess optimization opportunities...............................200

11.5 Establish the functional architecture.........................................200

CHAPTER 12 Configuring the Physical Architecture.......................203

12.1 Structural design solution .........................................................205

12.1.1 Designating structural units.........................................207

12.1.2 Prepare structural unit specifications...........................209

12.1.3 Establishing the software integration strategy.............209

12.1.4 Designating engineering assemblages.........................211

12.1.5 Preparing the software technical data package............211

12.2 Structural design considerations...............................................211

12.2.1 Structural design guidelines ........................................211

12.2.2 Use of modeling and simulation..................................215

12.2.3 Behavioral analysis......................................................216

12.2.4 Structural trade-off analysis.........................................217

12.2.5 Software product performance evaluations.................217

12.2.6 Software prototyping ...................................................222

x Contents

CHAPTER 13 Software Design Synthesis Practice ............................227

13.1 Design conceptualization..........................................................230

13.1.1 Establish software architectural design guidelines........230

13.1.2 Identify abstract structural components.........................233

13.1.3 Identify abstract user interface mechanisms..................233

13.2 Design resolution......................................................................235

13.2.1 Identify fundamental structural elements......................235

13.2.2 Identify integrating components....................................236

13.2.3 Assess software reuse opportunities..............................236

13.3 Design correlation.....................................................................238

13.3.1 Establish performance benchmarks...............................238

13.3.2 Identify structural design deficiencies...........................239

13.3.3 Assess architectural alternatives....................................240

13.3.4 Assess software implementation challenges..................241

13.3.5 Assess software sustainment challenges........................242

13.3.6 Assess architectural integrity.........................................242

13.4 Design manifestation ................................................................244

13.4.1 Establish the structural design configuration.................244

13.4.2 Specify structural configuration elements.....................244

13.4.3 Identify engineering assemblages..................................244

13.5 Prepare the software technical data package ............................244

CHAPTER 14 Software Analysis Practice .............................................247

14.1 Defining the trade study............................................................250

14.1.1 Establish the trade-study scope .....................................250

14.1.2 Identify the candidate alternatives.................................250

14.1.3 Establish the success criteria .........................................251

14.2 Establish the trade-study environment......................................251

14.2.1 Assemble the experimental mechanisms.......................252

14.2.2 Assemble the data collection and analysis mechanisms.... 253

14.2.3 Establish trade-study procedures...................................255

14.3 Conduct the analysis.................................................................255

14.3.1 Evaluate requirements alternatives................................256

14.3.2 Evaluate functional alternatives.....................................256

14.3.3 Evaluate structural alternatives......................................257

14.4 Assess project repercussions.....................................................258

14.4.1 Assess developmental implications...............................258

14.4.2 Assess project implications ...........................................258

14.4.3 Identify project execution strategies..............................259

14.5 Evaluate trade-study results......................................................259

14.5.1 Prioritize architectural alternatives................................259

Contents xi

14.5.2 Determine the preferred course of action ......................260

14.5.3 Document the trade-study decision ...............................261

14.5.4 Promote the execution strategy......................................261

CHAPTER 15 Software Verification and Validation

Practice..................................................................................263

15.1 Define the V&V strategy ..........................................................265

15.1.1 Establish V&V scope.....................................................266

15.1.2 Establish V&V methods................................................270

15.1.3 Establish V&V procedures............................................270

15.2 Verify the software architecture................................................271

15.2.1 Verify the requirements baseline ...................................271

15.2.2 Verify the functional architecture ..................................271

15.2.3 Verify the physical architecture .....................................271

15.2.4 Verify the software implementation ..............................272

15.3 Validate the physical architecture .............................................272

15.3.1 Validate the structural configuration..............................272

15.3.2 Validate the integrated software configuration ..............272

15.4 Document V&V results.............................................................273

CHAPTER 16 Software Control Practice................................................275

16.1 Configuration administration....................................................277

16.1.1 Identify architectural elements......................................277

16.1.2 Maintain architectural status..........................................278

16.2 Process engineering change packages......................................279

16.2.1 Record engineering change requests and

proposals........................................................................279

16.2.2 Prepare change evaluation packages .............................279

16.3 Change evaluation.....................................................................281

16.3.1 Assess change technical merits .....................................281

16.3.2 Assess architectural consequences................................282

16.3.3 Assess technical work package consequences...............282

16.3.4 Assess technical plan consequences..............................283

16.4 Change assimilation..................................................................283

16.4.1 Publish change notification package .............................283

16.4.2 Audit the architectural change progress........................284

16.4.3 Appraise the project situation........................................284

16.5 Software repository control ......................................................284

16.5.1 Maintain engineering artifact repository .......................285

16.5.2 Maintain change history repository...............................285

16.5.3 Maintain technical risk repository.................................285

xii Contents

SECTION 3 STAGES OF SOFTWARE ENGINEERING

APPLICATION

CHAPTER 17 Software Requirements Definition.................................291

17.1 Products of software requirements definition ...........................292

17.2 Software engineering integrated product team

(software requirements definition stage)...................................295

17.3 Software implementation (software requirements

definition stage) ........................................................................298

17.4 Computing environment preparation

(software requirements definition stage)...................................299

17.5 Post-development process implementation

(software requirements definition stage)...................................299

17.6 Software test and evaluation (software

requirements definition stage)...................................................300

17.7 Reviews, milestones, and baselines (software

requirements definition stage)...................................................301

CHAPTER 18 Software Architecture Definition ...................................305

18.1 Preliminary architecture definition ...........................................307

18.1.1 Products of preliminary architecture definition.............307

18.1.2 Software engineering integrated product team

(preliminary architecture definition stage) ....................309

18.1.3 Software implementation preparation

(preliminary architecture definition stage) ....................311

18.1.4 Computing environment (preliminary architecture

definition stage) .............................................................311

18.1.5 Post-development process preparation

(preliminary architecture definition stage) ....................312

18.1.6 Software test and evaluation (preliminary architecture

definition stage) .............................................................312

18.1.7 Reviews and milestones (preliminary

architecture definition stage) .........................................314

18.2 Detailed architecture definition.................................................315

18.2.1 Products of detailed architecture definition...................315

18.2.2 Software engineering integrated product team

(detailed architecture definition stage) ..........................317

18.2.3 Software implementation (detailed architecture

definition stage) .............................................................318

18.2.4 Computing environment preparation

(architecture detailed definition)....................................319

Contents xiii

18.2.5 Post-development process preparation

(detailed architecture definition stage) ..........................319

18.2.6 Software test and evaluation (detailed

architecture definition stage) .........................................320

18.2.7 Reviews and milestones (detailed architecture

definition stage) .............................................................321

18.2.8 Establish the allocated baseline .....................................322

CHAPTER 19 Software Implementation .................................................323

19.1 Products of software implementation .......................................325

19.2 Software engineering tasks (software implementation

stage).........................................................................................327

19.3 Software implementation tasks (software

implementation stage)...............................................................327

19.4 Computing environment tasks (software

implementation stage)...............................................................329

19.5 Post-development process tasks (software

implementation stage)...............................................................329

19.6 Software test and evaluation tasks

(software implementation stage)...............................................330

19.7 Reviews and milestones (software implementation stage).......332

CHAPTER 20 Software Acceptance Testing.........................................335

20.1 Products of software acceptance testing ...................................336

20.2 Software engineering (software acceptance testing stage) .......337

20.3 Software implementation organization (software

acceptance testing stage)...........................................................338

20.4 Computing environment implementation organization

(software acceptance testing stage)...........................................339

20.5 Post-development process organization (software

acceptance testing stage)...........................................................339

20.6 Software test and evaluation (software acceptance

testing stage).............................................................................339

20.7 Reviews and milestones (software acceptance

testing stage).............................................................................340

20.8 Establish the software product baseline....................................341

Index ......................................................................................................................343

This page intentionally left blank

Tải ngay đi em, còn do dự, trời tối mất!