Download presentation
Presentation is loading. Please wait.
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)
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)
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.