Presentation is loading. Please wait.

Presentation is loading. Please wait.

SOFTWARE DESIGN. INTRODUCTION There are 3 distinct types of activities in design 1.External design 2.Architectural design 3.Detailed design Architectural.

Similar presentations


Presentation on theme: "SOFTWARE DESIGN. INTRODUCTION There are 3 distinct types of activities in design 1.External design 2.Architectural design 3.Detailed design Architectural."— Presentation transcript:

1 SOFTWARE DESIGN

2 INTRODUCTION There are 3 distinct types of activities in design 1.External design 2.Architectural design 3.Detailed design Architectural and detailed design are called as internal design External design involves conceiving, planning out, and specifying the externally observable characteristics of a software product. These characteristics include user displays, and report formats, external data sources and data sinks and the functional characteristics, performance requirements and high level process structure for the product.

3 Internal design involves conceiving, planning out, and specifying the internal structure and processing details of the software product. The work product of internal design include a specification of architectural structure, the details of algorithms and data structures and the test plan. Architectural design includes refining the conceptual view of the system, identifying internal processing functions, decomposing high- level functions into sub functions, defining internal data streams and data stores, and establishing relationships and interconnections among functions, data steams and data stores.

4 Detailed design includes specification of algorithms that implement the functions, concrete data structures the implement the data stores, the actual interconnections among functions and data structures, and the packaging scheme for the system.

5 5.1 Fundamental design concepts 5.1.1 Abstraction Abstraction is the intellectual tool that allows us to deal with concepts apart from particular instances of those concepts. During requirements definition and design, abstraction permits separation of the conceptual aspects of a system from the implementation details. For eg: specify the FIFO and LIFO property for stack and queue without concern to be used in stack and queue. Similarly the characteristics NEW, PUSH, POP, TOP, EMPTY without concern for algorithmic details.

6 During software design, abstraction allows us to organize and channel our thought processes by postponing structural considerations and detailed algorithmic considerations until the functional characteristics have been established. Design is thus a process of proceeding from abstract considerations to concrete representations. Three widely used abstract mechanisms in software design 1.funcitonal abstraction 2. data abstraction 3. control abstraction

7 Functional abstraction is a collection of subroutines called groups. They have visible property and hidden property. Through visible property one group communicate with another group. Data abstraction involves specifying a data type or a data object by specifying legal operations on objects Representation and manipulation details are suppressed For eg in fig 4.4 the routines NEW, PUSH, POP, TOP and EMPTY operate on objects of type stack are specified

8 Abstract data types are abstract in the sense that representation details of the data items and implementation details of the functions that manipulate the data items are hidden Control abstraction is used to state a desired effect without stating the exact mechanism of control. If and while statements in modern programming languages are abstractions of machine code implementations In statement For all I in S sort files I Leaves unspecified sorting technique, S,I Another eg for control abstraction is the monitor construct, which is a control abstraction for concurrent programming, implementation details of the operator are hidden.

9 5.1.2 Information Hiding When a software system is designed using the information hiding approach, each module in the system hides the internal details of its processing activities and modules communicate only through well defined interfaces. Functional, data and control abstraction exhibit information hiding characteristics. In addition to hiding of difficult and changeable design decisions, other candidates for information hiding include:

10 1. data structure, its linkage, and the implementation details of the procedures that manipulate it 2.the format of control blocks such as those for queues in an operating system 3. character codes, ordering of character sets 4. shifting, masking and other machine dependent details.

11 5.1.3 Structure The use of structuring permits decomposition of a large system into smaller, more manageable units with well defined relationships to the other units in the system. The most general form of system structure is the network. A computing network can be represented as a directed graph, consisting of nodes and arcs. The nodes can represent processing elements that transform data and the arcs can be used to represent data links between nodes. In simplest form, a network might specify data flow and processing steps within a single subprogram, or the data flow among a collection of sequential subprograms

12 The most complex form of computing network is a distributed computing system in which each node represents a geographically distinct processor with private memory. The structure inside a complex processing node might consist of concurrent processes executing in parallel and communicating through some combination of shared variables and synchronous and asynchronous message passing. Inside each process, one find functional abstraction groups, data abstraction groups and control abstraction groups. Each group consists of a visible specification part and a hidden body.

13 The entire network is a complex abstraction that provides and information utility and in turn forms a node in a more complex structure of people and machines. The process network view of software structure is in fig 5.3 The “ uses” relationship is represented as a directed graph, where the notation a->b means “a uses b’ or “b is used by a”. A hierarchical ordering relation can be represented as an acyclic, directed graph with a distinguished node that represents the root entity. The root uses other entities, but is not used by any entity subsidiary nodes in the hierarchical structure represent subordinate entities

14 Fig 5.4a is a directed, acyclic graph Fig 5.4b is a tree structure In a tree structure there is a unique path from root to each node In a acyclic directed graph there may be more than one path from root to a node The fig 5.4a and 5.4 b are called structure charts They are not flow charts because there is no indication of the processing sequence, and no indication of the conditions under which a might use b. In fig there are N(N-1)/2 interconnections of N nodes in a connected graph but only N-1 interconnections of n nodes connected in a tree structure.

15 Structure of software products resemble he structure of the teams the develop them. Several criteria are available to guide hierarchical decomposition of a software system. These include decomposition into processing steps and sub steps, decomposition to reinforce information hiding, coupling and cohesion, data encapsulation and problem modeling

16


Download ppt "SOFTWARE DESIGN. INTRODUCTION There are 3 distinct types of activities in design 1.External design 2.Architectural design 3.Detailed design Architectural."

Similar presentations


Ads by Google