Standards in this Framework
Standard | Lessons |
---|---|
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. |
|