1.(A). Assume that an ABC company has developed an attendance processing software to automate attendance entry of their organization
i. Identify the phases in SDLC where static testing can be applied and justify your answer.
ii. Identify the phases in SDLC where Dynamic testing can be applied and justify your answer (2+2 Marks]
b. Assume the following code
void greater ()
{
If(a>b)
{
If(a>c)
{
printf(“a is greater n”);
}
else
{
printf(“‘c is greater n”);
}
}
else
{
printf (“a is greater\n”);
}
else
{
printf(“c is greater\n”);
}
If{b>c} {
printf(” b is greater n”);
} else
{
printf(” c is greater\n”);
}
}
i) Write a Flow chart or Flow Graph for the above code
ii) Identify and write the different paths in the flow Graph
iii) Calculate the Cyclometric Complexity of the same ( C(G) Number of simple decisions +1 or Number of enclosed regions+1)
ANS:-Static Testing and Dynamic Testing in SDLC:
i. Static Testing:
Static testing is typically applied during the early phases of the Software Development Life Cycle (SDLC), primarily in the Requirements and Design phases. This is because static testing focuses on reviewing and analyzing the software artifacts without executing the code.
Justification:
Requirements Phase: Static testing can be applied to the requirements documentation to identify inconsistencies, ambiguities, and completeness in the requirements. This ensures that the foundation of the software is solid and well-defined.
Design Phase: Static testing can also be used to review the design documents, such as architecture diagrams and system specifications. It helps in identifying design flaws and ensuring that the design aligns with the requirements.
ii. Dynamic Testing:
Dynamic testing involves the execution of the software to assess its behavior, functionality, and performance. It is typically applied in the later phases of the SDLC, mainly during the Implementation and Testing phases.
Justification:
Implementation Phase: Dynamic testing is crucial during this phase, where the actual code is executed to ensure that it functions correctly according to the requirements and design specifications. Unit testing, integration testing, and system testing are examples of dynamic testing activities.
Testing Phase: Dynamic testing continues into the Testing phase with activities like functional testing, regression testing, and performance testing. These tests involve the execution of the software to validate its behavior under various conditions.
b. Code Flow Chart, Paths, and Cyclomatic Complexity:
i. Flow Chart for the Given Code:
plaintext
Copy code
|
v
+—(a > b)—+
| |
v v
(a > c) (printf “c is greater”)
| |
v |
(printf “a is greater”) |
| |
v |
(printf “a is greater”) |
|
v
(b > c) —-> (printf “b is greater”)
|
v
(printf “c is greater”)
ii. Different Paths in the Flow Graph:
a > b → a > c → printf “a is greater”
a > b → a > c → printf “a is greater”
a > b → !a > c → printf “c is greater”
!a > b → b > c → printf “b is greater”
!a > b → !b > c → printf “c is greater”
iii. Cyclomatic Complexity Calculation:
Cyclomatic Complexity (C(G)) = Number of simple decisions + 1
In the given code, there are 2 simple decisions (a > b and b > c).
C(G) = 2 + 1 = 3
+————+
| Start |
+—–|——+
v
+—|—+
| a > b? |
+—|—+
v
+—|—+
| a > c? |
+—|—+
|
v
(a is greater)
|
v
+—|—+
| a > b? |
+—|—+
|
v
(c is greater)
|
v
+—|—+
| b > c? |
+—|—+
|
v
(b is greater)
|
v
(c is greater)
2.(A)After delivery a project it is observed that lots of production defects are raised from user end. Due to this there are lots of escalations.
Explain what might be the problem of getting multiple production defects? Being a project manager what will be your steps to avoid such problem in future?
Ans:-
Multiple production defects after project delivery can be attributed to various factors:
Inadequate Testing: Perhaps the testing phase was rushed or didn’t cover all use cases, leading to undetected issues.
Miscommunication: Misunderstandings between the development team and users about project requirements or expectations.
Changing Requirements: Requirements might have evolved during the project, and these changes weren’t properly managed.
Lack of Documentation: Incomplete or unclear documentation can lead to development and testing gaps.
As a project manager, here’s how to avoid such problems in the future:
Robust Requirements Gathering: Ensure thorough, clear, and well-documented requirements from the start.
Comprehensive Testing: Implement rigorous testing throughout the project, including user acceptance testing.
Change Control: Establish a change control process to manage and document all requirement changes.
Effective Communication: Maintain open lines of communication with users and stakeholders to address concerns and changes promptly.
Post-Implementation Review: Conduct a post-implementation review to learn from mistakes and improve future projects.
2.(B).For the development of new project Agile methodology is used. After completion of the first iteration, during demo it is observed that there are
lots of changes customer is asking to incorporate immediately in the next iteration of the development. How you are going to incorporate all the changes that is coming from the customer end? As per the customer requirements some more functionalities must be develop in the next iteration and you have already planned user stories for the next iteration. How you are going to handle this situation?
ANS:-
Handling changes in Agile when customer requirements evolve after the first iteration can be managed through these steps:
Prioritize Changes: Collaborate with the customer to prioritize the requested changes based on business value and impact.
Adjust User Stories: If necessary, revise or create new user stories for the next iteration to incorporate high-priority changes.
Review Velocity: Assess the team’s velocity to determine if they can handle additional work in the next iteration without compromising quality.
Trade-offs: Discuss trade-offs with the customer, such as deferring less critical changes to a subsequent iteration, to maintain focus and quality.
Iteration Planning: Conduct a new iteration planning meeting with the updated user stories, considering the team’s capacity.
Continuous Communication: Keep the customer and team informed throughout the process to manage expectations and maintain transparency.
By adapting to changing requirements in a controlled and collaborative manner, you can ensure that the project remains aligned with the customer’s evolving needs.
3.(A)During 2019, COVID-19 was spreading very fast, and hence requires both awareness and prevention measures. However, during beginning of 2020 there was outbreak of this virus across the world, which led to the death of many people. Most of the popular Pharmaceutical Manufacturing companies have involved in manufacturing drugs.
As a software project manager, which type of process model will be suitable for the development of healthcare application which helps organize, manage & monitor product quality and streamline the manufacturing process to meet client’s specifications and associated regulatory requirements.
i). Mention and explain the process model which best suits the above case along with the process diagram.
ii). Identify and list all the stakeholders required during requirements gathering.
ANS:-
4.This in a subjective question, hence you have to write your answer in the Text-Field given below.
(A). ABC Software Ltd. is developing a critical software system for a medical device. The system is expected to run continuously for 2000 hours without failure. During testing, it experienced 3 failures. Calculate the Mean Time Between Failures (MTBF) and the Failure Rate (A) of the software. Discuss the implications of these metrics in ensuring the reliability of the medical device.
Ans:-
Ans:-
5.(A). Select the appropriate process model based on the characteristics of requirements which are as follows. Demonstrate your answer.
(i). Requirements are easily understandable and well defined.
(ii). Unclear user requirement.
(iii). A complex system needs to be built, but basic feature set is available.
(iv).Unfamiliar technology
(v). If project is very small and project face rapid requirement changes.
ANS:- Selecting the appropriate process model for a project depends on its specific characteristics. Let’s analyze each of the given scenarios:
(i) If requirements are easily understandable and well defined, a traditional Waterfall model can be a suitable choice. It follows a sequential approach and is ideal when requirements are stable.
(ii) When dealing with unclear user requirements, an Agile approach, such as Scrum, is recommended. Agile methodologies allow for iterative development and frequent feedback, which can help clarify requirements over time.
(iii) For a complex system with a basic feature set available, consider an Incremental or Spiral model. These models allow for gradual development and refinement of features, which is suitable for complex projects.
(iv) When dealing with unfamiliar technology, a Prototype model is beneficial. It involves creating a prototype to explore and understand the new technology before proceeding with full development.
(v) In the case of a very small project with rapid requirement changes, Agile methodologies like Kanban or Extreme Programming (XP) are effective. They enable flexibility and quick adaptation to changing requirements.
Ultimately, the choice of the process model depends on the project’s unique characteristics and the team’s familiarity with the chosen model. It’s often beneficial to tailor the approach to best fit the project’s needs, and hybrid models can also be considered when multiple characteristics apply simultaneously.
5.(B).ABC software Company wants to find down time in a year of their Web Applications and following are the information they have
Web Application 1
Web Application 2
MTTF
6580
4370
MITR
250
380
Find the down time for Web Application 1 and Web Application 2 and what do you think about stability of website-1 and website-2
ANS:- To find the downtime for Web Application 1 and Web Application 2, you can use the following formulas:
Downtime (D) = MTTF / MITR
For Web Application 1:
Downtime (Web Application 1) = 6580 / 250 = 26.32 hours per year
For Web Application 2:
Downtime (Web Application 2) = 4370 / 380 = 11.50 hours per year
Now, let’s evaluate the stability of both websites:
Web Application 1 has a downtime of approximately 26.32 hours per year. This suggests that it may experience more frequent periods of unavailability compared to Web Application 2.
Web Application 2 has a lower downtime of approximately 11.50 hours per year. This indicates that it is more stable and experiences fewer periods of unavailability compared to Web Application 1.
In summary, Web Application 2 appears to be more stable and reliable in terms of downtime when compared to Web Application 1. However, other factors such as user experience, performance, and security should also be considered when evaluating the overall stability and quality of these web applications.
For More Updates Join Our Channels :