My Quotes


When U were born , you cried and the world rejoiced
Live U'r life in such a way that when you go
THE WORLD SHOULD CRY






Thursday, December 24, 2009

weblogic - Invalid Bad Pad Type

So many times we have hurdled into this exception when we try and start either the Admin Server or the weblogic instances.

The issue happens mostly when one of the envionment (domain) is copied.

The easy way to fix the same is to re-encrypt the password using the BEA weblogic Encrypt Tool. You can ask your weblogic administrators to do this if you do not have access for the same

java -cp ./weblogic/server/lib/weblogic.jar -Dweblogic.RootDirectory={your domain} weblogic.security.Encrypt {your plain text password}

Also note that once you have this issue, by virtue of it the boot.properties file will have "NULL" for encrypted password.

The boot.properties will be located at

<<Domain_Home>>/servers/AdminServer/security/boot.properties
<<Domain_Home>>/servers/<<Instance Name>>/security/boot.properties


Hope this helps some one struggling.

Wednesday, December 23, 2009

RUP simplified


Symptoms of Software Development Problems


1)      Not properly understanding the end-users needs.
2)      Inability to deal with changing requirements.
3)      Modules that do not fit together.
4)      Software that is hard to maintain.
5)      Late discovery of project flaws.
6)      Unacceptable software performance.
7)      No coordination between team members.

Root Causes of Software Development Problems


1)      Ad hoc requirement.
2)      Gap in communication.
3)      Overwhelming Complexity.
4)      Inadequate testing.
5)      Undetected inconsistencies in requirements, designs and implementation.
6)      Insufficient Testing.
7)      Failure to take care of Risk.

Best Practices


1)      Develop Software iteratively.
2)      Manage Requirements.
3)      Use Component based architectures.
4)      Visually model software.
5)      Continuously verify software quality.
6)      Control changes to software.


Rational Unified Process builds on these 6 best practices to deliver well-defined process.
It is a software engineering process.
It provides a disciplined approach to assigning tasks and responsibility within the organization.
 It is a process framework and a process product.
In addition to the 6 best practices, 3 other are important features of RUP
1)      Use-Case-Driven Development – which play a major role in requirement, design, test and implementation.
2)      Process Configuration – to produce high quality software.
Process describes who, what, how and when.
Workers: who
Activities: what
The work performed by the workers. It is a unit of work an individual is asked to perform that role.
Artifacts: how 
Is a piece of information that is being produced, modified or used by the process.
It can be a Source code / Executables / Document / Use – case or Design model.
Workflow: when
3)      Tools Support




Use-Case Model


Use-Case             is a sequence of actions the system performs.
Actor                   is someone or something outside the system and interacts with the system.
Flow of Events    sequence of actions between the actor and the system written in simple language.

RUP is a use-case driven approach. This means that the use cases defined for the system are the basis for the entire development process.

Written in simple prose, use cases are understandable by wide range of stakeholders.
Use cases synchronize the content of various models.
Use cases are organized in use-case model, which also expresses the relationships among them.
Scenarios are described instances of use cases.
Use case drive numerous activities in RUP
·        Creation and validation of the design model.
·        Definition of test cases and test procedures in the test model.
·        Planning of Iterations.
·        Creation of user manuals.
·        Deployment of the system.


Project Management Workflow


PM is the art of completing objectives by managing the risk factor and overcoming the constraints to deliver the project.

PM Workflow has three purposes
1.      To provide framework for managing software-intensive projects.
2.      To provide practical guidelines for planning, staffing, executing and monitoring projects.
3.      To provide framework for managing risk.

Risk is a variable, which can take a value that endangers the success of a project.
It can be direct (over which the project has a large degree of control) or indirect (on which the project has less or no control)
Strategies with Risk
1.      Risk avoidance: Reorganize the project such that it cannot be affected by risk.
2.      Risk Transfer: Reorganize such that someone or something bears the risk.
3.      Risk acceptance: Monitor the symptoms and decide on what to do if it materializes.
·        Migrate to Risk: Take immediate proactive steps to reduce the impact.
·        Define Contingency plan: Determine what to do if risk becomes problem.

Goals are to
·        Improve productivity.
·        Improve predictability.
·        Improve customer satisfaction.
·        Increase revenue.
·        Increase reuse.

Metrics

            Is a measurable attribute or entity. It can be a raw data that is used to calculate a metric.
Each metrics has one or more collected metrics.
Planning an iterative Project
·        Phase plan.
·        Iteration plans.

Workers

·        Project Manager.
·        Project Reviewer.

Artifacts

·        Software Development Plan.
Produce acceptance plan.
Risk management plan.
Problem resolution plan.
Measurement plan.
·        Business case.
·        Iteration plans.
·        Iteration assessment.
·        Periodic assessment.
·        Work order.

PM Workflow

·        Conceive new project
Identify and assess risks, develop business case, initiate project and project approval review.
·        Evaluate project scope and risk
Done after the project is initiated to give solid base for detailed planning
·        Develop software development plan
Includes
Measurement plan
Risk management plan
Product acceptance plan
Problem resolution plan
Project organization and staffing
Monitoring and control process
Plan phases and iterations
Compile software development plan
·        Plan for next iteration
To create iteration plan to guide the next iteration. To adjust software development plan, cost estimates and availability dates
·        Monitor and control project
Deal with change request approved by CCB. Monitor project for progress and risks. Report project status. Dealing with issues and problems.
·        Manage iteration
To find necessary resources to perform iterations, allocate work and assess the results.
·        Close-out phase
Ensure that issues are closed in that phase. Deployment problems are addressed. Project finances are settled.
·        Close-out project
Readies the project for termination.


Requirement Workflow

Requirement is a condition that the system needs to meet
Functional Requirements are the behavior of the system with inputs and outputs.
Non-Functional Requirement:
            Usability: user documentation, training material and other human factors.
            Reliability: frequency and severity of failure, recoverability and accuracy.
            Performance: transaction rate, speed, response time and memory usage.
            Support: Testing and Maintenance problems and making the system up-to-date.

Workers in Requirements

·        System Analyst
Coordinates requirements and use-case modeling.
·        Use-Case Specifier
Details all or part of system’s functionality.
·        User-Interface Designer
Interaction between user and the system.

Artifacts in Requirement

Business Object Model developed during business model, Vision Document, Use-Case Model and Use cases.Complementary to the above, we can have
·        Glossary
·        Use-Case Storyboard
·        User-interface prototype.

Analysis and Design workflow


To translate the requirements into Specification. To describe how to implement the system.

Analysis

            To translate with use cases and functional requirements, the requirements into classes and subsystems.
Design:
            Adapt the results of the analysis to the constraints imposed by non-functional requirements.
It is a refinement of analysis. It should be done so that the system can be implemented unambiguously.

Workers

·        Architect
·        Designer
·        Database Engineer
·        Architect Reviewer and Design Reviewer
·        Capsule designer for real-time systems

Artifacts

·        Design Model         blueprint of the system under study. It consists of collaboration of classes aggregated
into packages.
A Class is a set of objects that share same responsibilities, relationships, attributes and semantics.
A Package is a logical grouping of classes.
·        Software Architecture Document

Workflow

·        Define a candidate Architecture      
Create an initial sketch
Identify classes
Update use-case
·        Refine the architecture
Identify design mechanisms.
Identify design elements.
Incorporate existing design elements.
Describe run-time architecture.
Describe distribution.
·        Analyze behavior
Use-case analysis by designer.
Identify design elements by architect.
Review the design by design reviewer.
·        Design components
·        Design real-time components
·        Design the database

Implementation Workflow


To implement classes and objects. To test developed components. To integrate results of individual implementers or teams.
It consists of 3 components.
·        Builds
Subset of the system. Generally a part of the system.
·        Integrate
To integrate work of different groups of the same subsystem.
To integrate different subsystems into a large one.
Incremental integration is code written in small pieces is combined into large one.
Phased integration is integrating multiple components at the same time.
·        Prototype
Directed way to reduce risk. To show something concrete to user.

Workers

·        Implementer
Develops components and performs unit testing
·        System Integrator
Who constructs a build
·        Architect
·        Code Reviewer

Artifacts

·        Implementation subsystem
·        Component
·        Integration and build plan

Workflow

            To make the development of components and the build process as conflict-free as possible.
·        Plan the subsystem to be implemented and their order
·        Implementer writes code, adapt existing components, compile, link and execute.
·        Implementer also fixes bugs.
·        Code is reviewed.


Test Workflow

            To assess end product quality. To verify interactions of components, verify proper integration of components, verify all requirements have been implemented correctly, verify that defects are addressed before software is deployed.

Dimensions of Testing

·        Quality
Reliability
Functionality
            Performance
·        Stages of Testing
Unit Testing
Integration Test
System Test
Acceptance Test
·        Types of Test
Benchmark Test           compares to standard existing software measurement
Configuration Test        functionality in different hardware and software
Function Test                executing the required use cases
            Installation Test install successfully in different conditions or configurations
            Integrity Test                verifies the reliability, robustness and resistance to failure during execution
            Load Test                     performance under operational conditions like max users, max transactions.
            Performance Test        
            Stress Test                   performance under abnormal conditions like diminished resources.
·        Regression Test

Test Model

            Is a representation of what to be tested and how to test.
·        Test Cases
Set of test data, execution conditions derived from use case, design documents or code.
·        Test Procedures
Set of detailed instructions for the setup, execution and evaluation of test results for test cases.
·        Test Scripts
Computer readable instruction to execute the procedures automatically.
·        Test Classes and Components
·        Test Collaborations
·        Notes

Workers

·        Test Designer
Plans, design, implement and evaluate tests.
·        Tester
Person responsible for execution of test.

Artifacts

·        Test Plan
·        Test Model
·        Test Results            data captured during execution of the tests.
·        Defects                   failed test results

Workflow

·        Plan Test               
·        Design Test
·        Implement Test
·        Execute Test in integration stage
·        Execute Test in System stage
·        Evaluate Test


Configuration and Change Management Workflow


Track and maintain the integrity of evolving project assets like valuable artifacts. To obtain the appropriate versions.

CCM Cube

·        Change Request Management
·        Configuration Management
·        Status and Measurement

Workers

·        Configuration manager
Setting up the product structure in the CM system. Define and allocate workspaces for developers. Extract metrics and status report for PM.
·        Change control manager
Overseas the overall change control process.
·        Implementers
·        Integrators

Artifacts

·        Change Request
·        Configuration Management Plan
·        Metrics and Status Reports

Workflow

·        Create an environment for CM
·        Manage releases.
·        Monitor and report configuration reports
·        Manage change requests.


Environment Workflow


Support the development organization with both processes and tools.
·        Tool selection and acquisition
·        Set up tools
·        Process configuration
·        Process improvement
·        Technical services

Workers

·        Process Engineer
Configuring the process before the project startup.
·        Business process analyst     for business modeling guidelines
·        System analyst                    for use-case modeling guidelines
·        User-interface Designer     
·        Architect                            for programming guidelines
·        Technical writer                  for user manual guidelines
·        System Administrator          maintain hardware and software environment

Artifacts

·        Development case
Describes for each process workflow, how the project will apply the process.

Workflow

·        Prepare environment for project
·        Prepare environment for iteration
·        Prepare guidelines for an iteration



Deployment workflow


            Turn the finished software product over to its users.
To test the final beta version in its operational environment.
Package the delivery software.
Distribute the software
Install the software
Train the end user
Migrate the software

Workers
·        Deployment Manager
·        Project Manager
·        Technical Writer
·        Course Developer
·        Tester

Artifacts

·        Installation artifacts
·        Release Notes
·        Support material
·        Training material
·        Print specs
·        Release media
·        Test Results
·        Feedback Results
·        Test Evaluation summary

Workflow
·        Plan deployment     customer’s willingness with his collaboration and preparation.
·        Develop support material    for end user to operate, maintain and use the system.
·        Test product at development site
·        Create release everything for the end user to install and run the software
·        Beta Test Release
·        Package product
·        Provide access


Configuring and Implementing RUP


Configure RUP:            The organization should modify the process framework
Implement RUP:           The organization should routinely and successfully use RUP.
                                    Address the following areas
1.      The people and their competence, skills , motivation and attitude
2.      The supporting tools
3.      The software development process

Implementing RUP step by step

·        Access the current state of
            The people
            The tools
            The process

·        Set (Revised) Goals
·        Identify risks
·        Plan the process Implementation
·        Execute the process
·        Evaluate the process