<< Chapter < Page Chapter >> Page >

Exercises

Exercises (from the readings, assigned labs, software projects, etc.) will be used to complement the lectures and readings. Exercises are due at the beginning of class as specified in the course schedule.

.Here are some exercises (Software Engineering, Ian Sommerville, Eighth Edition, Addison-Wesley):

  1. What are the differences between generic software product development and custom software development?
  2. What are the important attributes which all software products should have?
  3. What are differences between a software process and a software process model?
  4. Explain why system testing costs are particularly high for generic software products that are sold to a very wide market.
  5. What are the three principal types of critical system? Explain the differences between these.
  6. Suggest reasons why dependability is important in critical systems.
  7. What are the most important dimensions of system dependability?
  8. Why is the cost of assuring dependability exponential?
  9. Explain why programs that are developed using evolutionary development are likely to be difficult to maintain.
  10. Explain how both are waterfall model of the process and prototyping model can be accommodated in the spiral process model.
  11. What are the advantages of providing static and dynamic views of the software process as in the Rational Unifield Process.
  12. Suggest why it is important to make a distinction between developing the user requirements and developing system requirements in the requirements engineering process.
  13. Explain why a software system that is used in a real-world environment must change or become progressively less useful.
  14. Explain why the intangibility of software systems poses special problems for software project management.
  15. Explain why the best programmer do not always make the best software managers.
  16. Explain why the process of project planning is iterative and why a plan must be continually reviewed during a software project.
  17. Briefly explain the purpose of each of the sections in a software project plan.
  18. What is the critical distinction between a milestone and a deliverable?
  19. Identify and briefly describe four types of requirements that may be defined for a computer-based system.
  20. Discuss the problems of using natural language for defining user and system requirements, and show, using small examples, how structuring natural language into forms can help avoid some of these difficulties.
  21. Based on your project (for assignment), draw a data-flow diagram modeling the data processing.
  22. What is the fundamental difference between hardware and software failures?
  23. During the first decades of computers, programming was learned through the guidance of a more experienced programmer, in the way of an apprenticeship. Where in software engineering can you still see the effect of these "good old days"? Compare to other fields of engineering such as construction that has also originally been learned by starting as a handyman at a construction site.
  24. Software is often a part of various devices and systems where malfunction can have a very dramatic effect on people or the entire society - consider for example banking systems, power distribution or hospital equipment. What is (or, what should be) the responsibility of software providers (organizations or individual software engineers) for their work? In some countries software engineering is a certified profession in a similar way as doctors: what are the advantages and disadvantages of this solution? Do you think that it solves the problem above: why / why not?
  25. Explain why the process of project planning is iterative and requires continuous reviewing and revising of the plan. Consider each part of the project plan one by one and try to think of reasons that may cause changes in the part. How could you make it easier to update the plan?
  26. What product, hardware, personnel, and project factors does the project have that should be taken into account as adjustment factors (cost drivers) when computing the final effort estimate?
  27. Suggest reasons why this statement is true - or is it true? What should the project manager of a late software project do to cure the situation?
  28. Give non-functional requirements to your project (for assignments).
  29. Explain why it is almost inevitable that the requirements of different stakeholders will conflict in some ways. How should the project group handle conflicting requirements?
  30. What is the status of modeling in requirements engineering? Why is one model usually not sufficient in the modeling phase?
  31. Create a UML use case diagram of a WWW-based store software. You can concentrate on the actors and use cases. Give a short description of each use case (but don't get into too deep details).
  32. Create a UML class diagram based on aggregates and composition of a structure of a laptop computer.
  33. Create a data flow diagram of an ATM (automatic teller machine).
  34. Create a UML activity diagram of an ATM.
  35. You have been assigned to calculate the number of days between two given dates (the same date = 0 days). Create three different abstractions of your solution.
  36. How do components differ from objects? Why does object-oriented design become easier when a new abstract entity, component, is added between subsystems and objects?
  37. What kind of effects do you see in the use of software product families on requirements engineering, design, implementation, testing and project management?
  38. Why does integration testing reveal errors although unit testing has been done well? Why does system testing reveal errors although integration testing has been done well? Why does beta-testing reveal errors although system testing has been done well?
  39. Standards and defined work processes are an essential part of quality assurance. On the other hand, software engineers sometimes oppose them, claiming that they stifle technological innovation. Give examples of situations where adhering to standards might be harmful. What problems (if any) would bending the rules cause in your example cases?
  40. Software process measurement often involves measuring the work of individual people in the process, such as time spent or faults made in certain tasks. What problems are there in collecting this kind of information and how could these problems be reduced?
  41. Suggest a few application domains where the SEI capability model is unlikely to be appropriate. Give reasons why this is the case. Do you think that some of the process types described by Sommerville (informal, managed, methodical, improving) would be better in describing typical software processes in these application fields?

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Software engineering. OpenStax CNX. Jul 29, 2009 Download for free at http://cnx.org/content/col10790/1.1
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Software engineering' conversation and receive update notifications?

Ask