Saturday, 18 January 2014

Software Process Models Part - I

The software process model maybe defined as a simplified description of a software process, presented from a particular perspective. In essence, each stage of the software process is identified and a model is then employed to represent the inherent activities associated within that stage. Consequently, a collection of  ‘local’ models may be utilized in generating the global picture representative of the software process. Examples of models include the
- workflow model 
- data-flow model 
- role model. 

Short story of above models : :)

Workflow model shows the sequence of activities in the process along with their inputs, outputs and dependencies. The activities in the model represent human actions.

Dataflow model represents the process as a set of activities each of which carries out some data transformation. It shows how the input to the process such as specification is transformed to an output such as design. The activities here maybe lower than in a workflow model. They may represent transformations carries out by people or computers.

Role model represents the roles of people involved in the software process and the activities for which they are responsible.

Build-And-Fix model : Image can define details

The product is built and modified as many times as possible until it satisfies the client. The cost of using this approach is greater than if specifications are drawn up and a design is carefully developed. Software engineers are strongly discouraged from using this development approach.

Waterfall model

The waterfall model derives its name due to the cascading effect from one phase to the other as is illustrated.In this model each phase well defined starting and ending point, with identifiable deliveries to the next phase.

[Note that this model is sometimes referred to as the linear sequential model or the software life cycle.]

We get some advantages by using it.
Testing is inherent to every phase of the waterfall model
It is an enforced disciplined approach
It is documentation driven, that is, documentation is produced at every stage

Dictionary Class : Generic collection

Ordered Dictionaries

An ordered dictionary is a collection class in which items can be manipulated by either their index or their key 
System.Data.InternalDataCollectionBase : From which data collections such as 
- DataTableCollection  
- DataColumnCollection 
are derived, is an example of an ordered dictionary. Items can be accessed either by their name or their 
index in the collection.

If we get interface , so it will be more advantage for developers

IOrderedDictionary <TKey,TValue>

System.Collections.IOrderedDictionary : 
Similar to the IList and IDictionary interfaces, the IOrderedDictionary interface defines a consistent contract for ordered dictionary implementations which ensures that items can be accessed, inserted, and removed by index or key.

Note: in the following discussion, accessing the dictionary by key is assumed to be a O(1) operation, although in reality this is dependent on the implementation of the GetHashCode method of the key type.