Tag Archives: Pooja Pande

Free Software

In the 1950s, 1960s, and until the early 1970s, it was normal for computer users to have the software freedoms associated with free software. Software was commonly shared by individuals who used computers and by hardware manufacturers who welcomed the fact that people were making software that made their hardware useful.

By the early 1970s, the picture changed: software costs were dramatically increasing, a growing software industry was competing with the hardware manufacturer’s bundled software products, leased machines required software support while providing no revenue for software, and some customers able to better meet their own needs did not want the costs of free software bundled with hardware product costs.

In 1983, Richard Stallman, longtime member of the hacker community at the MIT Artificial Intelligence Laboratory, announced the GNU project, saying that he had become frustrated with the effects of the change in culture of the computer industry and its users. Software development for the GNU operating system began in January 1984, and the Free Software Foundation (FSF) was founded in October 1985. He developed a free software definition and the concept of copyleft, designed to ensure software freedom for all.

The first formal definition of free software was published by FSF in February 1986, and states that software is free software if people who receive a copy of the software have the following four freedoms –

  • Freedom 0: The freedom to run the program for any purpose.
  • Freedom 1: The freedom to study how the program works, and change it to make it do what you wish.
  • Freedom 2: The freedom to redistribute copies so you can help your neighbor.
  • Freedom 3: The freedom to improve the program, and release your improvements (and modified versions in general) to the public, so that the whole community benefits.

Freedoms 1 and 3 require source code to be available because studying and modifying software without its source code is highly impractical.

Licensing

A free software license is a software license which grants recipients extensive rights to modify and redistribute, which would otherwise be prohibited by copyright law. To qualify as a free software license, the license must grant the rights described in The Free Software Definition or one of the similar definitions based on this.he majority of free software falls under a small set of licenses. The most popular of these licenses are:

There are different categories of free software :

  • Public domain software: the copyright has expired, the work was not copyrighted, or the author has released the software onto the public domain (in countries where this is possible). Since public-domain software lacks copyright protection, it may be freely incorporated into any work, whether proprietary or free.
  • Permissive licenses, also called BSD-style because they are applied to much of the software distributed with the BSD operating systems: these licenses are also known as copyfree as they have no restrictions on distribution.The author retains copyright solely to disclaim warranty and require proper attribution of modified works, and permits redistribution and any modification, even closed source ones.
  • Copyleft licenses, with the GNU General Public License being the most prominent: the author retains copyright and permits redistribution under the restriction that all such redistribution is licensed under the same license. Additions and modifications by others must also be licensed under the same “copyleft” license whenever they are distributed with part of the original licensed product. This is also known as a Viral license. Due to the restriction on distribution not everyone considers this type of license to be free.

Some the well known examples –  Linux Kernel, the BSD and Linux operating systems, the GNU Compiler Collection and C library; the MySQL relational database; the Apache web server. Other influential examples include the emacs text editor; the GIMP raster drawing and image editor;  the LibreOffice office suite; and the TeX and LaTeX typesetting systems.

Advertisements

CMMI – DEV V 1.2

As some of the recently posted blogs have talked about CMMI, we will directly be going into the details of CMMI V1.2 for development.

CMMI-DEV basically is a collection of practices that, when implemented, improve product quality and also both project and organizational performance or we can say this model is a tool that helps organizations to improve their ability to develop and maintain quality products and services. CMMI-DEV organizes practices into 22 “process areas” with 13 practices, called “generic practices” .Based on the business needs and priorities, organizations select one or more process areas and sets of generic practices to implement.

A new version of CMMI is released every 3-5years. This process includes receiving requests for changes from users of previous version and these change requests are reviewed by a team of members from industry, government, and the SEI to determine the changes to make to the process areas, practices, and their descriptions.

The photo attached gives the overview of the process area of CMMI DEV and to which Maturity Level & category it belongs to in CMMI.

 Image

1. Requirements Management (REQM)

  • manage all requirements received or generated by the project, including both technical and nontechnical requirements.
  • also the requirements imposed by organization.

2. Project Planning (PP) : This area involves following activities

  • development of project plan.
  • interacting with the stakeholders.
  • maintain the plan developed.

3. Project Monitoring and Control (PMC) : In this process area we comprehend the project’s progress so that concerned corrective steps can be taken when the project’s performance deviates from the plan developed above.

4.Supplier Agreement Management (SAM) : This manage the acquisition of products and services from suppliers. A supplier agreement is established to manage the relationship between the organization and the supplier. A supplier agreement is any written agreement between the organization (representing the project) and the supplier. This agreement can be a contract, license, service level agreement, or memorandum of agreement.

5. Quantitative Project Management (QPM): This helps in achieving the project’s established quality and process performance objectives.

6. Integrated Project Management (IPM) : This basically establishes the project’s define process at project startup and manages the project using the project’s defined process. This also addresses the coordination of all activities associated with the project.

7. Risk Management (RSKM): As we all know, risk management is a continuous, that is an important part of project management. This involves the identification of potential risk before the occur, so that the predefined steps can be taken as and when needed throughout the life of project.

8. Measurement and Analysis (MA) : This involves-

  • specifying objectives of measurement and analysis.
  • specifying measures, analysis techniques, and mechanism for data collection, storage, reporting and feedback.
  • implementing the above specified techniques.

9. Process and Product Quality Assurance (PPQA): This involves-

  • evaluating the performed processed and work products against standards.
  • identifying and documenting the noncompliance issues.
  • giving feedback to project staff and managers.
  • ensuring that noncompliance issues are addressed.

10. Configuration Management (CM) : This serves the propose of establishing and maintaining the integrity of work products using configuration identification, configuration control, configuration status accounting, and configuration audits.

11. Decision Analysis and Resolution (DAR): The purpose of this process area is to analyze possible decisions using a formal evaluation process that evaluates identified alternatives against established criteria. This involves establishing guidelines to determine which issues should be subject to a formal evaluation process and applying formal evaluation processes to these issues.

12. Causal Analysis and Resolution (CAR): The purpose of CAR is to identify causes of selected outcomes and take action to improve process performance, which in turns improves quality and productivity by preventing the introduction of defects or problems and by identifying and appropriately incorporating the causes of superior process performance.

13. Requirements Development (RD): The purpose of this process area is to establish requirements, which includes customer requirements, product requirements, and product component requirements.

14. Technical Solution (TS): This process area is applicable at any level of the product architecture. The purpose is to select, design, and implement solutions to requirements.

15. Product Integration (PI): This process area basically deals with the integration of components into more complex components or even complete product. Also it ensure that the product after integration behaves properly and then delivers the product.

16. Validation (VAL): As the term validation means finding or testing the truth of something in the same context this is used here. The purpose of validation is to check that the product fulfills its intended use when placed the environment where the product is to be used.

17.Verification (VER): This process area involves the verification of preparation and performance. The purpose is to ensure that selected work products meet their specified requirements.

18. Organizational Process Focus (OPF): This process area involves the through study and understanding of the organization’s processes and process assets so as to come out with the strengths and weakness to make the improvements.

19. Organizational Process Definition (OPD): This process area enable consistent process execution across the organization and provide a long-term benefits to the organization. The purpose is to is to establish and maintain a usable set of organizational process assets, work environment standards, and rules and guidelines for teams.

20.Organizational Training (OT): This deals with the training provided in the organization to develop skills and knowledge of people so they can perform their roles effectively and efficiently.

21.Organizational Process Performance (OPP) : The purpose is to establish and maintain a quantitative understanding of the performance of selected processes in the organization’s set of standard processes in support of achieving quality and process performance objectives, and to provide process performance data, baselines, and models to quantitatively manage the organization’s projects.

22. Organizational Performance Management (OPM) : This involves the iteratively analyzing aggregated project data, identifying gaps in performance against the business objectives, and selecting and deploying improvements to close the gaps so that the organization meets its business objectives.

The following link gives the detailed description of the above mentioned process areas –http://www.cmmi.de/#el=CMMI-DEV/0/HEAD/folder/folder.CMMI-DEV