Вы находитесь на странице: 1из 12

UNIT I TWO MARKS 1. What are the process of design and its types?

The process of design involves conceiving and planning out in the mind and making a drawing, pattern, or a sketch of. In software design, there are three distinct types of activities: external design, architectural design, and detailed design. Architectural and detailed designs are collectively referred to as internal design. 2. What are the steps involved in External design? External design of software 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. What are the processes involved in internal design? Internal design involves conceiving, planning out, and specifying the internal structure and processing details of the software product. The goals of internal design are to specify internal structure and processing details , to record design decisions and indicate why certain alternatives and trade -offs were chosen, to elaborate test plan, and to provide a blueprint implementation, testing, and maintenance activities. for

4. Define Architectural Design. Architectural design is concerned with 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 inte rconnections among functions, data streams, and data stores.

5. What are the fundamental concepts of software design? Fundamental concepts of software design include

o Abstraction o Structure o Information hiding o Modularity o Concurrency o Verification o Design aesthetics.

6. Define Abstraction and give example. Abstraction is the intellectual tool that allows us to deal with the concepts apart from particular instances of those concepts. Three widely used abstraction mechanisms in software design are functional abstraction, data abstraction, and control abstraction. For example, specify the FIFO property of a queue or the LIFO property of a stack without concern for the representation scheme to be used in

implementing the stack or queue. 7. Define Functional abstraction. Functional abstraction involves the use of parameterized subprograms. The ability to parameterize a subprogram and to bind different parameter values on different invocations of the subprogram is a powerful abstraction

mechanism. Functional abstraction can be generalized to collections of subprograms, herein called groups.

8. Define Data abstraction. Data abstraction involves specifying a data type or a data object by specifying legal operations on objects; representation and manipulation details are suppressed. Thus, the type stack can be specified abstractly as a LIFO mechanism in which the routines NEW, PUSH, POP, TOP, and EMPTY interact.

9. Define Control abstraction. Control abstraction is the third commonly used abstraction mechanism in software design. 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 that involve conditional jump instructions.


What is Information Hiding? Information hiding is a fundamental design concept for software. 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.


What is Structure? Structure is a fundamental characteristic of computer software. 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.


Define Modularity. There are many definitions of the term module. They range from a

module is a FORTRAN subroutine to a module is an Ada package to a module is a work assignment for an individual programmer. Modularity enhances design clarity, which in turn eases implementation, debugging, testing, documenting and maintenance of the software produ ct.


What is Concurrency? Software systems can be categorized as sequential or concurrent.

In a sequential system, only one portion of the system is active at any given time. Concurrent systems have independent processes that can be activated simultaneously if multiple processors are available. On a single processor, concurrent processes can be interleaved in execution time. This permits implementation of time-shared, multi-programmed, and real-time systems.


What is Verification?

Verification is a fundamental concept in software design. Design is the bridge between customer requirements and an implementation that satisfies those requirements. A design is verifiable if it can be demonstrated that the design will result in an implementatio n that satisfies the customers



What is Aesthetics? Aesthetic considerations are fundamental to design, whether in art or

technology. Simplicity, elegance, and clarity of purpose distinguish products of outstanding quality from mediocre products.

16. A

What are the characteristics of Modules? software module to be a named entity having the following

characteristics: y y y y y Modules contain instructions, processing logic, and data structures. Modules can be separately compiled and stored in a library. Modules can be included in a program. Module segments can be used by invoking a name and some parameters. Modules can use other modules.


What is coupling and its types? The strength of coupling between two modules is influenced by the

complexity of the interface, the type of connection, and the type of communication. Obvious relationships result in less complexity than obscure or inferred ones. The types of coupling are y y y y y Content coupling Common coupling Control coupling Stamp coupling Data coupling

18. What is Cohesion and its types?

The internal cohesion of a module is measured in terms of the strength of binding of elements within the module. Cohesion of elements occurs on the scale of weakest to strongest in the following order: y y y y y y y Coincidental cohesion Logical cohesion Temporal cohesion Communication cohesion Sequential cohesion Functional cohesion Informational cohesion

19. What is design notation? As in Mathematics, the representation schemes used are of fundamental importance. Good notation can clarify the interrelationships and interactions of interest, while poor notation can complicate and interfere with good design practice.

20. What is Data Flow Diagram? Data flow diagrams (Bubble charts) are directed graphs in which the nodes Specify processing activities and the arcs specify data items transmitted between processing nodes. Like flowcharts, data flow diagrams can be used at any desired level of abstraction. A data flow diagram might represent data flow between individual statements in a routine, data flow between sequential routines, data flow between concurrent processes.

21. What is a structured chart? Structured charts are used during architectural design to document hierarchical structure, parameters and interconnections in a system. A structure chart differs from a flowchart in two ways: a structure chart has no

decision boxes, and the sequential ordering of tasks inherent in a flowch art can be suppressed in a structure chart.

22.What is a HIPO diagram? HIPO diagrams (Hierarchy-Process-Input-Output) were developed at IBM as design representation schemes for top-down software development, and as external documentation aids f or released products. A set of HIPO diagrams contains a visual table of contents, a set of overview diagrams, and a set of detail diagrams. The visual table of contents is a directory to the set of diagrams in the package.

23. What is a Pseudo code? Pseudo code notation can be used in both the architectural and detailed design phases like flowcharts; pseudo code can be used at any desired level of abstraction. Using pseudo code, the designer describes system characteristics using short, concise, English language phrases that are structured by key words such as If-Then-Else, While-Do, and End.

24. What is a flowchart? Flowcharts are traditional means for specifying and documenting

algorithmic details in a software system. Flowcharts incorporate rectangular boxes for actions, diamond shaped boxes for decisions, directed arcs for specifying interconnections between boxes, and a variety of specially shaped symbols to denote input, output, data stores etc.


What is the difference between structured flowchart and

traditional flowchart? Structured flowcharts differ from traditional flowcharts in that they are restricted to compositions of certain basic forms. This makes them, the graphical equivalent of a structured pseudo code description.

26.What is a decision table?

Decision tables can be used to specify complex decision logic in a high -level software specification. They are also useful for specifying algorithmic logic during detailed design. source code logic. Decision tables can be specified and tran slated into

27. Write the process of software design. The design process involves y y y y y y y Developing a conceptual view of the system Establishing system structure Identifying data streams and data stores Decomposing high-level functions into sub functions Establishing relationships and interconnections among components Developing concrete data representations and Specifying algorithmic details

28. What is stepwise refinement? Stepwise refinement is a top-down technique for decomposing a system from high-level specifications into more elementary levels. Stepwise

refinement is also known as stepwise program development and successive refinement.

29. What are the steps involved in stepwise refinement? Stepwise refinement involves the following activities: y y y Decomposing design decisions to elementary levels. Isolating design aspects that is not truly interdependent. Postponing decisions concerning representation details as long as possible. y Carefully demonstrating that each successive step in the refinement process is a faithful expansion of previous steps.

30. What are the major benefits of stepwise refinement? The major benefits of stepwise refinement as a design technique are: y Top-down decomposition

y y y

Incremental addition of detail Postponement of design decisions Continual verification of consistency (formally or informally)

31. What is Levels of Abstraction? It was originally described by DIJKSTRA as a bottom-up design technique in which an operating system was designed as a layering of hierarchical levels starting at level 0 (processor allocation, real time clock interrupts) and building up to the level of processing independent user programs (DIJ68).

32. What is Integrated Top-down Development? Integrated top-down development integrates design, implementation, and testing. Using integrated top-down development, design proceeds top -down from the highest-level routines; they have the primary function of coordinating and sequencing the lower-level routines. Lower-level routines implementations of elementary functions (those that call no other routines), or they may in turn invoke more primitive routines. There is thus a hierarchical structure to a topdown system in which routines can invoke lower-level routines but cannot invoke routines on a higher level.

33. What is a test plan? The test plan specifies the objectives of testing (e.g. ,to achieve error free operation under stated conditions for a stated period of time), the test completion criteria (to achieve a specified rate of error exposure, to achieve a specified percent of logical path coverage), the system integration plan (strategy, schedule, responsible individuals), methods to be used on particular modules (walkthroughs, inspections, static analysis, dynamic test, formal verification), and the particular test cases to be used.

34. What are the types of test plans? There are four types of test that a software product must satisfy: o Functional test o Stress test

o Performance test o Structural test.

35. What is a Functional test? Functional tests and performance tests are based on the requirements specifications; they are designed to demonstrate that the system satisfies its requirement. Functional test cases specify typical operating conditions, typical input values and typical expected results. Functional tests should also be designed to test boundary conditions just inside and jus beyond the boundaries. Special values such as files and arrays containing identical values, the identity matrix, the zero matrix, etc., should be tested. 36. What is a Performance test? Performance tests should be designed to verify response time (under various loads), execution time, throughputs, primary and secondary memory utilization, and traffic rates on data channels and communication links. Performance test will also indicate processing bottlenecks to be addressed during system testing and tuning. 37. What is a Stress test? Stress test are designed to overload a system in various ways, such as tempting to sign on more than the allowed maximum no of terminals, processing more than the allowed no of identifiers or static levels or disconnecting a communication link. The p urposes of stress testing are to determine the limitations of the system and, when the system fails, to determine the manner in which the failure manifests. Stress tests can provide valuable insight concerning the strength and weakness of the system. 38. What is a Structural test? Structural tests are concerned with the internal processing logic of the software system. The particular routines called and the logical path traversed through the routines is the objects of interest. The goal of structural testing is to traverse a specified number of paths through each routine in the system to establish thoroughness of testing. 39. What are the major difficulties in software design?

Major difficulties are due to inadequate requirements, failure to consider alternative design strategies, and temptation to provide too much detail too soon. 40. Give an example to establish the system structure. Derive the input and output data structures and convert the data structure into processing structure, as in Jackson structured Programming or convert the data flow diagrams into structured chart, as in structural design, or derive a system structure that maximizes information hiding or a structure that enhances the overlay capabilities or real time sponse rate, etc. 41. State the main objective of structured coding technique. The main aim of structured coding technique is that to linearize control flow through a computer program so that the execution sequence follows the sequence in which the code is written. 42. List the uses of structured programming technique.

Enhances the readability of code, which causes easy understanding, debugging, testing, documentation and modification of the program. 43. State the aim of the Implementation.

Implementation phase is concerned with translati ng design specification into source code. The primary goal is to write source code and internal documentation so that conformance of the code to its specification can be easily verified, and so that debugging, testing, and modification are eased.


State Bohm-Jacopini theorem.

Any single entry, single exit program segment that has all statements on some path from the entry to the exit can be specified using only sequencing, selection and iteration. 45. Mention some Short circuit conditions operators in Ada

language. andthen and or.else Boolean operators are some of the Short circuit conditions operators. 46. Mention the common situations for violating the single entry and

single exit.

Three common situations are multiple loop exits, error handling and data encapsulation. 47. What are the difficulties with a Boolean flag variable.

First the need of a additional variable; second the additional test required on the loop exit to determine which condition caused to exit; and finally the requirement in many cases that the loop body be terminated immediately on occurrence of a given condition and not at the start of the next iteration, as would occur in testing a loop flag. 48. y y y Mention the Dos of a good coding style. Use few standard agreed upon control constructs. Use gotos in a disciplined way. Introduce user defined data types to model entities in the problem domain. y y y Hide data structures behind access functions. Isolate machine dependencies in a few routines. Provide standard documentation prologues for each sub program and/or compilation unit. y Carefully examine routines having fewer than 5 or more than 25 executable statements. y Use indentation, paranthesis, black spaces, blank lines and borders around comment blocks to enhance readability.


How to improve modularity of a source program using data

hiding concept. In languages having global scope (assembly language, BASIC, COBOL), disciplined programming style can be used to ensure that major data structures are manipulated only a few regions of the source code. All other code segments that use a data structures should do so by invoking the appropriate access code. 50. How to increase the readability of your program.

A pleasing format of presentation greatly enhances the readability of a source program. This can be done by use of indentation, parentheses, blank spaces, blank lines, and borders around blocks of comments to enhance readability.


Mention the donts of a good coding style. Dont be too clever. Avoid Null then statements. Avoid then..if statements. Dont nest too deeply. Avoid obscure side effects. Dont suboptimize. Carefully examine routines having more than five formal parameters. Dont use an identifier for multiple purpose. What is a side effect?


A side effect of a sub program is any change to the computational state that occurs as a result of calling the invoked routine. Side effects include modification of parameters passed by reference or by value result,

modification of global variable, I/O operations. 53. What is an Obscure Side effect?

An obscure side effect is one that is not obvious from the invocation of the called routine. 54. State the two aspects to suboptimization of a software.

1. It is usually not possible to determine what portion of code will occupy the majority of execution time until execution characteristics of the running program are measured 2. Unless one has intimate knowledge of the language translator, operating system and hardware it usually not clear how various situations will be

handled by the system.

Part B

1. Explain the basic fundamental desi gn concept in programming languages 2. Briefly explain about and Modularization Criteria 3. List out the Design Techniques and Explain in detailed any three 4. Explain in detailed about the structured coding techniques 5. Short notes on : 1.Design notation 2. Design Tables 3. Design Guidelines