Arunkumar Khannur's Software Testing Knowledge Center

1.2 Software and Software Development

Software is a creative and complex intellectual property working as an integral part of many modern day systems . Software development is a problem solving using a structured process which involves building capability and synergy among - relevant stakeholders , organizational quality system , standards, technologies, and tools.

Relevant stakeholders are the roles in the organization that have influence in the software development activity in progress. Relevant stakeholders may include client, user, and different roles of a project team like project manager, functional/domain expert, architect, designer, developer, tester, and quality assurance representative. These roles have diversified and many times conflicting views and expectations. With the help of matured software processes all these roles work together to meet requirements of clients and users. While doing so they use organizational quality system, standards, technologies, and tools; and systematically transform problem specification to conceptual specification to physical implementation to software in operation.

The entire goal of this structured process of problem solving involves transforming the specified requirements into software that exhibits required characteristics like functionality, efficiency, reliability, usability, portability, and maintainability. In addition, the software shall be easily installable, fit to the environment and shall operate with zero defects. Software testing ratifies how well these requirements are being met in a structured way with the help of a process. While doing so it covers structure of software under testing consideration at different levels and evaluates how well they address requirements, organizational quality system, standards, technologies, and tools.
Khannur's Book
Arunkumar Khannur, Software Testing - Techniques and Applications, Published by Pearson Publications, 2011 (ISBN:978-81-317-5836-6; Pages:341 + xxii)
Follow Khannur
Khannur's Company
ISQT Process & Consulting Services Pvt. Ltd., Bangalore, INDIA
Khannur's Software Testing Forum
 Contact Khannur
ISQT Process & Consulting Services Pvt. Ltd.
#732, 1st Floor, 12th Main,
3rd Block, Rajajinagar,
Bangalore - 560010, INDIA
Phone: +91 80 23012511
Skype: arun.isqt
Intellectual property (IP) is a legal term that refers to creations of the mind. Examples of intellectual property include music, literature, and other artistic works; discoveries and inventions; and words, phrases, symbols, and designs. Under intellectual property laws, owners of intellectual property are granted certain exclusive rights. Some common types of intellectual property rights (IPR) are copyright, patents, and industrial design rights; and the rights that protect trademarks, trade dress, and in some jurisdictions trade secrets. Intellectual property rights are themselves a form of property, called intangible property.

What are intellectual property rights? Intellectual property rights are the rights given to persons over the creations of their minds. They usually give the creator an exclusive right over the use of his/her creation for a certain period of time.
“A set or arrangement of systems that results when independent and useful systems are integrated into a large system that delivers unique capabilities.”

“A system is a construct or collection of different elements that together produce results not obtainable by the elements alone. The elements, or parts, can include people, hardware, software, facilities, policies, and documents; that is, all things required to produce systems-level results. The results include system level qualities, properties, characteristics, functions, behavior and performance. The value added by the system as a whole, beyond that contributed independently by the parts, is primarily created by the relationship among the parts; that is, how they are interconnected.“ (Rechtin, 2000)

Reference: “System is a collection of components organized to accomplish a specific function or set of functions.” [IEEE 610]

“Simply stated, a system is an integrated composite of people, products, and processes that provide a capability to satisfy a stated need or objective.”
Reference: MIT - aeronautics-and-astronautics/aircraft-systems-engineering-fall-2005
Read More: “CMMI® for Development, Version 1.3 CMMI-DEV, V1.3, Improving Processes For Developing Better Products And Services,” TECHNICAL REPORT CMU/SEI-2010-TR-033 ESC-TR-2010-033, Software Engineering Institute, November 2010
“Systems Engineering Fundamentals,” Supplementary Text Prepared By The Defense Acquisition University Press Fort Belvoir, Virginia 22060-5565, (January 2001) Department of Defense, Systems Management College.
The International Council on Systems Engineering (INCOSE) Website Glossary - Standard Glossary of Terms used in Software Testing, Ver 2.4, ISTQB (International Software Testing Qualifications Board)
“Software development is the computer programming, documenting, testing, and bug fixing involved in creating and maintaining applications and frameworks involved in a software release life cycle and resulting in a software product.”
Read More: Software development - Wikipedia, the free encyclopedia
“CMMI® for Development, Version 1.3 CMMI-DEV, V1.3, Improving Processes For Developing Better Products And Services,” TECHNICAL REPORT CMU/SEI-2010-TR-033 ESC-TR-2010-033, Software Engineering Institute, November 2010

Process can be defined as “a set of interrelated activities, which transform inputs into outputs, to achieve a given purpose.” Process helps an organization’s workforce to meet business objectives by helping them to work smarter, not harder, and with improved consistency. Effective processes also provide a vehicle for introducing and using new technology in a way that best meets the business objectives of the organization.
The three critical dimensions that organizations typically focus on: people, procedures and methods, and tools and equipment. What holds everything together? It is the processes used in your organization. Processes allow you to align the way you do business. They allow you to address scalability and provide a way to incorporate knowledge of how to do things better. Processes allow you to leverage your resources and to examine business trends. This is not to say that people and technology are not important. We are living in a world where technology is changing at an incredible speed. Similarly, people typically work for many companies throughout their careers. We live in a dynamic world. A focus on process provides the infrastructure and stability necessary to deal with an ever-changing world and to maximize the productivity of people and the use of technology to be competitive.

“A capability is the ability to perform or achieve certain actions or outcomes through a set of controllable and measurable faculties, features, functions, processes, or services. As it applies to human capital, capability represents the intersection of capacity and ability.”
Reference: “Capacity is a measure of the ability of an entity (department, organization, person, system) to achieve its objectives, especially in relation to its overall mission.”
“A problem is a matter that requires creative and logical thought; the method used in solving the problem is the `process' that assists in eventually producing a `product', or a solution [6±8]. A variety of views about thinking and problem solving has been proposed. Notable among them are: behavioral [9], information processing [10], and constructivism [11]”

“We often are inconsistent in solving problems and cannot find a good solution. This post focus on effective and creative problem solving by offering systematic approach and wide range of techniques.”

Read More: “The Common Skills of Problem Solving: From Program Development to Engineering Design,” SHARI J. KIMMEL Penn State Berks-Lehigh Valley College and Lehigh University, Pennsylvania, USA HOWARD S. KIMMEL and FADI P. DEEK New Jersey Institute of Technology, Newark, NJ 07102, USA, Int. J. Engng Ed. Vol. 19, No. 6, pp. 810±817, 2003.
“How to Become an Expert: Creative Problem Solving”

“Synergy comes from the Greek word synergia, meaning joint work and cooperative action. Synergy is when the result is greater than the sum of the parts. Synergy is created when things work in concert together to create an outcome that is in some way of more value than the total of what the individual inputs is.”
“Stake Holder can be defined as a group or individual that is affected by or is in some way accountable for the outcome of an undertaking. Stakeholders may include project or work group members, suppliers, customers, end users, and others.”
“Relevant Stake Holder is a stakeholder that is identified for involvement in specified activities and is included in a plan.”
“Organizational Quality System consists of Policy, Vision, Mission, Process, Procedures, Methodologies, Techniques, Activities, Tools, Technology, Measurements, Guidelines, Audits, Assessments, and Appraisals used to communicate to employees what is required to produce the desired quality of products and services and to influence employee actions to complete tasks according to the quality specifications.”
Formal requirements developed and used to prescribe consistent approaches to acquisition, development, or service. Examples of standards include ISO/IEC standards, IEEE standards, and organizational standards.