Software Engineering | Book (10th Edition)
Software Engineering | Book (10th Edition)
Software Engineering | Book (10th Edition)
Directions: Fully answer each of the questions below. Some questions may consist of several parts; for full credit, all parts of the question must be answered. Submit a type-written (MS Word) or PDF document containing your answers.
- You may use your textbook, the Internet(please don’t copy word for word on the internet if you’re using the internet), or any other inanimate source as a reference.
- Provide a reference page containing all the sources you used in answering the questions.
- For the discussion type questions, answer each in 200 words or less.
- Do not simply cut and paste content from the web to answer a question. While it is okay to use web content as a reference, you should formulate your own response to a question.
- This is NOT a group assignment; you are not allowed to work with other classmates.
- Use consistent formatting throughout your document.
Questions
- 1.Describe the difference between functional and nonfunctional software requirements. (4 points)
- 2.What is ethnography and describe how it is used in requirements elicitation? (4 points)
- 3.Explain what is meant by a system stakeholder. (4 points)
- 4.The Unified Modeling Language (UML) has become the standard for modeling the development of software systems. The latest version of UML consists of 14 different diagrams. Provide a brief description of what is illustrated/shown in the following UML diagrams: (6 points)
- 5.In regards to UML class diagrams, explain the difference between aggregation, association and composition, and provide an example illustrating the concepts. (8 points)
- 6.Describe what is meant by a client server architecture. What is a multitier client-server architecture? (4 points)
- 7.What is a software engineering design pattern? How do design patterns support software reuse? (6 points)
- 8.Describe the Model-View-Controller (MVC) design pattern. What are the benefits of MVC? (6 points)
- 9.What is version control and why are version control systems important in software development? (6 points)
- 10.Describe what is meant by a software stack. (4 points)
- 11.Differentiate between the technologies used in the LAMP, WAMP, and MEAN web development stacks. (6 points)
- 12.Discuss the difference between software verification and validation. Explain why validation can be a particularly difficult process. (6 points)
- 13.What are software inspections? What types of errors are unlikely to be discovered through software inspections? (6 points)
- 14.Discuss the goals of performance testing, load testing, and stress testing. (6 points)
- 15.Briefly explain why integration testing is necessary when individual components have already been tested through unit testing and software inspections. (4 points)
- 16.Black-box and white-box testing are often used to describe two categories of software testing. Describe the differences between black-box testing and white-box testing. (6 points)
- 17.Describe what is meant by the cyclomatic complexity of source code. How is the cyclomatic complexity of a program calculated? (6 points)
- 18.Pick 2 of your major functional requirements (Requirements-based Unit testing – see Chapter 8 & examples in eCourses) and develop test cases for them. Test Cases should contain the following sections: (8 points)
- sequence diagram
- class diagram
- deployment diagram
1. Test Case Author
2. Creation Date
3. Requirement being tested
4. Purpose
5. Preconditions
6. Test Data
7. Expected Results
References