Prof. Dr.
Nizamettin AYDIN
Construction
naydin@[Link]
[Link]
Key Definitions
• Construction
– is the development of all parts of the system:
• the software itself, documentation, and new operating MANAGING PROGRAMMING
procedures.
• Testing
– helps ensure that the system performs as outlined in the
specifications.
• Documentation
– provides information to make the system easier to use
and repair.
Project Manager’s Tasks During Programming The Programmer Paradox
• Assigning the programmers • More is not always better than less!
• Coordinating the activities • After the “right” number of people are assigned to a
programming task, adding more people slows down
• Managing the schedule rather than speeds up completion of the project.
• Projects requiring a large team should be broken into
a series of independent, smaller parts.
5 6
1
Coordinating Activities Managing the Schedule
• Weekly (hopefully brief) meetings • Use initial time estimates as a baseline
• Create and follow standards • Revise time estimates as construction proceeds
• Organize programmer’s work areas • Fight against scope creep
– Development area • Monitor “minor” slippage
– Testing area • Create risk assessment and track changing risks
– Production area
• Fight the temptation to lower quality to meet
• Implement change control mechanisms unreasonable schedule demands
• Use program log to monitor program changes
7 8
Avoid Classic Mistakes
1. Research-oriented development
If you use state-of-the art technology, lengthen planned time DESIGNING TESTS
2. Using “low-cost” personnel
If using a significant number of entry level personnel, lengthen
planned time
3. Lack of code control
Use source code library to keep programmers from changing
the same code at the same time
4. Inadequate testing
Always allocate sufficient time for formal testing
Testing Philosophy Test Plan
• It is dangerous to test early modules without an
overall testing plan
• It may be difficult to reproduce sequence of events
causing an error
• Testing must be done systematically and results
documented carefully
11 12
2
Categories of Testing Stub Testing
• Stub testing
– Tests control structures before all modules are written
• Unit testing
– Tests each module to assure that it performs its function
• Integration testing
– Tests the interaction of modules to assure that 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
13 14
Unit Testing Integration Testing
• Black Box Testing • User interface testing
– Focuses on whether the unit meets requirements – Tests each interface function
stated in specification • Use-scenario testing
– Ensures that each use scenario works correctly
• White-Box Testing
• Data flow testing
– Looks inside the module at actual code
– Tests each process in a step-by-step fashion
• System interface testing
– Ensures data transfer between systems
15 16
System Testing Acceptance Testing
• Requirements Testing • Alpha Testing
– Ensures that integration did not cause new errors
– Performed by users to assure they accept the system;
• Usability Testing
• frequently repeats earlier tests
– Tests how easy and error-free the system is in use
• Security Testing • Beta Testing
– Assures that security functions are handled properly – Uses real data, not test data.
• Performance Testing • Actual users monitor for errors or needed improvements.
– Assures that the system works under high volumes of
activity
• Documentation Testing
– Analysts check the accuracy of documentation
17 18
3
Error Discovery Rates By Test Stage Your Turn
• Suppose you were in charge of developing an ATM
for a bank
• What elements would you include in a testing plan
before putting the system into operation?
19 20
Types of Documentation
• System Documentation
DEVELOPING – Intended to help programmers and analysts understand
and maintain the system after it is installed
DOCUMENTATION • User Documentation
– Intended to help users operate the system
22
Producing Documentation Value of Online Documentation
• High quality documentation takes about 3 • Searching is simplified
hours per page or 2 hours per screen • Information can be presented in multiple
• The task should not be left to the end of the formats
project
• New methods of interacting with
• Time required to develop and test user
documentation should be built into project plan documentation are possible (e.g., tool tips)
• On-line documentation is growing in • Less costly than paper documentation
importance
23 24
4
Types of User Documentation Organizing Online Reference Documents
• Reference documents
• Procedures manuals
• Tutorials
25 26
Sources of Documentation Topics Sources of Navigation Terms
• The commands and menus in the user interface • The commands and menus in the user interface
• Users’ business tasks (what they need to do) • Major system concepts (e.g., data entities)
• Definitions of terms • Set of tasks performed by users
• Synonyms for the items above (users don’t always use
our terminology).
27 28
A Help Topic in Microsoft Word Guidelines for Crafting Documentation Topics
• Use the active voice
• Minimize use of “to be” verbs
• Use consistent terms
• Use simple language
• Use friendly language
• Use parallel grammatical structure
• Use steps correctly
• Use short paragraphs
29 30
5
Summary
• The project manager must assign tasks to
programmers, assure coordination of program
development and schedule code production and adjust
the schedule as development continues.
• Test planning must be done carefully and a variety of
methods all contribute to developing quality software.
• Documentation should begin well before the
completion of coding and testing and address needs of
maintenance programmers and system users.
31