Name: Ishika Todwal Roll No: 19074006 Software Engineering: Assignment Based On Chapter 3 & 4
Name: Ishika Todwal Roll No: 19074006 Software Engineering: Assignment Based On Chapter 3 & 4
Name: Ishika Todwal Roll No: 19074006 Software Engineering: Assignment Based On Chapter 3 & 4
Ans 1
The principles underlying agile methods lead to the accelerated development and
deployment of software as:
Incremental delivery: The programme is supplied to customer in small increments
during this procedure. The developers made changes to the system on basis of user
input and requirements. New functionalities are built and delivered into the system
with each increment.
Customer involvement: Customers are actively involved in the system's development.
Regular discussions with the customer are a part of agile approaches. As the system
development is done in small increments, the customer should involve in the process
of development to provide the requirements of the new features in the system.
People, not process: One of the major aspects for developing efficient software is to
acknowledge the technical skill of those involved in the system's development. It is
critical to implement and deliver the product timely and in high-quality manner.
Maintain simplicity: Because updates to the system are made in small increments on a
regular basis, the code utilised in the system must be basic. If the system needs to be
changed, the existing code must be restructured to meet the new requirements. The
simplicity of the development process and the code must be maintained without a
complexity in the system.
Embrace change: As technology is developing, changes must be done to the existing
system. The system should be designed according to the requirements of the changes
to deploy any new features in the system.
Ans 2
Extreme programming (XP) best known and used agile method. In Extreme
programming, the requirements are expressed in form of scenarios which are then
implemented directly as task series. The program involves a variety of practices
1
Ishika Todwal 19074006
through Incremental planning, Simple design, Small releases, Pair programming, Test-
first development, Refactoring, Sustainable pace, Collective ownership etc.
Advantages:
• Scenarios cope with almost all common operation. It is very easy to identify
what kind of operation is required in user’s stories.
• Customer focus in scenario card increase the chances of software production
according to the needs of users.
Disadvantages
Ans 3
The test-first development may compromise the quality of software being developed,
as it has some difficulties:
• If some difficulty come up with any programmer, they prefer programming to
test and sometimes they take shortcuts when writing tests.
• It's nearly impossible to tell how long debugging will take while programming,
therefore debugging efforts are occasionally wasted.
• In addition, when a user solves a bug while debugging, the analysis is
occasionally lost.
• Writing incremental test development can be difficult at times. It's possible that
you won't be able to meet the wants of your customers in less time.
• It is difficult to write tests, it leads to the complex user interface that decreases
the workflow of the program in a system.
• Developers write tests for better encoding to testing at times they use shortcuts.
• For example, if a developer may not write complete tests, then do not check all
exceptional cases.
• It's difficult to judge the comprehensiveness of a collection of tests using test-
first development. While it is impossible to cover all of the system's scenarios
with these tests, they are a good start.
2
Ishika Todwal 19074006
As a result, if the tests are not evaluated and further tests are not written after
development, undetected bugs may be included in the system release.
The fundamental issue with test-first development is that some tests are extremely
difficult to create because the system infrastructure must be in place before anything
can be tested.
Ans 4
The reasons are:
• Pair programming reduces number of bugs in the code. It improves
communication in the early stages of software development, resulting in fewer
false starts and rework. And as the formal inspection prevents so many errors,
less effort is spent in the testing phase fixing defects.
• Refactoring is encouraged via pair programming. The code is prone to being
updated and improved in order to improve its efficacy and testability.
• Two people working together at a single computer write all of the code that
will be delivered into production. Pair programming improves software quality
while reducing delivery time. It may seem contradictory, but two people
working at a single computer will contribute the same amount of functionality
as two people working independently, with the exception that the quality will
be significantly higher.
Ans 5
3
Ishika Todwal 19074006
Ans 6
The plan-based approach is a part of the agile methodology. It is necessary to include
documentation and methods for large projects developed using plan-based approach in
a distributed development environment because:
• If documentation is not supplied, team members may have a tough time
understanding the entire project.
• Learning, planning, and language issues can all be easily identified.
• Documentation and procedures for large project development are necessary to
document the recognised progress issues discovered throughout the scrum
program's monitoring.
• For large project development, the scrum team can use test automation with
continuous aggregation.
Ans 7
Organizations who want to incorporate agile, can encounter these hurdles:
• Unclear understanding of the impact to the overall business goals: Using agile
methods to execute projects isn't enough to get the expected results. Projects
can nevertheless be carried out in ways that do not give the entire company
with the results necessary for long-term success. The importance of strategic
alignment must not be overstated.
• A company structure or culture that does not adequately support agile: Even if
project teams are ready for agile development, the rest of the organisation may
not be. For agile to be genuinely effective, sponsors, executives, and functional
leaders must all believe in and support it.
4
Ishika Todwal 19074006
• Rushed testing cycles: Sprints have the potential to result in hasty testing
cycles. In the rush to complete sprints as rapidly as possible, teams can become
too focused on the deadline and overlook simple components of the testing
cycle, which can have serious consequences. Defects can be undiscovered for
long periods of time or be detected too late.
• Limited agile skill.Although agile is rapidly gaining traction, top agile talent
might be difficult to come by. Companies wishing to implement projects
utilising this methodology will have restricted options due to a scarcity of agile
personnel.
Because of the aforementioned reasons, agile approaches may not perform
effectively in organisations with teams with a diverse set of talents and
abilities, as well as well-established processes.
Ans 8
Ways to avoid this problem:
1. Validation of a suggestion given by a particular user with other different users:
• Advantages: it helps to check the suggestions of user independently.
• Disadvantages: delayed development process which will also increase the
cost of the project.
2. Multiple users are involved in giving suggestions to the development team:
• Advantages: we get different perspectives from different users. There will
be a better task coverage.
• Disadvantages: there can be conflicts between users and also it will affect
the cost of process.
3. Change the team member if any suggestion leads to any problem:
• Advantages: multiple perspectives can be obtained.
• Disadvantages: The new user may not be aware of system so process will
take extra time. Extra time will also increase the cost of development
process.
5
Ishika Todwal 19074006
Ans 9
Ambiguities/omissions for the statement are:
• How is the drone going to know when to click a picture and where the clicked
pictures will be stored.
• How the drone will take pictures at night or low light levels.
• What is the storage capacity of memory.
• Is it specific to one target or more than one target can be there.
• Can the pre described path be changed by ground operator during flight.
• If by chance the drone cannot locate its original path after avoiding obstacles
what will happen.
• What will happen when the drone reaches target, like will it stop or return back.
• How will the ground operator know that if drone reached the target or not, or in
general the location of drone.
• Can the ground operator command the drone to return before reaching the
destination.
Ans 10
Some non-functional requirements are:
• The drone’s path of flight should be obstacles free so that it does not crash.
• Reliability requirements are based on the durability of interface and network
connection in an area where operation is carried out.
• In case of system failure, recovery time should be as low as possible.
• The drone should be able to retract on its path when there are unfavourable
weather conditions.
• The height of flying should be above the normal operational heights of regular
aircraft and fighter jets to avoid collisions.
6
Ishika Todwal 19074006
Ans 11.
Requirements are:
1. Issue Fuel:
Based on user fuel demand, deduce the equivalent money of the fuel via card
and issue fuel.
• Input: Credit card, fuel required, PIN
• Output: required fuel is issued, receipt
• Normal case: User enter the credit card and amount of fuel required or
monetary equivalent. System validate credit card of user using PIN. If
validation is a success the system gives indication to fill the fuel. After the
amount is reached system stops filling fuel and an indication is given to
return the fuel nozzle. System debits the card and print a receipt of same.
• Exceptions: Credit card declined or not enough money in account(in both
the cases process is terminated), fuel tank overflow(the nozzle will let know
if the fuel tank is full and in such a case fuel stops filling automatically).
• Preconditions: Valid credit card and correct PIN.
• Postconditions: Fuel filled in fuel tank, amount deduced from account
7
Ishika Todwal 19074006
Ans 12
Functional Requirements: requirements related to domain like input/output.
Non functional requirements: requirements related to domain like security.
Keeping track is not easy because non functional requirements are sometimes system
level requirements and not requirements specific to any particular function/functions.
The engineer have to insure:
• The requirements which are needed to design meets requirements like
portability, compatibility, etc.
• Design the system in such a way that it ensures safety and security.
• Implement the system efficiently.
• The time and cost needed for the development must not affect design and
implementation of the system.
• The first step is to prepare the Systems Requirement Document. An engineer is
responsible to make documents for each functional and non-functional
requirement.
• The document must be prepared depending on: functional requirements need
structured language and non-functional requirements require the natural
language for better understanding.
• It gives a matrix that shows every requirement related to one another.
• It is difficult to manage as both the functional as well as non-functional
requirements put efforts with one another on the track of relationships.
• Non-functional requirements are linked with functional requirements to list and
identify the system levels related to each other.
• The engineer have to prepare a way to link the functional to non-functional for
its implementation.
8
Ishika Todwal 19074006
Ans 13
Use cases are as follows:
1. Cash Withdrawal:
• Input : ATM Card, PIN, additional bank details.
• Output: ATM card, receipt, cash, account details
• Normal case: customer insert card, select language, then enter the PIN if
it is correct a menu is displayed. Select cash withdrawal then enter the
amount, if there is enough amount in your account and the amount is
within the cash withdrawal limit you will receive cash and receipt. Then
you can remove card.
• Exceptions: Invalid/ Expired card(seek advice from bank), Incorrect
PIN(renter PIN max upto 3 times), insufficient cash(transaction
terminated), Amount beyond cash withdrawal limit(transaction
terminated).
2. Balance Display:
• Input : ATM Card, PIN, additional bank details.
• Output: ATM card, receipt, account details
• Normal case: customer insert card, select language, then enter the PIN if
it is correct a menu is displayed. Select balance display. Balance is
displayed with an option to print receipt or terminate transaction. Then
you can remove card.
• Exceptions: Invalid/ Expired card, Incorrect PIN.
3. Change PIN:
• Input : ATM Card, PIN, additional bank details.
• Output: ATM card, account details, print statement
• Normal case: customer insert card, select language, then enter the PIN if
it is correct a menu is displayed. Select change PIN. Enter the PIN
twice, it it matches in both the cases the PIN is changed successfully.
Then you can remove card.
• Exceptions: Invalid/ Expired card, Incorrect PIN, new PIN doesn’t
match(renter the PIN).
4. Cash Deposit:
• Input : ATM Card, PIN, additional bank details, cash
• Output: ATM card, receipt
• Normal case: customer insert card, select language, then enter the PIN if
it is correct a menu is displayed. Select cash deposit. Deposit the cash in
9
Ishika Todwal 19074006
machine. Your balance is displayed and receipt is printed. Then you can
remove card.
• Exceptions: Invalid/ Expired card, Incorrect PIN, cash not deposited
within 1 minute(transaction terminated).
5. Print Statement:
• Input : ATM Card, PIN, additional bank details
• Output: ATM card, receipt
• Normal case: customer insert card, select language, then enter the PIN if
it is correct a menu is displayed. Select print statement. Your last five
transactions are displayed and receipt is printed. Then you can remove
card.
• Exceptions: Invalid/ Expired card, Incorrect PIN
Ans 14
To minimize mistakes note of the scribes must be given a read before completing
review. Also, while going through the notes we should try to find the defects by
running few checks. Usually the defective components are found initially during
testing, and when the system is to be integrated the interface problems are discovered
and hence we have to debug the program. It is really important to record each and
every defect and look for suggestions or improvements for the process so that the
system can meet all its functional and non-functional requirements. Often the author is
responsible for this role. The author ensures that the log is easy to read and
understand.
Ans 15
The incremental model is most manageable and viable modification in the previous
version. It is basically a software development technique in which the product is first
developed, implemented, and then tested in steps until it is complete. A product is
"completed" means that the product has satisfied all of its specifications. This strategy
requires both development and maintenance.
10