CS3043 Assignment 1
Due: Feb. 28, 2011
1. What are the most important differences between generic software product development and custom software development? What might this mean in practice for users of generic software products?
2. Based on your own knowledge of some of the application types discussed in the textbook (chapter 1, section 1.1.2), explain, with examples, why different application types require specialized software engineering techniques to support their design and development.
3. Explain why there are fundamental ideas of software engineering that apply to all types of software systems.
4. Giving reasons for your answer based on the type of system being developed, suggest the most appropriate generic software process model that might be used as a basis for managing the development of the following systems:
a) A system to control anti-lock braking in a car
b) A virtual reality system to support software maintenance
c) A university accounting system that replaces an existing system
d) An interactive travel planning system that helps users plan journey with the lowest environment impact
5. Explain why incremental development is the most effective approach for developing business software systems. Why is this model less appropriate for real-time systems engineering?
6. Suggest why it is important to make a distinction between developing the user requirements and developing system requirements in the requirements engineering process.
7. Explain how the principles underlying agile methods lead to the accelerated development and development of software.
8. When would you recommend against the use of an agile method for developing a software system? Explain your answer.
9. Discover ambiguities or omissions in the following statement of requirements for part of a ticket-issuing systems:
An automated ticket-issuing system sells rail tickets. Users select their destination and input a credit card and a personal identification number. The rail ticket is issued and their credit card account charged. When the user presses the start button, a menu display of potential destinations is activated, along with a message to the user to select a destination. Once a destination has been selected, users are requested to input their credit card. Its validity is checked and the user is then requested to input a personal identifier. When the credit transaction has been validated, the ticket is issued.
10. Rewrite the above description using the structured approach described in chapter 4 of the textbook. Resolve the identified ambiguities in an appropriate way.
11. Write a set of non-functional requirements for the ticket-issuing system, setting out its expected reliability and response time.
12. You have been asked to develop a system that will help with planning large-scale events and parties such us weddings, graduation celebrations, birthday parties, etc.
(a) Modeling entities and their relationships which are involved in planning events and parties using a UML class diagram.
(b) Modeling the process context for such a system that shows the activities involved in planning a party (booking a venue, organizing invitations, etc.), using a UML activity diagram.
13. Develop a sequence diagram showing the interactions involved when a student registers a course in a university. Courses may have limited enrolment, so the registration process must include checks that places are available. Assume that the student accesses an electronic course catalog to find out about available courses.
14. Draw a UML state diagram of the control software for ONE of the follows:
¡¤ An automatic washing machine that has different programs for different types of clothes.
¡¤ The software for a DVD player.
¡¤ A telephone answering system that records incoming messages and displays the number of accepted messages on an LED. The system should allow the telephone customer to dial in from any location, type a sequence of numbers (identified as tones), and play any recorded messages.
15. Explain why design conflicts might arise when designing an architecture for which both availability and security requirements are the most important non-functional requirements.
16. Draw a UML class diagram showing a conceptual view and draw a UML sequence diagram showing a process view of the architecture of ONE of the following systems:
¡¤ An automated ticket-issuing system used by passengers at a railway station
¡¤ A computer-controlled video conferencing system that allows video, audio and computer data to be visible to several participants at the same time.
¡¤ A robot floor cleaner that is intended to clean relatively clear spaces such as corridors. The cleaner must be able to sense walls and other obstructions.
17. For each of the following architectural patterns described in the textbook, describe a real-world or example application system which should be designed using the pattern.
¡¤ Pipe and filter
18. Suggest an architecture for a system (such as iTune) that is used to sell and distribute music on the internet. What architectural patterns are the basis for this architecture? Explain your answer.
19. Using the basic model of an information system, as presented in Figure 6.16 of the textbook, suggest the components that might be part of an information system that allows users to view information about flights arriving and departing from a particular airport.
20. Using the UML graphical notation for object classes, design the following object classes, identifying attributes and operations. Use your own experience to decide on the attributes and operations that should be associated with these objects:
¡¤ A telephone
¡¤ A printer for personal computer
¡¤ A personal stereo system
¡¤ A bank account
¡¤ A library catalog
21. Identify possible objects in ONE of the following systems and develop an object-oriented design for them. Using a UML class diagram and associated explanation to show your design. You may make many reasonable assumptions about the system when deriving the design.
¡¤ A group diary and time management system is intended to support the timetabling of meetings and appointments across a group of co-workers. When an appointment is to be made that involves a number of people, the system finds a common slot in each of their diaries and arranges the appointment for that time. If no common slots are available, it interacts with the user to rearrange his or her personal diary to make room for the appointment.
¡¤ A filling station (gas station) is to be set up for fully automated operation. Drivers swipe their credit card through a reader connected to the pump; the card is verified by communication with a credit company computer, and fuel limit is established. The driver may then take the fuel required. When fuel delivery is complete and the pump host is returned to its holster, the driver¡¯s credit card account is debited with the cost of the fuel taken. The credit card is returned after debiting. If the card is invalid, the pump returns it before fuel is dispensed.
22. For the Observer design pattern described in the textbook, describe a real-world or example application which should be design using the pattern.
23. A small company has developed a specialized product that it configures specially for each customer. New customers usually have specific requirements to be incorporated into their system, and they pay for these to be developed. The company has an opportunity to bid for a new contract, which would more than double its customer base. The new customer also wishes to have some involvement in the configuration of the system. Explain why, in these circumstances, it might be a good idea for the company owning the software to make it open source.
24. It states that ¡°testing can only detect the presence of error, not their absence¡±. Do you agree with this statement? If yes, explain why. If not, use an example to show how?
25. You have been asked to test a method called ¡°catWhiteSpace¡± in a ¡°Paragraph¡± object that, within the paragraph, replaces sequences if blank characters with a single blank charater. Identify testing partitions for this example and derive a set of tests for the ¡°catWhiteSpace¡± method.
26. What is repression testing? Explain how the use of automated tests and a testing framework such as JUnit simplifies repression testing.
27. As a software project manager in a company that specializes in the development of software for offshore oil industry, you have been given the task of discovering the factors that affect the maintainability of the systems developed by your company. Suggest how you might set up a program to analyze the maintenance process and discover appropriate maintainability metrics for your company.
28. Briefly describe the three main types of software maintenance. Use examples to explain why it sometimes difficult to distinguish between them?
29. Under what circumstances might an organization decide to scrap a system when the system assessment suggests that it is of high quality and of high business value?
30. Do software engineers have a professional responsibility to produce code that can be maintained and changed even if this is not explicitly requested by their employer?
Write your answers in a MS Word file with name ¡°cs3043a1.doc¡± or a PDF file with name ¡°cs1043a1.pdf¡±. Submit the file through the course website.