Software Engineering
The area of Software Engineering encompasses all tasks necessary to assist agencies in the management of their software (application systems, data files, databases, and interfaces) from initial conception and planning, through design and development, to maintenance, improvement, and conversion. It includes the performance of these tasks as well as assistance in the acquisition of IT resources to perform these tasks. The general area of life cycle Software Engineering can include studies related to information systems planning as well as the sizing and designing of computer systems on which new or existing software will operate. Typical tasks include, but are not limited to, the following:
- Project planning and oversight
- Review and evaluate existing system architectures
- Conduct hardware, telecommunications, and software inventories
- Develop architectures and architecture transition plans
- Identify or develop and implement applicable life cycle information management standards
- Perform software tool evaluations (e.g., computer-aided software engineering tools)
- Evaluate commercial-off-the-shelf (COTS) and Government-off-the-shelf (GOTS) software
- Evaluate database management systems
- Establishment of software development environment
- System requirements analysis
- System design including interfaces
- Software requirements analysis
- Software design
- Database design
- Software implementation and unit testing
- Unit integration and testing
- Functional component testing
- System qualification testing
- Release management
- Preparation for software transition
- Software configuration management
- Software product evaluation
- Software quality assurance
- Corrective action
- Joint technical and management reviews
- Other technical support activities
- Model, predict, and test software performance
- Modify/adapt COTS/GOTS software
- Develop data standards, data dictionaries, and databases
- Maintenance
- Prepare software maintenance program plans
- Implement software maintenance programs
- Provide on-site and off-site maintenance
- Provide help desk support
- Perform configuration management and change control
- Improvement
- Inventory and analyze existing software
- Prepare software improvement feasibility studies
- Develop software improvement plans
- Transition the improved system to operational environment
- Conversion
- Prepare compliant software conversion studies
- Analyze software conversion feasibility
- Evaluate alternate platform conversion
- Convert software
|