CSC 480                                                 Fall 2001

10/09/01                                                                 Midterm Exam                                       Test Form A

 

Name:

 

Instructions:

    Answer all questions in the answer sheet provided. On Multiple Choice, choose the ONE BEST ANSWER.

    Remember to put the letter of your test form on the top of your answer sheet.

    Hand in Test, Answer Sheet, and Help Sheets, all with your name.

    ALSO – PLEASE PICK UP, FILL OUT, AND TURN IN TIME SURVEY FOR GROUPS BEFORE YOU LEAVE TONIGHT

 

Multiple Choice

(3 points each)

 

1. Which of the following is true of software engineering?

A)     Software engineering is theory driven; it makes many assumptions that must be relaxed in order to fit the real world

B)      Software engineering is an attempt to follow a systematic and organized approach to software development

C)      Software engineering is another name for systems engineering

D)      All of the above

E)       None of the above

 

2. Which of the following could be considered computer-aided software engineering tools?

A)     Integrated development environments

B)      Graphical interface builder for fast user interface construction

C)      Diagram editors for building system models such as E/R diagrams and/or Data Flow Diagrams.

D)      All of the above

E)       None of the above

 

3. Which of the following is true about non-functional requirements?

A)     May refer to system as a whole instead of part of the system

B)      May include requirements pertaining to the development process to be followed

C)      In some systems they may be more important than functional requirements

D)      All of the above

E)       None of the above.

 

4. In specifying system requirements

A)     One good means is via forms (or templates) that help to focus otherwise unstructured natural language

B)      The most popular and commonly used method is mathematical specification using finite-state machines.

C)      A program description language can express any requirement that English language can.

D)      All of the above

E)       None of the above

 

 

True/False  - If false, explain why.

(3 points each)

 

5. The biggest savings from buying a system instead of building one is that no systems specification or design work is necessary.

 

6. It is generally agreed upon that an evolutionary approach is the superior approach to software development and is preferable for all projects.

 

7. When interviewing users about their requirements for a new system it is best if only one team member attends the interview.

 

8. Requirements documents should always include the user requirements, not the system requirements.

 

9. One significant problem that detracts from successful requirements elicitation and analysis is that the stakeholders may not know what they really want / need.

 

10. There can be particular advantage to combining observational methods with prototyping, doing each benefits the other.

 

 

Completion (fill in the blank) (mostly key terms (not all of which are a single word))

(3 points each)

 

11. _______ are properties of a system as a whole rather than properties that can be derived from the properties of components of a system, for instance, the reliability or usability of a system. These can only be assessed and measured once components have been integrated. Frequently they are the subject of non-functional requirements.

 

12. A(n) ________ model presents an abstract view of the subsystems making up a system. It does not show any details of the interaction between subsystems, but merely shows subsystems as “block”s.

 

13. A(n) ________ test involves real potential users / customers using the system to ensure that the system meets their requirements, generally carried out using real data, instead of  artificial test data.

 

14. Project ________ are the end-points of a software development activity. These should involve a measurable way judging progress in order to facilitate monitoring of progress. Sometimes these will involve deliverables to customers; other times progress will only be checked internally.

 

15. The ________ is the longest path through the network illustrating project tasks. Activities along this must be completed on time or the whole project will be delayed.

 

16. ________ are descriptions of services that a system should provide and constraints on the system. These are developed as part of determining what the system must do.

 

17. In eliciting requirements, sometimes team members will observe people working with / in a system. This observational approach is sometimes called ________. It has been found to be valuable in identifying requirements that users forgot during interviews and/or which relate to  “unofficial” informal processes in users’ everyday work.

 

 

Short Answer

(5 points per question except where specified otherwise)

 

18. What is the difference between software engineering and system engineering?

 

(6 points)

19. What are the major differences between a waterfall process and an evolutionary approach to software development?

 

20. Why is software evolution a concern for software engineers? (at least 2 good reasons)

 

(6 points)

21. Why is managing software development more challenging than managing a lot of other types of projects? (several reasons)

 

22. Why is it important to divide projects into tasks with relatively short duration?

 

23. Distinguish the differences between user requirements and system requirements.

 

24. Why is catching requirements errors particularly important?

 

 

Problems

(6 points each)

 

25. There is a risk of converting to a new version of the Microsoft Windows Operating System causing problems with our software development schedule. Identify “Avoidance”, “Minimization” and “Contingency” plans for this risk.

 

26. Consider the following statement of a requirement:  “Advisors should be able to access advisees’ transcripts to quickly check on progress toward the degree”. Classify this requirement in terms of:

                User vs. System requirement

                Functional vs Non-functional requirement

Explain you classifications.