BDD, TDD, and Everything Between

Behavior Driven Development, Test Driven Development, and Everything Between What is TDD (Test Driven Development) Test Driven Development was introduced by Kent Beck, in 2003.  This followed the concepts of Extreme Programming, introduced in 1999 with a development experiment done by both IBM and Microsoft. The purpose of the Test Driven Development is to make sure code is clear, tested, and as redundant as possible, by making sure the tests are written first, and code is being added to "fill the blanks".  Every code iteration needs to pass all tests (may those be unit tests, integration tests, data integrity tests, or UI tests). Writing the tests first allow us to see what fails, how, and allow us to visualize the structure of our code, by making sure each test is performed to test a specific, extremely defined sub-section of a feature. Let's assume a "BasicMaths" class, to perform simple mathematics operations. [TestClass]   public   class  Uni

What is a Derived Attribute

What is a derived attribute? Give an example. Derived attributes are those whose values are created from other attributes.  These values are generated with the help of algorithms, calculations and other relevant procedures. The specifications established for calculating these derived attributes is a concern with respect to the processing aspects of the particular information system. These attributes may be integrated with the data model only in the condition that the attribute value calculation rules would be lost in the absence of the derived attributes. Database designers preferring to maintain the elegance of their designs prefer to avoid storing the derived attributes in their databases. They try to execute these derived attributes through appropriate algorithms so that they are called only when a specific query for them is made. In this manner the design elegance of the database is maintained. The most appropriate example of the usage of derived attributes is the calculati

Action When MultiValued Attributes Encountered

What two courses of action are available to a designer when a multivalued attribute is encountered? When a multivalued attribute is encountered, the designer has two alternatives which can be followed. The multivalued components can be split into its components and kept in the same entity. But the only condition with the usage of this approach is that only single entries are stored at each level. For example, CUSTOMER_TELEPHONE can be decomposed into CUST_HOMEPHN, CUST_MOBILE AND CUST_FAX_NUMBER. If the customer has more than one mobile number, then this structure will not be able to store more than a single value. Hence for each component, only a single value will be stored. The second approach involves the creation of a new entity which would comprise of the components of the multivalued components. This new entity can be linked to the entity in which the multivalued attributes were originally present. This method is most favorable and desirable when the total number of result

Database Design and Normalization Principles

The “right” database design can rarely be decided on the basis of normalization principles alone. Do you agree or disagree with this assertion? The Right Database and Normalization A database is a collection of information formatted into a table, chart, or file. Data tables are generally collections of information inputted into columns, rows and fields. Columns in each table can be selected through a primary sorting key and there may be unique keys to assist in data retrieval and input. You may have columns that are fixed in length or vary depending on the type of data that is being input. At the same time, records can also be fixed or varied. You can restrict column names and keep your column and table names case sensitive. You can develop a database in any form you desire as long as it is "normal." Normalization Characteristics There are many way to construct a database which includes the rational database plus the principles of normalization. One example include

Top-Down and Bottom Up Processes

The process of starting with world objects and modeling using entity-relationship diagrams is referred to as a top-down process. Starting with one large table and functional dependencies using normalization is referred to as bottom-up development. What are the advantages and disadvantages of each method? Are there any inherit dangers with either method? Which would you prefer to use? Is it really an either-or situation? Top-Down and Bottom Up Processes Top Down Top-Down is deductive reasoning. It can be used in conjunctions with analysis and decomposition. Breaking down a system to gain insight into different elements is the top-down approach. First a total system is developed, and then subsystems are detailed. There may be many different levels until everything is reduced to a whole. To put it in simple terms, top-down approaches start with the big picture. This concept is broken down into smaller segments for ease of understanding and learning. In business top down can be ill

Developing Accurate Cost Estimates

What is the Biggest Problem in Developing Accurate Cost Estimations? Why? Cost Estimation Methods   Developing the estimated cost of a project, can be the variance between completing projects on time and being able to complete the project on budget. Techniques for cost estimations are very important and particularly if you are the project manager. Estimating what processes cost and how they work to provide a finished product should be a part of the project proposal. Study the techniques that that you feel will give you the most accurate estimation method. Types of Cost Estimation Methods Analogous estimating is learning from precedents.  Read though past projects and determine how the cost estimating was based. Analogous estimating can provide a continuous basis for developing estimates based on past learning. Project parameters that can be estimated include costs, budget, scope, and duration. Use analogous estimation to determine the complexity plus the size of the entire pr