Acknowledgements

PM Milestone Project Management Templates

PM Milestone Business Templates

Get Instant Access

I must begin with my wife, Gwen, who once again has spent long hours editing and reviewing these chapters. She has cleaned up many of my grammatical errors, snapped my run-ons into smaller sentences and kept my writing clear.

The team at Wrox has been an incredible help, working long hours on massaging my text into the final polished work you see before you. Thanks go to the editors Chris Hindley, Julian Skinner, Tony Davis, Claire Fletcher and Dominic Shakeshaft.

I would also like to thank all of the reviewers who have spent their time reading the chapters and making comments. They have worked hard to make this book what it is. I would especially like to thank Kathleen Peters. Her comments have shown an incredible depth of knowledge of project management and the Visual Basic language. Her comments have been to the point, sometimes humorous (definitely something an author needs as they are going through pages of comments) and always accurate. She has added much to this book and deserves special mention.

I also want to thank my readers. May this book give you the knowledge you need to properly manage all of your Visual Basic projects and help you make all of your projects successful.

Table of Contents

Introduction 1

Why Do We Need To Know About Project Management? 1

Who Is This Book For? 2

What You Need To Use This Book 2

What's Covered In This Book 2

Conventions Used 4

Source Code 5

Tell Us What You Think 5

Chapter 1: Introduction to Project Management 7

Project Management Myths 10

Myth 1: Software Projects are Bound to Fail 10

Myth 2: We Don't Need to Design Visual Basic Projects 11

Myth 3: Methodologies Stifle Creativity 11

Programming with Objects 12

Encapsulation and Abstraction 12

Building Components 13

Why Do We Need Object-Oriented Programming? 14

The Cyclic Methodology 14

The Four Phases of the Cyclic Methodology 16

Envisionment Phase 17

Milestones and Deliverables 18

Design Phase 19

Object-Oriented Project Design During the Design Phase 19

The Three Stages of the Design Phase 19

Iterative Design of the Three Stages 20

Milestones and Deliverables 20

Development Phase 22

Milestones and Deliverables 22

Deployment Phase 23

Deliverables 23

Team Roles for the Cyclic Methodology 24

Team Member Involvement in the Four Phases 25

Summary 27

Chapter 2: Teams 2 9

The Big Development Team Myth 30

The Autocratic Manager 30

Problems of Autocratic Management in a VB Project 31

Self-Directed Work Teams 32

Team Structure 33

Visual Basic Software Team Roles 36

Project Manager 36

Envisionment Phase 37

Design, Development and Deployment Phases 37

Product Managers 37

Envisionment Phase 37

Design Phase 38

Development Phase 38

Deployment Phase 38

Component Managers 38

Envisionment Phase 39

Design Phase 39

Development Phase 39

Deployment Phase 39

Developers 39

Envisionment Phase 39

Design Phase 40

Development Phase 40

Deployment Phase 40

Testing 40

Envisionment Phase 40

Design Phase 41

Development Phase 41

Deployment Phase 41

Logistics 4l

Envisionment Phase 42

Design Phase 42

Development Phase 42

Deployment Phase 42

User Education 42

Envisionment Phase 43

Design Phase 43

Development Phase 43

Deployment Phase 43

End Users 43

Envisionment Phase 43

Design Phase 44

Development Phase 44

Deployment Phase 44

Stakeholders and Sponsors 44

Envisionment Phase 44

Design, Development and Deployment Phases 44

Team Skills and Abilities 44

Communication 45

Making Decisions 47

Proper Planning 49

Solving Problems 52

Creativity 54

Resolving Conflicts 55

A Passion for Building Enterprise Solutions 57

Focusing On the Client 58

Team Spirit 60

Leadership 61

Accomplishing Goals 63

System Management 64

General Team Skills 65

Summary 67

Skills References 68

Chapter 3: Creating Project Schedules 71

Using Project 98 to Schedule Your Goals 74

Project 98 Views 74

Project Starting Date 75

Gantt View 75

Gantt Chart Timescales 76

Creating the Schedule 78

Duration Field in a Gantt Chart 78

Entering Goals Into Project 98 79

Creating Sub-goals 82

Time Estimates and Milestones 83

Entering Project Information 85

Recurring Goals 88

Links 89

Saving the Schedule 93

Resources 93

Resource Management 96

Changing the Look of your Schedule 100

Project 98 Tables 105

Cost Estimates 105

Creating an Export Table 108

Summary 116

Chapter 4: Envisionment Phase 119

Summary of Team Focus 120

Overview of the Envisionment Phase 120

The Enterprise Architecture Document (EAD) 121

Evaluation of Technology 122

Evaluation of Value of the Information 123

Developer Resources 123

Geographical 1 23

Financial Resources 124

Realistic Expectations 124

The Consensus Meeting-Creating Vision/Scope 124

The First Consensus Meeting 125

The Second Consensus Meeting 129

Drilling down into Goals 130

Deliverables of the Second Consensus Meeting 132

Business Processes 132

Third Level Goals 133

Defining Scope 135 Total Cost of Ownership(TCO) and

Return on Investment (ROI) 136

The Vision/Scope Document 138

Introduction 138

Project Cycles 139

First Cycle 141

Scope 141

Second Level Goal 142

Third Level Goals 142

Goal 142

Sub Goals 142

Risk Analysis 142

Resources 143

Conflict resolution 143

TCO and ROI Documentation 143

Project Schedule 143

Definition of Important Terms 143

Goals for Later Project Cycles 143

Business Processes 144

The Final Part of the Envisionment Phase 144

Summary 144

Chapter 5: Risk Management 147

Identifying Possible Risks 148

Risk Assessment Document 148

Project Schedule 149

Funds 149

Resources 149

Personnel 149

Project Manager 150

Cost Controls (Methods are in place to control costs) 150

Team Member Skills 150

Client Expectations 150

Workflows 151

Consensus on the Goals 151

Well-Defined Goals 151

Long-Term Results 151

Milestones 152

Goals that Meet Corporate Needs 152

Corporate Standards and Vision Statement 152

Changes in Corporate Vision 152

Well-Tested Technology 152

Testing 153

Unit and System Testing 153

Stakeholders and Sponsors 153

Team Members Commitment 153

Roles and Responsibilities 154

User Contribution 154

User Interest 154

Built With Cycles 154

Scope 154

Building Reusable Components 155

Change Control 155

Documentation 155

Definition of Goals 155

Methodologies 155

Example Risk Document 156

Change Control 156

Funds 156

Goal Measurement (Milestones) 156

User Contribution 156

Creating Risk Metrics 157

Creating Plans to Eliminate or Reduce Risks 158

Risks that Cannot be Eliminated or Reduced 158

Risk Tracking 160

Example Risk Tracking Document 161

Summary 162

Chapter 6: Design Phase: Conceptual Stage 165

Summary of Team Focus 166

Overview of the Conceptual Design Stage 166

Moving from Third Level Goals to Scenarios 167

Defining the Different Types of Users 168

Interviewing Users 169

Creating Scenarios 172

Workflows 174

Use Cases 175

Business Rules 176

Requirement Business Rules 176

Definition Business Rules 177

Factual Business Rules 177

Constraint Business Rules 177

Derivation Business Rules 177

The Full Use Case Model 179

Who are the Users? 181

Iterative Cycles 184

Summary 184

Chapter 7: Design Phase: Logical Stage 187

Summary of Team Focus 188

Overview of the Logical Stage 188

The Scope of the Logical Stage 188

Object Attributes 190

Abstraction 190

Encapsulation 191

Cohesion and Coupling 193

Cohesion 194

Coupling 196

Composition and Emergence 196

Defining Components from Use Cases 197

Choosing a Framework 199

Single-Tier Applications 199

Two-Tier Applications 200

Data Conflicts and Locking 200

Scalability 201

Three-Tier Applications 201

Physical and Logical Models 202

Physical Three-Tier Model 202

Logical Three-Tier Model 202

Microsoft Transaction Server 203

Transaction Processing 203

What Is a Transaction? 203

ACID Properties 204

Atomicity 204

Consistency 204

Isolation 204

Durability 204

When Should MTS Be Used? 205

MTS, Visual Basic and Threading 205

Single-Threading and Multi-Threading 205

Threading Apartments 206

Apartment Threading 207

Just What is DNA? 208

Defining the Composition of the System 209

Creating a Prototype User Interface 217

Building the Order Entry Sequence Diagram 217

Using Tabs 220

Putting All the Tabs on One Form 221

Are Two Forms better than one? 222

Security 223

Internet Applications 224

A Form in Many Guises 224

Summary 225

Chapter 8: Design Phase: Physical Stage 227

Summary of Team Focus 228

Overview of the Physical Design Stage 228

Designing as a Team 229

Choosing the Best Solution 230

Researching the Best Solution 230

Build, Buy or Reuse? 231

When is Visual Basic not the Right Choice? 232

Resource Estimates 234

Allocating Services to Components 234

Designing the Business Services Component 235

Class Hierarchies 236

Distributing the Business Services Objects 239

Designing the Data Services Class 240

ActiveX Data Objects (ADO) 242

Connection Pooling 242

Communication Between Components 243

RDS and DCOM 243

Effect of MTS 247

Object Lifetimes 247

Managing Transactions 248

MTS and Database Transactions 248

Non-Transactional Objects 249

The Managing Class Revisited 249

Mapping Out the Code using Activity Diagrams 250

Activity Diagram For Creating an ADO connection 251

Retrieve Customer Activity Diagram 253

Update Recordset Activity Diagrams 257

Benefits of Activity Diagrams 258

Effective Testing 259

Other Features to be Determined in the Physical Stage 259

Security 259

Error Handling 261

Risk Assessment 265

Publishing the Final Interface 265

Summary 265

Chapter 9: Development Phase 267

Summary of Team Focus 268

Overview of Development Phase 269

Risk Management 269

Writing Visual Basic Code 270

Code Reviews 270

Coding the DNA Visual Basic Project 271

The Business Services Components 271

Bottom Class 272

Middle Class 274

Top Class 276

The Server Component 277

Reusing Our Visual Basic Code 278

Patterns 279

General Patterns 279

Specific Patterns 279

Finding Your Own Patterns 280

Why Are Patterns So Useful? 280

Finding Patterns in our Sequence Diagrams 281

How Can We Take Advantage of Patterns? 283

Interfaces 283

Object Hierarchies 284

Exploiting Patterns for Code Reuse 285

Using an ASP page 286

Using a Visual Basic Component and an ASP Page 286

The Client HTML Page 288

Building the ASP Page 289

Modifying the Products Component 290

Building the Visual Basic Component 290

Using DHTML 296

Coding the DHTML HTML Page 296

The Future 300

Summary 301

Chapter 10: Testing 303

Usability Testing 304

User Interface Testing 304

Testing of Business and Data Services Components 305

Test Applications 305

Unstructured Test Applications 305

Structured Test Applications 306

Functional Testing 306

Types of Functional Testing 307

Bug Tracking 308

Debugging Visual Basic MTS Components 309

Logging Information from an MTS Component 320

The Log Database 321

Declarations 321

Writing to a Text File 323

Writing to the Event Log 324

Modifying the CreateInstance Function 325

Modifying the SetADOConnection Procedure 325

Conclusion 328

Chapter 11: Deployment Phase 331

Summary of Team Focus 332

Overview of the Deployment Phase 332

Activities in the Deployment Phase 333

Determine the Rollout Schedule 333

Beta Testing 333

Ranking Bugs 335

User Training 336

Prepare Infrastructure 337

Assemble Project Documentation 337

Creating Changes in the Code 338

Physically Deploying the Application 338

Deployment Strategies 338

Visual Basic Deployment Wizard 339

Dependency Files 341

Floppy Disk or CD-ROM? 346

Intranet / Internet Solution 347

Final Sign Off 347

Summary 348

Chapter 12: Versioning and Sharing Project

Files 3S1

A Look at Visual SourceSafe 352

Adding a Project to Visual SourceSafe 353

Checking Files Out of Visual SourceSafe 355

Configuring VSS 356

Merging Files 356

Versioning Files 357

Versioning with VSS 357

Visual SourceSafe Scenarios 358

Building a SourceSafe Project 362

File Histories 363

Maintaining Reusable Code 363

Summary 363

Chapter 13: Creating a Project Schedule 36S

Project Resources 365

Envisionment Phase Schedule 368

Design Phase Schedule 375

Development Phase Schedule 387

Deployment Phase Schedule 398

Improvements to the Schedule 403

Summary 405

Appendix A: A Brief Overview of UML 4 07

What Exactly is a Model? 407

UML Diagrams 408

Use Case Models 409

Interaction Diagrams 411

Sequence Diagrams 411

Collaboration Diagrams 412

Activity Diagrams 412

Class Diagrams 413

Other Diagrams 414

UML Notation 414

Classes and Objects 414

Relationships 415

Dependency 415

Association 415

Aggregation 415

Composition 415

Multiplicity 416

Naming an Association 416

Inheritance 416

Multiple Inheritance 416

States 417

Object Interactions 417

Use Cases 418

Design Patterns 418

Appendix B: UML to VB Mapping 421

Purpose of the VB Mapping 421

UML Version Covered 421

How the Mapping is Structured 421

How Well Does the UML Map to VB? 422

UML and Components 422

Concrete Or By Convention? 422

Upgrade to at Least VB5 423

Styles Used in the Mapping 423

How to Use this Mapping 423

Building Your Diagrams 423

Mapping Guide 424

1.0 General Extension Mechanisms 426

1.1 Constraints and Comments 426

1.2 Element Properties 426

1.3 Stereotypes 427 2.0 Model Management 427

2.1 Packages 428

2.1.1 External Libraries as Packages 428

2.1.2 Nested Packages 429

2.1.3 Packages and the File System 429

2.1.4 Package Stereotypes 429

2.1.5 Package Dependencies 430

3.0 Static Structure Diagrams 430

4.0 Classifiers 431

4.1 General 431

4.1.1 Name 432

4.1.2 Features 432

4.1.3 Inheritance and Stereotypes 432

4.1.4 Implementation Inheritance 433

4.1.5 Static Members 434

4.1.6 Parameterized Classes (Templates) 435

4.1.7 Class Mapping Advice 435

4.2 Interfaces 435

4.3 Attributes 436

4.3.1 Visibility 436

4.3.2 Name 436

4.3.3 Type 436

4.3.4 Initial Value 437

4.4 Operations 437

4.4.1 Visibility 437

4.4.2 Name 438

4.4.3 Parameters 438

4.4.4 Return Type 438

4.4.5 The Operation and Method Distinction 438

4.4.6 Parameters 438

Kind 439

Type 439

Default Value 439

4.4.7 Polymorphic Operations 439

4.4.8 Stereotypes 439

4.5 Utilities 439

4.6 Associations 440

4.6.1 Multiplicity 440

4.6.2 Qualifiers 440

4.6.3 N-ary Associations 440

4.6.4 Aggregation and Composition 440

4.6.5 Implementing Associations 441

4.6.6 Basic 1-to-1 Unidirectional Associations 441

4.6.7 Basic 1-to-Many Unidirectional Associations 442

4.6.8 Implementing Qualifiers 445

4.6.9 Bi-directional Associations and Referential Integrity 445

4.6.10 Problems with Simple Associations 447

4.6.11 Link Management Routines 447

4.6.12 Association Classes and Link Management 449

4.6.13 A Final Example: Bi-directional 1-to-Many Association with Link Management and Qualifier 452

4.6.14 Miscellaneous Advice 456 Associations Advice: Always Hide Your Implementation 456 Associations Advice: Avoid Cyclic Dependencies 456 Associations Advice: "Keyed" References 457 Associations Advice: Use Property Procedures to Provide ReadOnly Associations 457 Associations Advice: Build Type-Safe Collections 458 Associations Advice: Use "Debug.Assert" to Firm up the "Contract" of Your Operations 459 Associations Advice: Consider Using Events to Trigger Link Management 459

5.0 Use Case Diagrams 459

5.1 A Word of Warning 460

5.2 Use Cases and Transactions 460

5.3 Use Cases and Controllers 460 6.0 Behavioral Diagrams 461

7.0 Sequence & Collaboration Diagrams 461

7.1 Object Instances and Context 462

7.2 Interactions 463

7.3 Pseudo-Code 463

7.4 Collaboration Diagrams 463 8.0 Statechart Diagrams 464

8.1 Mapping States and Transitions 464

8.2 Implementing State 464

8.3 An Example 465

8.4 Implicit Implementation 466

8.5 Explicit Implementation: A Finite State Machine 468 9.0 Activity Diagrams 472 10.0 Implementation Diagrams: Component & Deployment

Diagrams 473

10.1 UML Components and Visual Basic 474

10.2 Logical components 474

10.3 Physical Components 475

10.4 Stereotypes 476

Appendix C: Creating a VB Code Generator Add-

In 479

Building a Visual Basic Add-in 480

Visual Basic Extensibility Object 482

Finishing BasMain 483

Writing the Code for the Code Generator 484

Coding the Bas Module 484

Coding the Bottom Class 488

Bottom Class Declarations 488

Class Initialize 489

Class Terminate 489

Creating the ValidateFields Function 490

Changed Field Event 490

Get and Let Functions 493

Miscellaneous Properties 495

Generating the Middle Class 495

Creating the Declarations 496

Intialize and Terminate Functions 497

Non-Data Methods and Properties 498

Generate Recordset Methods 503

Generating the Top Class 506

Generating the Data Services Class 509

Getting the Information From the Access Database 515

Generating the Code into the Visual Basic IDE 520

Getting a Reference to the Current Visual Basic IDE 524

Using the Code Generator 525

Testing the Generated Code 526

Was this article helpful?

0 0
Project Management Made Easy

Project Management Made Easy

What you need to know about… Project Management Made Easy! Project management consists of more than just a large building project and can encompass small projects as well. No matter what the size of your project, you need to have some sort of project management. How you manage your project has everything to do with its outcome.

Get My Free Ebook


Responses

  • Fatimah
    How to write an acknowledgement at visual basic project?
    3 years ago
  • oliwia
    How to write acknowledgement on visual basic studio?
    2 years ago
  • arlene miles
    HOW I WROTE A ACKNOWLADGEMENT OF A VISUAL BASIC PROJECT?
    2 years ago

Post a comment