Professional Documents
Culture Documents
ADP Slide
ADP Slide
Practices
TRAN KIM SANH
Instructor of DTU
Email: trankimsanh@duytan.edu.vn
Tel: 0987 409 464
Introduction to Teamwork
From: http://www.selfhelpmagazine.com/articles/growth/feedback.html
From: http://www.selfhelpmagazine.com/articles/growth/feedback.html
From: http://www.selfhelpmagazine.com/articles/growth/feedback.html
From: http://www.selfhelpmagazine.com/articles/growth/feedback.html
From: http://www.selfhelpmagazine.com/articles/growth/feedback.html
From: http://www.selfhelpmagazine.com/articles/growth/feedback.html
From: http://www.selfhelpmagazine.com/articles/growth/feedback.html
From: http://www.selfhelpmagazine.com/articles/growth/feedback.html
Application Development
Practices
TRAN KIM SANH
Instructor of DTU
Email: trankimsanh@duytan.edu.vn
Tel: 0987 409 464
Using Processes
Contents
1. Why Process is Important
2. What is a Process?
3. What Processes Will I Need?
1
03/03/2021
2
03/03/2021
3
03/03/2021
What is a Process?
A process is a set of practices
performed to achieve a given purpose;
it may include tools, methods,
materials, and/or people
While process is often described as a
leg of the process-people-technology
triad, it may also be considered the
“glue” that unifies the other aspects
4
03/03/2021
Example 1
5
03/03/2021
Example 2
http://vhr.vn/quy-trinh-giao-dich-vinhomes-riverside-hoa-anh-dao.html
Example 3
6
03/03/2021
7
03/03/2021
Process Measures
You can specify where the process
measurements should be taken
8
03/03/2021
9
03/03/2021
10
03/03/2021
11
03/03/2021
Development Processes
Product requirements
Top level architecture, technical
approach, and system design
Component and unit specifications and
design
Implementing
Coding
Unit and integration testing
Implementing product changes
Development metrics definition, collection
& analysis
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 24
12
03/03/2021
Infrastructure Processes
Source control
Configuration management
Continuous integration
Change control
Infrastructure metrics definition,
collection & analysis
Defect tracking
13
03/03/2021
Quality Processes
Quality planning
Quality assurance (Defect Prevention)
Quality metrics definition, collection
and analysis
System testing
Usability testing
Performance testing
Quality Processes
Regression testing
Inspections
14
03/03/2021
Support Processes
System packaging and delivery
User documentation & training
User support, Product returns
Problem logging and initial triage
System upgrades and routine software
maintenance
Support metrics definition, collection
and analysis
15
03/03/2021
16
03/03/2021
Tools
Most of the software development
processes can be automated
Many of the available software
development tools are free (open
source)
Make sure that any tools you acquire
integrate well with existing or planned
processes
Methodologies
The documented collection of policies and
processes used by a development team
or organization to practice software
engineering is called its software
development methodology (SDM) or
system development life cycle (SDLC)
You can use a defined methodology to
avoid having to define your own
processes
Traditional
Agile
17
03/03/2021
Group discussion
What are the differences from
Waterfall process compare to Scrum
process (4 students – 10 minutes)
18
03/03/2021
Example Process
Change Request (CR) State Diagram
Summary
You will need some amount of process
as soon as you are no longer working
alone
Methodologies can reduce the time
needed to build an agreed upon set of
processes for the team to use
Change a process if it isn’t working for
your team
19
03/03/2021
Video link
https://www.youtube.com/watch?v=la
SrDtYtkXU&list=PLCku-
ULHIQvlLC2gFqeoX-JtbEvmeoDhl
https://www.youtube.com/watch?v=5
A5XCuWMG4o&list=PLCku-
ULHIQvlLC2gFqeoX-
JtbEvmeoDhl&index=2
References
Ian Sommerville. Software engineering
update 10th edition. Wesley Computer
Publishing 2018 Page: 43 - 100
https://en.wikipedia.org/wiki/Software
_development_process
20
03/03/2021
Application Development
Practices
TRAN KIM SANH
Instructor of DTU
Email: trankimsanh@dtu.edu.vn
Tel: 0987 409 464
Contents
1. Types of Technical Reviews
2. What is an Inspection Process?
3. What to Consider When Building Your
Inspection Process
1
03/03/2021
Question
How do we define a Process?
A. Input - Process – Output
B. Process - Input- Output
C. Output - Input – Process
D. Process - Output – Input
The best period of time for one
Sprint Backlogs in Scrum process is?
A. 2->4 weeks
B. 3->5 weeks
C. one week
D. one month
Question
It is better to use process in a (an)…
A. Individual
B. Small team
C. Large Team
D. Other solution
What are the fundamentals of Software
Development Process?
A. The requirement, Analysis, Code
B. User documentation, User supports
C. Review, Testing...
D. All above
2
03/03/2021
Question
The process you can see insight is…
A. White Box
B. Black Box
C. A and B are correct
D. A and B are not correct
What is the correct stage order?
A. Task, Entry, Validation, Exit
B. Entry, Validation, Task, Exit
C. Exit, Validation, Task, Entry
D. Entry, Task, Validation, Exit
3
03/03/2021
Walkthroughs
Informal (any meeting where developers
review work to improve its quality)
Pair Programming
Reviews are built in
4
03/03/2021
Code Reading
More formal, but only applies to code
Reviewers read code and provide feedback
Inspections
Very formal
Specific roles
Checklists, Inspection Report, etc.
5
03/03/2021
Process Steps
For Inspection:
6
03/03/2021
Who Is Involved
For Inspection:
Roles:
Author
Moderator
Inspector (reviewer)
Recorder
Reader / Timekeeper
When:
Before the inspection meeting
During the inspection meeting
After the inspection meeting
7
03/03/2021
8
03/03/2021
Process Goals
What benefits will the process bring?
For an Inspection Process:
Defects removed
Team cross-training
Others ...
Process Value
Cost versus Benefit Analysis
For an Inspection Process:
Benefit:
$ Saved from defects removed early
Value of team cross-training
Others ...
Cost:
Time and $ (overhead) of process
Others ...
Be sure to define the metrics needed
to validate process value
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 18
9
03/03/2021
Process Timing
What is the task sequence?
Are there any task
dependencies?
Can there be parallel
tasks?
Are there any special
timing issues associated
with the process?
10
03/03/2021
Group discussion?
Create a checklist for java code
Find a review report on internet
(4 students – 10 minutes)
11
03/03/2021
12
03/03/2021
Process Variation
Formal Inspections versus Less Formal
Walkthroughs
Both have strengths and weaknesses
Don’t blindly adhere to a process
Be flexible, try new things
Use data, and the team, to guide you in
knowing if your process is working
13
03/03/2021
Summary
Formal inspections are a specific type
of technical review
Technical reviews have been shown to
be extremely effective in detecting
defects, and economical compared to
finding the defects later in the life
cycle
Be sure to consider the issue
associated with deploying more or less
formal processes
Video link
https://www.youtube.com/watch?v=y
KBfRzhIofs
https://www.youtube.com/watch?v=
nNkTJgasN_Y
14
03/03/2021
References
Ian Sommerville. Software
engineering update 10th edition.
Wesley Computer Publishing 2018 pp.
515- 530 verification and validation
https://en.wikipedia.org/wiki/Softwar
e_review
https://en.wikipedia.org/wiki/Softwar
e_inspection
15
03/03/2021
Application Development
Practices
TRAN KIM SANH
Instructor of DTU
Email: trankimsanh@dtu.edu.vn
Tel: 0987 409 464
Contents
1. Why Do Technical Reviews?
2. Benefits of Technical Reviews
3. Technical Review Costs
4. Addressing Hurt Feelings
5. What Data Should We Collect?
6. Why Don’t More Software Teams use
7. Technical Reviews?
1
03/03/2021
Question
All studies of Inspection have
common results, the meeting will
find very few errors compared to the
reading code. Why are many
companies still inspecting the code
by meeting?
A. They use inspection for training
B. Inspection can find the defect that the
individual couldn’t found
C. Meetings create a schedule that people
must work towards
D. All above
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh
2
Question
What is the maximum time to peer
code review?
A. 30 minutes
B. 60 minutes
C. 90 minutes
D. 120 minutes
What is the most successful type of
Object Oriented's review?
A. Checklist review
B. Systematic review
C. Use-case review
D. No solution is true
Referenced from Prof.Redley of CMU
2
2
03/03/2021
3
03/03/2021
4
03/03/2021
Ex. 1
Three-month, 10KLOC project with 10
developers. How much $ would the
company have saved if they had used
technical reviews?
The result:
Code review would have saved half the cost
of fixing the bugs
Plus they would have found 162 additional
bugs
5
03/03/2021
Ex. 2 - Before
Before Code Reviews
Ex. 2 - After
After Code Reviews
6
03/03/2021
7
03/03/2021
8
03/03/2021
What is a Defect?
When a reviewer or consensus of
reviewers determines that code must be
changed before it is acceptable, it is a
“defect”
If the algorithm is wrong, it’s a defect
If the code is right but unintelligible due to
poor documentation, it’s a defect
If the code is right but there’s a better way to
do it, it’s a defect
For the purposes of reviews:
A defect is an improvement to the code that
would not have occurred without review
Group discussion
Compare defect, error, bug
(2 students – 5 minutes)
9
03/03/2021
10
03/03/2021
11
03/03/2021
Summary
If implemented properly, reviews are a proven
method for:
Significantly reducing the number of delivered bugs
Keeping code maintainable
Getting new hires productive quickly and safely
Methods and tools can be misapplied, treated as a
failure, and then dismissed as a bad experience by
users who were not enabled for success
Quality techniques such as reviews and testing are
not mutually exclusive
Cost, benefit and category data must be collected to
verify and improve your review process!
12
03/03/2021
Video link
https://www.youtube.com/watch?v=F
TN_93Px-Qc
https://www.youtube.com/watch?v=5
KB5KAak6tM
References
Capers Jones. Software Defect Removal
Efficiency, IEEE Computer.
Jason Cohen, Steven Teleki, Eric Brown. Best
Kept Secrets of Peer Code Review
13
03/03/2021
Agenda
Insights from Studies
Application Development
Practices
TRAN KIM SANH
Instructor of DTU
Email: trankimsanh@dtu.edu.vn
Tel: 0987 409 464
© 2019, Tran Kim Sanh 1 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 2
1
03/03/2021
2
03/03/2021
Question Question
What is the name of inspection What is Pair Programming?
process? A. A teamwork using Cisco tool to review code
A. Software inspection B. Two coders read and inspection code of each
B. Code inspection other
C. Fagan inspection C. A meeting of project's stakeholder
D. All above D. All above
What is the result of the review? Who are involved in the inspection
A. Checklist meeting?
B. Inspection Report. A. Author, Inspector
C. Code Defect B. Moderator, Recorder
D. All above C. Reader / Timekeeper
D. All above
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 5 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 6
3
03/03/2021
Question Question
According to Capers Jones in All studies of Inspection have common
“Software Defect Removal Efficiency, results, the meeting will find very few
Design and Code Inspections” errors compared to the reading code. Why
are many companies still inspecting the
usually remove ... of product defects
code by meeting?
A. 40% A. They use inspection for training
B. 50 - 60% B. Inspection can find the defect that the
C. 60 - 70% individual couldn’t found
D. 70 - 85% C. Meetings create a schedule that people must
work towards
D. All above
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 7 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 8
4
03/03/2021
5
03/03/2021
6
03/03/2021
7
03/03/2021
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 15 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 16
8
03/03/2021
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 17 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 18
9
03/03/2021
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 19 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 20
10
03/03/2021
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 21 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 22
11
03/03/2021
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 23 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 24
12
03/03/2021
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 25 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 26
13
03/03/2021
14
03/03/2021
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 29 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 30
15
03/03/2021
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 31 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 32
16
03/03/2021
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 33 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 34
17
03/03/2021
18
03/03/2021
References
https://smartbear.com/product/collaborato
r/overview/
19
03/03/2021
Contents
Application Development What is Configuration Management?
© 2019, Tran Kim Sanh 1 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 2
1
03/03/2021
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 3 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 4
2
03/03/2021
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 7 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 5
3
03/03/2021
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 6 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 8
4
03/03/2021
5
03/03/2021
6
03/03/2021
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 12 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 14
7
03/03/2021
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 15 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 14
8
03/03/2021
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 15 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 18
9
03/03/2021
system knows which source file revisions YY is the Minor (Maintenance) Release
10
03/03/2021
11
03/03/2021
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 19 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 20
12
03/03/2021
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 25 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 21
13
03/03/2021
Build & Release Data Collection Rules for Making Code Changes
Build Log Data Developers are responsible for:
Build & Release Process Keeping their machine in synch with the
# of builds configuration management system
Changes (by CR#) in each build Creating/updating automated unit tests
Creating/updating automated unit and
System Test Process
integration tests
# of product release cycles required to
approve product is ready to ship Ensuring that all tests run successfully
Elapsed time of each product release cycle before checking code back into master
# of defects found during System Test per repository
release cycle Resolving conflicts when checking code
Effort required to test each product release back in
Updating change documentation
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 22 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 23
14
03/03/2021
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 24 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 30
15
03/03/2021
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 31 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 32
16
03/03/2021
References
Ian Sommerville. Software engineering
update 10th edition. Wesley Computer
Publishing 2018 Page: 730 - 749
https://en.wikipedia.org/wiki/Software_c
onfiguration_management
https://en.wikipedia.org/wiki/Apache_Su
bversion
17
03/03/2021
Contents
Application Development Java Development Tools:
Eclipse
Practices SVN
TRAN KIM SANH Ant
Instructor of DTU JUnit
Email: trankimsanh@dtu.edu.vn CruiseControl (not used in this course)
Tel: 0987 409 464
© 2019, Tran Kim Sanh 1 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 2
1
03/03/2021
Question Question
The version of the software is For Eclipse to work with SVN, which tool
1.01.0012. The number 0012 must you add to Eclipse?
A. subversive
means…. ?
B. Ant
A. the Major Release Number C. Maker
B. the Minor (Maintenance) Release D. SVN client
Number
C. the Build Number
D. the revision
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 3 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 4
2
03/03/2021
How the Tools Work Together How the Tools Work Together
Eclipse is an interactive development Ant is a program that automatically builds
environment (IDE) used by your Java project from source files in your
programmers to edit and debug source SVN repository and creates the project
code, initiate build and test processes distribution packages
and display results
SVN is a software configuration
management system that stores
(keeps revisions of) your project’s
source files as they are updated by
programmers using the Eclipse (or
another) IDE
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 3 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 4
3
03/03/2021
4
03/03/2021
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 7 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 8
5
03/03/2021
6
03/03/2021
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 11 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 12
7
03/03/2021
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 13 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 14
8
03/03/2021
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 15 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 16
9
03/03/2021
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 17 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 18
10
03/03/2021
11
03/03/2021
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 20 Referenced from Prof.Redley of CMU
12
03/03/2021
References
https://subversion.apache.org/docs/
13
03/03/2021
Application Development
Practices
TRAN KIM SANH
Instructor of DTU
Email: trankimsanh@dtu.edu.vn
Tel: 0987 409 464
Contents
Overview of Java Development Tools
Used in this Course
eclipse
svn
Ant
CruiseControl (not used in this course)
JUnit
What is testing?
What is Junit?
How to write testcase?
What are Junit methods?
How to use Junit in Eclipse?
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 2
1
03/03/2021
Question
ANT is used to …. ?
A. Build Project
B. Manage the revision of the project
C. Share document and code
D. Review code
Question
In order to use Eclipse, you must …. ?
A. install the current version of Java
Development Kit on your computer
B. install the current version of Tomcat on your
computer
C. install the current version of SVN on your
computer
D. install the current version of ANT on your
computer
2
03/03/2021
Software Testing
Software testing is the process of
evaluation a software item to detect
differences between given input and
expected output
Types
Unit testing
Integration testing
Regression Testing
System testing
Acceptance testing
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 5
3
03/03/2021
4
03/03/2021
Assert methods
assertEquals(Object expected, Object
actual)
Test that float or double values match. The
tolerance is the number of decimals which
must be the same.
assertNull([message], object)
Checks that the object is null.
Assert methods
assertTrue(Boolean test)
Will always be true / false. Can be used to
predefine a test result, if the test is not yet
implemented.
fail([String message])
Let the method fail. Might be used to check
that a certain part of the code is not reached.
Or to have failing test before the test code is
implemented.
5
03/03/2021
In Eclipse
Create a new project
Open project’s property
window (File -> Properties)
Select: Java build path
Select: libraries
Add Library
Select Junit
Select the type 3.x or 4.x…
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 11
JUnit in Eclipse
To create a test
class, select File
New Other...
Java, JUnit,
TestCase and enter
the name of the
class you will test
Fill this in
6
03/03/2021
Results
Your results are here
7
03/03/2021
Group discussion?
How to write unit test for the codes below - 4
students – 10 minutes
public class Sort {
int number1;
int number2;
public void sortDesc()
{
if(number1< number2)
{
int temp = number1;
number1 = number2;
number2 = temp;
}
}
}
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 15
8
03/03/2021
CruiseControl
Requires a separate build machine
9
03/03/2021
CruiseControl
Automated Builds
Push a button
Scheduled Builds
Don’t need to push
any buttons
10
03/03/2021
Developer’s Goals
Deliver working production code
Measurable quality
Resulting in happy customers
Be productive
Intelligent use of time
Address issues associated with software
changing over time
Work smarter, not harder
Processes
Tools
11
03/03/2021
12
03/03/2021
13
03/03/2021
Summary - 1
Build, compile and debug software
eclipse
Build, compile and debug software where
source code is stored in a shared
repository
eclipse
svn
Build, compile and debug software where
source code is stored in a shared
repository and builds are automated
eclipse
svn
Referenced AntProf.Redley of CMU
from © 2019, Tran Kim Sanh 27
Summary - 2
[Continuous Integration] Build,
compile and debug software where
source code is stored in a shared
repository and builds and unit testing
are automated
eclipse
svn
Ant
JUnit
14
03/03/2021
Summary - 3
[Continuous Integration] Build,
compile and debug software where
source code is stored in a shared
repository and builds and unit testing
are scheduled
eclipse
svn
Ant
JUnit
CruiseControl
Summary - 4
Different tools for different
environments and development
languages
JUnit (CppUnit, ...)
CruiseControl (Anthill, ...)
Take advantage of the many good
open source tools to increase:
Your productivity
The quality of your code
15
03/03/2021
Video link
https://www.youtube.com/watch?v=q
Ohfl9gayB8
https://www.youtube.com/watch?v=S
DwqcFwvwY0
References
Ian Sommerville (2016). Software
engineering update 10th edition.
Wesley Computer Publishing. PP
735- 756
16
03/03/2021
Application Development
Practices
TRAN KIM SANH
Instructor of DTU
Email: trankimsanh@duytan.edu.vn
Tel: 0987 409 464
Contents
Introduction to Teamwork
Using Processes
Technical Review Process
Configuration Management Process
1
03/03/2021
Introduction to Teamwork
Characteristics of High Performance
Teams
Are You a Problem?
Giving and Receiving Feedback
Personal Responsibility
Personal Values
Introduction to Teamwork
2
03/03/2021
Using Processes
What is a Process?
Why is Process Important?
What Processes Will I Need?
3
03/03/2021
4
03/03/2021
Defining a CM Process
What Configuration Management Is?
Why Configuration Management Might Be
THE Most Important Process for
Developers
Using CM Process 1
Using Configuration Management – Part 1
Teams Install and Use a Configuration
SVN
5
03/03/2021
Using CM Process 2
Using Configuration Management – Part 2
Fixing the Build Problems
Summary
Introduction to Teamwork
Using Processes
Technical Review Process
Configuration Management Process
6
03/03/2021
References
Ian Sommerville (2016). Software
engineering update 10th edition.
Wesley Computer Publishing. PP
735- 756, 656 – 666, 43 – 71, 700
– 729
Midterm Assignment
60 MINUTES
7
03/03/2021
Contents
What is a Defect?
Application Development
Cost of Defects
Practices
Defects as Opportunities
TRAN KIM SANH
Instructor of DTU Tips for Finding Defects
Email: trankimsanh@dtu.edu.vn Tips for Fixing Defects
Tel: 0987 409 464
Defect Distribution
Analyzing and Fixing Defects
© 2019, Tran Kim Sanh 1 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 2
1
03/03/2021
2
03/03/2021
Sources of defects: 60
Poor design 40
Poor coding practices
Limited or no unit and integration testing 30
Typos
Others ...
10
0
Requirements Design Code Development Acceptance Operation
Testing Testing
Development Phase
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 5 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 6
3
03/03/2021
4
03/03/2021
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 9 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 10
5
03/03/2021
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 11 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 12
6
03/03/2021
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 13 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 14
7
03/03/2021
8
03/03/2021
9
03/03/2021
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 19 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 20
10
03/03/2021
11
03/03/2021
12
03/03/2021
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 25 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 26
13
03/03/2021
14
03/03/2021
15
03/03/2021
References
McConnell, Steve Code Complete.
Microsoft Press, 2004. pages 540-
541
McConnell, Steve Code Complete.
Microsoft Press, 2004. pages 540-
548
16
03/03/2021
Director’s Overview
What is Refactoring?
Why Refactor?
Application Development Practices
Reasons Not to Refactor?
TRAN KIM SANH
Instructor of DTU How to Refactor
Email: trankimsanh@dtu.edu.vn
Tel: 0987 409 464
Refactoring in eclipse
Refactoring
© 2019, Tran Kim Sanh 1 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 2
1
03/03/2021
2
03/03/2021
Referenced from Prof.Redley of CMU Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 6
3
03/03/2021
Is Quality An Accident?
Steve McConnell, Code Complete, 2nd Edition. Microsoft Press 2004
Referenced from Prof.Redley of CMU Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 8
4
03/03/2021
5
03/03/2021
6
03/03/2021
7
03/03/2021
8
03/03/2021
9
03/03/2021
Steve McConnell, Code Complete, 2 nd Edition. Microsoft Press 2004 Steve McConnell, Code Complete, 2 nd Edition. Microsoft Press 2004
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 19 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 20
10
03/03/2021
11
03/03/2021
12
03/03/2021
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 25 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 26
13
03/03/2021
14
03/03/2021
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 29 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 30
15
03/03/2021
References
McConnell, Steve Code Complete.
Microsoft Press, 2004. pages 563 – 585
Martin Fowler, Refactoring: Improving
the Design of Existing Code
16
03/03/2021
Contents
Requirements & Methodology
Managing Traditional Requirements Change
Application Development Practices Managing Agile Requirements Change
TRAN KIM SANH
Instructor of DTU
Estimating Change
Email: trankimsanh@dtu.edu.vn
Using Change Management Tools
Tel: 0987 409 464
© 2019, Tran Kim Sanh 1 Referenced from Prof.Redley of CMU © 2019,Tran Kim Sanh 2
1
03/03/2021
Referenced from Prof.Redley of CMU © 2019,Tran Kim Sanh 3 Referenced from Prof.Redley of CMU © 2019,Tran Kim Sanh 4
2
03/03/2021
Agile
Lightweight requirements
Emphasis is on working code
Must have user involvement
Minimal long range planning
Change is embraced
Referenced from Prof.Redley of CMU © 2019,Tran Kim Sanh 5 Referenced from Prof.Redley of CMU © 2019,Tran Kim Sanh 6
3
03/03/2021
Steve McConnell, Rapid Development. page 237 Steve McConnell, Rapid Development. page 237
Referenced from Prof.Redley of CMU © 2019,Tran Kim Sanh 7 Referenced from Prof.Redley of CMU © 2019,Tran Kim Sanh 8
4
03/03/2021
5
03/03/2021
Your estimate may not be what Describe alternatives and their benefits and costs
Describe risks
management submits to the customer
Don’t talk about money
Be Helpful and Supportive. It is their project
Talk in ranges Steve McConnell, Rapid Development. page 237 Steve McConnell, Rapid Development. page 237
Referenced from Prof.Redley of CMU © 2019,Tran Kim Sanh 11 Referenced from Prof.Redley of CMU © 2019,Tran Kim Sanh 12
6
03/03/2021
Problems Building Rapport with Customer - 1 Problems Building Rapport with Customer - 2
Customers often don’t know what they want Customers sometimes won’t commit to a
Learn and use requirements-eliciting practices set of written requirements
that help customers figure out what they want Possibly the requirements are too big,
Internal (to your company) customers: technical and hard to understand
Interface prototyping, Evolutionary prototyping,
Try describing the product in their language
Joint Application Development (JAD), etc.
Conduct focus groups Prototypes
Examples
External (to your company) customers:
Videotape people using the software
Conduct surveys to assess your
relationship with your customers
Steve McConnell, Rapid Development. page 237 Steve McConnell, Rapid Development. page 237
Referenced from Prof.Redley of CMU © 2019,Tran Kim Sanh 13 Referenced from Prof.Redley of CMU © 2019,Tran Kim Sanh 14
7
03/03/2021
Problems Building Rapport with Customer - 3 Problems Building Rapport with Customer - 4
Communication with customers can be slow Customers will not (or can’t) participate in
Communicate what you need and when with reviews
your customer, and what the impact is if you Customers may not have the expertise
don’t hear from them on time Use less technical, detailed or tedious
If that doesn’t work, then communicate with specifications
your customer that you need to let your Offer to provide some training
management know that you are stuck with Offer encouragement
getting information from the customer Look for another way
If that doesn’t get your customer to respond, Customers may not have the time
then escalate the issue to your management Talk with your management about conveying
Make sure you really need the customer’s to the customer the risk of project failure if the
time customer doesn’t/can’t participate
Don’t make a big deal about something trivial Steve McConnell, Rapid Development. page 237
Referenced from Prof.Redley of CMU © 2019,Tran Kim Sanh 15 Referenced from Prof.Redley of CMU © 2019,Tran Kim Sanh 16
8
03/03/2021
Problems Building Rapport with Customer - 5 Problems Building Rapport with Customer - 6
Customers won’t let people do their jobs Customers don’t understand the software
Help the customer focus on what, and not development process
how Don’t try to teach them about software
Help the customer understand the lifecycles (unless they are interested)
consequences of their technical Do explain to them the processes that they
requirements need to participate in, and their role in those
processes
Keep them informed with what is coming up
so they are aware and informed
Steve McConnell, Rapid Development. page 237 Steve McConnell, Rapid Development. page 237
Referenced from Prof.Redley of CMU © 2019,Tran Kim Sanh 17 Referenced from Prof.Redley of CMU © 2019,Tran Kim Sanh 18
9
03/03/2021
Problems Building Rapport with Customer - 7 Problems Building Rapport with Customer - 8
Engineers often over promise and under deliver Engineers often don’t consult with their
Agreeing to unrealistic expectations will
customers, especially if there is not a
always damage your credibility
good relationship
Use estimation techniques and let everyone
know that you will be collecting data to Don’t let this happen!
improve your ability to estimate accurately Always treat the customer with respect
Never make promises about functionality, Always be professional, courteous and
dates or cost without verifying your promises deferential
first Try your best, even in difficult situations
Referenced from Prof.Redley of CMU © 2019,Tran Kim Sanh 19 Referenced from Prof.Redley of CMU © 2019,Tran Kim Sanh 20
10
03/03/2021
Problems Building Rapport with Customer - 9 Problems Building Rapport with Customer - 10
Engineers often think they know better Engineers build inflexible systems
Don’t add or modify features on your own Use good design practices to build systems
(without CCB approval) that can be modified
Don’t add or modify features without Consider alternative designs and involve
making sure the customer approves the customer with the final decision
making
Referenced from Prof.Redley of CMU © 2019,Tran Kim Sanh 21 Referenced from Prof.Redley of CMU © 2019,Tran Kim Sanh 22
11
03/03/2021
12
03/03/2021
Referenced from Prof.Redley of CMU © 2019,Tran Kim Sanh 25 Referenced from Prof.Redley of CMU © 2019,Tran Kim Sanh 26
13
03/03/2021
14
03/03/2021
Referenced from Prof.Redley of CMU © 2019,Tran Kim Sanh 29 Referenced from Prof.Redley of CMU © 2019,Tran Kim Sanh 30
15
03/03/2021
The work to be done on a Scrum project is listed on At the start of each The Product Owner
a “product backlog” sprint a Sprint Planning prioritizes the
Meeting is held Product Backlog
A list of all project work,
including requirements The Scrum Team
selects the tasks
Prioritized by the product they can complete
owner during the coming
Reprioritized by the Sprint
product owner during These tasks are
planning at the start of then moved from
each sprint the Product
Backlog to the
Sprint Backlog
Referenced from Prof.Redley of CMU © 2019,Tran Kim Sanh 31 Referenced from Prof.Redley of CMU © 2019,Tran Kim Sanh 32
16
03/03/2021
Referenced from Prof.Redley of CMU © 2019,Tran Kim Sanh 33 Referenced from Prof.Redley of CMU © 2019,Tran Kim Sanh 34
17
03/03/2021
18
03/03/2021
19
03/03/2021
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 39 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 40
20
03/03/2021
https://bit.ly/2AItZbG
21
03/03/2021
Contents
Is Quality an Accident?
Test Driven Development
Application Development Practices
Integration Test
TRAN KIM SANH
Instructor of DTU Acceptance Test
Email: trankimsanh@dtu.edu.vn
Tel: 0987 409 464
System Test
Testing and Quality Test Coverage
© 2019, Tran Kim Sanh 1 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 2
1
03/03/2021
You Do!
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 3 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 4
2
03/03/2021
3
03/03/2021
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 7 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 8
4
03/03/2021
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 9 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 10
5
03/03/2021
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 11 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 12
6
03/03/2021
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 13 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 14
7
03/03/2021
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 15 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 16
8
03/03/2021
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 17 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 18
9
03/03/2021
10
03/03/2021
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 21 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 22
11
03/03/2021
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 23 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 24
12
03/03/2021
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 25 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 26
13
03/03/2021
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 27 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 28
14
03/03/2021
15
03/03/2021
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 31 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 32
16
03/03/2021
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 33 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 34
17
03/03/2021
Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 35 Referenced from Prof.Redley of CMU © 2017, Tran Kim Sanh 36
18
03/03/2021
References
19
03/03/2021
Director’s Overview
Application Development What is Customer Satisfaction?
Practices Kano Model (for assessing customer
satisfaction)
TRAN KIM SANH
Instructor of DTU Why is this important to you?
Email: trankimsanh@dtu.edu.vn
Tel: 0987 409 464 Stakeholders
Additional customer satisfaction
Customer Satisfaction measures
© 2019, Tran Kim Sanh 1 Referenced from Prof.Redley of CMU ©2019 Tran Kim Sanh 2
1
03/03/2021
2
03/03/2021
http://www.stickyminds.com/sitewide.asp?Function=edetail&ObjectType=COL&ObjectId=9405
Referenced from Prof.Redley of CMU ©2019 Tran Kim Sanh 5 Referenced from Prof.Redley of CMU ©2019 Tran Kim Sanh 6
3
03/03/2021
Exciters Linear
After working out, I went back to my room. I
was thirsty and noticed, again to my delight,
that the bottle of water the hotel left in my
room was free, not $4 as in most hotels
An exciter is a feature that a user doesn’t know
he wants until he sees it
This hotel had done a wonderful job of providing
features called "exciters" or "delighters””
http://www.stickyminds.com/sitewide.asp?Function=edetail&ObjectType=COL&ObjectId=9405
Referenced from Prof.Redley of CMU ©2019 Tran Kim Sanh 7 Referenced from Prof.Redley of CMU ©2019 Tran Kim Sanh 8
4
03/03/2021
http://www.stickyminds.com/sitewide.asp?Function=edetail&ObjectType=COL&ObjectId=9405
9
Referenced from Prof.Redley of CMU ©2019 Tran Kim Sanh 9 Referenced from Prof.Redley of CMU ©2019 Tran Kim Sanh 10
5
03/03/2021
Referenced from Prof.Redley of CMU ©2019 Tran Kim Sanh 11 Referenced from Prof.Redley of CMU ©2019 Tran Kim Sanh 12
6
03/03/2021
http://www.stickyminds.com/sitewide.asp?Function=edetail&ObjectType=COL&ObjectId=9405 http://www.stickyminds.com/sitewide.asp?Function=edetail&ObjectType=COL&ObjectId=9405
Referenced from Prof.Redley of CMU ©2019 Tran Kim Sanh 13 Referenced from Prof.Redley of CMU ©2019 Tran Kim Sanh 14
7
03/03/2021
Referenced from Prof.Redley of CMU ©2019 Tran Kim Sanh 15 Referenced from Prof.Redley of CMU © 2019, Tran Kim Sanh 16
8
03/03/2021
Referenced from Prof.Redley of CMU ©2019 Tran Kim Sanh 17 Referenced from Prof.Redley of CMU ©2019 Tran Kim Sanh 18
9
03/03/2021
10
03/03/2021
Referenced from Prof.Redley of CMU ©2019 Tran Kim Sanh 21 Referenced from Prof.Redley of CMU ©2019 Tran Kim Sanh 22
11
03/03/2021
Referenced from Prof.Redley of CMU ©2019 Tran Kim Sanh 23 Referenced from Prof.Redley of CMU ©2019 Tran Kim Sanh 24
12
03/03/2021
Referenced from Prof.Redley of CMU ©2019 Tran Kim Sanh 25 Referenced from Prof.Redley of CMU ©2019 Tran Kim Sanh 26
13
03/03/2021
Referenced from Prof.Redley of CMU ©2019 Tran Kim Sanh 27 Referenced from Prof.Redley of CMU ©2019 Tran Kim Sanh 28
14
03/03/2021
Referenced from Prof.Redley of CMU ©2019 Tran Kim Sanh 29 Referenced from Prof.Redley of CMU
15
03/03/2021
References
Ian Sommerville (2016). Software
engineering update 10th edition.
Wesley Computer Publishing. PP
735- 756
16
03/03/2021
Contents
Application Development Technical Review
Practices Software Configuration Management
Finding, fixing defects and Refactoring
TRAN KIM SANH
Instructor of DTU code
Email: trankimsanh@duytan.edu.vn Other
Tel: 0987 409 464
Teamwork
Software Process
Closure and Reflection Testing overview
Analyzing & Estimating Requirements
Customer Satisfaction
© 2019, Tran Kim Sanh 1 Referenced from Prof.Redley of CMU © 2017, Tran Kim Sanh 2
Referenced from Prof.Redley of CMU © 2017, Tran Kim Sanh 3 Referenced from Prof.Redley of CMU © 2017, Tran Kim Sanh 4
Referenced from Prof.Redley of CMU © 2017, Tran Kim Sanh 5 Referenced from Prof.Redley of CMU © 2017, Tran Kim Sanh 6
1
03/03/2021
Referenced from Prof.Redley of CMU © 2017, Tran Kim Sanh 7 Referenced from Prof.Redley of CMU © 2017, Tran Kim Sanh 8
Basic Premise
Referenced from Prof.Redley of CMU © 2017, Tran Kim Sanh 9 Referenced from Prof.Redley of CMU © 2017, Tran Kim Sanh 10
Referenced from Prof.Redley of CMU © 2017, Tran Kim Sanh 11 Referenced from Prof.Redley of CMU © 2017, Tran Kim Sanh 12
2
03/03/2021
Course Topics
Defining a Technical Review Process
What is a Technical Review?
What Type of Technical Review is Right for My
Project?
Reviewing the Technical Review Process
How Effective Is Our Process?
Practicing Giving and Receiving Feedback
Technical Review of Code
Students are Given a Source File to Inspect
How Effective Is Our Technical Review
Process on Code?
Referenced from Prof.Redley of CMU © 2017, Tran Kim Sanh 13 Referenced from Prof.Redley of CMU © 2017, Tran Kim Sanh 14
Referenced from Prof.Redley of CMU © 2017, Tran Kim Sanh 15 Referenced from Prof.Redley of CMU © 2017, Tran Kim Sanh 16
Course Topics
Analyzing & Estimating Requirements
Changes
How To Define The Change
What To Look For
Implementing Requirements Changes –
Parts 1 & 2
Coding the Requirements Changes
Working With Configuration Management
How Accurate Were the Estimates?
Referenced from Prof.Redley of CMU © 2017, Tran Kim Sanh 17 Referenced from Prof.Redley of CMU © 2017, Tran Kim Sanh 18
3
03/03/2021
Course Topics
Testing & Quality
Defining Unit Test Cases
Automating Unit Test as Part of the Build
Process
Customer Satisfaction
What is Customer Satisfaction and How Do
We Achieve It as Software Engineers?
Referenced from Prof.Redley of CMU © 2017, Tran Kim Sanh 19 Referenced from Prof.Redley of CMU © 2017, Tran Kim Sanh 20
Referenced from Prof.Redley of CMU © 2017, Tran Kim Sanh 21 Referenced from Prof.Redley of CMU © 2017, Tran Kim Sanh 22
Referenced from Prof.Redley of CMU © 2017, Tran Kim Sanh 23 Referenced from Prof.Redley of CMU © 2017, Tran Kim Sanh 24
4
03/03/2021
Referenced from Prof.Redley of CMU © 2017, Tran Kim Sanh 25 Referenced from Prof.Redley of CMU © 2017, Tran Kim Sanh 26
Referenced from Prof.Redley of CMU © 2017, Tran Kim Sanh 27 Referenced from Prof.Redley of CMU © 2017, Tran Kim Sanh 28
Referenced from Prof.Redley of CMU © 2017, Tran Kim Sanh 29 Referenced from Prof.Redley of CMU © 2017, Tran Kim Sanh 30
5
03/03/2021
Referenced from Prof.Redley of CMU © 2017, Tran Kim Sanh 31 Referenced from Prof.Redley of CMU © 2017, Tran Kim Sanh 32
6
03/03/2021
Group discussion?
Teamwork presentation