Anda di halaman 1dari 3

CPSC 6177 Homework Set 1

Advanced Software Design Due Wednesday, September 1, 2010

COMMENT: All answers I read were supported by good arguments. There is no question for which I had a preconceived correct answer. In stead, I graded on the logic of the answer. For that reason, different answers might each get full credit. 1. Exercise 1.3 on page 25 of the book. What are the four important attributes that all professional software should have. Suggest four other attributes that may sometimes be significant.

ANSWER: The four standard attributes emphasized by the textbook are maintainability, dependability (security, safety, and availability), performance, and usability. Other attributes might include: reusability, distributability, portability, and interoperability. 2. Exercise 1.8 on page 25 of the book. Give a reasoned opinion here. Discuss whether professional engineers should be certified in the same way as doctors or lawyers.

ANSWER:

Here is a small list of advantages and disadvantages. The student vote on this is 11 Yes and 3 No. Advantages of certification Certification is a signal to employers of some minimum level of competence. Certification improves the public image of the profession. Certification generally means establishing and checking educational standards and is therefore a mechanism for ensuring course quality. Certification implies responsibility in the event of disputes. Certifying body is likely to be accepted at a national and international level as speaking for the profession. Certification may increase the status of software engineers and attract particularly able people into the profession. Disadvantages of certification Certification tends to lead to protectionism where certified members tend not to protect others from criticism. Certification does not guarantee competence merely that a minimum standard was reached at the time of certification. Certification is expensive and will increase costs to individuals and organizations. Certification tends to stultify change. This is a particular problem in an area where technology developments are very rapid.

3. Exercise 2.1 on page 54 of the book. 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 system to control anti-lock braking in a car A virtual reality system to support software maintenance A university accounting system that replaces an existing system An interactive travel planning system that helps users plan journeys with the lowest environmental impact ANSWER: Here is one set of opinions. Any wellreasoned answer was accepted. 1. Anti-lock braking system: This is a safety-critical system so requires a lot of upfront analysis before implementation. It certainly needs a plan-driven approach to development with the requirements carefully analyzed. A waterfall model is therefore the most appropriate approach to use, perhaps with formal transformations between the different development stages. 2. Virtual reality system: This is a system where the requirements will change and there will be an extensive user interface components. Incremental development with, perhaps, some UI prototyping is the most appropriate model. An agile process may be used. 3. University accounting system: This is a system whose requirements are fairly wellknown and which will be used in an environment in conjunction with lots of other systems such as a research grant management system. Therefore, a reuse-based approach is likely to be appropriate for this. 4. Interactive travel planning system: System with a complex user interface but which must be stable and reliable. An incremental development approach is the most appropriate as the system requirements will change as real user experience with the system is gained. 4. Exercise 2.7 on page 55 of the book. Explain why systems developed as prototypes should not normally be used as production systems.

ANSWER: Here one should note that prototypes are often used as production systems, due to the pressures of development. However, they have several faults. a) The user interface may be minimal and not intuitive. b) There may be no error detecting or handling code. c) Such error messages as there are will likely be vague. d) Generally, prototypes are not viewed as high quality products, but just tools to aid the development process.

5.

Exercise 2.10 on page 55 of the book. There will be extra credit for any correct discussion of either the cotton gin or the silk weaving loom, both of which date from the early 19th century.

ANSWER: Here the most common problem seems to focus on displaced workers, either those who are made unnecessary by the innovations, or those who lack the education or talent to use the innovations. As for the cotton gin, it had a major negative effect on American history. In one sense, the cotton gin can be seen as a cause of the Civil War. Around the year 1800, cotton production was so expensive that slavery seemed to be on the way out. The introduction of the cotton gin made cotton production, hence slavery, profitable again. Admittedly, this is a simplistic explanation, but it does have points. The silk weaving loom to which I refer is one by the French inventor Jacquard. It was steam powered and used punched cards to guide the loom into weaving the correct pattern. It put a lot of people, mostly young boys (remember child labor was still fashionable in the 19th century) out of work. These displaced workers threw their wooden shoes, called sabots, into the looms and wrecked them. Before that time, the word sabotage meant to make a loud noise with a wooden shoe. After that time, the word took on its modern meaning. The automobile assembly line, first used effectively by Henry Ford, provides a good example of a number of features. When automobiles were handbuilt individually, the worker had to be a skilled craftsman. The line allowed each worker to be given one task or a small number of tasks (mount a door, etc.), so that the skill level was much reduced. Another benefit was the increased production of cars and decrease in their price.

Anda mungkin juga menyukai