CS-724 Software Process Improvement Viva Preparation
Processes: Processes are part of all aspects of life and are an essential mechanism for coping with complexity in the world.
Software Processes: The software process is the set of tools, methods, and practices that people use to produce (develop and maintain) software and associated products, e.g., project plans, design documents, code, test cases, and user manuals.
Characteristics of Software Processes: Requires creativity, engineering judgment
Process Management: The objectives of software process management are produce products according to plan while simultaneously improving the organization capability to produce better products.
Process Models: A process model is a simplified description of a process presented from a particular perspective.
Types of Process Model: Coarse-grain activity models, Fine-grain activity models
Process Maturity Levels: Initial, Repeatable, Defined, Managed, Optimizing
Software Quality: Low levels of defects when deployed, ideally approaching zero, High reliability, or the capability of running without crashes or strange results.
Software Quality Assurance: So, there is a need for an active and independent group within every organization, who is devoted to assuring quality of software products.
SQA Reviews: A process or meeting during which a work product, or a set of work products, is presented to project personnel, managers, users, or other interested parties for comment or approval. Types include code review, design review, formal qualification review, requirements review, test readiness review.
Review Roles: Facilitator, Author, Recorder, Reviewer and Observer
Responsibilities of Facilitator: Responsible for providing the background of the work and assigning roles to attendees, Encourages all attendees to participate
Responsibilities of Author: Responsible for the readiness and distribution of material to be reviewed, During the meeting, the author paraphrases the document a section at a time
Responsibilities of Recorder: Collects and records each defect uncovered during the review meeting, Develops an issues list and identifies whose responsibility it is to resolve each issue
Responsibilities of Reviewer: Spends time prior to the meeting reviewing information, Makes notes of defects and becomes familiar with the product to be reviewed
Responsibilities of Observer: A new member to the project team, who learns the product and observes the review techniques
Review Activities: Review planning, Review meeting, Rework and Follow-up
Software Configuration: The items that comprise all information produced as part of the software process are collectively called a software configuration.
SCM Functions: Identification of software configuration items, Version control, Change control, Configuration audit, Status accounting/reporting.
Purpose of SCM Activities: Identify change, Control change
Steps of Project Planning: Software scope, Estimation, Risk
Software Scope: Understand the problem and the work that must be done – in a nutshell, Software scope describes the data and control to be processed, function, performance, constraints, interfaces, and reliability
Software Engineering: It is an intellectual process that must dynamically adjust to the creative needs of the professionals and their tasks; trade-off is needed.
Process Standards: Process standardization helps to reduce the problems of training, review, and tool support, with standard methods, each project experiences can contribute to overall process improvement.
Universal or U Process Models: U process models provide high-level overview, Traditional Waterfall, Spiral, and other later process models fall in this category, Typically task-oriented
Worldly or W Process Models: W process models are most useful to practicing software engineers, It guides the sequence of their working tasks and defines task prerequisites and results
ETVX: ETVX as a modeling language, Introduced by IBM in 1980, The objective of ETVX is to illustrate the effective process performance.
ETVX model: An ETVX model indicates the relationship and flow among the four aspects of an activity and between activities.
IDEF0: Integration Definition for Function Modeling is a function modeling methodology for describing manufacturing functions.
IDEF0 Benefits: IDEF0 reveals redundant and non-value-added processes. IDEF0 documents the AS-IS– the processes, the relationships between them, and the logical breakdown of those functions into their sub-processes and properties for baseline evaluation and further analysis
Deming Approach: Deming approach contends that to be competitive, improve quality, and increase productivity, the following actions are required
Requirements Management: The purpose is to establish a common understanding etween customer and organzaiton.
Software Project Planning: The purpose is to establish reasonable plans for performing the software engineering and managing the project.
Software Project Tracking and Oversight: To provide adequate visibility into actual progress so that management can take effective actions when the software projects performance deviates significantly from the software plans.
Training Program: Purpose is to develop the skills and knowledge of individuals so that they can perform their roles effectively and efficiently.
Software Product Engineering: Purpose is to consistently perform a well-defined engineering process that integrates all the software engineering activities to produce correct, consistent software products effectively and efficiently.
Peer Reviews: Purpose is to remove defects from the software work products early and efficiently. An
important corollary effect is to develop a better understanding of the software work products and of defects that might be prevented.
Quantitative Process Management: Purpose is to control the process performance of software project quantitatively.
Technology Change Management: Purpose is to identify new technologies (i.e. tools, methods and processes) and track them into the organization in an orderly manner.
Process Change Management: Purpose is to continually improve the software process used in the organization with the intent of improving software quality, increasing productivity, and decreasing the cycle time for product development.
Software Benchmarks: Benchmarks compare a company against industry norms, Benchmarks collect quantitative and qualitative data on a number of important topics, including investments, staffing levels, development schedules, staff efforts, costs, quality, and customer satisfaction.
TSP: Development of Team Software Process (TSP) is another important step in software process improvement, after the development of CMM and PSP, TSP was also developed at Software Engineering Institut, The TSP provides a disciplined context for engineering work
Team: A team is a group of people who share a common goal.
Closed Paradigm: A closed paradigm structures a team along a traditional hierarchy of authority.
Random Paradigm: The random paradigm structures a team loosely and depends on individual initiative of the team members.
Open Paradigm: The open paradigm attempts to structure a team in a manner that achieves some of the controls associated with the closed paradigm but also much of the innovation that occurs when using the random paradigm.
Staged Representation: The staged representation is the approach used in the Software CMM. It is an approach that uses predefined sets of process areas to define an improvement path for an organization. This improvement path is described by a model component called a maturity level.
Continuous Representation: The continuous representation is the approach used in the SECM and the IPD-CMM. This approach allows an organization to select a specific process area and improve relative to it.
PSP: The PSP is a defined and measured software process designed to be used by an individual software engineer, The PSP was developed by Watts Humphrey.
Team Software Process (TSP): Development of Team Software Process (TSP) is another important step in software process improvement, after the development of CMM and PSP, TSP was also developed at Software Engineering Institute, The TSP provides a disciplined context for engineering work.
TSP Process: Launching a team project, Development strategy, Development plan, Design process, Implementation process, Test plan, Postmortem.
CMM & Capability Level: 0 – Incomplete, 1 – Performed, 2 – Managed, 3 – Defined, 4 – Quantitatively Managed, 5 – Optimizing