Professional Documents
Culture Documents
A Review of Software Development Process: Learning Objectives
A Review of Software Development Process: Learning Objectives
A Review of Software
Development Process
Learning Objectives
q Describing systems development life cycle and its phases.
q Describing planning phase and methodology selection.
q Explaining analysis phase and classifying requirements.
q Employing the requirement elicitation techniques.
q Explaining the transition from analysis to design.
q Explaining the architecture design.
q Getting familiar with the system construction process.
1
2022-01-27
Implementation Planning
Planned
System Design Analysis Project
System
Specifications
Requirements
2
2022-01-27
Planning Phase
q Project Initiation
Ø Prepare system request
Ø Perform preliminary feasibility analysis
q Set Up the Project
Ø Project Plan, including work plan & staffing plan
Analysis Phase
q Determine Analysis Strategy
Ø Study existing system and its problems
q Collect and Analyze Requirements
Ø Develop a new system concept
Ø Describe a new system with analysis models
q Prepare and Present System Proposal
Ø Summarize results of the Analysis Phase
Ø Go/No Go decision made by sponsor and steering committee
3
2022-01-27
Design Phase
q Determine Design Strategy
Ø Build / Buy / Outsource
q Design system components
Ø Architecture, interface, database, programs
Ø Assemble design elements into System Specification
q Present to steering committee
Ø Go / No Go decision before entering final phase
Implementation Phase
q System construction
Ø Programming and testing
q System installation
Ø Training
Ø Conversion to new system
q On-going system support
4
2022-01-27
q Interaction with
Ø technical specialists (DBAs, network admins, programmers)
Ø business people (users, managers, steering committee)
Ø others (vendors, consultants)
10
10
5
2022-01-27
Feasibility Analysis
q Is this project really worth doing? Can we do this
project?
q Detailed business case for the project
Ø Technical feasibility
Ø Economic feasibility
q Compiled into a feasibility study
11
11
Technical Feasibility
q Can We Build It?
q Sources of Technical Risk:
Ø Users’ and analysts’ lack of familiarity with the business
application area
Ø Lack of familiarity with technology
Ø Project size (e.g. number of people, time frame, features)
Ø Compatibility with existing systems
12
12
6
2022-01-27
Economic Feasibility
q Should we build it?
q Identify costs and benefits
q Determine cash flow
q Assess financial viability
Ø Return on investment
Ø Break even point
Ø Net present value
13
13
Feasibility Assessment
q Once risks are known, steps can be taken to
mitigate the risks
Ø For example, if unfamiliar with a new technology
o Provide enough budget for training
o Provide enough budget to hire consultants with
expertise
o Allow more schedule time to move up the learning
curve
o Use a methodology that incorporates experimentation
14
14
7
2022-01-27
15
15
16
8
2022-01-27
17
17
18
18
9
2022-01-27
Strengths weaknesses
þ System requirements þ Must wait a long time
identified long before before there is “visible”
construction begins evidence of the new system
þ Requirements are “frozen” þ Takes a long time from start
as project proceeds – no to finish
moving targets allowed
19
19
20
20
10
2022-01-27
21
21
V-Model Methodology
q Emphasizes system quality through text plan development
22
22
11
2022-01-27
23
23
24
24
12
2022-01-27
25
25
26
26
13
2022-01-27
27
27
28
28
14
2022-01-27
29
29
30
30
15
2022-01-27
31
31
32
32
16
2022-01-27
33
33
34
34
17
2022-01-27
35
35
http://www.softwaretestingstudio.com/
36
36
18
2022-01-27
37
37
Selection Summary
Ability to develop Waterfall Parallel V-Model Iterative System Throwaway Agile
systems Prototyping Prototyping Development
With unclear user Poor Poor Poor Good Excellent Excellent Excellent
requirements
That are complex Good Good Good Good Poor Excellent Poor
That are reliable Good Good Excellent Good Poor Excellent Good
With a short time Poor Good Poor Excellent Excellent Good Excellent
schedule
38
38
19
2022-01-27
39
39
40
40
20
2022-01-27
What is a Requirement?
q A statement of what the system must do; or a
statement of characteristics the system must have
q Types of requirements:
Ø what the business needs (business requirements);
Ø what the users need to do (user requirements);
Ø what the software should do (functional requirements);
Ø characteristics the system should have (nonfunctional
requirements); and
Ø how the system should be built (system requirements).
41
41
User Requirements
q What the user needs to do to complete a needed
job or task
q Focus on user tasks that are integral to business
operations
q Understanding user tasks helps reveal ways that
the new system can support those tasks
42
42
21
2022-01-27
Functional Requirements
q A process the system should perform as a part of
supporting a user task, or
q Information the system should provide as the user
performs a task
q Specify the support the system will provide to the
user in fulfilling their work tasks
43
43
Information-oriented Information the system must • The system must retain customer
contain order history for 3 years.
• The system must include real-time
inventory level at all warehouses.
• The system must include budgeted
and and actual sale and expense
amount for the current year and 3
previous years.
44
44
22
2022-01-27
Nonfunctional Requirements
q Behavioral properties the system must have
Ø Operational – physical and technical operating
environment
Ø Performance – speed, capacity, and reliability needs
Ø Security – access restrictions, needed safeguards
Ø Cultural and political – issues that will affect the final
system
45
45
46
46
23
2022-01-27
Requirements Elicitation
q Ways to discover requirements
q Choose participants carefully
q Make respectful use of people’s time
47
47
Interviews
q Most important and most used fact-finding
technique
o The systems analysts collects information from individuals
face to face
q Interview Structure
o Top-Down (broad to specific; most common)
o Bottom-up (specific to broad; useful for collecting details)
q Question Type
o Open-ended – broad concepts; opinions
o Closed-ended – learn or confirm facts and details
o Probing – resolve confusion; follow-up
48
48
24
2022-01-27
strengths weaknesses
– Interviewee can respond – Very time-consuming,
freely and openly to and therefore costly,
questions.
fact-finding approach.
– Interviewee can be asked
for more feedback. – Success is highly
– Questions can be adapted dependent on the
or reworded for each systems analyst's human
individual. relations skills.
– Interviewee’s nonverbal – May be impractical due
communication can be
observed. to the location of
interviewees.
49
49
Questionnaires
q Special-purpose documents that allow the analyst to
collect information and opinions from respondents.
q Facts are collected from a large number of people while
maintaining uniform responses.
o When dealing with a large audience, no other fact-finding technique
can tabulate the same facts as efficiently.
q Fixed-format questions
o Similar to a multiple choice exam question
o Must be able to anticipate potential answers to questions
o Easy to tabulate results
q Free-format questions
o Like an essay question – open-ended
o Response is unpredictable
o Harder to tabulate results
50
50
25
2022-01-27
strengths weaknesses
– Most can be answered – Response is often low. How
to motivate participation?
quickly (if properly – Incomplete questionnaires
designed). returned – are these
worthless?
– Relatively inexpensive. – Tend to be inflexible.
– Allow individuals to – Body language cannot be
observed.
maintain anonymity. – Cannot clarify a vague or
– Can be tabulated and incomplete answer to any
question.
analyzed quickly (if – Difficult to prepare a
properly designed). successful questionnaire.
51
51
Observation
q Participate in or watch a person perform activities
to learn about the system
q Use when the validity of data collected using other
methods is in question.
q Use when the complexity of certain aspects of the
system prevents end-users from providing a clear
explanation
52
52
26
2022-01-27
strengths weaknesses
– Data gathered may be – People may perform
highly reliable. differently when being
– Can see exactly what is observed.
being done. – Work may vary in
– Relatively inexpensive difficulty and volume.
(compared with other – Some activities may take
fact-finding techniques). place at odd times.
– Can do work – The tasks being
measurements (if observed are subject to
needed). various types of
interruptions.
53
53
54
54
27
2022-01-27
55
55
Use Cases
q Represents how a system interacts with its
environment
56
56
28
2022-01-27
57
57
Request a
Chemical
Use Case
58
58
29
2022-01-27
Normal Course
Ø The major steps that are performed to execute the response
to the event
59
59
Exceptions
Ø Error conditions encountered while performing use case
steps.
Ø NOT normal branches in decision logic.
Ø Lead to an unsuccessful result.
60
60
30
2022-01-27
61
61
62
62
31
2022-01-27
63
63
4-64
64
32
2022-01-27
65
65
66
66
33
2022-01-27
Process Modeling
67
67
Key Definitions
q Process model
Ø A formal way of representing how a business process
operates
Ø Illustrate activities that are performed and how data
moves between them
Ø Logical process models describe processes without
suggesting how they are conducted.
Ø Physical process models include process implementation
information
q Data flow diagramming
Ø A popular technique for creating process models
68
68
34
2022-01-27
69
69
DFD Elements
q Process
Ø An activity or function performed for a
specific business reason
Ø Can be manual or computerized
Ø Includes the following:
• A number
• A name (verb phrase)
• A description
• At least one output data flow
• At least one input data flow
70
70
35
2022-01-27
71
72
72
36
2022-01-27
73
73
74
74
37
2022-01-27
75
75
76
76
38
2022-01-27
77
DFD Hierarchy
o Context Diagram
decomposes into Level 0
diagram
78
78
39
2022-01-27
DFD Hierarchy
o Processes on Level 0 diagram
each decompose into
separate Level 1 diagrams
o Processes on Level 1
diagrams may or may not be
decomposed into separate
Level 2 diagrams.
o Processes are decomposed
until each process is a single-
purpose, primitive process.
79
79
Balancing
q Ensures that information presented at one level
of a DFD is accurately represented in the next
level DFD.
q Data flows on parent diagram are carried down
to child diagram.
q Child diagram adds new processes and new data
flows
80
80
40
2022-01-27
81
81
82
82
41
2022-01-27
83
83
Data Modeling
84
84
42
2022-01-27
Key Definitions
q Data model
Ø A formal way of representing the data that are used
and created by a business system
Ø Shows the people, places and things about which
data is captured and the relationships among them.
Ø Logical data model shows the organization of data
without indicating how it is stored, created, or
manipulated
Ø Physical data model shows how the data will
actually be stored in databases or files.
85
85
Key Definitions
86
86
43
2022-01-27
87
87
An ERD Example
Entities
Attributes
88
88
44
2022-01-27
Identifier Types
q One or more attributes can serve as the entity
identifier, uniquely identifying each entity instance
q Concatenated identifier consists of several
attributes
q An identifier may be ‘artificial,’ such as creating an
ID number
q Final decision on identifiers may postponed to the
Design Phase
89
89
Cardinality
q The number of times instances in one entity can
be related to instances in another entity
Ø One instance in an entity refers to one and only one
instance in the related entity (1:1)
Ø One instance in an entity refers to one or more
instances in the related entity (1:N)
Ø One or more instances in an entity refer to one or more
instances in the related entity (M:N)
90
90
45
2022-01-27
91
91
92
92
46
2022-01-27
93
93
Foreign Keys
Parking ID - PK
Emp ID - PK is assigned
EMPLOYEE PARKING Emp ID - FK
Emp Name
PLACE Location
Emp Address is assigned to
one-to-one
Student ID – PK Course ID – PK
?? FK ?? STUDENT registers for COURSE ?? FK ??
Student Name Course Name
registers
Student Address Course Descrip
many-to-many
94
94
47
2022-01-27
Creating ERDs
q ERDs can become quite complex
q Steps in building ERDs…
Ø Identify the entities
Ø Add appropriate attributes for each entity
Ø Draw the relationships that connect associated entities
95
95
96
96
48
2022-01-27
97
97
98
98
49
2022-01-27
99
99
Intersection Entities
q A new entity is created to store information about
two entities sharing an M:N relationship
Ø Remove the M:N relationship between two entities
and insert new entity between them
Ø Create two 1:N relationships: original entities are
parents to the new child intersection entity
Ø Name the intersection entity
Ø Migrate parent entity primary keys to new entity as
foreign keys (possibly also concatenated primary key)
100
100
50
2022-01-27
Student ID – PK Course ID – PK
?? FK ?? STUDENT registers for COURSE ?? FK ??
Student Name Course Name
registers
Student Address Course Descrip
many-to-many
101
101
102
102
51
2022-01-27
103
103
CRUD Matrix
q The CRUD (create, read, update, delete) matrix is
a table that depicts how the system’s processes
use the data within the system.
104
104
52
2022-01-27
Using
CRUD
Matrix
105
105
Normalization
106
106
53
2022-01-27
107
107
108
108
54
2022-01-27
109
109
110
110
55
2022-01-27
111
112
112
56
2022-01-27
Summary of
Normalization
Steps
113
113
114
114
57
2022-01-27
115
115
q Design phase
o Decide how to build the system
o Create system requirements that describe all
technical details for building the system
q System specification
o Final deliverable from design phase
o Conveys exactly what system the development team
will implement during the implementation phase
116
116
58
2022-01-27
117
117
118
118
59
2022-01-27
119
119
Custom Development
pros cons
§ Get exactly what we want § Requires significant time and
§ New system built consistently effort
with existing technology and § May add to existing backlogs
standards § May require skills we do not
§ Build and retain technical have
skills and function knowledge § Often costs more
in-house § Often takes more calendar
§ Allows team flexibility and time
creativity § Risk of project failure
§ Unique solutions created for
strategic advantage
120
120
60
2022-01-27
Purchased Software
Pros cons
§ No need to “reinvent the § Rarely a perfect fit
wheel” for common business § Organizational processes
needs must adapt to software
§ Tested, proven product § Reliance on vendor for
§ Cost savings maintenance and future
§ Time savings enhancements
§ Utilize vendors’ expertise § Won’t develop in-house
§ Some customization may be functional and technical skills
possible § Unique needs may go unmet
§ May require system
integration
121
121
Purchased Software
q Application service providers (ASP) supply
access to software on a pay-as-you-go basis
q Many applications today are “in the cloud”…
o ASP – provider hosts someone else’s software
o SaaS – software vendor hosts its own software
o Considerable savings – no hosting infrastructure
needed; host provides everything
q Risks include
o Fear of losing confidential information
o Performance
122
122
61
2022-01-27
Purchased Software
q Analyze the vendor as well as the software
functionality
q Verify vendor claims with others
q Look carefully at vendor support
q Assess long-term viability of vendor as an on-
going business
o A new software company may have a great idea, but
can they survive as a business over the long haul?
o If the vendor is an acquisition target, what will
happen to the product?
123
123
Systems Integration
q Building systems by combining packages,
existing (legacy) systems, and custom software
written for integration
q Integrating data between various parts of the
system is the key challenge
q Many consultants specialize in systems
integration
124
124
62
2022-01-27
Outsourced Development
pros cons
§ Hire expertise we don’t have § No opportunity to build in-
§ May save time and money house expertise
§ Lower risk § Reliance on vendor
§ Future options limited
§ Security – potential loss of
confidential information
§ Performance based on
contract terms
125
125
Outsourcing
q Hiring an external vendor, developer, or service
provider to supply the system
q Can also obtain custom system created by
outsourcer
q Can reduce costs and/or add value (resources,
experience)
q Risks include
o Losing confidential information
o Losing control over future development
o Losing learning opportunities
126
126
63
2022-01-27
Architecture Design
127
127
Key Definitions
q Architecture design
o Plans for how the system will be distributed across
computers and what hardware and software will be
used for each computer.
q Hardware and software specification
o Describes the hardware/software components in
detail to aid those responsible for purchasing those
products.
128
128
64
2022-01-27
129
129
Architectural Components
q Software systems can be divided into four
basic functions:
o Data storage.
o Data access logic: the processing required to access
stored data.
o Application logic: the logic documented in the
DFDs, use cases, and functional requirements.
o Presentation logic: the display of information to the
user and the acceptance of the user’s commands.
130
130
65
2022-01-27
131
131
Client-Server Architectures
q Client-server architectures balance the
processing between client devices and one
or more server devices.
q Generally, clients are responsible for the
presentation logic, and
q the server(s) are responsible for the data
access logic and data storage.
q Application logic location varies depending
on the C-S configuration chosen.
132
132
66
2022-01-27
Benefits of Client-Server
q Scalable
q Can support different types of clients and
servers through middleware.
q The presentation logic, the application logic,
and the data processing logic can be
independent.
q If a server fails, only the applications requiring
that server are affected – highly reliable.
133
133
Client-Server Tiers
q There are many ways in which the application
logic can be partitioned between the client side
and the server side.
q The arrangement in Figure 8-1 is called two-
tiered architecture.
8-134
134
67
2022-01-27
135
135
136
136
68
2022-01-27
137
137
138
138
69
2022-01-27
Server-Based Architecture
Ø Zero-client used today in Virtual Desktop Infrastructure
(VDI)
139
139
140
140
70
2022-01-27
141
141
Cloud-Based Systems
q Server virtualization involves partitioning a
physical server into smaller virtual servers.
142
142
71
2022-01-27
143
Cloud Computing
q Cloud computing – everything from computing
power to computing infrastructure, applications,
and business processes can be delivered as a
service wherever and whenever needed.
144
144
72
2022-01-27
145
145
146
146
73
2022-01-27
147
147
Metered by Use:
• Services are metered, like a utility
• Users pay only for services used
• Services can be cancelled at any time
148
148
74
2022-01-27
149
149
150
150
75
2022-01-27
Operational Requirements
Requirement Definition Example
Technical Special hardware, software, All office locations have
Environment and network requirements always-on network
imposed by business connection permitting real-
requirements time database updates
System The extent to which the The system will read and
Integration system will operate with write to the main inventory
other systems database
Portability The extent to which the The system must operate
system will need to operate in with mobile devices (Android
other environments and iOS)
Maintainability Expected business changes to The system must
which the system should be accommodate new
able to adapt manufacturing plants
151
151
Performance Requirements
Requirement Definition Example
Availability and Extent to which the system will 99% uptime performance
Reliability be available to the users and the
permissible failure rate due to
errors
152
76
2022-01-27
Security Requirements
Requirement Definition Example
Access Control Limitations on who can access Inventory item changes can
what data be made only by managers for
items in their own
department
Encryption and Defines what data will be Data will be encrypted from
Authentication encrypted where and whether the user’s computer to the
authentication will be needed Web site to provide secure
for user access ordering
Virus Control Controls to limit viruses All uploaded files will be
checked for viruses before
being saved in the system
153
153
Cultural/Political Requirements
Requirement Definition Example
154
154
77
2022-01-27
Nonfunctional
Requirements and the
Architecture Design
155
155
156
156
78
2022-01-27
Key Definitions
qSystem Interface: “connections” with other systems
to exchange information.
qUser Interface: “connections” with users.
ØThe navigation mechanism provides the way for users
to tell the system what to do
ØThe input mechanism defines the way the system
captures information
ØThe output mechanism defines the way the system
provides information to users or other systems
qGraphical user interface (GUI): most common type of
interface in use today.
157
157
Usability Concept
qThe system is easy to use and easy to learn
qTasks are completed more efficiently and with more
accuracy
qMistakes with system are reduced
qUser satisfaction with new system is increased
qAdoption of system is more likely
158
158
79
2022-01-27
qLayout
qContent awareness
qAesthetics
qUsage level
qConsistency
qMinimize user effort
159
159
Layout Concepts
• The screen is often divided into three boxes
– Navigation area (top)
– Status area (bottom)
– Work area (middle)
• Information can be presented in multiple
areas
• Similar areas should be grouped together
160
160
80
2022-01-27
161
161
162
162
81
2022-01-27
Content Awareness
qAll interfaces should have titles
qMenus should show where you are and where you
came from to get there
qIt should be clear what information is within each
area
163
163
Aesthetics
164
82
2022-01-27
Usage Level
• Some people will be frequent, heavy users of
the system
• Frequent users desire ease of use – quick and
easy completion of job tasks
• Other people may use the system infrequently
• Infrequent users desire ease of learning –
quick and easy ways to figure out what to do.
165
165
Usage Level
• User interface design should anticipate the types
of users expected.
• For systems primarily used by frequent users,
include ways to perform tasks directly (hot keys,
short-cut keys, etc.).
• For systems primarily used by infrequent users,
include careful menu designs, tool tips, and
extensive help systems.
• For systems with both user types, incorporate
both user preferences in design as much as
possible
166
166
83
2022-01-27
Consistency
• Elements are the same throughout the
application
• Enables users to predict what will happen
• Reduces learning curve
• Considers elements within an application and
across applications
• Pertains to many different levels
– Navigation controls
– Terminology
– Report and form design
167
167
Example of
Inconsistent Elements
Note the different button styles,
colors, and font styles.
168
168
84
2022-01-27
Minimize Effort
• Three clicks rule
– Users should be able to go from the start or main
menu of a system to the information or action
they want in no more than three mouse clicks or
three keystrokes
169
169
170
170
85
2022-01-27
User experience (UX) design is the process of enhancing user satisfaction by improving
the usability, accessibility, and pleasure provided in the interaction between the user
and the product.
171
171
172
172
86
2022-01-27
System Implementation
• Implementation is the development of all parts of the
system: the software itself, documentation, and new
operating procedures.
173
173
174
174
87
2022-01-27
175
175
Version Control
Version control is a system that records changes to a file
or set of files over time so that you can recall specific
versions later.
176
88
2022-01-27
177
178
89
2022-01-27
Centralized Distributed
Centralized: A single server contains all the versioned files, and clients check out files
from that central place. Disadvantage: single point of failure. If the centralized
repository is down, no one can do work that requires version control.
Distributed: Clients fully mirror the repository and can commit changes when off-line.
179
180
180
90
2022-01-27
181
181
182
182
91
2022-01-27
183
184
92
2022-01-27
Untracked Tracked
Each file in your working directory can be in one of two states: tracked or
untracked. Tracked files are files that are recognized by git. They are under
version control. Tracked files can be unmodified, modified, or staged.
185
revision history
master
branches
Create project
Feature A
Add function A Add feature A
186
93
2022-01-27
Testing
• Testing helps ensure that the system performs as
outlined in the specifications.
• It may be difficult to reproduce sequence of events
causing an error
• Testing must be done systematically and results
documented carefully
187
187
Test Plan
188
188
94
2022-01-27
Categories of Testing
• Stub testing
– Tests control structures before all modules are written
• Unit testing
– Tests each module – Does it performs its function?
• Integration testing
– Tests the interaction of modules - do they work together?
• System testing
– Tests to assure that the software works well as part of the overall
system
• Acceptance testing
– Tests to assure that the system serves organizational needs
189
189
Stub Testing
190
190
95
2022-01-27
Unit Testing
qBlack Box Testing
Ø Focuses on whether the unit meets requirements stated in
specification
qWhite-Box Testing
Ø Looks inside the module at actual code
191
191
Integration Testing
• User interface testing
– Tests each interface function
• Use-scenario testing
– Ensures that each use scenario works correctly
• Data flow testing
– Tests each process in a step-by-step fashion
• System interface testing
– Ensures data transfer between systems
192
192
96
2022-01-27
System Testing
• Requirements Testing
– Ensures that integration did not cause new errors
• Usability Testing
– Tests how easy and error-free the system is in use
• Security Testing
– Assures that security functions are handled properly
• Performance Testing
– Assures that the system works under high volumes of
activity (e.g., simultaneous users, peak transaction volume)
• Documentation Testing
– Analysts check the accuracy of documentation
193
193
Acceptance Testing
• Alpha Testing
– Performed by users to assure they accept the
system; frequently repeats earlier tests
• Beta Testing
– Uses real data, not test data. Actual users monitor
for errors or needed improvements.
• User sign-off following Acceptance Testing indicates the system
is ready to be placed into production.
194
194
97