Design Refinement
Total Page:16
File Type:pdf, Size:1020Kb
Design Refinement By High School Technology Services myhsts.org Objective ● Learn how the system design can be improved Extensibility ● Extensibility is a software engineering and systems design principle where the implementation takes future growth into consideration. ● Softwares are not designed and developed at one go. ● Usually softwares are designed in an iterative process ● Design should include the future scope for extensibility Forms of Extensibility ● White Box ○ Open Box ○ Glass Box ● Black Box ● Gray Box Reusability ● Reusability is the use of existing assets in some form within the software product development process ● Each software component should be reusable ● This keeps the software code less complex Design Features - Reusability ● Adaptable ● Brief: small size ● Consistency ● Correctness ● Extensibility ● Fast ● Flexible Design Features - Reusability ● Generic ● Localization of volatile (changeable) design assumptions (David Parnas) ● Modularity ● Orthogonality ● Parameterization ● Simple: low complexity ● Stability under changing requirements Three Cs of Requirements ● Consistency ● Completeness ● Correctness Testing Business Processes ● BPT is a manual as well as automated testing solution for test design, creation, and execution. It helps reduce testing timelines. ● BPT approach includes: ○ Reusable business components ○ Business process tests ● BPT is a role-based model that allows business analyst and non-technical Subject Matter Experts (SME) to work with business components in a script free environment and create business process tests. Testing Business Processes ● BC1: First Business Component that opens browser and enters login credentials ● BC2: Second Business Component that navigates to accounts screen and searches for account ● BC3: Third Business Component that verifies field values Testing Business Processes The key concepts involved in BPT are as follows: ● Business Process: Business Process can be defined as the collection of related activities that are performed to achieve a predefined goal. ● Business Components: Business components are considered as set of small and reusable pieces of test cases ● Business Process Tests: Business Process Tests are test cases that include business components. ● Application Area: It is the logical entity and a repository that contains testing resources such as shared object repository, function library etc. Testing Business Processes BPT is a transformation that is used to solve traditional problems with automation testing, viz. ● Lack of coordination between manual testers/SMEs and automation engineers ● Lack of automation development standards ● Automation engineer’s insufficient knowledge of the application may cause inefficient scripts ● Huge maintenance efforts Design Metrics ● Design metrics are used for effective software development. It allows to achieve the following ● McCall’s triangle explains a whole set of measures that needs to be taken care of during the software design. ● These are the metrics that provide the effective software development McCalls Triangle of Quality OO Design Metrics ● Size ● Complexity ● Coupling ● Sufficiency ● Completeness ● Cohesion ● Primitiveness ● Similarity ● Volatility Discovering Reusable Patterns ● Design patterns are especially useful in turning an analysis model into an implementation model. ● Despite many claims that promise a smooth transition from object-oriented analysis to design, in practice the transition is anything but smooth. ● A flexible and reusable design will contain objects that aren't in the analysis model. ● The programming language and class libraries you use affect the design. ● Analysis models often must be redesigned to make them reusable. ● Many of the design patterns in the catalog address these issues, which is why we call them design patterns. ● A full-fledged design method requires more kinds of patterns than just design patterns. ● There can also be analysis patterns, user interface design patterns, or performance-tuning patterns. Looking Forward Project Management and Implementation Issues ● Planning for Reusability ● Transition Strategies and Planning Legacy System Integration ● Managing the Development Cycle ● Partitioning Work ● Source Code Organization ● Choosing Tools and Languages ● Software Quality Metrics Questions?.