Software Construction – Assignment 1

Total Points: 100

Type the answers to the following in a word document. Your answers will be evaluated for your understanding of the concepts, the clarity of your ideas and your reasoning. I would encourage you to support your answers with real world examples you have seen or come across.

  1. The author of the book presents the flat-earth view and round-earth view of software development in figures 1-1 and 1-2 in chapter 1. Compare and contrast these views using your experience in writing programs. Travel back to a time when you were in an introductory programming course working on simple assignments and later during college or career when you got to write complex code. How did your view evolve over period of time with experience?
  • In CSci 716 – Software Design class, detailed design was covered as part of software design phase. In the book, the author Steve McConnell considers detailed design as part of software construction. What is your take on this? Present your argument as to whether you opine that it should belong to design or construction phase or maybe there is a case for different argument.
  • Chapter 2 presents the importance of using metaphors in software development. Read the article on Metaphors on the follow link: Metaphors and the User Interface by Katalin Szabo for discussion on metaphors. Provide at least 10 examples of metaphors that you have come across using Internet or mobile applications which are not listed in the webpage.

If you are interested in this topic you should read the following NewYorker article on Susan Kare – The Woman Who Gave the Macintosh a Smile

  • What are the parallels the author provides between construction of buildings and software construction and what are the differences? Support your answer with examples.
  • In chapter 3, the author compares the build vs. buy decisions for software construction. Provide examples of projects/applications that would be good fit for building software from ground up from scratch, and projects where buying an existing vanilla version of the solution off- the-shelf would be a better approach rather than trying to reinvent the wheel? Are you aware of any applications that you use in your day today life that used either of the approaches?