Subscribe by Email


Showing posts with label AMDD. Show all posts
Showing posts with label AMDD. Show all posts

Friday, May 11, 2012

Compare Test Driven Development (TDD) and Agile Model Driven Development (AMDD)?


The test driven development and the agile version of the model driven development i.e.., the agile model driven development are now much in the talks these days!! But many people get confused between the two and are not able to distinguish between them. 
This article is all about a comparison between the test driven development (TDD) and the agile model driven development (AMDD).  
"Agile model driven development involves the creation of the agile models rather than extensive models as in the case of MDD and the whole development process is driven by these models only." 
"The test driven development is not an agile method but the AMDD is and it is used for scaling the agile software development."

Stages of AMDD


 The following are the stages of the high level life cycle of the AMDD:
  1. Envisioning
  2. Iteration modelling
  3. Model storming
  4. Reviews
  5. Implementation

Stages of TDD


 Below mentioned are the steps that form the short development cycles in a test driven development process:
  1. Addition of a test
  2. Execution of all tests in order to check the working of the new one and also for the validation of the test harness for its correct working. 
  3. Execution of the automated tests and observing their success.
  4. Re-factoring of code and cleaning up of the code.
  5. Repetition of the whole cycle in order to improve the functionalities.
One of the common scenes during the development is of the model storming sessions. All of the team members model storm for few minutes and then get back to the coding work. The coding is done using many agile software development practices like:
  1. Refactoring
  2. Test first designing (TFD)
- The above two processes consume time depending up on the complexity and length of the code.
- It may take several hours to implement what has been modelled in the model storming session. 
- The test driven development is actually being implemented here since the combination of the above mentioned two processes is nothing but test driven development. 
- This is the stage where the most of the time of the development team will be spent. 
- Since this is a sort of agile software development, most of the modelling is carried out in the form of executable specifications with the help of development or customer tests. 
- All these efforts are supposed to work since with the agile development you are able to think through the cross entity issues and with the test driven development you are able to think about the much focussed issues. But you can take up only a single entity at a time. 

What more? 
- The re-factoring helps you evolve your design in small iterations to maintain the high quality of your work. 
With the test driven development the confirmatory testing of your program’s code is done and also the detailed specifications are given. 
- The above mentioned customers tests are also the agile acceptance tests and they form a part of the detailed requirements that are tested by the developer as detailed design.
- Such tests serve as a great example of the single sourcing information.
- Single sourcing is nothing but a technique used by the developers to reduce the overall documentation and thus travel light. 
- In the whole process, the high level specifications should not be over looked. 


Explain Agile Model Driven Development (AMDD) lifecycle?


“AMDD” is the abbreviated form of the “agile model driven development” and nowadays is quite popular among the developers and programmers in the field of software engineering and technology.
AMDD took its birth from the “MDD” or the “model driven development” as its agile version that makes use of the agile models rather than using the extensive models in the pure model driven development. 

The agile model driven development was formulated out of model driven development since it was thought that the iterative development with the model driven development is possible. And since it constituted of the iterations, it was categorized under the category of agile software development methodologies. 

The agile models that drive the whole development procedure are good enough to take care of the development efforts. The agile model driven development is one of the most sought after beyond the small agile software scaling development methodologies.

Agile Model Driven Development Lifecycle


To understand this whole agile model driven development one needs to familiarize himself/ herself with the life cycle of this development model. This article is focused up on the life cycle of the agile model driven development only!

The life cycle of the agile model driven development is of quite a high level. So let us see what all are the various stages in the life cycle of the agile model driven development:

1. Envisioning: 
This stage of the life cycle is comprised of two more sub stages namely: the zeroth and the first iteration. These iterations usually come in to play during the first few weeks of the development process. This stage is actually included in to the life cycle with the purpose of the identification of the scope of the system and what kind of architecture will be suitable for developing the project. For this the following two sub stages come in to process:

(a)  Initial requirements envisioning or modeling: 
This stage may take up to several days for the identification of the high level requirements. Apart from just identifying the requirements the scope of the release product is also determined at this stage only. For carrying out with this stage the developer may require some type of usage model in order to see how the software project will be used by the customers or the users.

(b) Initial architecture modeling: 
This stage is all about setting up of a proper technical direction for the development of your software project.

      2. Iteration Modeling: 
     This stage involves planning for what is to be done with the current iteration. Often the modeling techniques are ignored by the developers while planning objectives for the iteration that is to be carried out next. The requirements in every agile model as we know are implemented in the order of their priority.
     
      3. Model Storming: 
      As mentioned in the agile manifesto the development team should consist of only a few members who are the ones who discuss the development issues by sketching it up on a white board or paper. The sessions which involve activities such as those are called the model storming sessions. These sessions are short enough to last for at most half an hour.
   
     4. Test driven development involving the executable specifications: this stage involves the coding phase using the re-factoring and test first design (TFD). The agile development helps you address cross entity issues whereas with the test driven development you can focus up on each and every single entity. Above all the technique of re-factoring the design, it is ensured that the high quality of the software project is not hampered at all.


Thursday, May 10, 2012

Explain agile model-driven development (AMDD)?


AMDD stands for the agile model driven development which is not all to be confused with the agile model of software development. The model driven development or MDD is a separate development model and the AMDD i.e., the agile model driven development is its agile version. 
Not many of us familiar with this model. This article is dedicated to the agile model driven development model only. 

About Model Driven Development


- The model driven development involves the creation of the extensive software models before the actual coding is done.
- The best example for this is given by the Object Management Group (OMG’s) model driven architecture standard.
- Model driven development is quite famous with the developers who follow the traditional approaches whereas the agile model driven development has made it mark with the agile followers.
- After going through a research on the RUP/ EUP, it was observed that the model driven development can do with an iterative approach and thus the agile model driven development was born. 
- The basic difference here lies in the creation of the models.
- In the agile model driven development the agile models of the software are created rather than creating extensive models like in the case of the model driven development.
- These agile software models are good enough to drive the whole lot of the development efforts. 
- The agile model driven development is a methodology that has adopted for scaling of the agile software development. 

Activities included in life cycle of an agile project


Below mentioned are the activities that are included in the life cycle of an agile project:
  1. Identification of the high level scope
  2. Identification of the initial requirements stack
  3. Identification of an architectural vision
  4. Iteration modelling
  5. Model storming
  6. Test driven development (TDD)

Iteration activities In AMDD


The following are the iteration activities in an agile model driven development method:
  1. Requirements envisioning
  2. Architecture envisioning
  3. Initial set up and planning
  4. Investigative testing
  5. Release
  6. Production
- The envisioning is done usually in the first week of the development of a software project with the goal of identification of the scope of the software system or application and its architecture. 
- For this both the high level architecture modelling and the high level requirements modelling are required. 
- Envisioning is a means for exploring the requirements and develops a strategy for the development of your project. 
What is to be done in each iteration should be decided well before beginning with the iteration process?
- The agile software development principles insist that the requirements are implemented in the order of their priority levels.
This is what is called as the iteration planning. 
- For the accurate estimation of the requirement it is required that you understand the work needed to be done for its implementation and this is where the modelling comes to help. 
- The model storming sessions are usually like some impromptu sessions which do not last for more than thirty minutes.
- It involves the discussion over an issue until all the members are satisfied with their understanding of the issue. 
- After this they again get back to coding process. 
- Model storming is often called as the JIT modelling or “just in time” modelling.
- During the whole development process several agile methodologies are followed like:
  1. Test first design (TFD)
  2. Refactoring etc.
- The above two agile methodologies combined together are known as the test driven development. 
- This is the stage in the agile model driven development where much of the time is spent. 
- Here the detailed modelling is carried out with the help of development tests, customer tests, executable specifications and so on. 
- The customers tests here are nothing but the agile acceptance tests. 


What are different Myths and Misconceptions surrounding Agile Model Driven Development (AMDD)?


The agile version of the model driven development or AMDD (agile model driven development) is now being recognized one of the most popular development models in the field of software engineering. This agile model driven development methodology was born out of a need of a combined development process of the agile methodology and the test driven development or TDD. 

The agile development in this combination is supposed to make the addressing of the cross entity issues easy while the TDD (test driven development) counterpart is suppose to focus exclusively on each and every individual entity of the software system or application. 

About Agile Model Driven Development


The agile model driven development lately has been known to suffer a lot of criticism giving way to the birth of several myths and misconceptions regarding it.
- The agile model driven development methodology has been characterized as an obsolete agile software development methodology to some extent though not so much. 
- The agile model driven development is thought to involve only a little bit of modeling but quite a lot of coding.
- The iterating efforts are deemed to be spread between the coding activities and the software modeling activities.
Here a feel like illusion of majority of the designing being carried out as a part of the implementation efforts is created. 
- Such situations are also true for many other traditional software development methodologies. 
- In situations like this what happens is that the designers ultimately put the blame on the developers without questioning their own way of processing the software development.
- One of the misconception regarding the agile model driven development is that it does not specifies what all types of the software models are to be created.
- Even though it is always specified by the agile model driven development that only the right artifact is to be applied, it never does specify what that particular artifact really is. 
- One of the myths is that the agile model driven development works perfectly well with the UCDD (use case driven development) and the FDD (feature driven development). 

Myths and Misconceptions of Agile Model Driven Development


Below mentioned are some of the other myths and misconceptions surrounding the agile model driven development:
  1. The agile models do not fulfill their purpose well.
  2. It is very difficult to understand the agile models.
  3. The agile models do not exhibit sufficient consistency.
  4. The agile models are not sufficiently detailed.
  5. The accuracy of the agile models is not so high.
  6. The agile models exhibit a characteristic complexity.
  7. Sometimes negative values are provided by the agile models.

Point of Argument


- Another most argued concept of agile model driven development is that the agile documents and models seem to be sufficient for carrying out the development.
For this, the people develop false assumptions that the software is not as good as it portraits and expectations regarding the quality of the software artifact. 
- It is also thought that if the artifact has fulfilled the purpose which was intended then any more work that can be carried out on it is considered to be a useless bureaucracy. 

Benefits of Agile Model Driven Development


- The agile model driven development is known to take a more realistic approach and give a description of how the developers and stake holders are supposed to work together in cooperation to create good models.
- Agile model driven development is quite a flexible technology in the way that it allows the use most primitive and unsophisticated development tools for the creation of the models like papers and white boards as mentioned above.
- The agile model driven development is supposed to be independent of any sophisticated CASE tools even though they can be used effectively by the experts. 


Facebook activity