Software Development - L01
Software Development - L01
2023
1
Outline
Course Overview
► What is software?
► What is a software process?
► What is a software process model?
2
What is software?
3
What is software?
4
What is software?
5
Introduction: Software is Complex
► Complex complicated
► Complex = composed of many simple parts
related to one another
► Complicated = not well understood, or explained
6
Software Development
Software Development
► refers to a set of computer science activities dedicated to the
process of creating, designing, deploying and supporting software.
► is the science and art of building significant software systems
that are:
1) on time
2) on budget
3) with acceptable performance
4) with correct operation
7
Software Developer vs. Software Engineer.
8
Programmer vs. Software Engineer
10
Software Process Key Challenges
11
Professional and Ethical Responsibility
12
Issues of Professional Responsibility
► Confidentiality
► Always respect confidentiality of employers or clients,
even when there is no formal confidentiality agreement
► Competence
► Never misrepresent one’s level of competence. never
accept work beyond one’s level of competence
► Intellectual property rights
► Ensure that the intellectual property of employers and
clients is protected
► Be aware of local laws governing use of intellectual
property such as patents and copyright
► Computer misuse
► Never use technical skills to misuse other people’s
computers
13
Software Process
14
Software Process
15
Modeling Motivation
16
Software Process Models
Software Process Models
18
Waterfall Method
Requirements
Design
Implementation
Testing
Waterfall
method Deployment &
Maintenance
19
Waterfall Model
20
Waterfall Model – Requirements Specification
21
Waterfall Model – Design
22
Waterfall Model - Coding and Module Testing
23
Waterfall Model - Integration and System Testing
24
Waterfall Model - Delivery and Maintenance
► Purpose:
► Purpose: Application distributed to users and supported via
maintenance/evolution
► People: Software-delivery personnel, software engineers, end-
users
► Two-stage delivery
► Beta testing: selective group of expected end-users to
shake out all bugs in the developed software
► Bugs are taken care of and then software product
delivered to customers
25
Other Activities in Waterfall Model
► Documentation
► Waterfall model is document-driven
► Output of each phase must be documented
► Company standards dictate document format
► Verification
► Emphasized during module and system testing
► Appropriate verification occurs via reviews and code
inspection
► The main goal is to monitor application quality throughout
development process to discover/remove errors
► Management
► Configuration and version management
► Human resources (personnel and organization)
26
Waterfall Model Evaluation
27
Waterfall Model Evaluation
► Problems with waterfall model
► Forces project planning to occur after limited analysis
performed
► The difficulty of accommodating change after the process is
underway
► Verification of requirements specifications document
performed by customer which is not very effective
► Unrealistic to assume all requirements frozen before
development starts
► Users often don’t know exact requirements, particularly
earlier in the process
► Does not stress anticipating changes
► Enforces standards based on producing particular documents
at specific times
28
Waterfall Waterfall Model Evaluation
29
Waterfall Process Model with Feedback
Requirements
analysis and
specification
Design
50 %
Coding and
module testing
Integration and
Optional system testing
Paths
Delivery and 50 %
maintenance
30
Evolutionary Process Model
31
Evolutionary Process Model
32
Incremental Implementation Model Variant
33
Incremental Development & Delivery Model
34
Waterfall Assessing Evolutionary Models
► Problems
► Large time gap between requirements specification and delivery
► Emphasis on user interface not on product
► May miss functional requirement
► May underestimate database complexity/interactions
► Requires tools to manage process
► Lack of process visibility
► Systems are often poorly structured
► Special skills (e.g. in languages for rapid prototyping) may be
required
► Advantages
► Product may closely follow user requirements
► Supports anticipation of change
► More flexible than waterfall model
35
Evolutionary Models Applicability
► For small or medium-size interactive systems
► For parts of large systems (e.g. user interface)
► For short-lifetime systems
36
Transformation Model
37
Transformation Model
Reusable
components
Verification Tuning
Recording of
developmental history
38
Transformation Model
39
Spiral Model
40
Spiral Model
41
The Spiral Model
42
The Spiral Model
43
Waterfall Model - Coding and Module Testing
► Purpose:
44
Waterfall Model - Coding and Module Testing
► Purpose:
45
Waterfall Model - Coding and Module Testing
► Purpose:
46
Waterfall Model - Coding and Module Testing
► Purpose:
47