You are on page 1of 10

2021

1a)

- The company relies on a complex algorithm, and I have already modified that algorithm
four-time due to marketing pressure

- And there is every chance that the algorithm may need to be changed on regular basis due
to such marketing pressures.

Que.) What pattern would best support the above scenario? Justify your answer.

For this kind of change, you need to change repeatedly the algorithm every time so for
that type of scenario you need to use the WaterFall Model Pattern use to do this kind of
development.

Waterfall Model:

- The Waterfall Model was the first Process Model to be introduced. It is also referred to as a
linear sequential life cycle model. It is very simple to understand and use. In a waterfall model,
each phase must be completed before the next phase can begin and there is no overlapping in
the Phases.

- The waterfall model is the earliest SDLC approach that was used for software development.
The waterfall Model illustrates the software development process in a linear sequential flow;
hence it is also referred to as a linear-sequential life cycle model. This means that any phase in
the development process begins only if the previous phase is complete. In the waterfall model
phases do not overlap.

- After analyzing systems and their full requirements if there is a need of changing the
requirements then you just change according to requirement and continue the
development, we choose to make the system on the waterfall software process model.
1b)

PART 1.

Answer:

Here as it is given that a user can open exactly one account in the Bank to make the
transaction and hence the "Singleton design pattern" will be used here to make this
requirements possible.
This design pattern is useful here as it will restrict the user to open exactly one account in the
Bank to make the transaction

Note:

"A singleton design pattern is a software design pattern that restricts the user to create
only one object of the class or the user will be allowed to instantiate the class only
once."

PART 2.

Answer:

Here in order to create Singleton design pattern we need to do 3 things:

● First create the constructor function of a class as private.


● Then create one static object of class as an attribute of class.
● Last, we need to write some static and public method to access that object.

UML Diagram:

Description:

● - represents the private member of a class.


● + represents the public member of a class.
● notify method is overloaded as it will be used to notify the user about every
transaction through both SMS and email.
STEP 2. Quick Summary:

● Here we have first discussed about the design pattern with explanation and then
we have designed the required UML diagram with description.
● I hope this solution will help you, if need more help, then feel free to ask me in
comment section.
● Also please rate the solution if it is found to be helpful to you:)

2A)

FUNCTIONAL TESTING is performed by QA team to check weather the only 6 character


username only accepted and less than 6 character username should be rejected.

2)By testing earlier you will be able to detect and solve defects rather than having to resolve
them at the end of the process. The later software bugs are detected, the longer and more
expensive they are to resolve

2B)
RUWA
To better understand insurance concepts, consider a simple example. Assume that no health
insurance exists and you face only two medical outcomes in the coming year: Outcome
Probability Cost Stay healthy 0.99 $ 0 Get sick 0.01 20,000 Furthermore, assume that everyone
else faces the same medical outcomes at the same odds and with the same associated costs.
What is your expected healthcare cost—E(Cost)—for the coming year? To find the answer, we
multiply the cost of each outcome by its probability of occurrence and then sum the products:
E(Cost) = (Probability of outcome 1 × Cost of outcome 1) + (Probability of outcome 2 × Cost of
outcome 2) = (0.99 × $0) + (0.01 × $20,000) = $0 + $200 = $200

3A)
3B)
Continuous deployment goes one step further than continuous delivery. With this practice, every
change that passes all stages of your production pipeline is released to your customers. There's
no human intervention, and only a failed test will prevent a new change to be deployed to
production.
3C)
Re-engineering is usually used to update the functionality of a product whereas reverse
engineering is mostly used to peep into the working of the product and what goes into the
making.
Software reuse is the process of implementing or updating software systems using existing
software assets. A good software reuse process facilitates the increase of productivity, quality,
and reliability, and the decrease of costs and implementation time.

2019
1D)

Aggregation

Aggregation is a special case of association. A directional association between objects. When


an object ‘has-a’ another object, then you have got an aggregation between them. Direction
between them specified which object contains the other object. Aggregation is also called a
“Has-a” relationship.

Composition

Composition is a special case of aggregation. In a more specific manner, a restricted


aggregation is called composition. When an object contains the other object, if the contained
object cannot exist without the existence of container object, then it is called composition.

Generalization

Generalization uses a “is-a” relationship from a specialization to the generalization class.


Common structure and behaviour are used from the specializtion to the generalized class. At a
very broader level you can understand this as inheritance. Why I take the term inheritance is,
you can relate this term very well. Generalization is also called a “Is-a” relationship.

Generalization:

The realtion between person student teacher.


A student is a person. A faculty is a person. Therefore here the relationship between student
and person, similarly faculty and person is generalization.
Aggregation:

Relation between school student teacher.

Students and teachers exists out of the school also.

School consists of students and teachers.

Composition:

Relation between school and classroom:

School has classroom but Classroom can't exists without school.

Relation between classroom and board:

Classroom has board without classroom board won't exists.

2C)
Six Sigma is the process of producing high and improved quality output. This can be done in
two phases – identification and elimination. The cause of defects is identified and appropriate
elimination is done which reduces variation in whole processes.

Six Sigma is the process of producing high and improved quality output. This can be done in
two phases – identification and elimination. The cause of defects is identified and appropriate
elimination is done which reduces variation in whole processes. A six sigma method is one in
which 99.99966% of all the products to be produced have the same features and are of free
from defects.
3A)
What is Test Coverage? Test coverage is defined as a technique which determines whether our
test cases are actually covering the application code and how much code is exercised when we
run those test cases. If there are 10 requirements and 100 tests created and if 90 tests are
executed then test coverage is 90%
We can not perform 100% testing on any application. but the criteria to ensure test completion
on a project is 1. all the test cases are executed with the certain percentage of pass.
3B)
Cyclomatic complexity (CYC) is a software metric used to determine the complexity of a
program. It is a count of the number of decisions in the source code. The higher the count, the
more complex the code

Cyclomatic complexity is a source code complexity measurement that is being correlated to a


number of coding errors. It is calculated by developing a Control Flow Graph of the code that
measures the number of linearly-independent paths through a program module.

Lower the Program's cyclomatic complexity, lower the risk to modify and easier to understand. It
can be represented using the below formula:

Cyclomatic complexity = E - N + 2*P

where,

E = number of edges in the flow graph.

N = number of nodes in the flow graph.

P = number of nodes that have exit points

The following steps should be followed for computing Cyclomatic complexity and test cases
design.

Step 1 – Construction of graph with nodes and edges from the code

Step 2 – Identification of independent paths

Step 3 – Cyclomatic Complexity Calculation

Step 4 – Design of Test Cases

3c)
Quality engineering is the discipline of engineering concerned with the principles and practice of
product and service quality assurance and control. In software development, it is the
management, development, operation and maintenance of IT systems and enterprise
architectures with a high quality standard.

4a)
Black box testing is a software testing methodology in which the tester analyzes the functionality
of an application without a thorough knowledge of its internal design. Conversely, in white box
testing, the tester is knowledgeable of the internal design of the application and analyzes it
during testing
5A)
i) Load testing we can perform in this case. It generally based on capacity analysis.
Performance Tuning is a superset of Load testing in other way. In load testing, we test the
response of a system varying the load conditions by simulating large number of user, who will
be accessing the application concurrently. This determines the speed and capacity of the
application.

ii) Smoke testing can be done here. Smoke testing is responsible to validate if basic functionlity
is working correctly or not by the developer team. So where large number of users are
connecting, if the numbers exceed, it will test if the functionlites of the application is responding
fine or not.

iii) Penetration testing can be used to prevent the Hackers from damaging a system. It
comprises of technological interventions that security professionals perform. These tools
comprsied of application scanners, port scanners and others, grouping them in one entity to
carry our successful penetration test.

iv) User acceptance testing or popularly UAT can be user here. On the basis of the final goal,
this testing generates reports which can measure human satisfaction.

There are several types of testing apart from these like integration testing, Sanity testing,
Regression testing etc which can also be deployed here in the above senerios.

2018
6D)

Answer:

Case Study:

● A test case is a description of the testing process, the inputs used, the execution
circumstances, and the anticipated outcomes.
● There are stages to a test case, such as Test Execution, and testers who execute the
test cases.
● They also aid in the identification and detection of test instances.
● It's similar to a document that contains a collection of test data, preconditions, and other
information.
● Let's go through a few test cases to ensure that we've covered all of the system's
potential states.

ATM is shown in the state diagram.


The following are the test cases for the aforementioned system:

● First, we'll create an account, and then we'll set it up.


● We'll put some money in there.
● Then we get down to business.
● Our account allows us to make withdrawals.
● After that, we'll test the cash withdrawal feature by inputting a genuine amount.
● After the withdrawal, we get a message with the balance amount and credit information,
and we print out the balance printout.
● Then we'll log out and cancel the account so that no one else can take advantage of it.

You might also like