Design & Development Scott Battaglia Rutgers, the State University of New Jersey
Agenda Development Lifecycle Technologies Questions
Reference Applications JA-SIG Central Authentication Service Absence Reporting System Time Reporting System Switch Management Tool
Development Process Gather requirements High level planning Application Development System testing Release
Mission Statement Every application has a purpose or reason for being Clear and succinct representation of the application’s purpose Answer two questions: What are the opportunities or needs that we wish to address? What are we doing to address these needs?
Non-Functional Requirements Define how the software will do something, not what it will do Ex. software performance requirements, software external interface requirements, software design constraints, and software quality attributes
Functional Requirements Specifies a function that a system/software system or system/software component must be capable of performing. Define behavior of the system
Risks Every application has unknowns or risks Affect development time Document them
High Level Planning Iterative and incremental development Define: Milestones Release Candidates General Audience release Phase development
Iterative Development Develop system incrementally Allows developer to take advantage of what was being learned Start with simple implementation of subset of features Iteratively enhance the versions until product completion
Milestones denote reaching an identifiable stage in completion of something Implement some subset of features Generally implemented in terms of use cases
Milestones Generally consist of following phases Design/Analysis Unit Tests Feature implementation Milestone release Client review
Milestones – Design/Analysis Includes use case analysis Architecture/system design (interfaces, domain)
Milestones – Unit Tests Comprehensive unit tests for every interface Usually written before writing actual code
Milestones – Feature Implementation Coding of concrete implementations of interface
Milestones - Release When subset of features is complete, released to target audience Used to gather feedback
Milestones - Feedback Either demo milestone to clients Or give time to review Meet to discuss milestone Changes Enhancements Scrap features Etc.
Release Candidates Denotes feature complete Candidate for release as long as there are no show stoppers Follows iterative process
General Audience Generally only one Considered production release
Important Meetings During development lifecycle meetings are important: Kick off meetings Code Reviews Milestone Reviews Status Meetings Production Meetings After Release Party
Coding Standards Define Naming Conventions Formatting Standards Javadoc Standards Best Practices Leverage known libraries Coding to interfaces Logging Horizontal components …
Technologies - Eclipse
Technologies - CVS
Technologies – Issue Tracking
Technologies – Test Coverage
Technologies – Building
Technologies – Continuous Integration
Technologies - Mailing Lists Useful for distributed projects User support list Developer list Useful for internal projects too Discussions Questions Etc.
Summary Iterative design process Create common standards Maximize usage of technology
Questions Any questions/comments?