- Software engineering involves wider responsibilities than simply the application of technical skills. Software engineers must behave in an honest and ethically responsible way if they are to be respected as professionals. Ethical behavior is more than simply upholding the law but involves following a set of principles that are morally correct. Discuss, in relation to the ACM/IEEE Code of Ethics, the ethics of a company releasing software without disclosing known defects. Your answer should address each of the principles of the ACM/IEEE Code of Ethics. Justify any assumptions that you make.
- Compare and contrast the Waterfall and V Models of Software Development to the Scrum Process. Support your answer by clearly identifying and describing the phases of the Waterfall Model, V Model, and Scrum process.
A process consists of skilled people employing documents, tools, and other resources to plan, perform, and improve tasks to produce the desired result.
- Design a Process Description Template that could be employed to describe a Software Process. Identify and explain each section in your Process Description Template.
- Employ the Process Description Template designed above to describe the Test-Driven Development Process. Test-Driven Development is Specification Driven and based on designing and writing unit tests for each unit of code before writing the product code itself.
- In the context of the Capability Maturity Model Integration (CMMI) identify and describe the relationship of the following terms to each other:
Process Area, Specific Goals, Generic Goals, Specific Practices, Generic Practices, Typical Work Products, and Sub-practices.
- Explain why program inspections are an effective technique for discovering errors in a program. What types of errors are unlikely to be discovered through inspections?
- Describe three types of software process metrics that may be collected as part of a process improvement process. Give one example of each type of metric.