190 likes | 261 Views
Stable Model-Based Software Design for Reuse and Maintenance. Majid Nabavi University of Nebraska. The Project Starts. Goal: Developing a system that automates business process in part or totally, keeps track of operational data,… Systems analysis and design:
E N D
Stable Model-Based Software Design for Reuse and Maintenance Majid Nabavi University of Nebraska
The Project Starts • Goal: Developing a system that automates business process in part or totally, keeps track of operational data,… • Systems analysis and design: • Initial steps of the software lifecycle • Requires extensive domain knowledge and insight • Identifies business processes • Clarifies the limits of the system • Essential for determining software architecture • To determine the project requirements as well
Systems Analysis and Design • Design • Solution space • Design • Many solutions • The “How” • What is different? • Analysis • Problem space • Analysis • One problem • The “What” • Systems analysis is traditionally based on the present business processes
Business Process • Business processes are subject to change • Technology • Business model • Scope and intensity of change may not be identified from the beginning • When change in work system happens, the software system should change too
Maintenance, Upgrade, Reusability • Decision depends on scope of change • Maintenance is a high cost item even for standardized software modules, at least 25% • Up to 70% commonality between software modules • If upgrade or design a new system, how to reuse modules? • The modules should have been designed right in the first place to be reusable without extensive rework
Stability Model • Object oriented modeling: popular and supported by CASE tools • Consider probability of future extension and change in systems analysis and design • Classify objects in the system • Enduring Business Themes (EBT) • Business Objects (BO) • Industrial Objects (IO)
Enduring Business Themes Business Objects Industrial Objects Stability Over Time Stable over time Externally stable Unstable Adaptability Adaptable without change Adaptable through internal change Not necessarily adaptable Essentiality Essential Essential Replaceable Intuition Intuition Intuition and reading Reading only Explicitness Implicit Implicit or explicit Explicit Commonality to the domain Core Core Peripheral Tangibility Conceptual Semi-tangible Tangible Identification Criteria for Objects
How the Stability Model Helps? • The core methods and attributes of the system will go to EBTs and BOs • The EBTs and BOs don’t change easily • If add or obsolete IOs the system is stable • Longer life cycle • Lower costs of maintenance, upgrade, and redesign
Case Study • A control and dispatching system for material transport • Ore & waste go to different destinations • Need scheduling • Data gathering
Traditional Model: Works Well • All objects and relationships in the model • Represents the current system
Stable Model • More complicated
Second Change: Different Technology • No similarity in model • No merging possible • Extensive update effort • Redesign the system
Conclusion • In stable modeling • Abstract classes designed to explain the core purpose of the system • Modeling does not conclude to the solution of present problem • System is adaptable and extensible • System stays in service for a longer time • When upgrading, modules are reusable • Eliminates need for designing a new system • Reduces the scope of reengineering • Investing in analysis and design can well pay off in time of change, by reducing maintenance and upgrade efforts