3 - Software Development in Practice
3 - Software Development in Practice
SOICT
School of Information and Communication Technology
1
9/6/21
IT3180 – Introduction to
Software Engineering
3 – Software Development in Practice
• The client provides resources such as money and expect some product in
return
• The client’s job success may depend on the success of the software
project
2
9/6/21
• Customer is the person who buys the software or selects it for use by
an organization
Risk
• Problems
• Does not work as expected (FUNCTION)
• Over budget (COST)
• Late delivery (TIME)
• Competing goals
• Every software project has a trade-off between function/cost/time
• Extra functions add extra costs for development, testing, maintainance etc.
3
9/6/21
Risk (cont.)
The software development team will often add technical insights and
suggestions, but...
8
4
9/6/21
• Acceptance (how the client tests that the software meets the
requirements) and user testing
• Handover (ensuring that the client receives a package that can be
operated and supported over a long time period)
10
10
5
9/6/21
• Visibility : The people who take the responsibility must know what is
happening
• The problem (as seen by a manager) must rely on others for reports
of progress or difficulties
11
12
12
6
9/6/21
13
13
14
14
7
9/6/21
Teams
15
15
16
16
8
9/6/21
Fundamental assumptions:
• Good processes lead to good software
17
17
18
18
9
9/6/21
Feasibility Study
Requirements
User Interface Design
These steps may be
repeated many times
System Design
during the development
Program Development (detail design
cycle
and coding)
Acceptance and release
Operation and Maintenance
19
Feasibility
20
20
10
9/6/21
Requirements
21
21
Requirements
22
22
11
9/6/21
23
23
System Design
24
12
9/6/21
Program Development
Program development:
• Takes the system design and user interface design and builds
programs that meet the requirements
25
25
Acceptance testing
• The system is tested against the requirements by the client, often with
selected customers and users
Delivery and release
• After successful acceptance testing, the system is delivered to the
client and released into production or marketed to customers
26
26
13
9/6/21
Operation
• The system is put into practical use
Maintenance
• Errors and problems are identified and fixed
Evolution
• The system evolves overtime as requirements change, to add new
functions or adapt to a changing technical environment
Phase out
• The system is withdrawn from service
This is sometimes called the Software Life Cycle
27
27
28
28
14
9/6/21
Categories of Testing
The term testing is used in several different contexts which are easily
confused:
User Testing
• Versions of the user interface are tested by users
• Their experience may lead to changes in the requirements or the
design
Program Testing
• The development team tests components individually (unit testing) or
in combination (system testing) against the design to find bugs
Acceptance Testing
• The client tests the final version of the system or parts of the system
against the requirements
29
29
30
30
15