Subscribe by Email


Showing posts with label Unified Process. Show all posts
Showing posts with label Unified Process. Show all posts

Friday, December 14, 2012

Transition Phase - One of the phase of Rational Unified Process


There are 4 phases which together constitute the rational unified process namely:
  1. Inception phase
  2. Elaboration phase
  3. Construction phase
  4. Transition phase
The above mentioned phases are responsible for the representation of the rational unified process at the highest level in the way which is similar to waterfall model representation but the difference is that the key for the rational unified process lies in the development iterations which form an integral part of all the phases of the rational unified process. 

Also, each of the four phases of the rational unified process are characterized by two things namely the objective and the milestone. The objective drives the whole phase from the beginning to the end and the milestone concludes the end of it. 

The phase is said to be complete with successful result if and only if it passes the milestone since this only marks the conclusion of the phase. All of the phases of the rational unified process are visualized in the form of a chart called the RUP hump chart which is drawn over the course of the whole process. 

In this article we shall discuss exclusively about the fourth phase of the rational unified process i.e., the transition phase. 

Objective of Transition Phase

- The primary objective with which the transition phase is driven is “to transit the software system or application” from the phase of development in to the actual phase of production. 
- This also extends the availability of the software system or application to the end user in such a form that it is understandable by the end user. 
- This phase involves the below mentioned activities:
  1. Training the end users
  2. Training the maintainers as well.
  3. Carrying out beta testing on the software system or application for validating it against the expectations of the end users.
  4. Checking the software product against the quality level that was set in the inception phase.
- When all the objectives are said to be accomplished, the software system or application is said to reach the ‘product release milestone’ and the development cycle is said to be concluded.
- This fourth phase of the rational unified process does the fine tuning of the software product.
- It is based on the feedback from the user and the software product is made ready for the release. 
- The transition phase is basically focused on the availability of the software system or application to the end users.
- The transition phase often involves the spanning of the several iterations. 
The software product is tested in order to prepare it for the release and also minor adjustments are made as per the feedback provided by the end users. 
When this point in the software development life cycle is reached, it is required that the feedback from the end user should be majorly focused up on the following issues:
  1. Fine tuning of the software system or the application.
  2. Configuration of the product
  3. Installation issues
  4. Usability issues
- By this time, almost all the major issues of the product structure should have been worked out in the earlier phases of the software development life cycle. 
The product release milestone can be defined as a point where it is decided that all the objectives of the project have been met and whether or not another development cycle is required. 
- The basic and majority of the evaluation as well as the refinement of the software system or application is done based up on the feedback from the user.
- This can be considered to be a kind of fine tuning exercise for the software system since the system has already met the requirements of the users as it is driven by the use cases. 
- At the end, a final evaluation is done and accordingly the project is released to the public or is considered for another development cycle. 


Thursday, December 13, 2012

Construction Phase - One of the phase of Rational Unified Process


There are 4 phases which together constitute the rational unified process namely:
  1. Inception phase
  2. Elaboration phase
  3. Construction phase
  4. Transition phase
For representing the process at a high level, it is necessary that all of the above mentioned four phases should work together just as it is done for the water fall styled model. But here the key difference is that the primary key to the process is nothing but the development iterations that are involved in each of the development phase. Each of the above mentioned phases is driven by the objective and ended by milestone. The RUP hump chart gives the visualization for all the above 4 phases. 

Here we shall talk about the third phase i.e., the construction phase. 

About Construction Phase of Rational Unified Process

- The construction phase is driven by the primary objective for building the software system or application. 
- The primary focus of the construction phase is taken up by the components development as well as the development of the other features of the software system or application. 
- A bulk of coding is carried out in this phase only. 
- For developing a large project, it is required that several construction iterations are carried out in order to make an effort for dividing the use cases in to the segments that are manageable and that can be used in the production of the demonstrable prototypes. 
- The software version that is released in this phase is its first external release.
- The elaboration phase is concluded with the initial operational capability milestone. 
- The major thing with which the construction phase is concerned is moving the executable architecture that was created in the elaboration phase to the operational system. 
- Therefore, a beta version of the software system or application is ready to be evaluated by the project team. 
- In the elaboration phase the software product resides on the architectural baseline.
- Here, it is moved to a system that is so complete enough that it can make transition to the end users’ community. 
- The architectural baseline is grown enough to become the completed operational system via the refining of the designing in to the code. 
- This phase acquires the largest part of the whole rational unified process. 
- The remaining part of the software system or application is built on the foundation that was laid earlier in the elaboration phase. 
- Short and time boxed iterations help towards the implementation of the features of the system where an executable release of the system or application is released at the end of each iteration. 
- In this phase, writing the full test use cases becomes customary where each one marks the beginning of a new iteration. 
- The elaboration phase makes use of certain UML (unified modelling language) diagrams which are mentioned below:
  1. Activity
  2. Sequence
  3. Collaboration
  4. State i.e., transition and
  5.  Interaction overview diagrams
- The purpose of the rational unified process is to provide the industry tested practices for the development, implementation and delivery of the software system or application. 
- It also provides a comprehensive frame work for the effective project management. 
- This process is actually one of the many other processes which are contained within the rational process library of the IBM RMC (rational method composer). - This makes it easy to make selection and deploy the only components that you need for your process. 
- The rational unified process is adopted for 1000s of the projects nowadays worldwide. 
- It lessens the burden of inventing a new thing again and again rather it focuses on re-usability. 


Wednesday, December 12, 2012

Elaboration Phase - One of the phase of Rational Unified Process


The life cycle for a project under the context of the rational unified process is known to consist of the following four phases:
1. Inception phase
2. Elaboration phase
3. Construction phase
4. Transition phase

Here we shall discuss about the second phase of the unified process i.e., the elaboration phase. In Rational Unified Process, the four phases represent the process at a high level although the iterations that are carried out in every phase of development are the key to the process. 

Each phase here is provided with an objective and a milestone. It is necessary to have a milestone for each so that it could be decided that when and where a particular phase is ending and the next one is starting. All the above phases as well as the process disciplines are visualized in to what is called an “RUP hump chart”. 

About Elaboration Phase in Rational Unified Process

- The primary objective of the elaboration phase is defined as the mitigation of the key risk items whose identification is done by the analyzation of the whole phase from the beginning till the end. 
- It is here in the elaboration phase where the project starts taking the shape. - In elaboration the following 2 basic things take place:
1. The analyzation of the problem domain is done.
2. Basic form is given to architecture. 

- The following are the outcomes of the elaboration phase:
1. A use case is obtained in which both the actors and use cases have been identified. This use – model consists of most of the developed use – case descriptions. It is required that this use – case model should be at least 80 percent complete. 
2. A description concerning the architecture of the software system in a development process. 
3. An architecture that is executable and realizes the use cases which have an architectural significance. 
4. A revised risk list.
5. A revised business case.
6. A plan for the overall development of the project. 
7. Prototypes which give a demonstration on the mitigation of the identification of the technical risks. 
8. An optional preliminary user manual.

- There is a milestone criteria called the life cycle architecture milestone which involves answering the following questions:
1. Stability of the architecture?
2. Stability of the vision of the product?
3. Have the major risk elements been addressed and resolved and has been indicated by the executable demonstration?
4. Has the sufficient detailing has been done for the construction phase plan and is it accurate?
5. Have all the stakeholders agreed for achieving the current vision using the current plan under the current architectural context?
6. Is the expenditure of planned resource vs. actual resource acceptable?

- It is important that the project should pass this milestone and if it doesn’t there are 2 possibilities:
1. It can either be redesigned or
2. It can be cancelled.

- However, when the project leaves this phase, the project is transitioned in to an operation that involves high – risk i.e., to say here the changes are quite detrimental as well difficult to be made. 
- The system architecture serves as the key domain analysis for the elaboration phase. 
- The basic thing here is addressing of the major technical risks threatening the project. 
- Another thing is to have a bare system which provides answers to all of the major technical questions. 
- Once all the questions have been answered by the end, the development team will know whether a working system can be successfully built or not. 



Tuesday, December 11, 2012

Inception Phase - One of the phase of Rational Unified Process


There are 4 phases which together constitute the rational unified process namely:
  1. Inception phase
  2. Elaboration phase
  3. Construction phase
  4. Transition phase
This article is dedicated entirely to the first phase of the unified process i.e., the inception phase. The major development takes place in the iterations of development which are carried out within each phase. All of the above four phases have their unique key objective as well as milestones.

The accomplishment of the objective is denoted by the milestone. An RUP hump chart is used for the visualization of all the four phases of the rational unified disciplines and phases over the time. 

Objective of Inception Phase

- The primary objective of the inception phase provide adequate scope to the software system or application as a basis on which the validation of the budgets and initial costing could be done.
- The inception phase involves the establishment of a business case which is inclusive of the following:
  1. Business context
  2. Success factors such as the market recognition, expected revenue and so on.
  3. Financial forecast
- In order to complement the business case, the following things are generated:
  1. A basic use case model
  2. Project plan
  3. Initial risk assessment
  4. Project description which in turn includes the following:
    a)   Key features
    b)   Constraints and
    c)   The core project requirements

- Once the generation of the above mentioned sources is complete, the verification of the project begins against the following criteria:
  1. Stake holder concurrence on the following:
  a)   Cost estimates
  b)   Schedule estimates and
  c)   Scope definition
  1. Understanding of the requirements as per the evidence obtained by the fidelity of the use cases.
  2. Credibility of the following:
  a)   Cost and schedule estimates
  b)   Priorities
  c)   Development process and
  d)   Risks involved
  1. The depth and breadth that was developed for any architectural prototype.
  2. Establishment of a base line using which the planned expenditures and actual expenditures can be compared.
- If for one or the other reason the project is unable to pass the milestone (commonly termed as the life cycle objective mile stone) then there are only two possibilities after redesigning the program (for meeting the criteria in a better way) as mentioned below:
  1. It can be cancelled or
  2. It can be repeated
- This phase is involved with launching the project. 
- A proper business case can be developed for the project. 
- It is by the end of the inception that the development team comes to whether to carry on with the project or not. 
- In inception phase, one can see a core idea being developed in to a vision for a product. 
- In this phase may reviews, discussions, etc. are carried out regarding the business case involved in the project. 
- The scope of the project is delimited in the inception phase and also the product feasibility is established. 
- This is perhaps the smallest of all the phases of a project and also according to its ideal nature it should be short. 
- If the duration of the inception phase is too long it indicates that there has been an excessive up – front specification (even though this goes against the spirit of the rational unified process.).


Thursday, July 12, 2012

What are the characteristics of the unified process?


- Unified process is one of the most popular software development frame works based on the iterative and incremental approach.
- Unified process is a frame work that is extensible according to the needs of the software development project or according to the needs of the specific organizations. 
- The unified process signifies the generic processes that include elements that have been declared common for most of the refinements. 
- The unified process was first discussed in detail in a book called “the unified software development process” in the year of 1999. 
- Every process has got some characteristics and so does the unified process.

Characteristics of Unified Process



1. Iterative and Incremental Process: 
- There is no doubt believing that the unified process is an iterative and incremental one. 
- This is evident from the fact that the all the below mentioned 4 phases of the whole process are divided in to a set of time boxed iterations:
(a)  Inception
(b)  Elaboration
(c)  Construction and
(d)  Transition
- Depending up on the complexity and the size of the project, the inception phase may also be further divided in to a large number of small iterations to keep the over all development process as simple as possible. 
- The increments are the result of the individual iterations that are performed during the whole development process.
- These increments can be defined as a system containing improved and added functionalities that extend over those that were present in the previous version of the same software system or application.
- Mostly the iterations take care of the following aspects of the software:
       (a)  Requirements
       (b)  Testing
       (c)  Design implementation and so on.

2. Use case driven: 
- The unified process is rightly called the use case driven software development methodology since it is driven by the use cases that are quite effective in capturing the contents of the iterations and the functional requirements.
- Each iteration involves a number of use cases as well as scenarios for the proper identification of the requirements, their implementation, testing and deployment.

3. Risk Focused: 
- The unified process requires that the most critical risks in the whole development cycle are focused up on in the early stages of the life cycle of the process. 
- For addressing the factors with the highest risk rating, the deliverable of all the iterations especially in the second phase of the life cycle i.e., the elaboration phase are selected in a pre-defined order.

4. Architecture Centric: 
- It is obvious that the success of any software development process is greatly dependent on what kind of architecture is being used in it. 
- Architecture seems to work the very best at the heart of any software development process. - With the right architecture in the process, the efforts of the teams can shape the software system or application the way they want. 
- One problem is encountered here which is that only one model never suffices in providing coverage in a unified process, several models have to be conjoined and used. 
- It is one of the attractive features of the unified process that it supports multiple architectural views and models. 
- The elaboration phase witnesses the creation of an executable architecture baseline which can be called as an important deliverable. 


Wednesday, May 30, 2012

What is a Unified Process? What are key practices and guidelines for unified process?

What is Unified Process?
- Unified process is actually the short name for the USDP or the unified software development process.
- This software development process has recently emerged as a very popular incremental and iterative software development process frame work. 
- There are some methodologies defined under the category of the unified process and the one that is most commonly implemented and extensively documented in the rational unified process known as RUP in the abbreviated form. 
- The concept of the unified process is very vast and it cannot be merely called as only a process! Rather it can be thought of as an extensible frame work which is customizable according to the needs of the software project or the specific organizations. 
- Concluding from this, the rational unified process can also be called a customizable frame work. 


However the name “unified process” in quite opposing to the rational unified process generally marks the generic processes that include the elements that hold common for most of the refinements. 
In addition to this this name also avoids the potential issues of the trade mark infringement that arise since the RUP and the rational unified process are the trademarks of the IBM. 
The unified process was first mentioned and described in detail in a book by Ivar Jacobson, James Rumbaugh and Grady Booch called “the unified software development process” in the year of 1999.



Six Practices of Unified Process



The unified process deploys the following 6 key practices of software development:
  1. Development of the software in iterations: Increases understanding of the problem through successive refinements. An effective solution is achieved over several increments.
  2. Management of requirements: Involves elicitation, organization and documentation of the required constraints and functionalities, trade offs and so on.
  3. Implementation of component based architectures: A robust executable architecture is subjected to baselining first and then resources are deployed for full scale development. Promotes resiliency of the architecture.
  4. Visual modelling of the software: This practice helps capture the behaviour of the architectural components of the software system.
  5. Verification of the software quality: Poor reliability and poor performance are the factors that weigh down the quality of the software system or application. This practice reviews the software quality.  
  6. Controlling changes that are to be made in the software: This practice ensures that the changes to be incorporated are acceptable and won’t hamper the performance. 
Developers often want the answer for the question, "how do I know if I’m implementing the unified process properly?" There is no certain answer for this question but there are certain guidelines which if followed properly can keep the process on track:
  1. Figure out the major risks early and regularly or they will hamper the performance of your software system.
  2. Ensure the value that you are going to deliver to your customer.


Friday, May 25, 2012

Unified process as a heavy defined process VS an Agile unified process approach


Unified process is another process in the list of the iterative and incremental processes apart from the agile processes. There are so many refinements and variations of the unified process as mentioned below:
  1. RUP or Rational Unified Process: A refinement of the Unified process developed by the IBM/rational software.
  2. RUP- SE or Rational Unified Process - System Engineering: This is a version of the rational unified process developed by the rational software for catering to the needs of the system engineering.
  3. AUP or Agile unified process: It is a lightweight variation that was developed by Scott W. Ambler.
  4. OpenUP or Open unified process: It is the eclipse process frame work software development process.
  5. BUP or Basic unified process: It is also a lightweight variation but developed by the IBM. It is kind of a precursor to Open UP.
  6. EssUP or Essential unified process: Another light weight variation developed by the Ivar Jacobson.
  7. EUP or enterprise unified process: It is an extension of the RUP or the rational unified process.
  8. OUM or oracle unified method: A development and implementation process developed by the oracle.
So you see that the agile unified process is a refinement of the unified process! So what is the difference between the two? This is what we have discussed in the article. Actually there is a subtle difference between the two in the way that they categorize the project work flows and the disciplines. 

Disciplines addressed by RUP


There are nine disciplines that are addressed by the rational unified process as mentioned below:
  1. Business modelling
  2. Requirements
  3. Analysis and design
  4. Implementation
  5. Test
  6. Deployment
  7. Configuration and change management
  8. Environment
  9. Project management
9 disciplines is a big count! The agile refinements of the unified process simplify the whole rational unified process further and reduce the above mentioned nine disciplines to a lesser count making the whole development process simple and short. 

Points of Comparison between RUP and AUP


- Unified process though being quite an advance process for developing the software but it provides quite a heavy approach. On the other hand the agile unified processes are quite light. 
- These processes provide a way of streamlining the rational unified process by minimizing the number of the expected artifacts and simplify the whole work flow. 
- The UP and the AUP also vary in their specifications of what happens after the completion of the transition phase.
- In the agile unified processes, the transition phase is followed by a production phase rather than by a new inception phase in the case of the unified process.
- There are countless numbers of the unified process refinements and variations. 
- There are 4 phases in a unified process namely:
  1. Inception phase
  2. Elaboration phase
  3. Construction
  4. Transition
In addition to the above 4 mentioned phases, the agile unified processes go through the two additional phases namely: 
    1. The retirement phase and
    2. The Production phase.

The below mentioned are the philosophies up on which the agile processes are based:
  1. The development knows what is being done.
  2. Simplicity is maintained.
  3. The whole process confirms to the principles and values of the agile software.
  4. Focus is on high value activities.
  5. It is tool independent.
The agile unified process makes use of two types of iterations namely:
  1. Development release iteration: deployment to the quality assurance and
  2. Production release iteration: deployment to the production area.


Thursday, May 24, 2012

What are common mistakes and misunderstandings in a unified process?


As it is always said “to err is human”, one may make innumerable mistakes. This truth holds good for every aspect of our lives and so for the technology also. While programming, it is obvious that some mistakes will be made but they are not intended, some mistakes might creep in without the knowledge of the programmer; other mistakes might arise due to a lack of knowledge of the programmers and the developers! 
Anything is possible. With so much complex and advanced software systems and applications to build around it is obvious for the programmers and the developers to make mistakes while programming the software because it is not the feature of human intelligence to keep of check of each and every bit of the program that is being built.

Well, this article has been focused up on the mistakes and misunderstandings that result in mistakes in a unified process. Such mistakes and misunderstandings in a development can cause severe problems in the whole development process causing further problems in the software system or application that is being built. 

What are common mistakes in unified process?


There are various mistakes that one can make while programming using the unified process. 
- The very common mistake that is done is that the complex problems might be made more complex due to lack of sufficient understanding of the methodologies that are available for programming or may be because wrong or inappropriate methodologies might have been put in to use. 
- The problem that occurs here is for adopting any software development process different people assume different values and hence it is like using a single software development process for every programmer or developer.
- For getting the appropriate solutions to the programming problems it is not necessary that the programs should be developed with the extreme agile or test driven development methodologies. See this is where the people make mistakes!
- When a software system or application can be developed using the simplest of the methodologies available then why go for the complex and the tough ones? 
- Even though the agile processes and the unified software development processes are a big step towards the advancement of the software development, it is not always that they can be extended for all sorts of softwares and applications.
- The best way to avoid much of the problems is to train the programmers and developers in information protection. It does not require months and weeks to learn about common software security mistakes and misunderstandings. 

Examples of Common Mistakes


- Suppose that during programming a file was not locked properly and there are two parts of the programs that access the same file without properly locking it. 
- Such a case can result in a race condition between the two programs that can make the file quite unstable or in a vulnerable condition. 
- Another mistake can be logging in trying many passwords in just few seconds without giving the system a proper time to check. 
- The spirit of a programmer should be as such that even if he/ she has not made the mistakes he/she should take the responsibility to correct them before they cause more harm to the software system or application. 
- The longer the time is spent on writing the programs the more you avoid the mistakes. 


Phase 4 of Unified Process Life cycle - Transition


Unified process is one of the best development processes we have of the iterative and incremental form. The whole unified process is completed in four phases which have been mentioned below:
  1. Inception phase
  2. Elaboration phase
  3. Construction phase and lastly
  4. Transition phase
This whole article is all about the last phase i.e., the transition phase. In this whole article we are going to discuss about the last phase. 

What is a Transition Phase?


- The final phase of the unified process i.e., the transition phase involves the deployment of the system for targeting the customers.
- The feedback that is collected on the account of the previous releases helps in further refining or improving the software system or application. 
- It can also be decided over the further functionality that have to be added to the software system or application under development to make it much better. 
- Transition phase like all of the preceding three phases is composed of several timed iterations that are time boxed. 
- Apart from just targeting the users, the transition phase also involves user training and the system conversions. 
- The transition phase has been named so because it is in this phase that the transition of the whole system from development to production takes place and software is made available to the users. 
Along with the end users in some cases the maintainers might also be treated. 
- This phase also witnesses the beta testing of the software system or application so that it is validated against the expectations of the end users. 
- A certain quality level is set in the phase i.e., in the inception phase which is tested in against by the quality of the software system or application in the transition phase. 
- The point at which all the objectives are met is called the “product release milestone”. 
- At this point the product is declared finished and the development is also declared to be complete. 
- The unified process is quite a robust software process that is meant for addressing the development as well as the production needs of the users and the customers. 
- We need a software development process that serves the scope of our real world quite well and provides us with a balanced perspective of the alternative programming methodologies available from all around the field. 
- In this transition phase, if there are any legacy systems that you are going to replace, then your whole software system or application is operated in parallel with those legacy systems. 
- This leads to the conversion of the legacy data bases and the systems in to an improved one that supports your new software system or application. 

Goals of transition Phase


The transition phase has got three main goals as mentioned below:
1.Evolving the final product baseline or the production base line of the software system or the application.
2.Training the materials for the software system or application.
3.Creation of the documentation which is inclusive of all the user manuals, operations documentation and the support documentation.

Issues faced during Transition Phase


- This phase is concluded with the product release milestone. 
- Achieving this milestone is not so easy since you have to satisfy all the expectations of the end users and also justify the actual expenditures against the planned expenditure. 
- Issues such as finishing the features that were postponed usually arise after the product has been transited to the end users or customers. 
- The production baseline ought to be mature enough to be deployed in the end user domain. 
- The operational data bases are also converted and the final product is released for marketing, distribution and sales team. 


Facebook activity