Structural Modeling and Structure Points
27.3.3 Structural Modeling and Structure Points
When domain analysis is applied, the analyst looks for repeating patterns in the appli- cations that reside within a domain. Structural modeling is a pattern-based domain engineering approach that works under the assumption that every application domain has repeating patterns (of function, data, and behavior) that have reuse potential.
Pollak and Rissman [POL94] describe structural models in the following way: Structural models consist of a small number of structural elements manifesting clear pat-
terns of interaction. The architectures of systems using structural models are character- ized by multiple ensembles that are composed from these model elements. Many architectural units emerge from simple patterns of interaction among this small number of elements.
CHAPTER 27
729 Each application domain can be characterized by a structural model (e.g., aircraft
C O M P O N E N T - B A S E D S O F T WA R E E N G I N E E R I N G
avionics systems differ greatly in specifics, but all modern software in this domain has the same structural model). Therefore, the structural model is an architectural style (Chapter 14) that can and should be reused across applications within the domain.
McMahon [MCM95] describes a structure point as “a distinct construct within a
? structural model.” Structure points have three distinct characteristics:
What is a
“structure point” and what
1. A structure point is an abstraction that should have a limited number of
are its
instances. Restating this in object-oriented jargon (Chapter 20), the size of
characteristics?
the class hierarchy should be small. In addition, the abstraction should recur throughout applications in the domain. Otherwise, the cost to verify, docu- ment, and disseminate the structure point cannot be justified.
2. The rules that govern the use of the structure point should be easily under- stood. In addition, the interface to the structure point should be relatively simple.
3. The structure point should implement information hiding by isolating all complexity contained within the structure point itself. This reduces the per- ceived complexity of the overall system.
As an example of structure points as architectural patterns for a system, consider the domain of software for alarm systems. This domain might encompass systems as simple as SafeHome (discussed in earlier chapters) or as complex as the alarm sys- tem for an industrial process. In every case, however, a set of predictable structural patterns are encountered:
• An interface that enables the user to interact with the system. •
A bounds setting mechanism that allows the user to establish bounds on the parameters to be measured.
A structure point can
A sensor management mechanism that communicates with all monitoring pattern that can be
be viewed as a design •
sensors. found repeatedly in applications within a
A response mechanism that reacts to the input provided by the sensor man- specific domain.
agement system. •
A control mechanism that enables the user to control the manner in which monitoring is carried out.
Each of these structure points is integrated into a domain architecture. It is possible to define generic structure points that transcend a number of differ- ent application domains [STA94]:
• Application front end—the GUI including all menus, panels and input and command editing facilities.
• Database—the repository for all objects relevant to the application domain.
• Computational engine—the numerical and nonnumerical models that manipu- late data.
• Reporting facility—the function that produces output of all kinds. • Application editor—the mechanism for customizing the application to the
needs of specific users. Structure points have been suggested as an alternative to lines of code and function
points for software cost estimation [MCM95]. A brief discussion of costing using struc- ture points is presented in Section 27.6.2.
Parts
» The Concurrent Development Model
» SUMMARY Software engineering is a discipline that integrates process, methods, and tools for
» PEOPLE In a study published by the IEEE [CUR88], the engineering vice presidents of three
» THE PROCESS The generic phases that characterize the software process—definition, development,
» THE PROJECT In order to manage a successful software project, we must understand what can go
» METRICS IN THE PROCESS AND PROJECT DOMAINS
» Extended Function Point Metrics
» METRICS FOR SOFTWARE QUALITY
» INTEGRATING METRICS WITHIN THE SOFTWARE PROCESS
» METRICS FOR SMALL ORGANIZATIONS
» ESTABLISHING A SOFTWARE METRICS PROGRAM
» Obtaining Information Necessary for Scope
» An Example of LOC-Based Estimation
» QUALITY CONCEPTS 1 It has been said that no two snowflakes are alike. Certainly when we watch snow
» SUMMARY Software quality assurance is an umbrella activity that is applied at each step in the
» R diagram 1.4 <part-of> data model; data model <part-of> design specification;
» SYSTEM MODELING Every computer-based system can be modeled as an information transform using an
» Facilitated Application Specification Techniques
» Data Objects, Attributes, and Relationships
» Entity/Relationship Diagrams
» Hatley and Pirbhai Extensions
» Creating an Entity/Relationship Diagram
» SUMMARY Design is the technical kernel of software engineering. During design, progressive
» Data Modeling, Data Structures, Databases, and the Data Warehouse
» Data Design at the Component Level
» A Brief Taxonomy of Styles and Patterns
» Quantitative Guidance for Architectural Design
» Isolate the transform center by specifying incoming and outgoing
» SUMMARY Software architecture provides a holistic view of the system to be built. It depicts the
» The User Interface Design Process
» Defining Interface Objects and Actions
» D E S I G N E VA L U AT I O N
» Testing for Real-Time Systems
» Organizing for Software Testing
» Criteria for Completion of Testing
» The Transition to a Quantitative View
» The Attributes of Effective Software Metrics
» Architectural Design Metrics
» Component-Level Design Metrics
» SUMMARY Software metrics provide a quantitative way to assess the quality of internal product
» Encapsulation, Inheritance, and Polymorphism
» Identifying Classes and Objects
» The Common Process Framework for OO
» OO Project Metrics and Estimation
» Event Identification with Use-Cases
» SUMMARY Object-oriented analysis methods enable a software engineer to model a problem by
» Partitioning the Analysis Model
» Designing Algorithms and Data Structures
» Program Components and Interfaces
» SUMMARY Object-oriented design translates the OOA model of the real world into an
» Testing Surface Structure and Deep Structure
» Deficiencies of Less Formal Approaches 1
» What Makes Cleanroom Different?
» Design Refinement and Verification
» SUMMARY Cleanroom software engineering is a formal approach to software development that
» Structural Modeling and Structure Points
» Describing Reusable Components
» SUMMARY Component-based software engineering offers inherent benefits in software quality,
» Guidelines for Distributing Application Subsystems
» Middleware and Object Request Broker Architectures
» An Overview of a Design Approach
» Consider expert Web developer will create a complete design, but time and cost can be appropriate
» A Software Reengineering Process Model
» Reverse Engineering to Understand Data
» Forward Engineering for Client/Server Architectures
» SUMMARY Reengineering occurs at two different levels of abstraction. At the business level,
Show more