11-26-2014, 10:35 PM
For those of you who might consider taking Software Engineering at TESC I thought I would post the written assignment from the last module. This module covers 129 pages of complex materials and this is the written assignment to go along with the reading. Each of these chapters could have easily been a module on its own.
The textbook for this course is written like a graduate thesis that never ends. The author tries to cover far too many approaches without a coherent path through the text. It is one of the worst examples I have seen of an academic text. It appears the author and publisher tried to wring too many editions out of this text by cutting and pasting. It is obvious why the text has two stars on Amazon. After reading a few pages, I find myself scratching my head and wondering what the heck the author was trying to say.
The textbook is referred to as encyclopedic by one of the reviewers on Amazon who teaches the subject. If this text were being used in a lecture type course where the professor could assign sections of the text while avoiding others it might make sense, but in a self-directed course like this one, it is a train wreck.
On a positive note, the mentor is very relaxed so the grading is beyond generous. If it were not, this would have been my first failed course.
I would suggest avoiding this course at TESC if possible.
9.3 Some of the architectural styles noted in Section 9.3.1 are hierarchical in nature and others are not. Make a list of each type. How would the architectural styles that are not hierarchical be implemented?
9.8 Using a data flow diagram and a processing narrative, describe a computer-based system that has distinct transform flow characteristics. Define flow boundaries and map the DFD into a software architecture using the technique described in Section 9.6.1.
10.2 Why are control components necessary in traditional software and generally not required in object-oriented software?
10.5 Select three components that you have developed recently and assess the types of cohesion that each exhibits. If you had to define the primary benefit of high cohesion, what would it be?
10.6 Select three components that you have developed recently and assess the types of coupling that each exhibits. If you had to define the primary benefit of low coupling what would it be.
11.3 Develop two additional design principles that "reduce the user's memory load."
11.4 Develop two additional design principles that "make the interface consistent."
11.7 Add at least five additional questions to the list developed for content analysis in section 11.3.3
11.12 Provide a few examples that illustrate why response time variability can be an issue.
11.13 Develop an approach that would automatically integrate error messages and a user help facility. That is, the system would automatically recognize the error type and provide a help window with suggestions for correcting it. Perform a reasonably complete software design that considers appropriate data structures and algorithms.
11.14 Develop an interface evaluation questionnaire that contains 20 generic questions that would apply to most interfaces. Have 10 classmates complete the questionnaire for an interactive system that you all use. Summarize the results and report them to your class.
12.3 How do architectural patterns differ for component patterns?
12.4 What is a framework and how does it differ from a pattern? What is an idiom and how does it differ from a pattern?
12.7 Find five patterns repositories and present an abbreviated description of the types of patterns contained in each.
12.12 The gang of four [Gam95] have proposed a variety of component patterns that are applicable to object-oriented systems. Select one (these are available on the web) and discuss it.
12.13 Find three patterns repositories for user interface patterns. Select one pattern from each and present an abbreviated description of it.
12.14 Find three patterns repositories for WebApp patterns. Select one pattern from each and present an abbreviated description of it.[/B]
The textbook for this course is written like a graduate thesis that never ends. The author tries to cover far too many approaches without a coherent path through the text. It is one of the worst examples I have seen of an academic text. It appears the author and publisher tried to wring too many editions out of this text by cutting and pasting. It is obvious why the text has two stars on Amazon. After reading a few pages, I find myself scratching my head and wondering what the heck the author was trying to say.
The textbook is referred to as encyclopedic by one of the reviewers on Amazon who teaches the subject. If this text were being used in a lecture type course where the professor could assign sections of the text while avoiding others it might make sense, but in a self-directed course like this one, it is a train wreck.
On a positive note, the mentor is very relaxed so the grading is beyond generous. If it were not, this would have been my first failed course.
I would suggest avoiding this course at TESC if possible.
[B]Chapter 9 - Problems and Points to Ponder
9.2 Present two or three examples of applications for each of the architectural styles noted in section 9.3.19.3 Some of the architectural styles noted in Section 9.3.1 are hierarchical in nature and others are not. Make a list of each type. How would the architectural styles that are not hierarchical be implemented?
9.8 Using a data flow diagram and a processing narrative, describe a computer-based system that has distinct transform flow characteristics. Define flow boundaries and map the DFD into a software architecture using the technique described in Section 9.6.1.
Chapter 10 - Problems and Points to Ponder
10.1 The term component is sometimes a difficult one to define. First provide a generic definition and then provide more explicit definitions for object-oriented and traditional software. Finally, pick three programming languages with which you are familiar and illustrate how each defines a component.10.2 Why are control components necessary in traditional software and generally not required in object-oriented software?
10.5 Select three components that you have developed recently and assess the types of cohesion that each exhibits. If you had to define the primary benefit of high cohesion, what would it be?
10.6 Select three components that you have developed recently and assess the types of coupling that each exhibits. If you had to define the primary benefit of low coupling what would it be.
Chapter 11 - Problems and Points to Ponder
11.2 Develop two additional design principles that "place the user in control."11.3 Develop two additional design principles that "reduce the user's memory load."
11.4 Develop two additional design principles that "make the interface consistent."
11.7 Add at least five additional questions to the list developed for content analysis in section 11.3.3
11.12 Provide a few examples that illustrate why response time variability can be an issue.
11.13 Develop an approach that would automatically integrate error messages and a user help facility. That is, the system would automatically recognize the error type and provide a help window with suggestions for correcting it. Perform a reasonably complete software design that considers appropriate data structures and algorithms.
11.14 Develop an interface evaluation questionnaire that contains 20 generic questions that would apply to most interfaces. Have 10 classmates complete the questionnaire for an interactive system that you all use. Summarize the results and report them to your class.
Chapter 12 - Problems and Points to Ponder
12.2 What is the difference between a non-generative and a generative pattern?12.3 How do architectural patterns differ for component patterns?
12.4 What is a framework and how does it differ from a pattern? What is an idiom and how does it differ from a pattern?
12.7 Find five patterns repositories and present an abbreviated description of the types of patterns contained in each.
12.12 The gang of four [Gam95] have proposed a variety of component patterns that are applicable to object-oriented systems. Select one (these are available on the web) and discuss it.
12.13 Find three patterns repositories for user interface patterns. Select one pattern from each and present an abbreviated description of it.
12.14 Find three patterns repositories for WebApp patterns. Select one pattern from each and present an abbreviated description of it.[/B]