Presentation is loading. Please wait.

Presentation is loading. Please wait.

Dr.Basem Alkazemi

Similar presentations


Presentation on theme: "Dr.Basem Alkazemi"— Presentation transcript:

1 Dr.Basem Alkazemi bykazemi@uqu.edu.sa http://uqu.edu.sa/bykazemi

2 Introduction Software design is the process of decomposing a system into components and define the sequence by which these components operate.

3 Design Characteristics It is a problem solving activity It is a process that rakes requirement document as input and produces design document as output Describes the system abstractly Usually represented in UML Involves the definition of business process Reflects system architecture

4 Design Properties Abstraction Data abstraction Procedure abstraction Control abstraction Modularity Coupling Cohesion Information Hiding Interfacing Encapsulation Complexity Structure Size System Architecture Components Dependencies Interaction (Data, Control)

5 Design Methods (1) Functional decomposition System is decomposed into components that each one provides part of that overall functionality of the system. Components functionality may also be decomposed into sub-components that constitute the overall functionality of a component and so on. Every component must define its basic functionality regardless of any other concern.

6 Design Methods (1) Functional decomposition Top-Down design: start at the system level and decompose it into its components. Bottom-up design: start with components and compose them together to form a complete working system Middle-out design: approach mixes the previous two, where system structure is defined and functional components are incorporated into that structure.

7 Layered System Structure

8 Design Methods (2) Data Flow Design External entities: source or destination of a transition. Denoted as Processes: transform of data. Denoted as Data Flows: the movement of data. Denoted by Data Stores: passive storage of data lies between two processes. Denoted by

9 Design Methods (2) Data Flow Design Example: DFD of simple compiler

10 Design Methods (3) Jackson Structured Programming (JSP) Defines the internal working components of a program Distinguishes between elementary & compound components Compound components Control Structure Types Sequence Iteration Selection

11 Design Methods (3) Sequence : Definition: establish the sequence of execution of processes. Notation: Example:

12 Selection : Definition: represents the different routs of control signal. Notation: Example: Design Methods (3)

13

14 Iteration: Definition: identify processes that execute in loops. Notation: Example: Design Methods (3)

15 Additional JSP notations Passing values (I/O) Design Methods (3)

16

17 Exercise: Design a program using JSP that calculates the sum of numbers from 1 to 1000.

18 JSPDesign

19 Flowchart Design

20 Design Methods (4) Object-Oriented Design o Identifies: Objects Attributes & services Relationships between objects o Types: Static structure Dynamic structure

21 Object-Oriented Design Static structure Class Diagram: is a graph in which nodes are objects & edges are relationships. Relationships types: Generalization- Specialization Association Composition

22 Object-Oriented Design Generalization-Specialization

23 Object-Oriented Design Association

24 Object-Oriented Design Composition

25 Object-Oriented Design Dynamic structure 1. State-machine diagram (STD): expresses the possible states of objects and the transitions between the different states.

26 STD Example: ATM

27 Object-Oriented Design Dynamic structure 2. Sequence Diagram: describes the interaction between objects at run-time as it expresses messages passed between objects.

28 Example: ATM Validation Process

29 Summary Design is a problem solving activity that takes requirement document as an input to produce design document as an output Design methods can be classified into: Functional based Data based Control based System Architecture based


Download ppt "Dr.Basem Alkazemi"

Similar presentations


Ads by Google