30
Design & Development Scott Battaglia [email protected] Rutgers, the State University of New Jersey

Design & Development Scott Battaglia [email protected] Rutgers, the State University of New Jersey

Embed Size (px)

Citation preview

Design & Development

Scott [email protected]

Rutgers, the State University of New Jersey

Agenda

Development LifecycleTechnologiesQuestions

Reference Applications

JA-SIG Central Authentication ServiceAbsence Reporting SystemTime Reporting SystemSwitch Management Tool

Development Process

Gather requirementsHigh level planningApplication DevelopmentSystem testingRelease

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 risksAffect development timeDocument them

High Level Planning

Iterative and incremental developmentDefine:

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 featuresGenerally 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 analysisArchitecture/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 clientsOr give time to reviewMeet to discuss milestone

Changes Enhancements Scrap features Etc.

Release Candidates

Denotes feature completeCandidate for release as long as there are

no show stoppersFollows iterative process

General Audience

Generally only oneConsidered 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 processCreate common standardsMaximize usage of technology

Questions

Any questions/comments?