Standards in this Framework
| Standard | Description | 
|---|---|
| 1.1.1 | Demonstrate knowledge of nonfunctional requirements (e.g., security, integrity response time, reliability, support and documentation). | 
| 1.1.2 | Clarify specifications using questioning techniques. | 
| 1.1.3 | Gather information using interviewing strategies. | 
| 1.1.4 | Identify input and output requirements. | 
| 1.1.5 | Identify system processing requirements. | 
| 1.1.6 | Identify hardware, networking and software system functional requirements. | 
| 1.2.1 | Gather information on problems from users. | 
| 1.2.2 | Perform workflow analysis to determine user needs. | 
| 1.2.3 | Analyze existing procedures. | 
| 1.2.4 | Define business problem to be solved by the application. | 
| 1.3.1 | Access needed information using company and manufacturers' references. | 
| 1.3.2 | Review collected information with customer. | 
| 1.4.1 | Demonstrate knowledge of how to use software methodologies to analyze a real-world problem. | 
| 1.4.2 | Identify constraints. | 
| 1.4.3 | Demonstrate knowledge of modeling and analyzing functional and data requirements. | 
| 1.5.1 | Demonstrate knowledge of the use, structure and contents of a requirements specification document. | 
| 1.5.2 | Define system and software requirements. | 
| 1.5.3 | Define informal and formal specifications. | 
| 1.5.4 | Resolve conflicting requirements. | 
| 1.5.5 | Review and verify specifications with customer. | 
| 2.1.1 | Identify resources and risks. | 
| 2.1.2 | Demonstrate knowledge of cross-functional team structures and team members' roles. | 
| 2.2.1 | Define scope of work to meet customer needs. | 
| 2.2.2 | Demonstrate knowledge of the key functions and subsystems of the software product. | 
| 2.2.3 | Demonstrate knowledge of software development process and issues. | 
| 2.2.4 | Demonstrate knowledge of the system life-cycle approach. | 
| 2.3.1 | Demonstrate knowledge of project budgeting, scheduling, and control issues related to software development. | 
| 2.3.2 | Demonstrate knowledge of software development methodology. | 
| 2.3.3 | Develop implementation plan. | 
| 3.1.1 | Identify new technologies relevant to IT. | 
| 3.1.2 | Assess the importance of new technologies to future developments. | 
| 3.1.3 | Identify system processing requirements. | 
| 3.1.4 | Identify data communication trends and major current issues. | 
| 3.2.1 | Identify new and emerging classes of software and IT technologies. | 
| 3.2.2 | Determine compatibility of hardware and software. | 
| 3.3.1 | Identify the elements of the information processing cycle. | 
| 3.3.2 | Identify required hardware. | 
| 3.4.1 | Identify metrics for measurements. | 
| 3.4.2 | Measure increases in productivity realized by the implementation of information systems. | 
| 3.4.3 | Identify new and emerging drivers and inhibitors of information technology change. | 
| 4.1.1 | Demonstrate knowledge of software development environment. | 
| 4.1.2 | Use prototyping techniques. | 
| 4.1.3 | Use appropriate configuration management tools. | 
| 4.1.4 | Use appropriate issues tracking tools. | 
| 4.1.5 | Demonstrate knowledge of reuse and components. | 
| 4.2.1 | Use appropriate requirement analysis tools. | 
| 4.2.2 | Use appropriate modeling and analysis tools. | 
| 4.2.3 | Use requirement tracking tools. | 
| 4.2.4 | Demonstrate knowledge of software reuse, design patterns, and components. | 
| 4.3.1 | Develop programs using appropriate language. | 
| 4.3.2 | Use appropriate development environment for the selected language. | 
| 4.3.3 | Use user interface development tools. | 
| 5.1.1 | Identify the use of program design tools in a software development process. | 
| 5.1.2 | Identify roles of team members/customers in the software development process. | 
| 5.1.3 | Identify current information life cycle models. | 
| 5.1.4 | Create design specifications for a computer application. | 
| 5.1.5 | Describe trade-offs involved in design choices. | 
| 5.1.6 | Summarize the use of principles of effective information management, information organization, and information-retrieval skills when designing a software application. | 
| 5.1.7 | Demonstrate knowledge of the information system life cycle. | 
| 5.1.8 | Demonstrate knowledge of system analysis issues related to design, testing, implementation, and maintenance. | 
| 5.1.9 | Record and analyze the process. | 
| 5.2.1 | Explain the importance of performance, security, and resilience of networks. | 
| 5.2.2 | Describe communication protocol for exchanging information via networks. | 
| 5.2.3 | Describe properties of communication protocols. | 
| 5.2.4 | Describe the choice of networks based on their physical or organizational purpose and how usage and security differ between these types of networks. | 
| 5.2.5 | Identify the organizational scope of different types of networks. | 
| 5.2.6 | Identify the hardware required for different types of networks. | 
| 6.1.1 | Demonstrate knowledge of the hardware-software connections. | 
| 6.1.2 | Demonstrate knowledge of the concepts of data and procedural representations. | 
| 6.1.3 | Demonstrate knowledge of the basic principles for analyzing a programming language. | 
| 6.1.4 | Demonstrate knowledge of the basics of structured, object-oriented language. | 
| 6.1.5 | Demonstrate knowledge of how a programming language can support multitasking and exception-handling. | 
| 6.2.1 | Demonstrate knowledge of how to resolve program implementation issues. | 
| 6.2.2 | Demonstrate knowledge of software development issues. | 
| 6.2.3 | Demonstrate knowledge of code analysis issues related to design, testing, implementation, and maintenance. | 
| 6.2.4 | Demonstrate knowledge of how to design and implement programs in a top-down manner. | 
| 6.2.5 | Demonstrate knowledge of how to translate algorithmic and modular designs to develop a program. | 
| 6.2.6 | Demonstrate knowledge of structured/modular programming. | 
| 6.2.7 | Demonstrate knowledge of how programming control structures are used to verify correctness. | 
| 6.2.8 | Use code development tools (e.g., debugger, integrated development environments). | 
| 6.3.1 | Describe the range of languages used in software development. | 
| 6.3.2 | Demonstrate knowledge of current key programming languages and the environment in which they are used. | 
| 6.3.3 | Translate data structure and program design into code in an appropriate language. | 
| 6.3.4 | Demonstrate knowledge of key constructs and commands specific to a language. | 
| 6.4.1 | Use appropriate programming language. | 
| 6.4.2 | Analyze and prepare logic using program flowchart. | 
| 6.4.3 | Analyze and prepare logic using at least one alternative to flowcharting, such as pseudo-coding. | 
| 6.4.4 | Review design. | 
| 6.4.5 | Compile and debug code. | 
| 6.4.6 | Prepare code documentation. | 
| 6.4.7 | Prepare unit testing plan. | 
| 6.4.8 | Conduct unit testing and bug fixes. | 
| 6.5.1 | Access needed information using company and manufacturers' references. | 
| 6.5.2 | Divide design specifications into logical process blocks. | 
| 6.5.3 | Identify parameters. | 
| 6.5.4 | Follow specifications or drawings. | 
| 6.5.5 | Record process utilizing flowcharts and/or step-by-step documentation. | 
| 6.5.6 | Record data. | 
| 6.6.1 | Identify unexpected results. | 
| 6.6.2 | Review and revise code. | 
| 7.1.1 | Access needed information using appropriate reference materials. | 
| 7.1.2 | Define test procedures. | 
| 7.1.3 | Analyze requirement and design specifications. | 
| 7.1.4 | Develop test cases using requirements and design specification. | 
| 7.2.1 | Perform integration testing. | 
| 7.2.2 | Perform regression testing. | 
| 7.2.3 | Help with user-acceptance test. | 
| 7.2.4 | Validate user documentation. | 
| 7.2.5 | Document test results. | 
| 7.2.6 | Document errors discovered. | 
| 7.2.7 | Perform defect tracking. | 
| 7.3.1 | Record error correction procedures and actions. | 
| 7.3.2 | Record results from error corrections and actions. | 
| 8.1.1 | Demonstrate knowledge of Software QA process. | 
| 8.1.2 | Demonstrate knowledge of the standards/requirements for Software QA. | 
| 8.1.3 | Develop team relationships to support Software QA tasks. | 
| 8.2.1 | Identify standards and issues related to I/O programming and design of I/O interfaces. | 
| 8.2.2 | Use customer satisfaction in determining product characteristics. | 
| 8.2.3 | Recognize the relationship between dependability, functionality, ease of use, etc. | 
| 8.2.4 | Conduct code walkthrough and/or inspection. | 
| 8.2.5 | Follow established procedures for testing, identifying problems and tracking resolutions. | 
| 9.1.1 | Identify maintenance and support requirements. | 
| 9.1.2 | Apply information and data analysis techniques. | 
| 9.1.3 | Define scope of work to meet customer support needs. | 
| 9.2.1 | Access needed information using appropriate reference materials. | 
| 9.2.2 | Provide help to first line user-support personnel to answer user questions. | 
| 9.2.3 | Provide troubleshooting for software. | 
| 9.2.4 | Perform system-tuning functions. | 
| 9.2.5 | Diagnose problems within system. | 
| 9.2.6 | Perform technical functions required by customer/user. | 
| 9.2.7 | Communicate and document technical support provided. | 
| 9.3.1 | Utilize organizational procedures to communicate and document maintenance tasks. | 
| 9.3.2 | Identify and analyze problem(s). | 
| 9.3.3 | Analyze and propose solutions. | 
| 9.3.4 | Implement solutions in code and documentation. | 
| 9.3.5 | Release software and documentation updates according to procedures. | 
| 10.1.1 | Identify appropriate database type based on customer requirements, availability of software and hardware resources, and distribution specifications, etc. | 
| 10.1.2 | Apply information and data analysis specifications to create a database model using techniques such as Entity Relationship Diagramming. | 
| 10.1.3 | Analyze and normalize the developed database model looking for and resolving potential problems. | 
| 10.1.4 | Analyze the security needs for the database. | 
| 10.2.1 | Create a database from model specifications using both program code and Graphic User Interface (GUI) processes when provided by the database software. | 
| 10.2.2 | Verify that all possible security safeguards are in place. | 
| 10.2.3 | Populate the database created with test data. | 
| 10.2.4 | Perform database queries to analyze database functionality and diagnose problems. | 
| 10.2.5 | Perform database troubleshooting and system-tuning functions. | 
| 10.2.6 | Perform technical functions required by customer/user. | 
| 10.2.7 | Communicate and document technical support provided. | 
| 10.2.8 | Perform standard maintenance on the database. | 
| 10.2.9 | Release software and documentation updates according to procedures. | 
| 10.3.1 | Develop scripts and forms that permit access via websites to the database. | 
| 10.3.2 | Identify and analyze potential security problems for web access to the database. | 
| 10.3.3 | Propose security solutions to web-based security problems. | 
| 10.3.4 | Implement solutions in code and documentation. |