Posts

Showing posts with the label software design process

DESIGN METHODS

Image
It refers to the methods which we use to design our software system. There are some design methods available to design our system like data design, architectural design, and human-computer interface design. DATA DESIGN It is the first design activity, which results in a less complex, modular, and efficient program structure. The information model developed during the analysis phase is transformed into the data structure needed for implementing the software. During the data design process, data types are specified along with the integrity rules required for the data. ARCHITECTURAL DESIGN Software design represents the structure of data and program components that are required to build a computer-based system. It is not an operational software but a representation. Architecture design: systems that interoperate with the target system are represented as – SUPER ORDINATE SYSTEM- using the target system as part of some higher-level processing scheme. SUBORDINATE SYSTEM- used by the tar...

DESIGN HEURISTICS

HEURISTICS EVALUATION is a process of thorough evaluation or assessment where the expert in a particular domain, is used to measure the usability of the user interface. HOW TO CONDUCT HEURISTIC EVALUATION Define the scope of the evaluation. Know the end user. Choose your set of heuristics. Setting up an evaluation system and identifying issues. Analyze and summarize the results. ADVANTAGES: Reveals many hidden usability problems. It helps to determine the overall user experience. Heuristics evaluation can be combined with usability testing. Better heuristics evaluation helps to engage more users. It is cheaper and faster than conducting full-blown usability testing. DISADVANTAGES: Sometimes it is a bit harder for even experts to figure out some problems. It becomes hard to find experts to conduct the heuristics evaluation. Faults in design will affect the engagement of users in the product. Heuristics testing depends on the expert level of only a few experts.

EFFECTIVE MODULAR DESIGN

The process of breaking down software into multiple independent modules where each module is developed separately is called modularization. BENEFITS OF MODULAR DESIGN Allows Reusability Workload Handling Easier Debugging Abstraction Confidentiality MODULARIZATION IS ACHIEVED BY- COHESION: Cohesion is a measure of strength in the relationship between various functions with a module. COUPLING: Coupling is a measure of strength in the relationship between various modules within a software. ** A good software design requires high cohesion and low coupling.

DESIGN CONCEPTS

ABSTRACTION: Hide irrelevant data from user so that our design become much more secure. MODULARITY: Sub-divide the system to follow an object-oriented design methodology. ARCHITECTURE: Design the structure of the whole software. REFINEMENT: Remove impurities from the software by debugging and checking security threads & breaches. PATTERN: A repeated form of pattern in the whole design so that the user will find it easier to do work on it. INFORMATION HIDING: Information in one module is hidden and can’t be accessed by any other module. REFACTORING: Reconstruct something i.e, updation. Reconstructing the design to reduce complexity and simplify it without affecting the behavior or its functions.

DESIGN PRINCIPLES

PROBLEM PARTITIONING: Divide the problem and conquer the problem it means to divide the problem into smaller pieces so that each can be captured separately. ABSTRACTION: The process of hiding certain details and showing only essential information to the user. MODULARITY: It specifies the division of software into separate modules which are differently named, addressed, and integrated later on in to obtain completely functional software. STRATEGY OF DESIGN: To design a system, there are two possible approaches- Top-Down Approach: main components and then sub-components designed Bottom-Up Approach: sub-components and then integrate them to obtain the main component.