.Software Design • Introduction to Software Design • Design Concepts • Function-Oriented Design .Introduction to Software Design • Design is module view. The system viewed as a collection of code units. Each module | Software Design Software Design Introduction to Software Design Design Concepts Function-Oriented Design Introduction to Software Design Design is module view. The system viewed as a collection of code units. Each module implements some part of the system functionality. Determine what modules the system should have and which have to developed Modules can be packages, a class, a procedure, a method, a collection of functions, and a collection of classes Introduction to Relationships between modules are code-based and depend how code of a module interacts with another module. “is a part of” (module B is a part of module A) “user depends on” (module A uses services of module B to perform its own functions and correctness of model A depends on correctness of module B) “generalization or specialization” (module B is a generalization of module A. . B is superclass, A is subclass) Design Process Module design (high-level design): Decide which modules needed for system, specifications of | Software Design Software Design Introduction to Software Design Design Concepts Function-Oriented Design Introduction to Software Design Design is module view. The system viewed as a collection of code units. Each module implements some part of the system functionality. Determine what modules the system should have and which have to developed Modules can be packages, a class, a procedure, a method, a collection of functions, and a collection of classes Introduction to Relationships between modules are code-based and depend how code of a module interacts with another module. “is a part of” (module B is a part of module A) “user depends on” (module A uses services of module B to perform its own functions and correctness of model A depends on correctness of module B) “generalization or specialization” (module B is a generalization of module A. . B is superclass, A is subclass) Design Process Module design (high-level design): Decide which modules needed for system, specifications of these modules, and how the modules should be interconnected Detailed design (logic design): Decide internal design of modules, how the specifications of module can be satisfied - Detailed description of the processing logic and data structures Design Methodology A systematic approach of creating a design by applying of a set of techniques and guidelines. Design concepts A design is correct if a system built satisfies requirements. There can be many correct designs, the goal is to find the best possible design Evaluate design. Main criterion is modularity - Coupling - Cohesion - Open-Closed Principle Modularity A system is considered modular if it consists of discrete modules so that each module can be implemented separately, and a change to one module has minimal impact on other modules. Coupling Independence: one module can function without presence of the other. The more independent the connection between modules, the easier to solve and modify modules Coupling: the strength of .