Tuesday, June 15, 2010
Verification (VER) & Validation(VAL) : Goals and Practices
An Engineering process area at Maturity Level 3
Purpose
The purpose of Validation (VAL) is to demonstrate that a product or product component fulfills its intended use when placed in its intended environment.
Specific Practices by Goal
SG 1 Prepare for Validation
SP 1.1 Select Products for Validation
SP 1.2 Establish the Validation Environment
SP 1.3 Establish Validation Procedures and Criteria
SG 2 Validate Product or Product Components
SP 2.1 Perform Validation
SP 2.2 Analyze Validation Results
Verification (VER)
An Engineering process area at Maturity Level 3
Purpose
The purpose of Verification (VER) is to ensure that selected work products meet their specified requirements.
Specific Practices by Goal
SG 1 Prepare for Verification
SP 1.1 Select Work Products for Verification
SP 1.2 Establish the Verification Environment
SP 1.3 Establish Verification Procedures and Criteria
SG 2 Perform Peer Reviews
SP 2.1 Prepare for Peer Reviews
SP 2.2 Conduct Peer Reviews
SP 2.3 Analyze Peer Review Data
SG 3 Verify Selected Work Products
SP 3.1 Perform Verification
SP 3.2 Analyze Verification Results
What is the difference between Validation & Verification
whether or not a product, service, or system complies with
regulations, specifications, or conditions imposed at the start of a
development phase. Verification can be in development, scale-up, or
production. This is often an internal process.
Validation is Quality assurance process of establishing evidence
that provides a high degree of assurance that a product, service, or
system accomplishes its intended requirements. This often involves
acceptance of fitness for purpose with end users and other product
stakeholders.
Verification: “are we building the product right”
Validation: “are we building the right product”
Monday, June 14, 2010
Wednesday, June 9, 2010
Versions/Variants/Releases
Versions/Variants/Releases : These terms are often confused. hence it is important to know the differnce between what each of these stands for.
Version-An instance of a system which is functionally distinct in some way from other system instances.
Variant-An instance of a system which is functionally identical but non-functionally distinct from other instances of a system.
Release-An instance of a system which is distributed to users outside of the development team.
Tuesday, June 8, 2010
Various Configuration Management Tools
Below are few examples of Configuration Management Tools :
- VSS – Visual Source Safe for documents.
- VSTS - Visual Studio Team System
- VAJ - Visual Age for Java for source files.
- RCE – Revision Control Engine.
- Software Manager – Information from virtual sky.
- QVCS – Quma Version Control System.
- Source Code Manager.
- SCLM – Software Configuration Library Manager.
- CVS – Concurrent Version System.
What is a Configuration Mangement(CM) Plan
- Defines the types of documents to be managed and a document naming scheme.
- Defines who takes responsibility for the CM procedures and creation of baselines.
- Defines policies for change control and version management.
- Defines the CM records which must be maintained.
- Describes the tools which should be used to assist the CM process and any limitations on their use.
- Defines the process of tool use.
- Defines the CM database used to record configuration information.
- May include information such as the CM of external software, process auditing, etc
Configuration Mangement - The CMMI Way
Configuration Management (CM)
A Support process area at Maturity Level 2
Purpose
The purpose of Configuration Management (CM) is to establish and maintain the integrity of work products using configuration identification, configuration control, configuration status accounting, and configuration audits.
Specific Practices by Goal
SG 1 Establish Baselines
SP 1.1 Identify Configuration Items
SP 1.2 Establish a Configuration Management System
SP 1.3 Create or Release Baselines
SG 2 Track and Control Changes
SP 2.1 Track Change Requests
SP 2.2 Control Configuration Items
SG 3 Establish Integrity
SP 3.1 Establish Configuration Management Records
SP 3.2 Perform Configuration Audits
What is Configuration Management....
Configuration management (CM) is a field of management that focuses on establishing and maintaining consistency of a system's or product's performance and its functional and physical attributes with its requirements, design, and operational information throughout its life.
1) For information assurance, CM can be defined as the management of security features and assurances through control of changes made to hardware, software, firmware, documentation, test, test fixtures, and test documentation throughout the life cycle of an information system.
2) CM for information assurance, sometimes referred to a Secure Configuration Management, relies upon performance, functional, and physical attributes of IT platforms and products and their environments to determine the appropriate security features and assurances that are used to measure a system configuration state. For example, configuration requirements may be different for a network firewall that functions as part of an organization's Internet boundary versus one that functions as an internal local network firewall.
HISTORY :
Configuration management was first developed by the United States Air Force for the Department of Defense in the 1950s as a technical management discipline of hardware. The concepts of this discipline have been widely adopted by numerous technical management functions, including systems engineering (SE), integrated logistics support (ILS), Capability Maturity Model Integration (CMMI), ISO 9000, Prince2 project management methodology, COBIT, Information Technology Infrastructure Library (ITIL), product lifecycle management, and application lifecycle management. Many of these functions and models have redefined configuration management from its traditional holistic approach to technical management. Some treat configuration management as being similar to a librarian activity, and break out change control or change management as a separate or stand alone discipline. However the bottomline is and always shall be Traceability.
Thursday, June 3, 2010
"Design Management" in an hour!
Design management is concerned with the integration of design into management and vice versa. Simply put, design management is the business side of design. Design management encompasses the ongoing processes, business decisions, and strategies that enable innovation and create effectively-designed products, services, communications, environments, and brands that enhance our quality of life and provide organizational success.
The detailed design describes the project implementation in the detailed design document. This includes coding conventions, screen, class and data storage specifications.
Architecture Design
- Assimilate Documentation: Collect white papers, prototypes, case study and workshop results from both the client and the vendor for analyzing alternative solutions for the design.
- Evaluate Alternate Solutions for Architecture Design: This is the make, buy and reuse stage. Following are the factors that drive the decisions here.
-Product Functioning
-Available resources and skills
-Cost of acquiring versus developing internally
-Critical deliver and integration dates
-Strategic business alliance, including high level business requirements
-Market research of available products, including COTS products
-Functionality and quality of available products
-Skills and capability of potential suppliers
-Impact on core competencies
-Product availability
-Licenses, warrantees, responsibilities, and limitations of the product being acquired
-Proprietary issues
-Risk reduction - Define the selection criteria before evaluating the alternate solution: This encompasses Cost (Time, People, and Money), Benefits (Performance, Capability, and Effectiveness) and Risks. Important things to consider are as follows.
-Type of the product
-Reuse of existing components
-Future plans of extending/enhancing the product
-User interface
-Hardware and software requirements
-Error detection, reporting and recovery mechanism
-Memory management policies
-External database, storage management and persistence
-Distributed data or control over the network
-Concurrency and synchronization
-Communication mechanism
-Management of other resources
-Performance requirements - Identify criteria for selection of physical organization: Following are the inputs to this stage:
-Storage space
-Operational efficiency
-Response time
-Costs
-Database security and integrity
-Identification of constraints and limitations - Construct Object Model: For almost all the projects, except for smaller ones, usage of CASE tools is highly recommended for building the Object Model/Domain Model.
- Evolve Other Specific Requirements: These are the operational concepts such as,
-Conversion Modules
-Archive and Purge Module
-Backup and Recovery Design
-Security Architecture
-System Interfaces
-Batch Jobs
-Performance and Response Time Considerations
-Platform Dependencies and Installation Considerations
-Localization Considerations - Prepare Architectural Design and Operation Scenario: We need to define following items to complete this stage.
-Domain model
-Functions
-Behavior
-Data
-Design Model - Prepare Architecture Design Document: There are 10 steps to draft the architecture design document.
-Derive functional definitions of the components
-Define data structures
-Describe user interface
-Define control flow
-Define the response requirement
-Detailed data flow diagrams
-Data dictionary
-Entity relationship diagram
-Define interface requirements
-Define reusable components - Review and approve Architecture Design Document: First step is to conduct formal and technical review of the document, close all action items, get signoffs from the PM and the customer, and baseline the document.
- Prepare Integration Test Plan: This stage is broken down as follows.
-Identification of integration sequence, ensuring availability of tools and setting up test environment
-Plan for resource and access permissions
-Perform product integration after setting up the environment
-Prepare integration test data
-Prepare integration test plan
Detailed Design
- Assimilate Documentation: Collection functional specifications, detailed customer requirement specification, architecture design, and data model documentation.
- Frame the Selection Criteria for Evaluation of Solution Alternatives:
-Type of the product
-Reuse of existing components
-Future plans of extending/enhancing the product
-User interface
-Hardware and software requirements
-Error detection, reporting and recovery mechanism
-Memory management policies
-External database, storage management and persistence
-Distributed data or control over the network
-Concurrency and synchronization
-Communication mechanism
-Management of other resources
-Performance requirements - Decompose Lower Level Components:
-Start from the interface and interface specification
-Concentrate on the control flow
-Defer data declaration until the coding stage
-Keep step of refinement small for easy verification
-Review each step as and when completed - Prepare Detailed Design: Steps involved in detailed design are as follows.
-Presentation
-Naming programs, files, variables and data
-Limiting the size of modules
-Using library routines
-Defining constraints
-Defining constants
-Using compiler specific features
-Error handling
-Definition of standards for development - Review and Approve Detailed Design Document: We need to define following items to complete this stage.
-Domain model
-Functions
-Behavior
-Data
-Design Model - Review and Approve Test Plan
- Component Reuse
Design Models
- Static Object Model: Such as Use Case and Class diagrams
- Dynamic Object Model: Such as Activity and State diagrams
- Storage Object Model: Such as Entity Relationship diagrams
Service Design
This include activities such as below.
- Data Migration
- Training
- System Deployment and Management
Alternate Design Evaluation
During SDLC the following structured design methods can be adopted.
- Architecture Tradeoff Analysis Method (ATAM):
Inputs: System’s business/mission drivers, existing architectural documents
Outputs: List of architectural approaches, scenarios, attributes, utility tree, risks, non-risks, risk themes - Cost-Benefit Analysis Method (CBAM):
Inputs: System’s business/mission drivers, list of scenarios, existing architectural documents
Outputs: List of architectural strategies with cost-benefits-schedule-ROI, risks related to each architectural strategy - Active Review for Intermediate Designs (ARID):
Inputs: List of seed scenarios, existing architectural documents
Outputs: List of issues and problems preventions - Attribute Driven Design (ADD)
Inputs: Requirements, Constraints, Quality Attribute documents
Output: Module decomposition, concurrency and deployment documents
Reviews
Reviews are conducted on the design process and documentation. Following are types of review conducted.
- Formal Technical Review
-Prepare the work product
-Identify review team and their roles and responsibilities
-Plan review
-Review work product
-Rework
-Signoff work product - Internal Peer Review
Templates created at the organizational level
- General Design
- Object Oriented Design
- Feasibility Study
- Program Specification
- Proof of Concept
- Signoff
- Tool Evaluation
Types of Checklists created at the organizational level
- Design checklist
- Program specification checklist
Tuesday, June 1, 2010
Friday, May 28, 2010
Software Design vs Software Engineering...
In some engineering disciplines; the concepts of "design" and "engineering" are segregated. It is occasionally argued that such separation is beneficial to software systems, as well...
Design consists of the specification of requirements (functional, etc.) needed to satisfy the customer and other relevant external parties (the law, etc.) The job of a designer is to gather such requirements from various sources; asking customers directly, market research, academic research into relevant fields, domain knowledge, study of the law and of relevant standards and practices, and a bit of intuition and produce a specification of some sort.
The designer is concerned with many human factors; aesthetics, functionality, ease-of-use, fitness for purpose and quality; the designer is less concerned with implementation details.Engineering consists of the translation of these requirements into a technical specification describing a system which conforms to these requirements. In many traditional engineering disciplines, the role of engineer is generally not concerned with things such as aesthetics or fitness-for-purpose; instead the engineer is concerned with coming up with a system (or specification) which is correct, safe, and cost-effective.
The chief distinction between an engineer and a designer is that the engineer is personally (legally speaking) responsible for knowing said correctness and safety of the system. The processes of technical specification and other standard procedures exist so that the engineer can convince himself and others of this knowledge. In many fields it is possible for the engineer to be completely unrelated to the design process and only be responsible for the validation of the design...
eQuaility Quiz 2:
eQuaility Quiz 2:
1. REQM stands for
a) Requirement Equality Management
b) Requirement Management
c) Requires Equal Maintenance
d)Request Management
****************************************************
2. REQM process area belongs to following Maturity level:
a) One
b) Two
c) Three
d) Four
****************************************************
3. Which of the following is not the specific practice of the Goal of Manage Requirements
a) Obtain Commitment to Requirements
b) Maintain Bidirectional Traceability of Requirements
c) Analyze Requirements
d) Identify Inconsistencies Between Project Work and Requirements
***********************************************************
4. The purpose of requirements management:
a) Manage Changing Requirements
b) Ensure that requirements are complete
c) Obtain Sign off of Requirements
d) All of the above
****************************************************
5. What is Bidirectional Traceability:
a) Tracing Requirements sources to the product
b) Tracing each unique work product to its associated requirement
c) Tracing Requirements sources to the product and back to its associated requirement.
d) None of the above
*************************************************************
Post your answers as comment to this post !!!
Thursday, May 27, 2010
eQuality Jokes
A tall lady open the door.
Before she could speak, the enthusiastic salesman barged into the living room and opened a big black plastic bag and poured all the cow droppings onto the carpet.
"Madam, if I could not clean this up with the use of this new powerful Vacuum cleaner in the next 10 mins, I will EAT all this dung!"
Exclaimed the eager salesman.
"Do you need chilly sauce or ketchup with that" asked the lady.
The bewildered salesman asked, "Why, madam?? "
"There's no electricity in the house..." said the lady.
Moral of the story: Gather all requirements and resources before working on any project and committing to the client...!!!
Wednesday, May 26, 2010
Requirment Management for DUMMIES !
Requirements management further includes supporting planning for requirements, integrating requirements and the organization for working with them (attributes for requirements), as well as relationships with other information delivering against requirements, and changes for these. The traceabilities thus established are used in managing requirements to report back fulfillment of company and stakeholder interests, in terms of compliance, completeness, coverage and consistency.
Traceabilities also support change management as part of requirements management in understanding the impacts of changes through requirements or other related elements (e.g., functional impacts through relations to functional architecture), and facilitating introducing these changes.
Requirements management involves communication between the project team members and stakeholders, and adjustment to requirements changes throughout the course of the project. To prevent one class of requirements from overriding another, constant communication among members of the development team is critical.
For example, in software development for internal applications, the business has such strong needs that it may ignore user requirements, or believe that in creating use cases, the user requirements are being taken care of.
So, basically,, This will happen to U if you dont implement requirements management :
Tuesday, May 25, 2010
Requirement Management...The CMMi way
You do not want to be in our Dilbert's position, so what will you do? We suggest follow the CMMi way? What is CMMi way? To know..Read On....
Each Process Areas in CMMi has Specific Goals and Common Goals. These goals can be achieved by following the specific and general practices respectively
- SP 1.1 Obtain an Understanding of Requirements
- SP 1.2 Obtain Commitment to Requirements
- SP 1.3 Manage Requirements Changes
- SP 1.4 Maintain Bidirectional Traceability of Requirements
- SP 1.5 Identify Inconsistencies Between Project Work and Requirements
Monday, May 24, 2010
Requirement Management (REQM)
The requirements are the foundation, upon which the software process is built, and the Requirements Management (RM) process emerges as a systematic approach to find, document, organize, and track all system's requirements during the life cycle.
According to a SEI’s Study, the top two out of ten factors that contribute to the failure of system
development projects are requirements problems. These problems are mainly associated with an inadequate requirements specification and/or an insufficient requirements change management. Also the Standish Group's CHAOS report found that the major factors that cause software projects to fail are:
- Lack of user input
- Incomplete requirements specifications
- Changing requirement specifications.
Friday, May 21, 2010
eQuality Quiz 1:
a) Encouraging Quality
b) Ensuring Quality
c) Emerging Quality
d) Ending Quality
***********************************
2) eQuality punch line
a) It's not about what, it’s about why
b) It's not about why, it’s about what
c) Lets learn CMMi
d) CMMi awareness drive
***********************************
3) Select the correct sequence of Levels in CMMi
a) Initial, Defined, Managed, Quantitatively managed, Optimized
b) Initial, Defined, Managed, Optimized, Quantitatively managed
c) Initial, Managed, Defined, Optimized, Quantitatively managed
d) Initial, Managed, Defined, Quantitatively managed, Optimized
***********************************
4) Our organization is getting reassessed for CMMi Level 5 in year
a) 2010
b) 2011
c) 2012
d) None of above
***********************************
5) CMMI (Capability Maturity Model Integration) is a __________ improvement approach
a) Quality
b) Coding
c) Process
d) None of above
Post your answers as comment to this post !!!
Quick description of CMMI level 5 process areas
OID – Organizational Innovation and DeploymentThe purpose of OID is to select and deploy improvements that measurably improve the organization’s processes. The improvements support the organization’s quality and process performance objectives as derived from the organization’s business objectives. Keep in mind that you need to prove that the proposed innovations has improved organization’s process.
CAR – Causal Analysis & ResolutionThe purpose of this process area is to identify causes of defects and take action to prevent them from occurring in the future. Tip: A Six Sigma initiative can help a lot high maturity.
Thursday, May 20, 2010
Levels of the Capability Maturity Model (CMMi)
1. Initial (chaotic, ad hoc, individual heroics) - the starting point for use of a new process.
2. Managed - the process is managed according to the metrics described in the Defined stage.
3. Defined - the process is defined/confirmed as a standard business process, and decomposed to levels 0, 1 and 2 (the latter being Work Instructions).
4. Quantitatively managed
5. Optimized - process management includes deliberate process optimization/improvement.
Within each of these maturity levels are Key Process Areas (KPAs) which characterise that level, and for each KPA there are five definitions identified:
1. Goals
2. Commitment
3. Ability
4. Measurement
5. Verification
The KPAs are not necessarily unique to CMM, representing — as they do — the stages that organizations must go through on the way to becoming mature.
The CMM provides a theoretical continuum along which process maturity can be developed incrementally from one level to the next. Skipping levels is not allowed/feasible.
Level 1 - Initial (Chaotic)
It is characteristic of processes at this level that they are (typically) undocumented and in a state of dynamic change, tending to be driven in an ad hoc, uncontrolled and reactive manner by users or events. This provides a chaotic or unstable environment for the processes.
Level 2 - Managed
It is characteristic of processes at this level that some processes are repeatable, possibly with consistent results. Process discipline is unlikely to be rigorous, but where it exists it may help to ensure that existing processes are maintained during times of stress.
Level 3 - Defined
It is characteristic of processes at this level that there are sets of defined and documented standard processes established and subject to some degree of improvement over time. These standard processes are in place (i.e., they are the AS-IS processes) and used to establish consistency of process performance across the organization.
Level 4 - Quantitatively Managed
It is characteristic of processes at this level that, using process metrics, management can effectively control the AS-IS process (e.g., for software development ). In particular, management can identify ways to adjust and adapt the process to particular projects without measurable losses of quality or deviations from specifications. Process Capability is established from this level.
Level 5 - Optimized
It is a characteristic of processes at this level that the focus is on continually improving process performance through both incremental and innovative technological changes/improvements.
At maturity level 5, processes are concerned with addressing statistical common causes of process variation and changing the process (for example, to shift the mean of the process performance) to improve process performance. This would be done at the same time as maintaining the likelihood of achieving the established quantitative process-improvement objectives.
(For More Info : http://en.wikipedia.org/wiki/Capability_Maturity_Model#Levels_of_the_Capability_Maturity_Model)
Wednesday, May 19, 2010
CMMi (Capability Maturity Model Integration)
CMMI (Capability Maturity Model Integration) is a process improvement approach that provides organizations with the essential elements of effective processes that ultimately improve their performance.
CMMI can be used to guide process improvement across a project, a division, or an entire organization.
It helps integrate traditionally separate organizational functions, set process improvement goals and priorities, provide guidance for quality processes, and provide a point of reference for appraising current processes.
Is not about what, it’s about why.
"Is not about what, it’s about why."
We all know that Hexaware is getting reassessed for CMMi Level 5 in year 2011.But the question which may be coming to everyone mind will be “ Why our Organization need to be CMMi 5 certified?”
CMMi allows:
- Detailed coverage of the product life cycle than other process-improvement products used alone
- CMMi provides an opportunity to eliminate the stovepipes and barriers that typically exist in different parts of an organization and that typically are not addressed otherwise
- CMMi products incorporate lessons learnt that were learnt as a result of many other standard processes. Therefore they inherently, handle some of the common problems faced by other process improvement approaches
- Promotes collaboration between systems and software engineering
eQuality Team
Is not about what, it’s about
why.
eQuality stands for “ensuring Quality”. We are one of the CMMi awareness team of E&Y DDC-Mumbai. We aim to make everyone CMMi aware so that we can incorporate CMMi approach in our work.