Long Answer Questions: Procedural Abstraction
Long Answer Questions: Procedural Abstraction
Fundamental software design concepts provide the necessary frame work for “getting it right.”
• The highest level states the solution in broad terms using the language of the
problem environment.
Information hiding provides greatest benefits when modifications are required during testing and
software maintenance.
Software Testing
Testing is the process of exercising a program with the specific intent of finding errors prior
to delivery to the end user.
A number of software testing strategies have proposed in the literature. All provide the
software developer with a template for testing and all have the following generic
characteristics:
• Testing begins at the component level and works “outward” toward the integration
of the entire computer-based system.
• Testing is conducted by the developer of the software and (for large projects) an
independent test group.
Black-Box Testing alludes to tests that are conducted at the software interface. A black-box test
examines some fundamental aspect of a system with little regard for the internal logical structure of
the software.
Software testing metrics are quantifiable indicators of the software testing process progress, quality,
productivity, and overall health.
Defect Removal Effectiveness
DRE Defects removed during development phase
Defects latent in the product
Defects latent in the product Defects removed during development
Phase defects found later by user
Efficiency of Testing Process (define size in KLoC or FP, Req.)
Testing Efficiency Size of Software Tested
Resources used
RMMM plan
Purpose is to find errors before they are passed on to another software engineering activity
or released to the customer.
Software engineers (and others) conduct formal technical reviews (FTRs) for software
quality assurance.
2. Every person should prepare for the meeting and should not require more than two hours of work
for each person.
3. The duration of the review meeting should be less than two hours.
possible attachments
2. To serve as an action item checklist that guides the producer as corrections are made
Review Guidelines
• Enunciate problem areas, but don’t attempt to solve every problem noted
preparation.
Component-level design metrics are crucial for assessing the quality of software components. These
metrics help in evaluating the internal structure and interrelationships within the software, providing
insights into maintainability, reliability, and performance.
Cohesion Metrics
Cohesion refers to how closely related and focused the responsibilities of a single module are. High
cohesion within a module implies that its components are strongly related and functionally similar,
which generally leads to more maintainable and understandable code. Metrics for measuring
cohesion include:
Functional Cohesion: Measures whether the module performs a single well-defined task.
Sequential Cohesion: Indicates that elements within a module are related by the sequence in
which they must be executed.
Communicational Cohesion: Reflects that elements within a module operate on the same data or
contribute towards the same output.
Coupling Metrics
Coupling measures the degree of interdependence between software modules. Lower coupling is
generally preferred as it indicates that changes in one module are less likely to impact others,
enhancing modularity and reducing complexity. Coupling metrics consider:
Complexity Metrics
Complexity metrics quantify various aspects of software complexity to predict the effort needed for
maintenance and to identify potential error-prone parts of the software. These metrics help in
identifying code that may be difficult to understand, test, or modify.
Configuration review
Alpha/Beta testing
ALPHA TEST :
The Software is used in a natural setting with the developer looking over the shoulder of the
user and recording errors and usage problems
Beta test is conducted at one or more customer sites by the end user of the software.
Beta test is a live application of the software in an environment that cannot be controlled by
the developer
The customer records all the problems are encountered during beta testing and reports
these to developer at regular intervals of time .As a result of the problems reported during
the beta tests,
2. Maintainability=MTTC(Mean-time to change)
3. Integrity=Sigma[1-(threat(1-security))]
Threat : Probability that an attack of specific type will occur within a given time
DRE=E/(E+D)
a) Cost of quality
c) Software reviews
d) Review guidelines
Cost of Quality
a. Prevention costs Quality planning, formal technical reviews, test equipment, training
External failure costs Complaint resolution, product return and replacement, help line
support, warranty work
c) Purpose is to find errors before they are passed on to another software engineering activity or
released to the customer.
• Enunciate problem areas, but don’t attempt to solve every problem noted
preparation.
Risk identification involves identifying and classifying sources of a risk to realize what must be
managed in a construction project. Risk identification is the first step in Risk management process
b) Risk refinement?
Refines the risk table in reviewing the risk impact based on the following three factors
c) Risk projection
Risk projection, attempts to rate each risk Also called risk estimation.
Source Code:
Also called Halstead’s Software Science: a comprehensive collection of metrics all predicated
on the number (count and occurrence) of operators and operands within a component or
program
N= n1 log2 n1 + n2 log2 n2
V = N log2 (n1+n2)
Maintenance:
The four main types of metrics used widely during the SDLC of a project are
Design,
Project,
Product, and
Maintenance.
- A context model defines the boundary between the system and its environment, highlighting
interactions with external entities.
- Black box testing focuses on input-output validation without internal knowledge, while white box
testing involves internal code structure examination.
- Validation testing ensures the product meets user needs, while system testing checks the entire
system’s compliance with specified requirements.
- Glass-box testing, also known as white-box testing, examines the internal structures and workings
of an application.
7. **What is metric?**
- Software risks are potential problems that could cause a project to fail or software to malfunction,
such as schedule delays or technical challenges.
10. **Elaborate the concepts of Risk management Reactive vs Proactive Risk strategies?**
- Reactive risk management addresses problems after they occur, while proactive strategies
identify and mitigate risks before they impact the project.
- A design model represents the architecture, components, interfaces, and data flow of a system,
guiding its construction and implementation.
- A framework for product metrics involves defining key measurements, collecting data, analyzing
results, and using insights to improve product quality.
- Maintenance metrics assess aspects like code maintainability, defect density, change impact, and
mean time to repair.
- Metrics for the design model include complexity, cohesion, coupling, modularity, and design
pattern usage.
- Source code metrics include lines of code and cyclomatic complexity; testing metrics involve test
coverage, defect density, and test execution time.
17. **Discuss risk refinement?**
- Risk refinement involves detailing identified risks to understand their impact, likelihood, and
potential mitigation strategies.
- Software reliability is the probability of a software system functioning without failure under
specified conditions for a defined period.
- Risk identification involves recognizing potential project threats through techniques like
brainstorming, checklists, and SWOT analysis.
- Software reviews are evaluations of software products and processes to ensure quality and
compliance with requirements, typically involving inspections, walkthroughs, and audits.