Subscribe by Email


Showing posts with label activities. Show all posts
Showing posts with label activities. Show all posts

Tuesday, December 4, 2012

Explain Rational Unified Process (RUP)?


Rational Unified Process development framework was developed by a division of IBM known as the rational software corporation. Rational Software Corporation has been a part of IBM since the year of 2003. 

About Rational Unified Process

- Rational unified process is a single process that has a concrete prescription.
- It is a process frame work which is adaptable to a large extent and can be tailored by the organizations and development corporations as per their needs. - They can select the elements of the process that they want to be present in their development approach. 
- The rational unified process or RUP is a product that is used to process other products. 
- This product is built on a hyper linked base of knowledge consisting of detailed description about a lot of activities along with some sample artifacts.  - Rational unified process constitutes a part of the IBM’s RMC product or rational method composer.
- It is used for customizing the rational unified process. 
- All the companies combined their experiences and declared 6 best practices that are known to drive the rational unified process. 
- Those 6 best practices are:
  1. Iterative development where the risk is taken as the primary iteration driver.
  2. Management of the requirements.
  3. Employment of an architecture based up on component.
  4. Visual modelling of the software system or application.
  5. Continuous verification of the quality.
  6. Controlling of the changes.
- The above mentioned 6 best practices are followed by the rational’s field teams in order to assist the customers in improving the predictability as well as quality of the efforts that they put for the development of the software.
- The resulting rational unified frame work had the following three main strategic characteristics:
  1. This process is tailor-able for the effective guidance of the development process.
  2. Consists of tools that are used for the automation of the process.
  3. Involves services that accelerate and make the adoption of both the tools and processes easy.
- Rational unified process came into existence on the acquiring of the objector y process in the year of 1996 that was written by Ivar Jacobson. 
- This original process consisted of the content from the following three things:
  1. Object modelling technology or OMT from Jim Rumbaugh,
  2. Booch approach by Grady Booch and
  3. UML 1.0
- Later the year of 1997 saw the addition of the test discipline and requirements to the approach. 
- Below mentioned are the additions to the approach that were made subsequently after the year of 1997:
  1. Year 1998 saw the addition of two new disciplines namely configuration and change management discipline and business modelling. Other things that were added included the following techniques:
a)   Performance testing
b)   UI design
c)   Data engineering
Further the rational unified process was updated to 1.1 version of the UML.
  1. Year of 1999 saw the addition of the project management discipline and techniques that supported the real time development of the software. Also the rational unified was again updated to UML 1.3.
  2. From year 2000 onwards most of modifications were centered around the adding tool mentors, adding techniques along with a basic guide containing step by step instructions up on how the rational tools are to be used and how the customization of the rational unified process can be automated using which customers could customize their own process and at the same time incorporating improvements in the following releases. 


Sunday, November 18, 2012

How to develop a test plan tree in Test Director?


Testing a software system or application is not a child’s play rather it requires whole lot of focus, organization, management and vigor. Testing phases or tasks such as specification of the testing requirements, planning and execution of the tests, tracking of the defects are made quite easy with the test director. 

In this article we shall discuss about how the test plan trees can be developed using the test director. After the all of the testing requirements have been defined, the testing goals need to be determined by carrying out various activities such as:
  1. Examining the testing as well as the system environment.
  2. Examining the software system or application under test (SUT and AUT).
  3. Examining the testing process
- These three activities are particularly carried out so that the testing strategy designed to achieve the testing goals can be outlined. 
- After testing goals are determined, one proceeds to build a test plan tree. 
The purpose of this test plan tree is to hierarchically divide the software system or application under testing in to smaller testing units or one can call them ‘subjects’.
- For each subject or unit in the test plan tree some tests are defined consisting of steps. 
- Next, the actions to be performed on the application as well as the expected results are defined for each of those steps. 
- Addition of parameters to the test step adds to its flexibility. 

Now how to keep track of the relationships shared by the testing requirements and tests? 

- Just add links between the two corresponding things.
- Other than being simple, another benefit of adding links is that you can be assured of the compliance with the requirements in all the stages of the testing process. 
- After getting done with this, you decide which all tests you want to get automated. 
- If you see the application as a whole unit to be tested it seems like a very big thing. 
Here, in the test director, the application is divided into smaller units based up on its functionality with the help of the test plan module. 
- Test plan tree serves all this purpose and is referred to as the graphical representation of the test plan.
- Here the tests are displayed on the basis of the hierarchical relationship in their functions. 
- After all the subjects in the test plan tree have been defined the next step involves creating step for each and adding them to the tree.
- The below mentioned are the steps to be followed:
  1. Open and log on the project for which the testing process is going on.
  2. Make sure that the test plan module is on display and if it is not click on the test plan module to do so.
  3. Now you need to add a subject folder to the test plan tree by clicking on the new folder button. Give a name and description for the folder and hit OK button. You will see a new subject folder under the main subject folder in the test plan tree.
  4. Next step is to add a test to the folder we created above by clicking on the new test button. Give a name for test and click OK. You will require to fill in the following details like level, review status and priority. This test then will be added to the test plan tree.
  5. Go to the details tab and you can fill up the following details:
a)   Test name
b)   Test designer
c)   Creation date
d)   Test status etc.
e)   description


Friday, July 27, 2012

What are the causes for the failure of traditional planning approach?

The traditional planning approaches does not always lead to very satisfactory results.

Causes for Planning Failure


Cause #1: Planning is done by activity and not feature
- The traditional approaches to planning focus on activity completion rather than on delivery of features.
- Activity based plans generally lead to projects that overrun their schedules.
- Hence, quality is reduced.

Cause #2: Activities do not finish early
Cause #3: Lateness is passed down the schedule
- Traditional approaches being activity based, their main focus is to focus on dependencies between activities.
- Testing will start late if anything goes worse than planned according to traditional approach.
- Testing will start early if everything goes better than planned.

Ways to avoid late start of testing are:
1. User interface coding finishes late.
2. Middle tier coding takes longer than planned and finishes late.
3. Middle tier coding starts late as tables adding to database finishes late.
4. Tester is not available.

Cause #4: Activities are not independent
- Activities are independent if duration of one activity does not influence the duration of another activity.
- For independent activities, late finish on one activity can be offset by an early finish on another.


Cause #5: Delay caused by multitasking
- Multitasking exacts a horrible toll on productivity.
- It becomes an issue once a project starts to have some activities that finish late.
- Dependencies between activities become critical.
- For a traditionally planned project, multitasking becomes a problem for two reasons:
1. Work is assigned in advance and it is impossible to allocate work efficiently in advance.
2. It focuses on achieving high level of utilization of all individuals rather than on maintaining sufficient slack.

Cause #6: Features are not developed by priority
Cause #7: Ignoring Uncertainty
- We fail to acknowledge uncertainty in traditional approach.
- Ignore the uncertainty about product.
- Assuming initial requirement analysis will lead to complete specification of product.
- Ignoring uncertainty about how we will build the product.
- The best way to deal with uncertainty is to iterate.


After looking at the problems with traditional approaches to planning, many projects are disappointing. Planning based on activity diverts us from features and as a result, a variety of problems leads to the likelihood of delivering late against a schedule.










Saturday, June 30, 2012

Typically, what are the testing activities that are automated?


With the test automation use on the move, a lot of processes and testing activities are being automated nowadays as far as possible. Test automation has been widely accepted since it is quite an effective testing methodology that can help the software engineering industry to keep pace with this fast paced technology savvy world.  

Usually the processes that are automated include manual processes that make use of formalized testing processes. But besides these, there are many other software development processes and activities that are automated using the test automation and process and the best part is that they do not disappoint the testers.

In this article, we have taken up the discussion regarding the activities that are quite often subjected to automation. These activities are mostly concerned with the test automation. Usually test cases for automated software testing are exclusively written but the test cases for most of the manual testing processes that deploy formalized processes are subjected to test automation in order to save time and efforts both. However, before automating any testing activity it is made certain that the automated tests will be compatible with the system on which they will be run.
Today the developers are forced to develop software systems and applications in quite a small time frame which represents quite a big challenge. There is not only the need of testing the software system or application rigorously but also there is a need to do it as quickly as possible. 

What is automated Testing Life Cycle Methodology?


In order to make the development process quite systematic a methodology has been introduced which is commonly known as “automated testing life cycle methodology” or ATLM in short form. 
The ATLM lays down 6 processes or activities in the process of test automation and many of the sub activities are automate.

1. Decision to automate test: This includes:
(a)  Overcoming false expectations of automated testing.
(b)  Benefits of automated testing.
(c)  Acquiring management support.

     2. Test tool acquisition: 
    This is the second phase of ATLM and involves activities like tool evaluation and selection process. Here the activity tool evaluation can be automated to some extent. While selecting the testing tool it is required that the tester should keep in mind the system’s engineering environment.
    
     3. Automated testing introduction phase: This phase involves the following steps:
   
    (a)  Test process analysis: This analysis ensures that all the test strategies and processes are in one place. The test strategies, goals and objectives are all defined in this phase and are documented. In this phase only the testing techniques are defined and test plans are assessed.
    
    (b)  Test tool consideration: This step involves the investigation of the incorporated automated test tools and their viewing in the context of the automated project testing requirements. Also the mapping of the potential test utilities and tools to the test requirements is done. The compatibility factor of the testing tools with the software system or application and environment is verified and solutions are further investigated.

     4. Test planning, design and development

    5. Execution and management of tests: By this phase the test design and test development has been addressed by the testing team. The test procedures are now ready to be automated. The setting up of the test environment after every test case execution is also automated in accordance with the guidelines. Now the test plan is ready and test environment is also set up, the execution of the test cases is started. This whole process is automated in the favor of the exercising the software system or application under the test.

     6. Test program review and assessment


Saturday, June 16, 2012

Reverse Engineering - an activity involved in software re-engineering process model.


Software re-engineering process model is a very generic process meant to uplift the standard of the poor code that is currently not acceptable. This model is known to have 6 major stages namely:
  1. Inventory analysis
  2. Documentation reconstruction
  3. Reverse engineering
  4. Code re- structuring
  5. Data re- structuring
  6. Forward Engineering
This article is all about the third stage i.e., “reverse engineering” which is an important concept in itself. 
Re- engineering is usually required when the some of the sub systems of a larger software system or application need to frequently maintained. The re- engineered system is then restructured and re- documented. 

What is Reverse Engineering?


- The reverse engineering forms a very important factor in success of the re- engineering process. 
- The reverse engineering can be considered to be a process of recovering the design of the software system or application that is to be re- engineered. 
- This step involves analyzation of the software program in an effort to obtain an abstract level representation of the program that is higher than the level of the source code.  
- The software system or application is analyzed in such a way so as to understand its design and specifications and requirements. 
- Reverse engineering is an entirely individual process.
- In some cases the reverse re- engineering may be used  for specifying a software system before it is implemented again. 
- The reverse engineering process makes use of the program understanding tools like:
  1. Browsers
  2. Cross reference generators and so on.

Levels in Reverse Engineering


The reverse engineering process takes effect through the following levels:

1. Abstraction level: The design information of the software system or application is derived at the highest level possible.

2. Completeness: At the above abstraction level, the details of the system are obtained.

3. Interactivity: The degree of the human integration with 5the automated reverse engineering tools is measured.

4. Directionality: It can be either:
(a)  One way: All the extracted information is given to the sogftware engineering who is doing the maintenance.
(b)  Or two way: All the extracted information is fed to a re- engineering tool which then regenerates the old software program.

      5. Extract abstraction: From the old source the processing specifications are obtained.

     

Stages in Reverse Engineering Process


      Reverse engineering process from sommerville goes through the following stages:
      1. System to be re- engineered is subjected to automated analysis.
      2. Then it is manually annotated.
      3. With the system information obtained, a whole set of new documentation is generated containing:
       (a)  Program structure diagrams 
       (b)  Data structure diagrams and 
       (c)   Trace ability matrices.

     

Activities in Reverse Engineering Process


     There are 3 basic activities involved with the reverse engineering process:
   
    1. Understanding process: In order to understand the procedural abstractions as well as functionality analyze the source code on the level:
      (a)  System
      (b)  Program 
      (c)   Component 
      (d)  Statement and 
      (e)  Pattern
    
       2. Understanding data:  It analyzes internal data structures and data base structure.  
   3. User interfaces: It analyzes the basic actions processed by the interface, system’s behavioral response to those actions and equivalency of the interfaces.

When is Reverse Engineering Preferred?


- Reverse engineering is usually preferred when the specifications and designs of the system are required to carry out the program maintenance activities.
- The re- engineering process is preceded by the reverse engineering. 
- To put it simply, the reverse engineering can be thought of as a process that goes back through the whole development cycle.
- UML is a source that supports reverse engineering. 
- Different people have their own different perceptions of the reversion engineering. 
- It can also be thought of as an inversion of the water fall model of software development. 


Thursday, June 14, 2012

What is meant by Domain engineering? What activities are involved in domain engineering?


Domain engineering is nothing but also known as product line engineering. This article is focussed up on the domain engineering and the activities that are involved with it. 

About Domain Engineering


- This is the process that re- utilises the entire domain knowledge in the production of the new software systems or applications.
- The domain engineering is an important concept under the systematic re- use of the software systems and applications. 
- There is a domain by the name of “application domain” consisting of the systems that share commonalities.

You must be wondering how it is possible to cater to the varying needs of the customers by working with just a few domains. 
- The developers make it possible by repeatedly building similar software systems or applications in one domain with many variations to cater to the wide needs of the customers and clients.
- They do not develop a new system starting again and again from the scratch. 
- Effective development is achieved by re- using the portions of the already existing software system or application in the domain. This way time is also saved.
- One of the activities in domain engineering is domain analysis and it involves:
  1. Identifying domains
  2. Bounding the identified domains
  3. Discovering commonalities and variabilities among all the systems in a particular domain.

Purpose of Domain Engineering


- Domain engineering aims at improving the quality of the software systems and applications through the re- cycling of the already existing software artifacts. 
- Thus, the new software systems and applications developed with the domain engineering are not actually new as a whole but are variants of the other systems and applications within the same domain that were built earlier. 
- Domain engineering has helped in maximizing the business profits and a reduction in the time to market has been observed. 
- The overall cost of the project is also reduced and is evident in the implementation phase of the domain engineering. 
- With the domain specific languages, the code size can be restricted both in the terms of numbers and methods. 
- In the domain engineering the developers are forced to use their knowledge that they gathered during the previous software engineering processes. 
- With the development of the re- usable artifacts, the cost of the software is reduced and the quality is improved. 

Domain engineering consists of three phases and the above principle applies well to all these three phases.

1. Domain Analysis 
- This phase involves defining the domain and collecting information about it and produce model based on the collected info. 
- With such a model, the common points as well as variant points of the domain are identified and thus the development of configurable requirements is facilitated.
- Domain analysis is not be confused with the requirements engineering.
- The effectiveness of the domain engineering stays only when the re- use of the software artifacts is deployed in the earlier phases of the software development life cycle of that software product. 
- Potential sources of the domain analysis include:
(a)  Design documents
(b)  User manuals
(c)   Requirements documents
(d)  Standards and
(e)  Customers as well.

     2. Domain Design 
   - This phase makes of the domain model produced in the first phase and produces a generic architecture appropriate for this model and to which all the systems within the domain can adhere to. 
    - With the configurable requirements produced in the previous phase, a standardized solution is obtained. 
  - The solution that is generated in this phase is common for all the systems within that particular domain.

     3. Domain Implementation
     - This phase involves creation of a customized program in that domain. 


Monday, June 11, 2012

Explain BPR model? What are steps involved in BPR model?


BPR or business process re- engineering model is the model that is being used by many of the organizations of today’s software world for analysing and designing their processes and work flows! 
In this article we have discussed about this business process re- engineering model in detail. 

The model works on the principle that the business processes are a set of logically related tasks that aim at working together towards a defined business goal. This model has been deployed by many management systems like:
  1. Information systems management
  2. Supply chain management
  3. Group ware systems
  4. Human resource management systems
  5. Enterprise resource planning etc.

Phases of BPR model


The business process re- engineering model involves a cyclic process consisting of four main phases:
  1. Identification of the processes
  2. Review and updating and analysis
  3. Design to be
  4. Testing and implementation to be
Implementation of the business process engineering requires that you implement an HPO or high performing organization. It should be kept in mind BPR is an organizational method that redesigns an organization’s process in terms of effectiveness, efficiency and economy. 

Few of the activities that are undertaken in BPR are:
  1. Activity based costing analysis
  2. Business case analysis
  3. Industrial engineering techniques
  4. Productivity assessment
  5. Human capital tools
  6. Base lining and bench-marking studies
  7. Functionality assessment
  8. Organization analysis
  9. Work force analysis

Steps in Implementation of BPR model


Now we shall what all steps are involved in the implementation of this business process re- engineering model!

1. Establishment of BPR and HPO project plan: 
In this step the reason for the BPR nomination is justified and the organization states the objectives of the BPR. The employees and activities that will be affected are identified. The customers and the stakeholders that will take effects by the impact of the BPR are also identified. The available contractor support is also identified. The organization then needs to describe the outcomes like metrics, business and human capital.

2. Preliminary planning: 
It involves identification and assignment of the MSO development team members (MSO stands for most sustainable organization), development of the action plan with check points and milestones, development of the communication plans, and establishment of the data analysis requirements and collection methods.

3. Development of the business case: 
This step involves the implementation of the AS- IS analysis of the organization, development of the MSO to be, measuring the gaps between the actual and the “to be” organizations and the development of the transition plans.

4. Implementation of the business case: 
This step involves the identification and assignment of the most sustainable organization implementation team members, establishment of the letter of obligation between MSO activity manager and agency head and the initiation of the transition to the MSO.

5. Tracking and validation of the MSO performance: 
It involves usage of the identified metrics in the measurement of the:
 (i)  Closing skills
(ii)  Competency gaps
(iii)Closing performance gaps
(iv) Improving timeliness and quality
(v)   Achieving savings and so on.

This whole process is driven by two teams namely:
1.Development team: 
It develops the MSO and includes functional experts, personnel specialists etc.

2. Implementation team: 
It implements the MSO and includes development team members and employees who will work in MSO.

3. Other people involved in the business process re- engineering are
- Acquisition officer: participates in the BPR efforts.
- MSO activity manager
- Human resource advisor
- Human capital officer
- CFO
- General officer
- Budget officer
- Support contractor and so on.

Re-engineering involves fundamental re- thinking towards achieving the improvements in performance and speed. 


Thursday, May 31, 2012

What is an Agile Process?


Agile process is a process that is taking up the field of software engineering for the good. In this article the topic of the agile process has been taken up in depth. 
Agile processes or agile software development processes constitute a group of processes that are based up on the principles of the agile values and principles and follow up the idea of the iterative and incremental development for developing the software products. 

Here the solutions to the software problems are meant to be evolved via the collaboration between the development teams having characteristics like:
     1. Self organization and
     2. Cross functioning

The agile process are known world wide for the promotion of the following features:
     1. Adaptive planning
     2. Evolutionary development
     3. A time boxed iterative approach
     4. Flexible and rapid response to the change in requirements.

     

What is an Agile Process?


- Agile processes can be thought of as a conceptual frame work promoting the above mentioned aspects plus the foreseen interactions that take place throughout the development cycle. 
- The term “agile processes” came in to existence by the virtue of the agile manifesto in the year of 2001. 
- The concept of the agile processes is not so new to the software industry. 
- The incremental software development aspect of the agile development can be dated back to the year of 1957.  
- The category of the light weight software development methodologies houses all the agile software development methodologies. 
- The agile processes were first mentioned in the “manifesto for agile software development”. 

Principles that govern Agile Process


There are 12 principles that govern the agile processes as mentioned below:
1. Rapid delivery of the software that is useful to the customer.
2. To accept the changes in the requirements in all the phases of the development process.
3. Frequent delivery of the working software.
4. A principal measure of the progress is the working software.
5. The development takes place at a constant pace known as the sustainable development.
6. Daily co- operation takes place between the developers and the clients.
7. Face to face conversation is maintained.
8. The project is centered around the motivated individuals who are trust worthy.
9. Regular attention is paid to the design and the technical excellence.
10. Simplicity is maintained.
11. Self organizing teams.
12. Ability to adapt to the changing circumstances.

Till date so many agile software development methods have come up and they are known to promote the following elements:
1. Team work
2. Collaboration
3. Process adaptability

- These elements are promoted all along the development process and throughout the development cycle of the software project.
- The main methodology of the agile processes is that the problem is broken down in to small increments or iterations and is developed according to the short term planning rather than using the long term planning. 
- These iterations are nothing but kind of short frame works having duration of development ranging from one to four weeks. 

Activities in Agile Process


Full agile software development iteration includes the following activities:
1. Planning
2. Requirements analysis
3. Design
4. Coding
5. Unit testing and
6. Acceptance testing

More about Agile Process


- The agile processes are known for their typical strategy that works on minimizing the risk to a great extent. 
- The documentation is produced by the stake holder as and when required.
- The goal here is develop a release that is available as a sample but not for market release. 
- A market release is facilitated by multiple iterations.
- The work burden is divided by the individual team members among themselves. 
- For the agile development the team needs to be in the same region and size of the team is typically small at the most ten members. 


Facebook activity