Author Archives: shaileshkjha

Benefits of FOSS

• Quality : In general, open source software gets closest to what users want because those users can have a hand in making it so. It’s not a matter of the vendor giving users what it thinks they want–users and developers make what they want
• Customizability: Since the code is open, it’s simply a matter of modifying it to add the functionality they want
• Freedom: users are in control to make their own decisions and to do what they want with the software.
• Flexibility. Open source software, is typically much less resource-intensive, meaning that you can run it well even on older hardware. It’s up to you–not some vendor–to decide when it’s time to upgrade.
• Interoperability: Open source software is much better at adhering to open standards than proprietary software is. If you value interoperability with other businesses, computers and users, and don’t want to be limited by proprietary data formats, open source software is definitely the way to go.
• Auditability: With closed source software, you have nothing but the vendor’s claims telling you that they’re keeping the software secure and adhering to standards, for example. It’s basically a leap of faith. The visibility of the code behind open source software, however, means you can see for yourself and be confident.
• Support Options :Open source software is generally free, and so is a world of support through the vibrant communities surrounding each piece of software. Most every Linux distribution, for instance, has an online community with excellent documentation, forums, mailing lists, forges, wikis, newsgroups and even live support chat.

For businesses that want extra assurance, there are now paid support options on most open source packages at prices that still fall far below what most proprietary vendors will charge. Providers of commercial support for open source software tend to be more responsive, too, since support is where their revenue is focused
• Cost :Between the purchase price of the software itself, the exorbitant cost of mandatory virus protection, support charges, ongoing upgrade expenses and the costs associated with being locked in, proprietary software takes more out of your business than you probably even realize

People Capability Maturity Model

People Capability Maturity Model (P CMM) was first published in 1995. It is a guideline following which an organization can improve is workforce. Here by workforce we mean knowledge, skill and process ability for performing organization business activity, since the nature of software developed by an organization depend on the people those who are all involved in the development of that software so it’s necessary for the organization to follow some guideline, by following which the workforce of an organization can be improved
P CMM consist of 5 level, where each level define certain change in the workforce
• The first level or initial level: In this level there is no fixed methodology to perform the work, the methodology changes with the project. The work is generally done without the good knowledge, how to complete the work, manager doesn’t have any reliable way of estimating the effort required to complete a project.
• The second level is called Managed level: In this level the manager is appointed whose work is to perform certain basic people management practice like staffing and managing performance. This ensure that the people are able to meet there commitment. This level involves the training of the employee to improve their skill.
• The third level or defined level: this level involves the identification and development of knowledge, skill and process abilities that can help the organization to achieve its business goal.
• The fourth level or predictable level: this involves
 Competency Integration: this involves the interaction with the individual from different competency communities. This help in to identify the problem among the product, service or the dependencies and to correct is as early as possible
 Empowered Work Group: The empowered involves the training of its member in the skill and process required for completing the work
 Quantitative performance management: It developed for identifying, measuring and analyzing the performance of the competency based process. The performance data are collected and analyze according to the strategy.
 Mentoring: the purpose of this is to improve the capability of workforce by transferring the knowledge of other individual.

• The fifth level or optimizing level: in this level everyone focus on how they can improve capability and

need for coding standard

The application which are coded properly always consider a best application because the code not only does it job well but also  make it easy to debug and maintain. Maintainable code makes more sense because we don’t have to spend much time understanding the code. With time and experience coder develops his own style of coding in which he or she is comfortable but when development is put in bigger project and if everyone start to code in their own style than the confusion, conflict and complexity arises. So by adopting some coding standards into a project  one can make sure that the code is reliable , intuitive and it can be easily understood because everyone who look into the code with a mindset that to expect from code as they have the company coding standard document. It also help developer when the code is referred after couple of month or years and still remember what each part is doing and what was the rational behind   putting the logic in particular way.

ISO 9001 and ISO 9126 for software quality assurance

ISO 9001
ISO stands for International Organization for standardization. ISO 9000 family of standard is related to quality management system and design to help the organization to ensure that they meet the need of customer and the stakeholder. ISO 9001 is an international quality management standard applicable to organization’s process and methods and externally at managing the quality of delivered product and service. Since it is related to delivered product and services so it is also applicable in software quality assurance. ISO 9001 include following quality assurance criteria:
• Quality Management Process
• Resource Management Process
• Regulatory Research Process
• Market Research Process
• Product Design Process
• Purchasing Process
• Production Process
• Service Provision Process
• Product Protection Process
• Customer Needs Assessment Process
• Customer Communications Process
• Internal Communications Process
• Document Control Process
• Record Keeping Process
• Planning Process
• Training Process
• Internal Audit Process
• Management Review Process
• Monitoring and Measuring Process
• Nonconformance Management Process
• Continual Improvement Process
ISO 9126
ISO 9126: software product evaluation provides quality characteristic and guidance for the use-standard. It identifies six key qualities attribute:
• Functionality
• Reliability
• Usability
• Efficiency
• Maintainability
• Portability

Different ways to develop a reusable software

The software reusability can be achieved in 3 ways
• Application system reuse: it involve the reuse of entire application system either by configuring a system for an environment or by integrating two or more system to create a new application. It can be done in two ways
o Commercial Off-The-Shelf systems product integration: COTS systems are usually complete application systems that offer an API (Application Programming Interface). The main benefit of using this is faster application development and, usually, lower development costs
o Product line development: Software product lines or application families are applications with generic functionality that can be adapted and configured for use in a specific context.
• Component base reuse: Components are more abstract than object classes and can be considered to be stand-alone service providers. The component is an independent, executable entity. It does not have to be compiled before it is used with other components. The services offered by a component are made available through an interface and all component interactions take place through that interface.
• Object and function reuse :Software components that implement a single well-defined object or function may be reused