16.01.2015 Views

CS2013-final-report

CS2013-final-report

CS2013-final-report

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

• Explain why the creation of correct program components is important in the<br />

production of high-quality software.<br />

• Identify common coding errors that lead to insecure programs (eg, buffer<br />

overflows, memory leaks, malicious code) and apply strategies for avoiding such<br />

errors.<br />

• Conduct a personal code review (focused on common coding errors) on a<br />

program component using a provided checklist.<br />

• Describe how a contract can be used to specify the behavior of a program<br />

component.<br />

• Refactor a program by identifying opportunities to apply procedural abstraction.<br />

• Analyze the extent to which another programmer’s code meets documentation<br />

and programming style standards.<br />

• Apply consistent documentation and program style standards that contribute to<br />

the readability and maintainability of software.<br />

SE<br />

Core-Tier1:<br />

• List the key components of a use case or similar description of some behavior<br />

that is required for a system.<br />

• Describe how the requirements engineering process supports the elicitation and<br />

validation of behavioral requirements.<br />

• Interpret a given requirements model for a simple software system.<br />

• Use a design paradigm to design a simple software system, and explain how<br />

system design principles have been applied in this design.<br />

• Within the context of a single design paradigm, describe one or more design<br />

patterns that could be applicable to the design of a simple software system.<br />

Core-Tier2:<br />

• Discuss common behaviors that contribute to the effective functioning of a team.<br />

• Create and follow an agenda for a team meeting.<br />

• Identify and justify necessary roles in a software development team.<br />

• Understand the sources, hazards, and potential benefits of team conflict.<br />

• Apply a conflict resolution strategy in a team setting.<br />

• Use an ad hoc method to estimate software development effort (e.g., time) and<br />

compare to actual effort required.<br />

• List several examples of software risks.<br />

• Describe the impact of risk in a software development lifecycle.<br />

• Describe different categories of risk in software systems.<br />

• Describe the difference between centralized and distributed software<br />

configuration management.<br />

• Describe how version control can be used to help manage software release<br />

management.<br />

• Identify configuration items and use a source code control tool in a small teambased<br />

project.<br />

- 222 -

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!