Chapter 2.1-2.2 Discussion Questions

  1. So on the whole, is incremental software development becoming more popular than waterfall models? I understand that each have their pros and cons, but I got the impression that incremental software is perhaps the best.

  2. I didn’t quite understand a part in Integration and Configuration. It mentioned something along the lines of “control over system evolution lost as new versions of the reusable components are not under the control of the organization using them.” If the organization re-uses and implements old code into their framework wouldn’t it then be completely up to the organization to either update it or continue using the old-code? I don’t understand how control is lost.

  3. When thinking about the capabilities of a software, does that shape the way you architecturally design the interface?

  4. In incremental development, do programmers run tests after each increment or when the entire software is complete?

  5. How deep should prototyping go? How functional should they be, and what kinds of dysfunction are generally accepted in a prototype?

  6. When discussing changing specifications, a commonly accepted criticism model is the "like-dislike-change" model: presenting something you really liked about the existing solution, presenting something you didn't like about the solution, and presenting something that you would change about the solution, either to fix your dislike or to improve some aspect of the solution. What are some other ways to provide constructive criticism, and how do you react to poor client feedback?

  7. Who is involved in the writing of the documents during the software specification process? Do the programmers/ developers write the documents, or are there designated writers for them?

  8. Are there any downsides to beta testing? Is it the most effective way to remedy problems in the early stages of the software being developed?

  9. Why is it useful to so clearly and lucidly distinguish three methods of development if most projects end up using a combination of all three. Why not just consider all of the methods together as a certain toolbox for problem solving and then string together whatever stage comes after another in a process that makes sense in the context of the project one is working on?

  10. It seems like requirements elicitation could be a part of the process that gets out of hand if the amount of prototypes that a team develops are allowed to go past a certain number. In terms of effectively limiting the amount of work that might go into figuring out what kind of requirements are necessary to define a project outline, how might that be done in a manner not to limit the potential of the project but also keep the project on track?

  11. I feel like I have a good understanding of how to carry out requirements elicitation, analysis, and specification (at least informally). However, how would we go about checking requirements for “realism, consistency, and completeness” and what do these terms mean?

  12. What are some examples of platform information and data descriptions which are given as design inputs in Figure 2.5?
  13. Discuss the ethics of using found software. When is it ok? What kind of credit is given? Both academically and professionally.

  14. Discuss the difference between requirements analysis and specification.

  15. In the software validation process, why is it that some models have the programmer do component testing themselves and others have independent testers?

  16. Can the design step of the software development process be understood as developing an algorithm for the project?
  17. What are some advantages of waterfall method over incremental method?

  18. Which method is more suitable for which kind of projects?

Topic revision: r1 - 2020-01-16 - JimSkon
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2020 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback