Development and Maintenance Support Tools
Conrad Huang
March 28, 2013
What Are We Doing?
- Developing a web application as a team
- Application
- Web site providing access to the contents
of a back end database
- Target audience
- Web visitors who may know nothing about our app
- Team
- Three members with different roles
What Do We Need?
- Web server
- Serve up content
- Serve up production site for end users
- Serve up test sites for developers
- We will provide this
- Content
- Static HTML pages
- Dynamic HTML pages
- "Dynamic" = varies depending on user action
- Programs generating web output
- For display as static web page
- For processing by dynamic web page
- You will provide this
How Do We Create the Content?
- Write HTML for static text
- Write JavaScript for dynamic content
- Write server-side scripts to support dynamic content
- Fix all issues encountered
- Requirement changes
- Bugs
- Enhancement requests
How Do We Do This?
- Development
- Determine requirements and specification
- Design web application architecture and interface
- Write documents and code
- Revise
- Test
- Publish
- Repeat
- Communications
- Write requirements and specifications
- Write and review design documents
- Propose changes
- Report and track problems
- Announce releases for users
- Get feedback from users
Development
- Production web site
- A stable site for end users
- Created from tested source
- Test sites
- Separate from production site
- Multiple test sites
- Per new feature
- Per developer
- Source code version control
- Multiple branches
- Production release
- Old releases
- Candidate release
- Controlled update
- Merging changes from multiple developers
- Creating production from newly tested source
- History for all source
- Track when and why changes were made
- Recover previous versions for comparison
Tools Supporting Development
- Tools for writing source code
- Interactive development environment (IDE)
- Text editors, e.g., emacs and vi
Communications
- Among developers
- Design documents
- Proposed changes
- Problems and solutions
- With end users
- Announcements
- Examples
- Release notes
- Feedback
- Problem reports
- Suggestions
Tools Supporting Communications
- E-mail
- Wiki
- Issue tracking system
- We use
Trac
for the latter two
- Ease of creating and finding information
- History of updates
- Help answer questions
- When was this bug report files?
- When was it fixed and who did it?
- Why did we add this feature?
- Bonus: access source code repository
Development and Maintenance Tools
- Development: git
- Communications: trac
- Presentations from previous years