软件工程第三次作业

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1. Describe the principle of information hiding as it applies to software design.

Answer (Section 9.3):

The principle of information hiding implies that modules only share information with each other on a "need to know" basis to achieve some specific software function. Hiding enforces the procedural constraints to both the module procedural detail and any data structures local to the module.

2. List the four design models required for a complete specification of a software design and the role of each.

Answer (Section 9.4):

Data design - high level model depicting user’s view of the data or information.

Architecture design –shows relationships and collaborations among specific analysis model software and hardware elements

Interface design - interface depicts a set of operations that describe the externally observable behavior of a class and provides access to its operations

Component-level design - Describes the internal detail of each software component

3. How is a transaction center different from a transform center in a data flow diagram?

Transaction centers convert an external information flow into one of many action paths inside the system. Transform centers map the incoming external information into outgoing external world information.

4.Describe the types of dependencies that can exist in an architectural design

•Sharing dependencies - represent the dependence relationships among consumers whose use the same source or producers who have the same consumers.

•Flow dependencies - represent dependence relationships between producers and consumers of resources

•Constrained dependencies - represent constraints on the relative flow of control among

a set of activities

5.What are the steps used to complete the component-level design for a software development project?

•Identify all design classes that correspond to the problem domain.

•Identify all design classes that correspond to the infrastructure domain.

•Elaborate all design classes that are not acquired as reusable components.

•Identify persistent data sources (databases and files) and identify the classes required to manage them.

•Develop and elaborate behavioral representations for each class or component.

•Elaborate deployment diagrams to provide additional implementation detail.

•Factor every component-level diagram representation and consider alternatives.

6. Describe the differences between the software engineering terms coupling and cohesion? Cohesion implies that a component or class encapsulates only the attributes and operations closely related to one another and to the class itself. Coupling is a qualitative measure of the degree to which components are connected to one another.

相关文档
最新文档