Software Development
A Proposed Process and Methodology
Overview
Requirements
A requirement identifies a capability, characteristic, or quality that an application must provide. Each requirement should be traceable, attainable, and unambiguous.
Ask: • What is the overall scope and goal? • What tasks the users want to use the software to do?• What are the key features and functions?
Identify the requirements needed to propose a solution
Requirements document
Design by Feature
Design the application as a set of features
Feature Set Document, Design Model
Design by Feature
• A feature set is a collection of small blocks of client-valued functionality• Each feature is trackable, measurable and doable with a single iteration
A feature set is composed of features
Design by Feature
Procedure:
• Analyze Requirement• Partition requirement into Features• Identify Features
Design By Feature
Example:
Feature set: Making a product sale to a customerMajor Feature: Product-sale management
Features:1. Calculate the total of a sale.2. Assess the fulfillment timeliness for a sale.3. Calculate the total purchases by a customer.4. Calculate the tax for a sale.5. Assess the current preferences of a customer.
Design By Feature
1. For each Feature Set, produce Use Case Diagrams2. For each Use Case Diagram, produce Class diagram3. Where needed for clarity, produce Activity and Sequence Diagrams4. Diagrams “just good enough”5. Review diagrams with Team Members
Implementation
• 2 week iterations
• Build by feature using design model diagrams
• Develop unit test for each feature
• Brief code review with another developer or team members
• Check into source control
Implement the solution specified in the Design Model.
Unit Tests, fully tested and working application that fulfills the requirements.
Operational Testing
Insure the application meets the user’s requirements
A verifiable application
• Formal testing conducted by user to determine whether the application meets the requirements
• User determines whether to accept the application
• Defects tracked and prioritized
Deployment
• Produce Component Diagrams that depict the distributable components of the application.
• Produce Deployment Diagrams that depict the structure of the configuration of the hardware and software components that make up the run-time system.
Describe the run-time environment
Component Diagrams, Deployment Diagrams
Software Development
Appendix
Appendix
The application transitions through various operational states.
Appendix
Workstation Development Reference Model OperationalTesting
Production
Developers code the feature and run unit tests on their workstations. When satisfied with the results the code is checked into the source code repository.
An automated build script retrieves the source code, builds it, installs it and executes the Test Suite and regression tests.
Provides the reference standard to insure ITE compatibility. Demo server.
User acceptance testing. Mirrors the production environment where appropriate.
Golden Code !!
Appendix
After the feature is checked into the source code repository, the entire application is tested to ensure the features integrate correctly.
An automated build script:1. Gets the source code2. Builds the application3. Installs the application 4. Executes the Test Suite5. Executes regression testing
A pass/fail report is emailed to the project leader.