You are on page 1of 2

Rivera-1 J. (Tony) Rivera CS470 Software Engineering Quiz 6 for Week 6 Professor: Dr. S.

Lin QUIZ 6 for WEEK 6 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.1(a): Component (also called Software component) - a named, modular building block for computer software. From an Objected-Oriented software engineering perspective, component contains a set of collaborating classes, with the inclusion of elaborated attributes and operations that are relevant to it implementation (Pressman 278). A traditional component, also called a module, resides within the software architecture and serves one of three important roles: (1) a control component that coordinates the invocation of all other problem domain components, (2) a problem domain component that implements a complete or partial function that is required by the customer, or (3) an infrastructure component that is responsible for functions that support the processing required in the problem domain (Pressman 279) 10.3. Describe the OCP in your own words. Why is it important to create abstractions that serve as an interface between components? Open-Closed Principle (OCP) that should closed for any modification of the module, but at the same time be available for extension. Although this may be an unsound or absurd way of doing things, but its an important process for a well- developed component-level design. Therefore, abstraction is created by the Software Engineer, to act as a buffer between the class and the functionality that would most likely be extended. It is a sound approach to ensuring that any of the internal code will not likely be modified in any manner whatsoever. 10.4. Describe the DIP in your own words. What might happen if a designer depends too heavily on concretions? Dependency Inversion Principle (DIP) totally depends on the abstractions and not concretions, where the design of the abstraction will be without any form of complications very much unlike what concretion can result if the Software Engineering depends on it on a very high scale.

Rivera-2 10.9. Are stepwise refinement and refactoring the same thing? If not, how do they differ? Unlike refinement where a Software Engineering may have to refine a component level design, refactoring would be more in the avenue of looking at other alternative to finding solutions when solving a particular problem in component-level designing. 10.12. All modern programming languages implement the structured programming constructs. Provide examples from three programming languages. The constructs are sequence, condition, and repetition. Sequence implements processing steps that are essential in the specification of any algorithm. Condition provides the facility for selected processing based on some logical occurrence, and repetition allows for looping. These three constructs are fundamental to structured programmingan important component-level design technique (Pressman 298). 10.14. Why is chunking important during the component-level design review process? With the limited amount of logical constructs, it helps individuals to understand, in a predictable way, that logical structures can be directly more controlled in a way component-level design to follow through procedural flow much more easily with the implementation usage of sequence, condition, and repetition, all of which that are important in the fundamental structural programming.

You might also like