Engineering Design. Software. Theory and Practice. Carlos E. Otero. CRC Press. Taylor & Francis Croup. Taylor St Francis Croup, an Informa business



Similar documents
Management. Project. Software. Ashfaque Ahmed. A Process-Driven Approach. CRC Press. Taylor Si Francis Group Boca Raton London New York

THE COMPLETE PROJECT MANAGEMENT METHODOLOGY AND TOOLKIT

Development and Management

SOFTWARE TESTING AS A SERVICE

SOFTWARE TESTING. A Craftsmcm's Approach THIRD EDITION. Paul C. Jorgensen. Auerbach Publications. Taylor &. Francis Croup. Boca Raton New York

Quality Management. Theory and Application PETER D. MAUCH. Ltfi) CRC Press. \ V J Taylor & Francis Group. ^ ^ Boca Raton London New York

Object-Oriented Systems Analysis and Design

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

Cloud Computing. and Scheduling. Data-Intensive Computing. Frederic Magoules, Jie Pan, and Fei Teng SILKQH. CRC Press. Taylor & Francis Group

COSC 3351 Software Design. Recap for the first quiz. Edgar Gabriel. Spring For the 1 st Quiz

RESILIENT. SECURE and SOFTWARE. Requirements, Test Cases, and Testing Methods. Mark S. Merkow and Lakshmikanth Raghavan. CRC Press

Improving Business Process Performance

Customer and Business Analytic

Demystified CONTENTS Acknowledgments xvii Introduction xix CHAPTER 1 Database Fundamentals CHAPTER 2 Exploring Relational Database Components

Obj ect-oriented Construction Handbook

How To Understand The Software Development Lifecycle

Implementing the Project Management Balanced Scorecard

Requirements Engineering for Software

How To Write A Diagram

Study Guide. ScrumMaster. The. James Schiel. CRC Press. Taylor & Francis Croup, an Inform* business AN AUERBACH BOOK. CRC Press (s an imprint of the

Project Management Concepts, Methods, and Techniques

CHAPMAN & HALL/CRC INNOVATIONS IN SOFTWARE ENGINEERING AND SOFTWARE DEVELOPMENT. Software Test Attacks to Break Mobile and Embedded Devices

Ctfo MANAGEMENT SECURITY PATCH. Felicia M. Nicastro. Second Edition. CRC Press. VC#*' J Taylor & Francis Group / Boca Raton London New York

SECOND EDITION THE SECURITY RISK ASSESSMENT HANDBOOK. A Complete Guide for Performing Security Risk Assessments DOUGLAS J. LANDOLL

Advances in Network Management

for Information Technology

ANDROID SECURITY ATTACKS AND DEFENSES ABHISHEK DUBEY I ANMOL MISRA. ( r öc) CRC Press VV J Taylor & Francis Group ^ "^ Boca Raton London New York

Information Technology and Organizational Learning

TABLE OF CONTENTS ABSTRACT ACKNOWLEDGEMENT LIST OF FIGURES LIST OF TABLES

EFFECTIVE NON-PROFIT MANAGEMENT

CREATING A THIRD EDITION DAVID MANN

Implementation. Business-Driven IT-Wide Agile (Scrum) and Kanban (Lean) Andrew T. Pham and David K. Pham. An Action Guide for Business and IT Leaders

for Research and Guiding Innovation for Positive R&D Outcomes Lory Mitchell Wingate

Master Data Management

Design of Enterprise Systems

Networking. Systems Design and. Development. CRC Press. Taylor & Francis Croup. Boca Raton London New York. CRC Press is an imprint of the

The Unified Software Development Process

Lean Management System LMS:2OI2

SYSTEMS ANALYSIS DESIGN

Table of Contents. CHAPTER 1 Web-Based Systems 1. CHAPTER 2 Web Engineering 12. CHAPTER 3 A Web Engineering Process 24

Introduction to Supply Chain Management Technologies

Open Source Data Warehousing and Business Intelligence

Jacob Bercovitch. S3 Routledge. A/ Theory and Practice of International Mediation Selected essays. j j ^ Taylor & Francis Croup

Mining. Practical. Data. Monte F. Hancock, Jr. Chief Scientist, Celestech, Inc. CRC Press. Taylor & Francis Group

The Essential Guide to User Interface Design An Introduction to GUI Design Principles and Techniques

Chap 1. Introduction to Software Architecture

BUSINESS ANALYSIS FDR INTELLIGENCE

Managing Data in Motion

Agile Software Development

LabVIEW Advanced Programming Techniques

Karunya University Dept. of Information Technology

Introduction to Financial Models for Management and Planning

ARIS Design Platform Getting Started with BPM

Contents. iii. ix xi xi xi xiii xiii xiii xiv xv xvi xvii xix

A Simulation-Based lntroduction Using Excel

Grid Computing FUNDAMENTALS OF. Theory, Algorithms and Technologies. Frederic Magoules. Edited by. CRC Press

Business Information Systems and Technology

Data Modeling Basics

Management. ITIL Release. Dave Howard. A Hands-on Guide. CRC Press. Taylor & Francis Group. Taylor St Francis Croup, an Informa business

Object Oriented Design

Table of Contents. Preface. Chapter 1 Introduction 1.1 Background. 1.2 Problem description. 1.3 The role of standardization. 1.4 Scope and objectives

Requirements Engineering

Delivering Business Intelligence With Microsoft SQL Server 2005 or 2008 HDT922 Five Days

Scenario-Based Development of Human-Computer Interaction. MARY BETH ROSSON Virginia Polytechnic Institute and State University

Negoltaling Gosnpeiit' ^ Wvaniage

Detection. Perspective. Network Anomaly. Bhattacharyya. Jugal. A Machine Learning »C) Dhruba Kumar. Kumar KaKta. CRC Press J Taylor & Francis Croup

PROJECT MANAGEMENT PROFESSIONAL CERTIFIED ASSOCIATE IN PROJECT MANAGEMENT (PMP & CAPM) EXAM PREPARATION WORKSHOP

Measuring Data Quality for Ongoing Improvement

Java (12 Weeks) Introduction to Java Programming Language

THE MODERN THEORY OF THE TOYOTA PRODUCTION SYSTEM

Designing Real-Time and Embedded Systems with the COMET/UML method

Information Systems Analysis and Design CSC John Mylopoulos. Software Architectures Information Systems Analysis and Design CSC340

COURSE CODE : 4072 COURSE CATEGORY : A PERIODS / WEEK : 4 PERIODS / SEMESTER : 72 CREDITS : 4

CONTENTS Preface xv 1 Introduction

RUP Design. Purpose of Analysis & Design. Analysis & Design Workflow. Define Candidate Architecture. Create Initial Architecture Sketch

QUANTITATIVE METHODS. for Decision Makers. Mik Wisniewski. Fifth Edition. FT Prentice Hall

Deliuery Networks. A Practical Guide to Content. Gilbert Held. Second Edition. CRC Press. Taylor & Francis Group

TABLE OF CONTENTS CHAPTER TITLE PAGE

Expert PHP and MySQL. Application Desscpi and Development. Apress" Marc Rochkind

Business-Driven Software Engineering Lecture 3 Foundations of Processes

Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: (Computer Programming 2).

Quantification and Traceability of Requirements

Data Center Storage. Hubbert Smith. Implementation, and Management »C) Cost-Effective Strategies, CRC Press J Taylor & Francis Group

Production and Operations. Management Systems

Screen Design : Navigation, Windows, Controls, Text,

in Business Technology Management

CS 487. Week 8. Reference: 1. Software engineering, roger s. pressman. Reading: 1. Ian Sommerville, Chapter 3. Objective:

Business Architecture

PL/SQL Programming Workbook

Effective Methods for Software and Systems Integration

Object-Oriented Design

Software Engineering

TOYOTA. by TOYOTA. Reflections from the Inside Leaders on the Techniques That Revolutionized the Industry. Edited by Samuel Obara and Darril Wilburn

Developing. and Securing. the Cloud. Bhavani Thuraisingham CRC. Press. Taylor & Francis Group. Taylor & Francis Croup, an Informs business

Green Project Management

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces

Basic Unified Process: A Process for Small and Agile Projects

Warning Signs and the Red Flag System

TABLE OF CONTENT CHAPTER TITLE PAGE TITLE DECLARATION DEDICATION ACKNOWLEDGEMENTS ABSTRACT ABSTRAK

Object Oriented Analysis and Design and Software Development Process Phases

Transcription:

Software Engineering Design Theory and Practice Carlos E. Otero CRC Press Taylor & Francis Croup Boca Raton London New York CRC Press is an imprint of the Taylor St Francis Croup, an Informa business AN AUERBACH BOOK

Contents Preface Acknowledgments About the Author xvii xix xxi Chapter 1 Introduction to Software Engineering Design 1 Chapter Objectives 1 Conceptual Overview 1 Engineering Design 2 Engineering Problem Solving 3 Initial State 4 Operational State 4 Thinking about the Problem 5 Problem Solution 6 Goal State 6 Software Engineering Design 9 Why Study Software Engineering Design? 10 Reasons for Studying Software Design in Product Development 10 Reasons for Studying Software Design in Project Management 11 Software Design Challenges 11 Design Challenge I; Requirements Volatility 12 Design Challenge 2: Process 12 Design Challenge 3: Technology 12 Design Challenge 4: Ethical and Professional Practices 13 Design Challenge 5: Managing Design Influences 13 Stakeholders 14 Development Organization's Structure 14 Context of Software Design 15 Software Design Process 17 Software Architecture 18 Detailed Design 19 Interface Design 19 Component Design 20 Construction Design 20 Human-Computer Interface Design 21 Software Design Documentation 21 Software Design Management 21

viii Contents Roles of the Software Designer 22 Systems Engineer 23 Software Architect 23 Component Designer 23 Software Design Fundamentals 24 General Software Design Principles 24 Modularization 25 Abstraction 25 Encapsulation 26 Coupling 27 Cohesion 28 Separation of Interface and Implementation 29 Completeness and Sufficiency 30 Practical Software Design Considerations 30 Design for Minimizing Complexity 31 Design for Change 31 Software Design Strategies 31 Structured Design 31 Object-Oriented Design 32 Chapter Summary 32 Review Questions 33 References 34 Chapter 2 Software Design with Unified Modeling Language 35 Chapter Objectives 35 Conceptual Overview 35 What Is UML? 36 Why Study UML? 37 The UML's Fundamentals 37 Structural Modeling 40 Component Diagrams 40 Logical versus Physical Components 42 Class Diagrams 43 Classes 43 Name Compartment 44 Attribute Compartment 44 Operation Compartment 45 Relationships 46 Dependency 47 Association 47 Aggregation 48 Composition 48

Contents ix Generalization 49 Realization 50 Deployment Diagrams 53 Behavioral Modeling 55 Use Case Diagrams 55 Interaction Diagrams 57 Communication Diagrams 58 Sequence Diagrams 59 Concurrency in Interaction Diagrams 59 Chapter Summary 63 Review Questions 63 Chapter Exercises 64 References 65 Chapter 3 Principles of Software Architecture 67 Chapter Objectives 67 Conceptual Overview 67 What Is Software Architecture? 68 Why Study Software Architecture? 70 Key Tasks in Architectural Design 70 Identifying Stakeholders' Concerns 71 Identifying Appropriate Architectural Views 71 Identifying Architectural Styles and Patterns 71 Identifying System Interfaces 72 Identifying Impact of Architectural Decisions in Organization 72 Impact on Customer Base 73 Impact on Budget and Schedule 73 Impact from Resource Availability 74 Identifying the System's Major Components and Interfaces 74 Evaluating and Validating the Architecture 74 Introducing Policies for Design Synchronicity 75 Problem Solving in Software Architecture 76 Inputs 77 Constraints 77 Outputs 77 Software Architecture Process 78 Understand and Evaluate Requirements 79 Elicitation 79 Requirement Sources 79 Elicitation Techniques 81 Analysis 82

x Contents Specification and Validation 84 Specific 85 Designing Correct 86 Complete 86 Consistent 87 Attainable 87 Verifiable 88 the Architecture 88 The 4 + 1 View Model 89 User View 89 Process View 90 Physical Development Logical Components View 90 View 91 View 91 and Connectors 92 Designing Logical Architectural Elements Using Designing Logical Architectural Elements Using Styles Designing Data Flows 92 and Patterns 93 the Process Architecture 93 Processes 93 Threads 94 Evaluating the Architecture 103 Chapter Summary 104 Review Questions 105 Chapter Exercises 106 References 106 Chapter 4 Patterns and Styles in Software Architecture 107 Chapter Objectives 107 Conceptual Overview 107 Architectural Styles and Patterns 108 History of Architectural Styles and Patterns 108 Architectural Pattern Classification 109 Data-Centered Systems Ill Blackboard Pattern Ill Data Flow Systems 116 Pipe and Filter Pattern 116 Distributed Systems 120 Client-Server Pattern 120 Broker Pattern 122 Interactive Systems 127 Model-View-Controller Pattern 127

Contents xi Hierarchical Systems 131 Main Program and Subroutine 131 Layered Pattern 133 Chapter Summary 136 Review Questions 136 Chapter Exercises 137 References 137 Chapter 5 Principles of Detailed Design 139 Chapter Objectives 139 Conceptual Overview 139 What Is Detailed Design? 140 Key Tasks in Detailed Design 142 Detailed Design Process 142 Understanding the Architecture and Requirements 143 Creating Detailed Designs 144 Interface Design 144 External Interface Design 144 Internal Interface Design 145 Graphical User Interface Design 145 Designing Internal Structure of Components 145 Classes 146 Interfaces, Types, Subtypes, Dynamic Binding, and Polymorphism... 147 Objects 148 Design Principles for Internal Component Design 149 Open-Closed Principle 149 Liskov Substitution Principle 156 Interface Segregation Principle 157 Programming Styles in Detailed Design 159 Function Names 160 Variable Names 162 Modeling Internal Behavior of Components 164 Design Components Using Design Patterns 166 Architectural versus Design Patterns 167 Classification of Design Patterns 167 Documenting Design Patterns 168 Document the Software Design 169 Interface Control Document 171 Software Version Document 172 Monitor and Control Implementation 173 Chapter Summary 173 Review Questions 174

xii Contents Chapter Exercises 175 References 175 Chapter 6 Creational Design Patterns in Detailed Design 177 Chapter Objectives 177 Conceptual Overview 177 Creational Design Patterns 178 Abstract Factory 178 Problem 179 Structure 179 Implementation 181 Benefits 188 Factory Method 188 Problem 189 Structure 189 Implementation 191 Benefits 192 Builder 193 Problem 195 Structure 195 Implementation 197 Benefits 197 Prototype 201 Problem 201 Structure 204 Implementation 205 Benefits 207 Singleton 207 Problem... 208 Structure 208 Implementation 209 Benefits 211 Chapter Summary 211 Review Questions 211 Chapter Exercises 212 Reference 214 Chapter 7 Structural and Behavioral Patterns in Detailed Design 215 Chapter Objectives 215 Conceptual Overview 215 Structural Design Patterns 216

Contents xiii Adapter 216 Problem 217 Structure 219 Implementation 219 Benefits 221 Composite 223 Problem 224 Structure 225 Implementation 227 Benefits 231 Facade 232 Problem 234 Structure 235 Implementation 237 Benefits 238 Behavioral Design Patterns 238 Iterator 238 Problem 239 Structure 241 Implementation 245 Benefits 251 Observer 252 Problem 252 Structure 252 Implementation 254 Benefits 254 Chapter Summary 256 Review Questions 256 Chapter Exercises 257 Reference 258 Chapter 8 Principles of Construction Design 259 Chapter Objectives 259 Conceptual Overview 259 What Is Construction Design? 259 Why Study Construction Design? 260 Behavioral Construction Design 261 Flow-Based Designs 261 State-Based Designs 262 Table-Based Designs 264 Limited-Entry Decision Table 266 Extended-Entry Decision Table 268

xiv Contents Mixed-Entry Decision Table 270 Table-Based Construction 270 Programming Design Language 271 Software Construction Using Styles 274 Formatting Conventions 275 Indentation 276 Brace Placement 278 Naming Conventions 279 Documentation Conventions 282 Documenting Files 282 Documenting Functions 282 Minimizing Complexity in Construction Design 283 Quality Evaluation of Construction Design 284 Peer Reviews 285 Unit Testing 286 Cyclomatic Complexity 286 Chapter Summary 290 Review Questions 290 Chapter Exercises 291 References 292 Chapter 9 Human-Computer Interface Design 293 Jacob Somervell Chapter Objectives 293 Conceptual Overview 293 What Is Human-Computer Interface Design? 294 Why Study Human-Computer Interface Design? 294 General HCI Design Principles 297 Human-Computer Interface Design Methods 299 Getting Started 299 Fidelity in Prototypes 300 Metaphors 301 Gestalt Principles 303 Reusing Earlier Designs 305 Evaluation of HCI Quality 305 Usability Testing 305 Analytic Testing 306 Empirical Testing 307 Chapter Summary 309 Review Questions 309 Chapter Exercises 309 References 310

Contents xv Chapter 10 Software Design Management, Leadership, and Ethics 311 Luis Daniel Otero Chapter Objectives 311 Conceptual Overview 311 What Is Software Design Management? 312 Why Study Design Management? 312 The Concept of Quality 312 Design Management Planning Design Framework 313 Efforts 314 Scoping 315 Work Breakdown Structure 315 Budgeting 316 Organizing 317 Linear Responsibility Chart 318 Scheduling with Gantt Charts and Network Diagrams 318 Probability of Time to Completion 322 Establish Change Control Policy 324 Implementation Phase 325 Earned Value Management 326 Termination Stage 329 Leading the Design Effort 329 Personality Traits and Leadership 329 Personality Dimensions 329 Traits of Effective Leaders 330 Ethical Leadership 330 Power 331 Key Leadership Skills 332 Communication Skills 332 Networking Skills 333 Motivation Skills 333 Negotiation Skills 334 Ethics in Software Design 335 Public and Product Principles 335 Judgment Principle 336 Management Principle 336 Chapter Summary 336 Review Questions 338 Chapter Exercises 339 References 340 Index 341