AKTU 2022 -23 session Previous year question’s solution
Section A
1. Attempt all questions in brief. (2 x 10 = 20)
(a) Define generic software with example.
Answer: Generic software refers to software that is designed to be used by a wide range of
users and can be adapted for various applications.
Example: Microsoft Office Suite, which includes Word, Excel, and PowerPoint, can be used for
different tasks across various industries.
(b) Define software components.
Answer: Software components are modular parts of a software system that encapsulate a
specific functionality and can be independently developed and maintained.
Example: A user authentication module in a web application.
(c) Mention any two non-functional requirements on software to be developed.
Answer: Performance: The software should respond to user requests within 2 seconds.
Security: The software must ensure data encryption for sensitive information.
(d) What is meant by software prototyping?
Answer: Software prototyping is the process of creating a preliminary version of a software
application to visualize and test its functionality before full-scale development.
(e) What do you mean by horizontal and vertical partitioning?
Answer:Horizontal Partitioning: Dividing a database table into smaller tables, each containing
a subset of the rows.
Vertical Partitioning: Dividing a database table into smaller tables, each containing a subset of
the columns.
(f) What is the software architecture?
Answer: Software architecture is the high-level structure of a software system, defining its
components, their relationships, and the principles guiding its design and evolution.
(g) Distinguish between verification and validation.
Answer: Verification: Ensures the product is built correctly according to specifications (Are we
building the product right?).
Validation: Ensures the product meets the needs and expectations of the user (Are we building
the right product?).
(h) Distinguish between alpha and beta testing?
Answer: Alpha Testing: Conducted by internal teams to identify bugs before releasing the
software to external users.
Beta Testing: Conducted by a limited number of external users to gather feedback and identify
issues before the final release.
(i) Mention the advantages of CASE tools.
Answer: Improved productivity: Automates repetitive tasks.
Enhanced quality: Provides tools for testing and documentation.
Better project management: Facilitates planning and tracking of software projects.
(j) Define adaptive maintenance.
Answer: Adaptive maintenance involves modifying a software application to keep it usable in
a changing environment, such as updates to operating systems or hardware.
Section B
2. Attempt any three of the following: (10 x 3 = 30)
(a) Iterative waterfall and spiral model for software lifecycle: clean and discuss various
activities in each phase.
Answer: Iterative Waterfall Model:
Phases:
• Requirements: Gather and analyze user needs.
• Design: Create system architecture and design specifications.
• Implementation: Code the software based on design.
• Verification: Test the software to ensure it meets requirements.
• Maintenance: Update and fix the software post-deployment.
Activities:
Each phase is revisited iteratively to refine and improve the software based on feedback and
testing results.
Spiral Model:
Phases:
• Planning: Define objectives and constraints.
• Risk Analysis: Identify and mitigate risks.
• Engineering: Develop and test the software.
• Evaluation: Review progress and gather user feedback.
Activities:
Combines iterative development with systematic risk assessment, allowing for continuous
refinement and adaptation.
(b) What are the problems faced in software engineering? Explain each in detail.
Answer: Complexity:
Software systems can become very complex, making them difficult to manage and
understand. This complexity can lead to increased development time and difficulty in
maintaining the software.
Changing Requirements:
Frequent changes in user requirements can lead to scope creep, where the project expands
beyond its original goals, resulting in delays and increased costs.
Communication Gaps:
Miscommunication between stakeholders, such as developers, clients, and users, can result
in misunderstandings and errors in the final product.
Quality Assurance:
Ensuring software quality is challenging due to the variety of testing methods and tools
available. Inadequate testing can lead to defects and user dissatisfaction.
Resource Constraints:
Limited time and budget can hinder the development process, forcing teams to make
compromises on quality or features.
(c) Explain about the structure chart and all its types with a suitable example.
Answer: A structure chart is a graphical representation of a system's architecture, showing
the relationships between modules.
Types:
• Top-Down Structure Chart:Starts with the main module and breaks it down into sub-
modules.
• Bottom-Up Structure Chart: Begins with the lowest-level modules and integrates
them into higher-level modules.
• Mixed Structure Chart: Combines both top-down and bottom-up approaches.
Example:
A structure chart for an online shopping system might include modules for:
• User Authentication
• Product Catalog
• Shopping Cart
• Order Processing
(d) Explain boundary value analysis and its significance with an example.
Answer: Boundary Value Analysis (BVA):
A testing technique that focuses on the values at the boundaries of input ranges.
Significance:
• Identifies errors at the edges of input ranges where defects are more likely to occur.
• Reduces the number of test cases while maximizing test coverage.
Example:
For an input range of 1 to 100, test cases would include:
Values: 0 (below lower boundary), 1 (lower boundary), 50 (mid-range), 100 (upper
boundary), and 101 (above upper boundary).
(e) Discuss Software Configuration Management and various tasks in the SCM process.
Explain version control and various types of project risks.
Answer: Software Configuration Management (SCM):
The process of managing changes to software, ensuring consistency and control over the
software development process.
Tasks in SCM:
• Version Control:
Tracking changes to software artifacts to manage different versions of the software.
• Change Control:
Managing changes to requirements and design to ensure that all changes are documented
and approved.
• Build Management:
Automating the process of compiling and packaging software to ensure consistent builds.
• Release Management:
Planning and controlling the deployment of software to users.
• Types of Project Risks:
1. Technical Risks:
Risks related to technology and tools that may not perform as expected.
2. Project Management Risks:
Risks related to scheduling, resource allocation, and meeting deadlines.
3. Organizational Risks:
Risks arising from organizational changes, culture, or lack of support for the project.
Section C
3. Attempt any one part of the following: (10 x 1 = 10)
(a) Explain software characteristics in detail. Discuss the reasons for the software crisis.
Answer: Software Characteristics:
• Functionality: The degree to which the software meets the specified requirements
and performs its intended functions.
• Reliability: The ability of the software to perform its required functions under stated
conditions for a specified period.
• Usability: The ease with which users can learn and operate the software, including its
user interface and documentation.
• Efficiency: The performance of the software in terms of resource usage, such as CPU
time and memory consumption.
• Maintainability: The ease with which the software can be modified to correct defects,
improve performance, or adapt to changes in the environment.
• Portability: The ability of the software to be transferred from one environment to
another, such as different operating systems or hardware platforms.
• Reasons for the Software Crisis:
• Complexity of Software Systems: As software systems grow in size and complexity,
they become more difficult to manage and understand.
• Changing Requirements: Frequent changes in user requirements can lead to scope
creep and project delays, making it hard to deliver a stable product.
• Lack of Standardization: The absence of standardized processes and methodologies
can lead to inconsistencies and quality issues in software development.
• Inadequate Testing: Insufficient testing can result in undetected defects, leading to
software failures and user dissatisfaction.
• Resource Constraints: Limited budgets and timeframes can force teams to cut
corners, impacting the quality and reliability of the software.
(b) Discuss the various McCall’s quality factors with the quality triangle.
Answer:McCall’s Quality Factors:
McCall's model identifies several quality factors that are essential for software quality. These
factors are categorized into three main groups: product operation, product revision, and
product transition.
1. Product Operation:
• Correctness: The degree to which the software meets its specifications and fulfills its
intended purpose.
• Reliability: The ability of the software to perform its intended functions under
specified conditions for a specified period.
• Efficiency: The performance of the software in terms of resource usage, such as CPU
time and memory.
• Integrity: The protection of the software against unauthorized access and
modification.
• Usability: The ease with which users can learn and operate the software.
2. Product Revision:
• Maintainability: The ease with which the software can be modified to correct defects,
improve performance, or adapt to changes.
• Flexibility: The ease with which the software can accommodate changes in
requirements or environment.
• Testability: The degree to which the software can be effectively tested to ensure it
meets its requirements.
3. Product Transition:
• Portability: The ability of the software to be transferred from one environment to
another.
• Reusability: The degree to which components of the software can be reused in other
applications.
• Interoperability: The ability of the software to work with other systems or software.
Quality Triangle:
The quality triangle illustrates the trade-offs between three key aspects of software quality:
• Cost: The resources required to develop and maintain the software.
• Time: The time taken to develop and deliver the software.
• Quality: The overall quality of the software, encompassing all the factors mentioned
above.
4. Attempt any one part of the following: (10 x 1 = 10)
(a) Explain the SEI-CMM model. What do you mean by the state of fire fighting?
Answer:SEI-CMM Model (Software Engineering Institute Capability Maturity Model):
The SEI-CMM is a framework that helps organizations improve their software development
processes. It consists of five maturity levels:
• Level 1 - Initial: Processes are unpredictable and reactive. Success depends on
individual efforts.
• Level 2 - Managed: Basic project management processes are established to track
cost, schedule, and functionality.
• Level 3 - Defined: Processes are documented, standardized, and integrated into a
coherent process for the organization.
• Level 4 - Quantitatively Managed: Processes are measured and controlled using
quantitative techniques.
• Level 5 - Optimizing: Focus on continuous process improvement through incremental
and innovative process changes.
State of Fire Fighting:
The "state of fire fighting" refers to a reactive approach to software development where
teams are constantly addressing urgent issues and problems as they arise, rather than
proactively managing and improving processes. This often leads to chaos, missed deadlines,
and poor quality, as teams are unable to focus on long-term goals and improvements.
5. Attempt any one part of the following: (10 x 1 = 10)
(a) Draw the software design framework and discuss the elements of the design model.
Answer: Software Design Framework:
The software design framework typically includes the following elements:
• Architectural Design: Defines the overall structure of the software system, including
components and their interactions.
• Interface Design: Specifies how different components of the system will interact with
each other and with users.
• Data Design: Involves defining the data structures and databases that will be used in
the software.
• Component Design: Details the individual components, including their functionality
and interfaces.
• User Experience Design: Focuses on the usability and user interface aspects of the
software.
• Elements of the Design Model:
• Modularity: Breaking down the system into smaller, manageable modules that can be
developed and tested independently.
• Abstraction: Hiding complex implementation details and exposing only necessary
features to the user.
• Encapsulation: Bundling data and methods that operate on the data within a single
unit or class.
• Reusability: Designing components that can be reused in different parts of the
application or in different projects.
6. Attempt any one part of the following: (10 x 1 = 10)
(a) Draw the control flow graph and calculate the cyclomatic complexity with three
methods and independent paths for the given code:
1. IF A = 100 THEN
2. IF B > C THEN
3. A = B
4. ELSE
5. A = C
6. ENDIF
7. ENDIF
8. PRINT A
Answer:
Control Flow Graph: The control flow graph for the given code would have nodes
representing the decision points and edges representing the flow of control.
Cyclomatic Complexity Calculation: Cyclomatic complexity (CC) can be calculated using the
CC=E−N+2P
Where:
E = Number of edges in the graph
N = Number of nodes in the graph
P = Number of connected components (usually 1 for a single program)
For the given code:
Nodes (N): 4 (Entry, IF A=100, IF B>C, PRINT A)
Edges (E): 5 (Entry to IF A=100, IF A=100 to IF B>C, IF B>C to A=B, IF B>C to A=C, and from
both A=B and A=C to PRINT A)
Connected Components (P): 1
Plugging into the formula: CC=5−4+2(1)=3
Independent Paths:
Path 1: A = 100, B > C (A = B)
Path 2: A = 100, B ≤ C (A = C)
Path 3: A ≠ 100 (No action taken)
7. Attempt any one part of the following: (10 x 1 = 10)
(a) Draw the general model of software re-engineering and elaborate it.
Answer:
General Model of Software Re-engineering:
The software re-engineering process typically includes the following stages:
• Reverse Engineering: Analyzing the existing software to understand its components
and functionality.
• Restructuring: Modifying the software to improve its structure and maintainability
without changing its functionality.
• Forward Engineering: Rebuilding the software using modern technologies and
practices based on the insights gained from reverse engineering.
• Testing: Ensuring that the re-engineered software meets the required specifications
and quality standards.
(b) Write short notes on:
(i) Function Point
(ii) COCOMO
(iii) Defect, Fault, Failure
Answer:
(i) Function Point:
Function Points (FP) are a standardized unit of measurement that quantifies the functional
size of software. They are used to estimate the complexity and effort required for software
development.
Components of Function Points:
• Inputs: Number of user inputs to the system.
• Outputs: Number of user outputs generated by the system.
• User Inquiries: Number of user inquiries made to the system.
• Internal Files: Number of internal logical files maintained by the system.
• External Interfaces: Number of external interfaces with other systems.
• Usage: Function Points help in estimating project costs, resources, and timelines, and
they provide a basis for measuring productivity and quality.
(ii) COCOMO:
COCOMO (Constructive Cost Model) is a model used to estimate the cost, effort, and
schedule of software development projects based on the size of the software.
Types of COCOMO:
• Basic COCOMO: Provides a rough estimate based on the size of the software in lines
of code (LOC).
• Intermediate COCOMO: Includes additional factors such as product, hardware,
personnel, and project attributes to refine the estimate.
• Detailed COCOMO: Offers a more comprehensive analysis by considering all aspects
of the project, including phases and their respective costs.
• Formula: The basic COCOMO model uses the formula:Effort (person-
months)=a×(KLOC)bWhere a and b are constants that vary based on the project type,
and KLOC is the number of thousands of lines of code.
(iii) Defect, Fault, Failure:
• Defect: A defect is a flaw or imperfection in the software that can lead to incorrect or
unexpected behavior. It is often identified during testing.
• Fault: A fault, also known as a bug, is a specific instance of a defect in the code. It is
the underlying cause of a defect and can lead to a failure when the software is
executed.
• Failure: A failure occurs when the software does not perform its intended function
due to a fault. It is the observable manifestation of a defect during execution,
resulting in incorrect results or behavior.