Proper Planning

With the type of self-directed teams being discussed here, each member will be assigned a task and will have to give an estimate as to how long it will take to complete the task. Therefore, each team member will have to make a plan for the tasks to which they are assigned. Anyone who has not done this before will probably need to get help from someone who has. Once you have made a few plans and estimated the time to complete several tasks, you will start to make better and more accurate plans....

The Scope of the Logical Stage

Perhaps one of the most common questions about the cyclic methodology is, How detailed should I get in each stage For the most part, each stage should focus on accomplishing a set of tasks. The conceptual design stage defined the goals of the users. The logical stage will define the interfaces of the components needed to fulfill the user's goals. The physical stage will be used to define the way we will need to code these components. If we go beyond defining the public properties and methods of...

Making Decisions

Making decisions is another essential skill you must have to work successfully on the team. We generally think of management decisions as the major decisions that cause the project to succeed or fail, such as what the vision and scope should be. However, in reality every person on a team is faced with making decisions that can have a serious impact on the project's success. For example, when you have a multitude of tasks that need to be performed, such as answering and reading email, meeting...

Overview of the Conceptual Design Stage

In the envisionment phase we began our search for goals. We started with the first level goal of the stakeholders and sponsors and fashioned them into a vision statement (primary goal). We saw how senior management identified first and second level goals, based on the business processes and the needs of the business. We drilled down a level deeper with the client and development team to create the third level goals. The high priority second and third level goals were placed into the Vision...

Putting All the Tabs on One Form

Putting all the separate parts together the Order Entry prototype GUI would create one large form as follows The Sales Representative can spend the entire day using this one form and never have to move away from it. Most of the information we used to create this GUI came from the use case Create New Order. However, there is at least one aspect of the GUI that follows from the sequence diagram. We have learnt that sequence diagrams place a temporal emphasis on an interaction. They give us the...

Defining the Composition of the System

Well, that concludes our diversion into application architecture. It might have seemed a little tough-going, but it is important for all team members to understand the basic issues here. This information will have a major impact on how we design our components. So, now we've got all that under our belt, we can move on to see how to design our object interfaces from the use cases. Remember that we looked earlier in the chapter at the use case for entering an order and identified three objects...

Look at Visual Source Safe

Visual SourceSafe is a useful tool supplied with Visual Studio which helps developers share Visual Basic files (called Source Control) and maintain different versions of files (Version Tracking). Source control is used to try to prevent two copies of the same file being changed at the same time. This can occur when two developers try to change the same file at the same time or when one developer accidentally opens two copies of the same file and tries to edit both of them. While this cannot be...

Security

An application that has different actors with different responsibilities will usually have a log in screen and some form of security. If our application employs the Review All Customers use case, the application should have security added and only allow a person logged in as a Sales Manager to view the Customer Review form. The Customer Review form would not be accessible to a Sales Representative. The Sales Representative has one main role, entering orders. There will only be one form she...

Accomplishing Goals

Everyone on the software team needs to know how to accomplish goals, as each member is responsible for accomplishing the goals that are assigned to them. The three levels of accomplishing goals are as follows You stay focused on goals until they are accomplished You are willing to take on difficult assignments to help the team accomplish its goals You take appropriate action when you are diverted from your goals You accomplish the assigned task even when it requires extra time and energy to...

Visual Basic Deployment Wizard

Visual Basic supplies you with a wizard for almost every task. In this case, it will take your final version of working code and package it so that it can be deployed to the end users. This is useful for every member of the team to know - even if you are not too technically minded, you will still be able to make sure that the application is available to be handed over to the end user. Open the package and Deployment Wizard from the Visual Basic folder (or the Visual Studio 6.0 Tools folder if...

The Four Phases of the Cyclic Methodology

This section will provide an overview of each of the four stages in the project cycle. The following diagram depicts the four phases arranged into such a cycle. During this first phase, the entire system is defined, and vision and scope statements are created. A vision statement states the goals of the entire system and provides a direction for all of the products that are needed to create the system. The scope defines the limits of each individual project. Thus, the vision may be to create a...

Creativity

Creativity is very important for the Visual Basic developer. From finding solutions to design problems to determining the best way to code a module, creativity will help you come up with the answer. I think that there's an expression, Get out of the box. This means that you must not get stuck in the box of standard solutions, but instead must look beyond what others have done, and what is usually done, and find a new solution. Whenever you are stepping out of the box, you are being creative....

Total Cost of OwnershipTCO and Return on Investment ROI

Corporations are becoming more cautious on how they spend their money and sponsors almost always require TCO and ROI estimates. By the end of the envisionment phase, a detailed schedule for the design phase should be created and the goals should be clearly defined. Using this information, we should be able to estimate the total cost of the project. Creating accurate estimates at this stage can be very difficult. We have no solution yet, only goals. We may be able to quantify some of the...

Debugging Visual Basic MTS Components

There are several techniques for debugging a Visual Basic MTS component. Each of these techniques has their place, and so they all need to be understood by someone working with MTS. As long as you have Service Pack 2 installed, you can debug directly from the Visual Basic IDE. Ideally though, you should have Service pack 3 installed. If service pack 3 is installed, you can go to Help About and you should see Service Pack 3 in the About box. Let us take a look at an example that shows how this...

Generating the Code into the Visual Basic IDE

Now that we have all of the information we need from the database and we have all of our code that we want to generate wrapped up in functions, we need to start generating the code. Go to the CmdGenerate_Click event and add the following code Dim objVBClass As vbext_ComponentType We will use the objVBproj variable to hold a reference to a Visual Basic project, objVBClass will hold a reference to a Visual Basic component, such as a class, control or module, and strTempTableName will be used to...

Acknowledgements

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...

Getting the Information From the Access Database

Add a form into your Visual Basic project. Call the form frmMain. Add the Microsoft ActiveX Data Objects 2.x Library and the Microsoft Visual Basic 6.0 Exensibility Object to your project references We will need to get the names of the tables and the fields from the Access database. To do this we will use the OpenSchema method of the connection object. The OpenSchema method will give us access to the structure of the database by returning ADO recordsets with information on the database's schema...

Deployment Phase Schedule

Deployment is the final phase in the cyclic methodology. During this phase, the system is prepared to be handed over to the user. Enter the following into the schedule Educator 33 , Logistics 50 , End Users 50 , Client For the system to be prepared for handover, it is quite obvious that development must have been completed. However, as much of this phase is concerned with planning for the handover, there is no reason why it cannot start while development is still taking place the design and...

Creating Project Schedules

Now that we have a basic understanding of the cycles of a Visual Basic project, the goals for each cycle and who is responsible for each goal, we can begin to look at making schedules. We will define a schedule as a visual document that allows you to see how you will use the time resource towards accomplishing your goals. A schedule begins with a set of goals that need to be accomplished. Goals can be divided into three priorities high (critical), medium, and low. Each goal will have one or...

Visual Source Safe Scenarios

There are two common scenarios with Visual Basic projects. In the first case, we do not expect to change many files. In the second case, we may be changing several files, potentially several times. Visual SourceSafe has two different features to cope with these scenarios. In the first case, we would use Visual SourceSafe's label-promotion feature. In the second case, we would use Share Pin Branch. Label Promotion is the best method to use when your development is done in the same project tree...

Duration Field in a Gantt Chart

Duration can have any of the following values The elapsed times are used when your goals run through non-working times. Working times are defined in the options. If you wish to change these, go to the menu, select Tools Options and select the Calendar tab. You will see the following You can set the time for the workday as you need to. If a goal is to run Friday through Sunday, and you have the default workday as shown above, you can list it as a 3 ed starting on Friday. This means that you were...

Generate Recordset Methods

Public Function CreateDataMethods As String Dim strCode As String strCode Public Sub Edit amp Chr 13 amp Chr 10 strCode strCode amp If EditMode adEditNone Then amp Chr 13 amp Chr 10 strCode strCode amp EditMode adEditlnProgress amp Chr 13 amp Chr 10 strCode strCode amp End If amp Chr 13 amp Chr 10 strCode strCode amp End Sub amp Chr 13 amp Chr 10 amp Chr 13 amp Chr 10 Public Sub Delete amp Chr 13 amp Chr 10 On Error GoTo DeleteError amp Chr 13 amp Chr 10 If EditMode adEditNone Then amp Chr 13...

Coding the Bas Module

Add a module called BuildBas to your project. This module will be used to build the .bas module associated with each business component. We will begin with a General Declarations section to create enumerated types and constants needed for the project. In our generated code, the declarations in the .bas module for the customer component will look as follows errChangeFieldNoEdit 1001 errEditPrimaryKey 1002 errPrimaryKeyLength 1003 errCustomerTitleType 1004 End Enum g_cstrFieldCustomerID As String...

Design Phase Schedule

Add these into the schedule for the design phase Product Management, Component Manager 1 Educator, Product Management, End Users Design cannot begin until the Vision Scope document is complete. The conceptual design phase is all about adding structure to the ideas from the envisionment phase. Here, we will find out from the users how they would like the system to work, and how the system can work in the most efficient way to meet business needs. When the conceptual design milestone has been...

Creating the Declarations

We will begin with code to create the declarations section of our code. Add a function called CreateDeclartions. It will be coded in a similar manner as the previous component. The r_TableInfo will be a string array of table names with the spaces removed. We will use r_TableInfo to build the following enumerated type e_Categories 0 e_Customers 1 e_Employees 2 e_Order Details 3 e_Orders 4 e_Products 5 e_Shippers 6 e_Suppliers 7 The v_sTableName parameter is the name of the table without spaces...