Problem Solving In Software Engineering
LECTURE 3
Software Development Life Cycle
Assist. Prof. Dr. Gülüzar ÇİT
SWE 101 – Problem Solving in Software Engineering 2025-2026 Fall
Outline
➢What is a "Software"?
➢Quality of a Software
➢Software Development Life Cycle
➢Software Development for an ATM System
➢Requirement Analysis for an ATM System
➢Modelling&Design for an ATM System
➢References
SWE 101 – Problem Solving in Software Engineering 2025-2026 Fall
Software
➢Software is developed to solve real world problems with the help
of computers.
input SOFTWARE output
data data
SWE 101 – Problem Solving in Software Engineering 2025-2026 Fall
Software…
➢Quality of a Software
➢Efficieny
➢speed and source usage
➢Ease of maintenance
➢Robustness
➢Be affected by errors
➢Understandability
➢Mobility
➢Extensibility
➢Security
SWE 101 – Problem Solving in Software Engineering 2025-2026 Fall
Software Development Life Cycle
1. REQUIREMENT
ANALYSIS
2. MODELLING &
5. DEPLOYMENT
DESIGN
& MAINTENANCE
3. DEVELOPMENT
4. TESTING
SWE 101 – Problem Solving in Software Engineering 2025-2026 Fall
Software Development Life Cycle…
➢Requirement Analysis
➢The problem to be solved without any uncertainty is understood
➢The requirement list is created.
➢things expected from the software are listed in detail.
1.
REQUIREMENT
ANALYSIS
5.
DEPLOYMENT 2. MODELLING
& & DESIGN
MAINTENANCE
3.
4. TESTING DEVELOPMENT
SWE 101 – Problem Solving in Software Engineering 2025-2026 Fall
Software Development Life Cycle…
➢Modelling & Design
➢At this stage, the aim is to create an
abstract model of the real world 1.
REQUIREMENT
problem that can be represented by the ANALYSIS
computer. What elements the solution
will consist of and how these parts are
5.
modeled entirely depends on the DEPLOYMENT 2. MODELLING
& & DESIGN
programming method. MAINTENANCE
➢It is very important to create a good and
correct solution at this stage, as it
directly affects the quality of the
software. For this reason, verification of 3.
4. TESTING DEVELOPMENT
the established model must be done
before coding.
➢UML (Unified Modeling Language),
flowchart, pseudocode, etc.
SWE 101 – Problem Solving in Software Engineering 2025-2026 Fall
Software Development Life Cycle…
➢Development
➢The model created during the design phase is transferred to the computer
with a programming language.
1.
REQUIREMENT
ANALYSIS
5.
DEPLOYMENT 2. MODELLING
& & DESIGN
MAINTENANCE
3.
4. TESTING DEVELOPMENT
SWE 101 – Problem Solving in Software Engineering 2025-2026 Fall
Software Development Life Cycle…
➢Testing
➢How the program behaves for possible input values is examined.
➢The processing of the program should be tested especially for critical values.
➢Debugging / Run-time Error
➢Syntax Error
➢Logical Error 1.
REQUIREMENT
➢Semantics Error ANALYSIS
5.
DEPLOYMENT 2. MODELLING
& & DESIGN
MAINTENANCE
3.
4. TESTING DEVELOPMENT
SWE 101 – Problem Solving in Software Engineering 2025-2026 Fall
Software Development Life Cycle…
➢Deployment & Maintenance
➢Documentation
➢It is necessary to prepare documents explaining the work done at every
stage of the software project.
1.
REQUIREMENT
ANALYSIS
5.
DEPLOYMENT 2. MODELLING
& & DESIGN
MAINTENANCE
3.
4. TESTING DEVELOPMENT
SWE 101 – Problem Solving in Software Engineering 2025-2026 Fall
Software Development for an ATM System
➢A local bank wants to install a new ATM (Automated
Teller Machine) software that allows its users (i.e. bank
customers) to perform basic financial transactions.
➢Each user can have only one account in the bank.
➢The ATM must allow users to view their account balances,
withdraw money from their accounts, and deposit money into
their accounts.
SWE 101 – Problem Solving in Software Engineering 2025-2026 Fall
Software Development for an ATM System
➢Requirement Analysis
1.
REQUIREMENT
ANALYSIS
5.
DEPLOYMENT 2. MODELLING
& & DESIGN
MAINTENANCE
3.
4. TESTING DEVELOPMENT
SWE 101 – Problem Solving in Software Engineering 2025-2026 Fall
Software Development for an ATM System…
➢Requirement Analysis
➢A local bank intends to install a new automated teller machine (ATM) to
allow users (i.e., bank customers) to perform basic financial transactions
➢Each user can have only one account at the bank.
➢ATM users should be able to view their account balance, withdraw cash
(i.e., take money out of an account) and deposit funds (i.e., place money
into an account).
➢The bank will integrate the software with the ATM’s hardware at a later
time.
SWE 101 – Problem Solving in Software Engineering 2025-2026 Fall
Software Development for an ATM System…
➢Requirement Analysis…
➢The user interface of the automated teller machine contains:
➢a screen that displays messages to the user
➢a keypad that receives numeric input from the user
➢a cash dispenser that dispenses cash to the user and
➢a deposit slot that receives deposit envelopes from the user.
SWE 101 – Problem Solving in Software Engineering 2025-2026 Fall
Software Development for an ATM System…
➢Requirement Analysis…
➢Upon first approaching the ATM (assuming
no one is currently using it), the user should
experience the following sequence of events
1. The screen displays "Welcome!" and prompts
the user to enter an account number.
2. The user enters a five-digit account number
using the keypad.
3. The screen prompts the user to enter the PIN
(personal identification number) associated
with the specified account number.
4. The user enters a five-digit PIN using the
keypad.
5. If the user enters a valid account number and
the correct PIN for that account, the screen
displays the main menu. If the user enters an
invalid account number or an incorrect PIN,
the screen displays an appropriate message,
then the ATM returns to STEP 1 to restart the
authentication process.
SWE 101 – Problem Solving in Software Engineering 2025-2026 Fall
Software Development for an ATM System…
➢Requirement Analysis…
➢After the ATM authenticates the user, the main menu should
contain a numbered option for each of the three types of
transactions
1. balance inquiry (option 1)
2. withdrawal (option 2)
3. deposit (option 3).
4. exit
➢The user then chooses either to…
➢perform a transaction OR
(by entering 1, 2 or 3)
➢exit the system
➢(by entering 4).
➢If the user enters 1 to make a balance inquiry, the screen
displays the user’s account balance. To do so, the ATM must
retrieve the balance from the bank’s database.
SWE 101 – Problem Solving in Software Engineering 2025-2026 Fall
Software Development for an ATM System…
➢Requirement Analysis…
➢The following steps describe what occurs
when the user enters 2 to make a
withdrawal:
1. The screen displays a menu (Fig.
12.3) containing standard
withdrawal amounts: $20 (option 1),
$40 (option 2), $60 (option 3), $100
(option 4) and $200 (option 5). The
menu also contains an option to
allow the user to cancel the
transaction (option 6)
2. The user enters a menu selection
using the keypad.
SWE 101 – Problem Solving in Software Engineering 2025-2026 Fall
Software Development for an ATM System…
➢Requirement Analysis…
3. If the withdrawal amount chosen is
greater than the user’s account
balance, the screen displays a message
stating this and telling the user to
choose a smaller amount. The ATM
then returns to STEP 1. If the
withdrawal amount chosen is less than
or equal to the user’s account balance
(i.e., an acceptable amount), the ATM
proceeds to STEP 4. If the user
chooses to cancel the transaction
(option 6), the ATM displays the main
menu and waits for user input.
SWE 101 – Problem Solving in Software Engineering 2025-2026 Fall
Software Development for an ATM System…
➢Requirement Analysis…
4. If the cash dispenser contains enough
cash, the ATM proceeds to STEP 5.
Otherwise, the screen displays a
message indicating the problem and
telling the user to choose a smaller
withdrawal amount. The ATM then
returns to STEP 1.
5. The ATM debits the withdrawal
amount from the user’s account in the
bank’s database (i.e., subtracts the
withdrawal amount from the user’s
account balance).
SWE 101 – Problem Solving in Software Engineering 2025-2026 Fall
Software Development for an ATM System…
➢Requirement Analysis…
6. The cash dispenser dispenses the
desired amount of money to the user.
Insert deposit envelope here Insert
deposit envelope here Take cash here
7. The screen displays a message
reminding the user to take the money.
SWE 101 – Problem Solving in Software Engineering 2025-2026 Fall
Software Development for an ATM System…
➢Requirement Analysis…
➢The following steps describe the actions that
occur when the user enters 3 (when viewing
the main menu) to make a deposit:
1. The screen prompts the user to enter a
deposit amount or type 0 (zero) to cancel.
2. The user enters a deposit amount or 0 using
the keypad. [Note: The keypad does not
contain a decimal point or a dollar sign, so
the user cannot type a real dollar amount
(e.g., $27.25). Instead, the user must enter a
deposit amount as a number of cents (e.g.,
2725). The ATM then divides this number by
100 to obtain a number representing a dollar
amount (e.g., 2725 ÷ 100 = 27.25).]
3. If the user specifies a deposit amount, the
ATM proceeds to STEP 4. If the user chooses
to cancel the transaction (by entering 0), the
ATM displays the main menu and waits for
user input.
SWE 101 – Problem Solving in Software Engineering 2025-2026 Fall
Software Development for an ATM System…
➢Requirement Analysis…
4. The screen displays a message telling the
user to insert a deposit envelope.
5. If the deposit slot receives a deposit
envelope within two minutes, the ATM
credits the deposit amount to the user’s
account in the bank’s database (i.e., adds
the deposit amount to the user’s
account balance). If the deposit slot does
not receive a deposit envelope within
this time period, the screen displays a
message that the system has canceled
the transaction due to inactivity. The
ATM then displays the main menu and
waits for user input.
SWE 101 – Problem Solving in Software Engineering 2025-2026 Fall
Software Development for an ATM System…
➢Requirement Analysis…
➢After the system successfully executes a transaction, it should
return to the main menu so that the user can perform additional
transactions. If the user exits the system, the screen should
display a thank you message, then display the welcome message
for the next user.
SWE 101 – Problem Solving in Software Engineering 2025-2026 Fall
Software Development for an ATM System…
➢Modelling & Design
1.
REQUIREMENT
ANALYSIS
5.
DEPLOYMENT 2. MODELLING
& & DESIGN
MAINTENANCE
3.
4. TESTING DEVELOPMENT
SWE 101 – Problem Solving in Software Engineering 2025-2026 Fall
Software Development for an ATM System…
➢Modelling & Design
➢Softwares are modeled for two main purposes:
➢It is easy to transfer the model to coding.
➢It is easy to communicate for different partners (software
developers, users, project managers, company managers,
etc.).
➢UML (Unified Modeling Language) is used to model today's
software (especially object-oriented ones).
➢different diagram types for documenting the system models
➢Pseudocode and flowcharts are also constrained modeling
approaches used to express software algorithms.
➢Flowcharts are like activity diagrams in UML. The activity
diagrams consist of a combination of data flow diagrams and
flowcharts (the modeling standards in structural programming).
SWE 101 – Problem Solving in Software Engineering 2025-2026 Fall
Software Development for an ATM System…
➢Modelling & Design
➢UML Diagram
➢Scenario
➢describes what happens when the actor interacts with the system.
➢Use Case
➢a summarized version of the scenario for a single task or goal.
➢use cases combine to form the scenario.
➢example: Withdrawal is a use case
SWE 101 – Problem Solving in Software Engineering 2025-2026 Fall
Software Development for an ATM System…
➢Modelling & Design…
➢UML Diagram …
➢Use Case Diagram
➢A collection of scenarios describing the interaction between a user and
a system
➢It is one of the behavioral schemas.
➢Actor is the object that initiates events for a specific task. (Bank
customer, operator, bank etc.)
➢In use case scenarios, the system deals with what the actor does, it
doesn't care about how.
SWE 101 – Problem Solving in Software Engineering 2025-2026 Fall
Software Development for an ATM System…
➢Modelling & Design…
➢UML Diagram …
➢Activity Diagram
➢Dynamic view of the system
➢Models an objects workflow
(sequence of events) during
program execution
➢Example: diagram of the
withdrawal transaction
SWE 101 – Problem Solving in Software Engineering 2025-2026 Fall
Software Development for an ATM System…
➢Modelling & Design…
➢UML Diagram …
➢Activity Diagram
➢Dynamic view of the system
➢Models an objects workflow
(sequence of events) during
program execution
➢Example: diagram of the
withdrawal transaction
SWE 101 – Problem Solving in Software Engineering 2025-2026 Fall
References
➢Deitel, P., Deitel, H., Java How To Program, Prentice Hall, Ninth
Edition, 2012.
SWE 101 – Problem Solving in Software Engineering 2025-2026 Fall