0% found this document useful (0 votes)
15 views

SWE 3 - Google Docs

Uploaded by

suchismitabose29
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
15 views

SWE 3 - Google Docs

Uploaded by

suchismitabose29
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 10

‭Software Quality Management (SQM)‬

‭ oftware Quality Management (SQM) ensures that software meets the‬


S
‭desired quality standards throughout its lifecycle. It is a systematic approach‬
‭encompassing planning, controlling, and improving software quality, ensuring‬
‭that both functional and non-functional requirements are met.‬

‭Components of SQM‬

‭1.‬ ‭Quality Assurance (QA):‬


‭○‬ ‭Definition:‬‭QA is a process-oriented approach focused on‬
‭preventing defects by improving development processes. It‬
‭ensures that appropriate practices and methodologies are‬
‭followed during the development.‬
‭○‬ ‭Activities:‬
‭■‬ ‭Defining and implementing development standards.‬
‭■‬ ‭Establishing guidelines for software design, coding, and‬
‭testing.‬
‭■‬ ‭Conducting process audits to ensure compliance with set‬
‭standards.‬
‭■‬ ‭Continuous process improvement through feedback and‬
‭lessons learned.‬
‭2.‬ ‭Quality Control (QC):‬
‭○‬ ‭Definition:‬‭QC is a product-oriented approach aimed‬‭at‬
‭identifying defects in the software product. It ensures that the‬
‭software developed conforms to the specified requirements.‬
‭○‬ ‭Activities:‬
‭■‬ ‭Performing functional and non-functional testing.‬
‭■‬ ‭Conducting code reviews and inspections.‬
‭■‬ ‭Validating and verifying deliverables at various stages.‬
‭■‬ ‭Using testing tools for automated and manual testing.‬
‭3.‬ ‭Quality Planning:‬
‭○‬ ‭Definition:‬‭Quality planning involves determining‬‭the standards‬
‭and processes that will be used to achieve and assess software‬
‭quality. It is carried out during the initial stages of software‬
‭development.‬
‭○‬ ‭Key Elements:‬
‭■‬ ‭Identifying quality goals based on customer needs.‬
‭■‬ ‭Selecting suitable quality standards (e.g., ISO 9001,‬
‭CMMI).‬
‭■‬ ‭Developing a comprehensive quality management plan.‬
‭■‬ ‭Defining metrics to measure quality and track progress.‬

‭Benefits of SQM:‬

‭‬ R
● ‭ educes the cost of quality by minimizing rework and defects.‬
‭●‬ ‭Ensures customer satisfaction by delivering a product that meets‬
‭expectations.‬
‭●‬ ‭Improves team efficiency by adopting structured processes.‬

‭Factors Influencing Software Quality‬

‭1.‬ ‭Process Quality:‬‭The effectiveness of processes followed‬‭during the‬


‭development lifecycle (e.g., Agile, Waterfall, DevOps) greatly influences‬
‭the quality of the final product.‬
‭2.‬ ‭Development Tools and Environment:‬‭Using modern development‬
‭tools and platforms helps streamline the process and reduce errors.‬
‭3.‬ ‭Team Expertise:‬‭The skills and experience of developers,‬‭testers, and‬
‭other stakeholders significantly impact quality.‬
‭4.‬ ‭Testing:‬‭Comprehensive testing strategies, including‬‭manual and‬
‭automated testing, identify and fix defects early.‬
‭5.‬ ‭Customer Feedback:‬‭Iterative feedback from users helps‬‭align the‬
‭software with user needs and expectations.‬

‭Garvin’s quality dimensions‬

‭ arvin’s Quality Dimensions‬‭provide a comprehensive‬‭framework for‬


G
‭understanding and evaluating quality across different perspectives. These‬
‭dimensions, proposed by David A. Garvin in his book‬‭"Managing Quality"‬‭,‬
‭highlight that quality is multi-faceted and can vary based on the stakeholder's‬
‭viewpoint. Garvin identified‬‭eight dimensions‬‭of quality,‬‭applicable not only‬
‭to software but also to products and services.‬

‭1. Performance‬
‭●‬ D ‭ efinition:‬‭Refers to the primary operating characteristics of a product‬
‭or service, focusing on whether it fulfills its intended purpose efficiently‬
‭and effectively.‬
‭●‬ ‭In Software:‬‭It includes response time, processing‬‭speed, and‬
‭throughput. For example, a web application’s ability to handle high‬
‭traffic without slowdowns.‬

‭2. Features‬

‭●‬ D ‭ efinition:‬‭Secondary or additional characteristics‬‭that enhance the‬


‭product’s functionality and appeal.‬
‭●‬ ‭In Software:‬‭Refers to added functionalities, like‬‭multi-language‬
‭support, integrations, or advanced analytics. These features often‬
‭differentiate products in a competitive market.‬

‭3. Reliability‬

‭●‬ D ‭ efinition:‬‭The consistency and dependability of a‬‭product over time‬


‭without failure.‬
‭●‬ ‭In Software:‬‭It involves fault tolerance, uptime,‬‭and the ability to‬
‭recover from errors. For instance, a system’s ability to function‬
‭continuously without crashes is a key aspect of reliability.‬

‭4. Conformance‬

‭●‬ D ‭ efinition:‬‭The degree to which a product meets established‬


‭standards, specifications, and customer requirements.‬
‭●‬ ‭In Software:‬‭This includes adherence to coding standards,‬‭compliance‬
‭with regulatory requirements, and meeting user specifications. For‬
‭example, software developed to meet GDPR compliance.‬

‭5. Durability‬

‭●‬ D ‭ efinition:‬‭The product’s ability to withstand wear and tear, and its‬
‭expected lifespan under normal or stressed usage.‬
‭●‬ ‭In Software:‬‭While software doesn’t wear physically, durability can‬
‭relate to its long-term usability, adaptability to updates, and resistance‬
‭to obsolescence.‬
‭6. Serviceability‬

‭●‬ D ‭ efinition:‬‭The ease of maintaining, repairing, or‬‭upgrading the product‬


‭when issues arise.‬
‭●‬ ‭In Software:‬‭This involves modular design, availability‬‭of technical‬
‭support, comprehensive documentation, and ease of updates or bug‬
‭fixes.‬

‭7. Aesthetics‬

‭●‬ D ‭ efinition:‬‭The subjective sensory attributes, such‬‭as how the product‬


‭looks, feels, or interacts with users.‬
‭●‬ ‭In Software:‬‭Focuses on user interface (UI) design,‬‭user experience‬
‭(UX), and visual appeal. For instance, an intuitive and visually pleasing‬
‭application enhances user satisfaction.‬

‭8. Perceived Quality‬

‭●‬ D ‭ efinition:‬‭The reputation and perceived value of‬‭the product based on‬
‭branding, reviews, or customer feedback.‬
‭●‬ ‭In Software:‬‭Relates to user testimonials, brand recognition,‬‭and‬
‭market reputation. A software product with positive reviews and trusted‬
‭branding often has high perceived quality.‬

‭Importance of Garvin’s Dimensions‬

‭1.‬ ‭Holistic View of Quality:‬‭They emphasize that quality isn’t just about‬
‭performance or reliability but includes subjective factors like aesthetics‬
‭and perceived value.‬
‭2.‬ ‭Tailored Approaches:‬‭Different dimensions can be prioritized based‬
‭on the product, market, and user requirements.‬
‭3.‬ ‭Customer-Centric:‬‭The dimensions align closely with how users‬
‭perceive and evaluate quality, helping organizations meet or exceed‬
‭expectations.‬

‭McCall’s quality factor‬

‭ cCall's Quality Model‬‭is a foundational framework for understanding‬


M
‭software quality. It was developed by Jim McCall in the late 1970s and‬
‭categorizes software quality into three key perspectives:‬‭Product Operation‬‭,‬
‭ roduct Revision‬‭, and‬‭Product Transition‬‭. Each perspective is associated‬
P
‭with a set of‬‭quality factors‬‭that define what makes‬‭software "good" from‬
‭different viewpoints.‬

‭Perspectives and Quality Factors‬

‭1.‬ ‭Product Operation (User Perspective)‬


‭○‬ ‭Focuses on how well the software performs its intended‬
‭functions during operation.‬
‭○‬ ‭Key Quality Factors:‬
‭■‬ ‭Correctness:‬‭The extent to which the software meets‬
‭specified requirements and user needs. Example: Accurate‬
‭calculations in financial software.‬
‭■‬ ‭Reliability:‬‭The ability of the software to perform‬‭without‬
‭failure for a specified period under stated conditions.‬
‭Example: Minimal downtime in a web application.‬
‭■‬ ‭Efficiency:‬‭The optimal use of system resources, such‬‭as‬
‭memory, CPU, and network bandwidth. Example: Fast‬
‭response times in a search engine.‬
‭■‬ ‭Integrity:‬‭Protects against unauthorized access or‬
‭modifications, ensuring data security and confidentiality.‬
‭Example: Encryption in online banking systems.‬
‭■‬ ‭Usability:‬‭The ease with which users can learn, operate,‬
‭and interact with the software. Example: Intuitive interfaces‬
‭in mobile apps.‬
‭2.‬ ‭Product Revision (Maintenance Perspective)‬
‭○‬ ‭Addresses the ease of modifying, correcting, or enhancing the‬
‭software after deployment.‬
‭○‬ ‭Key Quality Factors:‬
‭■‬ ‭Maintainability:‬‭The ease with which software can be‬
‭debugged, updated, or adapted to new requirements.‬
‭Example: Modular code design.‬
‭■‬ ‭Flexibility:‬‭The ability of the software to adapt to changing‬
‭needs or environments with minimal impact. Example:‬
‭Adding new features to an e-commerce platform.‬
‭■‬ ‭Testability:‬‭The ease with which the software can be‬
‭tested to ensure it performs as intended. Example:‬
‭ omprehensive unit tests and automated testing‬
C
‭frameworks.‬
‭3.‬ ‭Product Transition (Portability Perspective)‬
‭○‬ ‭Focuses on the adaptability of the software to different‬
‭environments, platforms, or technologies.‬
‭○‬ ‭Key Quality Factors:‬
‭■‬ ‭Portability:‬‭The ease of transferring the software‬‭to‬
‭different hardware or software environments. Example: A‬
‭web app running seamlessly on different browsers.‬
‭■‬ ‭Reusability:‬‭The ability to reuse software components‬‭in‬
‭other applications or contexts. Example: A library of‬
‭reusable UI components.‬
‭■‬ ‭Interoperability:‬‭The ability of the software to work‬‭with‬
‭other systems or products. Example: Integration between‬
‭CRM software and email marketing tools.‬

‭ISO 9126 quality factor‬

‭ he‬‭ISO 9126 Quality Model‬‭is an international standard for evaluating‬


T
‭software quality. It defines a structured framework to assess and improve‬
‭software by categorizing quality into six primary characteristics, each further‬
‭divided into sub-characteristics. This model is widely used to ensure that‬
‭software meets user expectations and performs efficiently.‬

‭Software Quality Dilemma‬

‭ he‬‭Software Quality Dilemma‬‭refers to the challenges organizations face‬


T
‭when attempting to balance different quality attributes in software‬
‭development. It highlights the inherent trade-offs and conflicts that arise‬
‭between competing priorities, such as cost, time, features, performance, and‬
‭reliability. Achieving optimal software quality often requires addressing these‬
‭dilemmas while meeting both customer expectations and business‬
‭constraints.‬

‭1. Cost vs. Quality‬

‭●‬ C
‭ hallenge:‬‭The higher the quality expected, the more‬‭resources are‬
‭required, which can increase the development cost. In many cases,‬
‭there is pressure to reduce costs, leading to compromises on quality.‬
‭●‬ E ‭ xample:‬‭Skipping extensive testing to meet tight‬‭deadlines might‬
‭result in undetected defects, compromising the software's reliability‬
‭and maintainability.‬
‭●‬ ‭Resolution:‬‭Organizations need to carefully evaluate‬‭which aspects of‬
‭quality (e.g., performance, security, usability) are most critical to the‬
‭user and focus resources accordingly, balancing quality with cost‬
‭constraints.‬

‭2. Time-to-Market vs. Quality‬

‭●‬ C ‭ hallenge:‬‭In competitive industries, the need to‬‭deliver software‬


‭quickly often leads to rushing the development process, which can‬
‭result in lower quality.‬
‭●‬ ‭Example:‬‭If a product must be launched within a strict‬‭deadline,‬
‭developers may have to skip thorough testing or opt for quicker, less‬
‭reliable solutions, compromising the overall quality.‬
‭●‬ ‭Resolution:‬‭Agile methodologies can help by emphasizing‬‭incremental‬
‭delivery and testing at each stage, allowing teams to balance speed‬
‭and quality more effectively through continuous feedback and iterative‬
‭improvements.‬

‭3. Feature Richness vs. Simplicity‬

‭●‬ C ‭ hallenge:‬‭Adding more features can enhance the software’s‬‭appeal‬


‭but may introduce complexity that reduces maintainability,‬
‭performance, and reliability. Conversely, simplifying features might‬
‭reduce user satisfaction or market competitiveness.‬
‭●‬ ‭Example:‬‭A software product with numerous features might be slower,‬
‭harder to maintain, and more prone to bugs, while a minimalist‬
‭approach might not meet user needs.‬
‭●‬ ‭Resolution:‬‭Prioritize essential features that align‬‭with the user’s core‬
‭needs and focus on delivering them with the highest quality.‬
‭Unnecessary or low-priority features can be deferred or omitted to‬
‭maintain simplicity and performance.‬

‭4. Stability vs. Innovation‬

‭●‬ C
‭ hallenge:‬‭Stable, well-tested software can be less‬‭prone to bugs and‬
‭provide a more reliable user experience, but this can sometimes hinder‬
i‭nnovation or the introduction of new features. On the other hand,‬
‭pushing for innovation may lead to software instability.‬
‭ ‬ ‭Example:‬‭Introducing new technologies or features‬‭can cause‬

‭instability, as these innovations may not have been thoroughly tested in‬
‭the software environment.‬
‭●‬ ‭Resolution:‬‭Strive for a balance by introducing new‬‭features in a‬
‭controlled, iterative manner, and conducting extensive testing to ensure‬
‭that innovation does not jeopardize stability.‬

‭5. Security vs. Usability‬

‭●‬ C ‭ hallenge:‬‭Implementing strong security measures can‬‭make software‬


‭more difficult for users to navigate or use efficiently. For example,‬
‭requiring complex passwords can increase security but reduce user‬
‭convenience.‬
‭●‬ ‭Example:‬‭A secure application with stringent authentication‬‭methods‬
‭may frustrate users, while a more user-friendly approach could expose‬
‭the software to vulnerabilities.‬
‭●‬ ‭Resolution:‬‭Design security measures that are robust but unobtrusive,‬
‭such as using multi-factor authentication combined with seamless user‬
‭experience techniques.‬

‭ oftware Reliability‬‭:‬
S
‭Software reliability refers to the likelihood that a system will perform its‬
‭intended functions correctly under specified conditions and within a given‬
‭time frame. This is typically expressed as a‬‭probability‬‭or‬‭failure rate‬‭over‬
‭time. A reliable system consistently meets its functional requirements and‬
‭user expectations.‬

‭Importance of Software Reliability‬‭:‬

‭●‬ U ‭ ser Trust‬‭: Users depend on the software for critical tasks, and‬
‭reliability directly impacts their trust in the system.‬
‭●‬ ‭Business Continuity‬‭: In mission-critical applications‬‭(e.g., healthcare,‬
‭finance, aerospace), software failure can result in significant losses,‬
‭risks, and damage to the reputation of the organization.‬
‭●‬ ‭Cost Efficiency‬‭: Reliable software reduces the need‬‭for costly‬
‭maintenance, support, and bug fixes after deployment.‬
‭●‬ C
‭ ustomer Satisfaction‬‭: Software that performs reliably‬‭enhances user‬
‭experience and satisfaction, which is essential for customer retention‬
‭and competitive advantage.‬

‭Factors Affecting Software Reliability‬‭:‬

‭●‬ D ‭ esign Quality‬‭: A solid, well-architected software‬‭design leads to‬


‭fewer defects and potential errors.‬
‭●‬ ‭Code Quality‬‭: Writing clean, efficient, and error-free‬‭code minimizes‬
‭the likelihood of bugs that might cause system failures.‬
‭●‬ ‭Testing‬‭: Comprehensive and thorough testing, including‬‭unit tests,‬
‭integration tests, and system tests, helps uncover defects before the‬
‭software is deployed.‬
‭●‬ ‭Environment and Dependencies‬‭: Software often interacts‬‭with‬
‭various hardware and software components, which can introduce‬
‭issues if not carefully managed.‬
‭●‬ ‭Maintenance and Updates‬‭: Software reliability is an‬‭ongoing process,‬
‭and continual maintenance ensures that the system remains functional‬
‭as external conditions evolve.‬

‭Software Reliability Models‬

‭●‬ T ‭ he Jelinski-Moranda Model‬‭: A popular model used during‬‭testing‬


‭phases to estimate the reliability of software by tracking the number of‬
‭failures over time.‬
‭●‬ ‭The Musa Model‬‭: This model provides predictions based‬‭on failure‬
‭rates observed during the testing phase and allows for forecasting‬
‭software reliability.‬
‭●‬ ‭The Exponential Distribution Model‬‭: Assumes that software failures‬
‭occur randomly and at a constant rate over time, making it useful for‬
‭reliability estimation in systems under steady operational conditions.‬
‭Aspect‬ ‭CMM‬ ‭CMMI‬

‭Scope‬ ‭Primarily for software‬ ‭ overs multiple domains‬


C
‭development‬ ‭(software, systems, service‬
‭management, etc.)‬

‭Process Areas‬ ‭Focused on software‬ ‭Covers multiple process areas‬


‭engineering‬ ‭across industries‬

‭Maturity Levels‬ ‭Five levels focused‬ ‭Five levels with a broader focus‬
‭on software‬ ‭on integration and process‬
‭processes‬ ‭improvement‬

‭Flexibility‬ ‭Less flexible, focused‬ ‭More flexible, adaptable to‬


‭on software‬ ‭various industries‬

‭Applicability‬ ‭Primarily for software‬ ‭ pplicable across industries,‬


A
‭organizations‬ ‭including healthcare, finance,‬
‭aerospace, etc.‬

‭Versioning‬ ‭Evolved into CMMI‬ ‭Successor to CMM, incorporating‬


‭new areas and industries‬

‭Appraisal and‬ ‭ ess structured,‬


L ‭Structured SCAMPI appraisals‬
‭Certification‬ ‭informal appraisals‬ ‭with formal certification‬
‭processes‬

You might also like