Subscribe by Email


Showing posts with label Executable. Show all posts
Showing posts with label Executable. Show all posts

Wednesday, May 23, 2012

Phase 3 of Unified Process Lifecycle - Construction


Unified process has never been so late in making its mark in the field of the iterative and incremental software development approaches. The unified process has got many refinements and one of them is the rational unified process. The whole process has been divided in to 4 phases the names of which are:
  1. Inception
  2. Elaboration
  3. Construction and
  4. Transition
The third phase i.e., the construction phase is what we have discussed throughout this article. So let us see what does this phase actually consists of. This is perhaps the largest phase of the whole unified software development process.
The progress that is to be made in this phase is completely dependent on the foundation that was laid in the previous phase. We mean to say that the remaining structure of the software system is built on the baseline that was developed in the elaboration phase. 

What is the Construction Phase


- Since the construction will be based up on the architecture baseline it is required that the baseline must have been properly developed along with the addressing of the risk factors. 
- In this phase, the implementation of the features and functionality of the software system takes place in an iterative manner and involves the time boxed iterations which are generally of very short duration. 
- These iterations are developed as a time boxed series and with every iteration an executable release of the software system or application is produced. 
- It is quite customary that the full length use cases must be written during the construction phase which then serves as a beginning for a new iteration and the process continues. 
- This phase makes use of the common UML (unified modelling language) diagrams. 
- Some of the common UML diagrams that are generally used are mentioned below:
  1. Activity diagrams
  2. Sequence diagrams
  3. Collaboration diagrams
  4. State diagrams
  5. Transition diagrams
  6. Interaction overview diagrams and so on.
- This is the phase that witnesses a lot of coding takes place since the primary objective is to build the software system or application. 
- However, the primary focus is on the development of the features and components of the system throughout the construction of the software system or application. 
- The number of the iterations involved in the construction depends largely up on the size of the project.
- This is generally done with the purpose of dividing the use cases in to small segments that are manageable enough and lead to the production of the demonstrable prototypes. 
- This is the phase in which the first external release of the software product is produced and this stage is marked by the IOCM or initial operational capability milestone. 

Goals defined for Construction Phase


Few goals have also been defined for this phase of the unified process as mentioned below:
  1. Describing the remaining requirements that were not addressed in the preceding phases.
  2. Drawing up a design for the system.
  3. Ensuring that the system meets the needs of the customers and fit in to the port folio of the organization.
  4. Completing component development.
  5. Testing of the system and its documentation.
  6. Optimizing the resources so that the development cost is reduced.
  7. Achieving as much quality as possible.
  8. Developing useful versions of the software product.
There is always a rush among the software development organizations to improve the software development processes they are using. Around 80- 90 % of the software failure arises due to faults that are made during the construction phase of the unified process. It is obvious that a more sensible approach will be followed out of all the options available.   


Tuesday, May 22, 2012

Phase 2 of Unified Process Life cycle - Elaboration


Unified process is one of the outstanding processes that follow an iterative and incremental approach for the software development. The whole process of the unified process is constituted of the 4 stages or phases namely:
  1. Inception
  2. Elaboration
  3. Construction and
  4. Transition
This article is dedicated to the second phase of the unified process i.e., the elaboration phase. So let us see what all processes are involved in this phase. 
There exists a short phase between the inception phase and the elaboration commonly knwn as the “elicitation” phase. It is sometimes regarded as apart of the elaboration phase only but to keep the elaboration phase short and simple it is often treated separately.
First let us know what is this elicitation phase? 
Elicitation addresses the below mentioned three main problems of the software development process:
  1. Problem of volatility
  2. Problem of scope
  3. Problem of understanding

What is an Elaboration Phase?


- During this whole elaboration phase, it is required that the project team captures quite a large number of the requirements of the software system or the application. 
- But this is not to be confused with the primary goal of the elaboration phase. It is quite different. 
- The primary goal involves the addressing of the involved and known risk factors. 
- Another aspect of the primary goal is to validate the architecture model being used in the system. 
- This is done with the help of various processes like those mentioned below:
  1. Creation of use case diagrams
  2. Creation of class diagrams
  3. Creation of class with basic notation only and
  4. Creation of architectural or the package diagrams.
- All these above mentioned processes fulfil only the first aspect of the primary goal that is to identify the risk factors. 
- The second aspect is fulfilled through the implementation of an EAB or an executable architectural baseline.
- It helps greatly in validation of the system architecture. 
- This is just a partial implementation rather than being a full implementation. 
- The partial implementation is of the components that are architecturally significant like the system including the core.
- The executable architecture baseline is built out of a series of small iterations that have been time boxed so that there is the stabilization of the architecture of the system by the end of the elaboration phase. 
- The executable architectural baseline provides a means to demonstrate that the key system functionality are supported by the architecture and also exhibit proper expected behaviour when it comes to the terms like the scalability, performance and cost. 
- The outcome of the elaboration phase i.e., the elaboration phase deliverable actually serves as a plan for the construction phase that also lays down the cost estimate and the schedule estimates.
- The plan at this point needs to be credible and quite accurate since the elaboration phase experience is what on which it is dependent and also because all the significant risk factors have been addressed during this phase. 
- The ultimate purpose of this phase is to provide the software with a baseline for the architecture of the software system that serves as a foundation for the further efforts. 

Goals of Elaboration Phase


- The following are the goals of the elaboration phase:
  1. To have a detailed understanding of the key requirements.
  2. To mitigate significant risks.
  3. To produce accurate schedule and cost estimates.
  4. To design, validate and implement the architecture baseline
- The number of iterations in the elaboration phase is not fixed; it varies depending up on the factors such as the maintenance cycle and the green field development. 


Tuesday, September 6, 2011

What is Assignment and Logical Comparison in C...

An expression as we all know is composed of one or more operations. When the expression is terminated by a semi colon, it becomes a statement which is the small executable unit in any program. The assignment statements are used to assign a value to a variable. The assigned value can be a constant variable or an expression. An assignment statement can be written in general form as:

A=bcd;

Where A is a variable to whom we are assigning a value and bcd is the assigned value. The “=” sign is called assignment operator. Assignments can be chained together. The assigning operator “=” assigns the value to the left hand operand and returns the value of the assignment. Assignment statements are very much needed for variable initialization since variables are initialized using assignment statements. There are 2 ways to do this:
- Un-initialized variable
- Initialized variable
An un-initialized variable has to be initialized in separate statements whereas an initialized variable combines declaration and assignment in to one statement.

Examples are:
Int a;
a=3; ------------------------uninitialized variable
int a= 3; -------------------- initialized variable

Assignment also follows when you use dynamic initialization. Sometimes variables of different types are mixed with each other. It’s a very common and observed phenomenon. In such cases a type conversion takes place. Here also it follows from the principal of assignment statement that “the value of the right side of the expression or of the assignment is converted to the type of the variable on left side i.e., target variable. Both the sides of assignment should be compatible with each other for type conversion. When conversion takes place from smaller data type to a larger data type no data is lost. Precedence of operators while assigning values with an expression should always be kept in mind.
Some programs need the power of decision making or comparison. This is granted through logical expressions which are nothing but the statements resulting into a 0 (true) or 1 (false) value. These are a combination of constants, variables and logical and relational operators. Be careful that two or more variables and operators should not occur in continuation. A logical expression may contain just one signed or unsigned variable or a constant or it may have two or more also joined by varied relational and logical operators. Following are some valid logical operators: the logical OR operator (||), the logical AND operator (&&) and the logical NOT (!) operator. The OR operator combines 2 expressions as its operands. If either of its operand evaluates to true, the OR operator also evaluates to true. This operator is basically used for testing evaluating expressions. The AND operator combines 2 expressions into one and the operator evaluates to one if and only if both the operands evaluate to 1. The NOT operator works on a single operand since it is a unary operator. It is used to negate or reverse the truth value of the operand. It has a higher precedence than of the relational and logical operators. Therefore, this should be enclosed within parentheses. This operator is useful as a test for zero. OR and AND operators have lower precedence than relational operators. Relational operators are used to define relationships between variables. C provides 6 basic relational operators : < (less than), > (greater than), <= (less than or equal to), >= (greater than or equal to), == (equal to), and != (not equal to). Do not confuse the = and the == operators. “=” is assignment operator whereas “==” is relational equality operator.


Facebook activity