UNIT-4 SOFTWARE ENGINEERING

1.What are the three types of design activities?
1.external design
2.Architectural design
3.Detailed design

2.What do you mean by External Design?
External design involves conceiving,planning out and specifying the externally observable characteristics of a software product.

3.What do you mean by Internal design?
Architectural and detailed design are collectively referred as internal design.
Internal design involves conceiving,planning out and specifying the internal structure and processing details of the software product.

4.What do you mean by 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 interconnections among functions,data streams and data stores.

5.What do you mean by information hiding?
Information hiding is a fundamental design concept for software.
When a system is designed using information hiding approach,each module in the system hides the internal details of its processing activities and modules communicate only through well defined interfaces.

6.What are the approaches used in software design?
(OR)
What are fundamental concepts in software design?
1.Abstraction
2. Structure
3. information Hiding
4. modularity
5. Concurrency
6. Verification
7. Design aesthetics

7.Define Abstraction?
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,data streams and data stores have been established.

8.What are the three widely used abstraction?
1.Functional abstraction
2.Data abstraction
3. Control abstraction

9.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.

10.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.

11.Define control abstraction?
Its the commonly used abstraction mechanism in software design.
Control abstraction is used to state a desired effect without stating the exact mechanism of control.

12.What is the rule followed for establishing hierarchical ordering of abstractions?
If A and B are distinct entities,and if A uses B then B is not permitted to use A or any entity that makes use of A

13.What do you mean by module?
A module is a work assignment for an individual programmer.

14.Write down the desirable properties of a modular system?
1.Each processing abstraction is a well defined subsystem that is potentially useful in other applications.
2. Each function in each abstraction has a single ,well defined purpose
3. Each function manipulates no more than one major data structure.
4.Functions share global data selectively.Its easy to identify all routines that share a major data structure.
5. Functions that manipulate instances of abstract data types are encapsulated with the data structure being manipulated.

15.What do you mean by concurrency?
Concurrency is the fundamental design principle of a software .
Parallelism in software introduces added complexity and additional degrees of freedom into the design process.
Concurrent systems have independent processes that can be activated simultaneously if multiple processors available.

16.What do you mean by Dead lock?
Deadlock is an undesirable situation that occurs when all processes in a computing system are waiting for other processes to complete some actions so that each can proceed.

17.What do you mean by mutual exclusion?
Mutual Exclusion is necessary to ensure that multiple processes do not  attempt to update the same components of the shared processing state at the same time.

18.what do you mean by Synchronization?
Synchronization is required so that concurrent processes operating at different execution speeds can communicate at the appropriate points in their execution histories.

19.What are the characteristics of a software module?
1.Modules contain instructions,processing logic and data structure.
2.Modules can be separately compiled and stored in a library
3. Modules can be included in a program
4. Modules segments can be used by invoking a name and some parameters.
5. Modules can use other modules.

20.Give example for modules?
1.Procedures
2. Subroutines
3. Functions
4.Data abstraction groups
5. utility groups
6. concurrent processes.

21.What is the goal of software design?
The fundamental goal of software design is to structure the software product so that the number and complexity of interconnections between modules is minimized

22.Define coupling?
Coupling is a measure that defines the level of inter-dependability among modules of a program. It tells at what level the modules interfere and interact with each other. The lower the coupling, the better the program.

23.Define cohesion?
Cohesion is a measure that defines the degree of intra-dependability within elements of a module. The greater the cohesion, the better is the program design.

24.Write down the types of cohesion?
1. Coincidental
2. Logical
3. Temporal
4. Communication
5. Sequential
6. Functional
7. Informational

25.Write down the types of coupling?
1. Content
2. Common
3. Control
4.Stamp
5. Data

26.What do you mean by content coupling?
When a module can directly access or modify or refer to the content of another module, it is called content level coupling.

27.What do you mean by common coupling?
When multiple modules have read and write access to some global data, it is called common or global coupling.

28.What do you mean by Control  coupling?
Two modules are called control-coupled if one of them decides the function of the other module or changes its flow of execution.

29.What do you mean by Stamp  coupling?
When multiple modules share common data structure and work on different part of it, it is called stamp coupling.

30.What do you mean by Data coupling?
Data coupling is when two modules interact with each other by means of passing data (as parameter). If a module passes data structure as parameter, then the receiving module should use all its components.

31.What do you mean by Logical cohesion?
When logically categorized elements are put together into a module, it is called logical cohesion.

32.What do you mean by Coincidental cohesion?
It is unplanned and random cohesion, which might be the result of breaking the program into smaller modules for the sake of modularization. Because it is unplanned, it may serve confusion to the programmers and is generally not-accepted.

33.What do you mean by Temporal cohesion?
When elements of module are organized such that they are processed at a similar point in time, it is called temporal cohesion.

34.What do you mean by Communication cohesion?
When elements of module are grouped together, which are executed sequentially and work on same data (information), it is called communicational cohesion.

35.What do you mean by Sequential cohesion?
When elements of module are grouped because the output of one element serves as input to another and so on, it is called sequential cohesion.

36.What do you mean by Functional cohesion?
 It is considered to be the highest degree of cohesion, and it is highly expected. Elements of module in functional cohesion are grouped because they all contribute to a single well-defined function. It can also be reused.

37.What do you mean by Informational cohesion?
Elements in a module occur when the module contains a complex data structure and several routines to manipulate the data structure.

38.What are the notations used to specify external characteristics of a software ?
1.Data flow diagrams
2.Structure charts
3.HIPPO diagrams
4.Procedure specifications
5. Pseudo code
6.Structured English
7.Structured flowcharts

39.Define Data flow diagrams?
Data flow diagram is graphical representation of flow of data in an information system. It is capable of depicting incoming data flow, outgoing data flow and stored data. The DFD does not mention anything about how data flows through the system.

40.Define Structure Charts?
Structure chart is a chart derived from Data Flow Diagram. It represents the system in more detail than DFD. It breaks down the entire system into lowest functional modules, describes functions and sub-functions of each module of the system to a greater detail than DFD.

41.Define HIPPO diagrams
HIPO (Hierarchical Input Process Output) diagram is a combination of two organized method to analyze the system and provide the means of documentation.
HIPO diagram represents the hierarchy of modules in the software system. Analyst uses HIPO diagram in order to obtain high-level view of system functions. It decomposes functions into sub-functions in a hierarchical manner. It depicts the functions performed by system.
HIPO diagrams are good for documentation purpose. Their graphical representation makes it easier for designers and managers to get the pictorial idea of the system structure.

42.Define Pseudocode
Pseudo code is written more close to programming language. It may be considered as augmented programming language, full of comments and descriptions.
Pseudo code avoids variable declaration but they are written using some actual programming language’s constructs, like C, Fortran, Pascal etc.
Pseudo code contains more programming details than Structured English. It provides a method to perform the task, as if a computer is executing the code

43.Define structured English
Structured English  uses plain English words in structured programming paradigm. It is not the ultimate code but a kind of description what is required to code and how to code it.

44.Define Structured flow charts.
Structured flow charts are graphical equivalent of a structured pseudocode description.
Structured flowcharts are logically equivalent to pseudocode.
Structured flow charts are preferred in the situation where clarity of control flow is to be emphasized.
Single entry ,single exit property is preserved in structured flow chart.

45.Define side effect?
Side Effect means any effect a procedure can exert on the processing environment that is not evident from the procedure name and parameters.

46.What are the design techniques available.
1. Stepwise refinement
2.levels of abstraction
3. Structured design
4.Integrated top down development
5.Jackson structured programming.

47.What do you mean by Top-down approach?
Top-down design takes the whole software system as one entity and then decomposes it to achieve more than one sub-system or component based on some characteristics. Each sub-system or component is then treated as a system and decomposed further. This process keeps on running until the lowest level of system in the top-down hierarchy is achieved.
Top-down design starts with a generalized model of system and keeps on defining the more specific part of it. When all components are composed the whole system comes into existence.
Top-down design is more suitable when the software solution needs to be designed from scratch and specific details are unknown.

48.What do you mean by Bottom-up approach?
The bottom up design model starts with most specific and basic components. It proceeds with composing higher level of components by using basic or lower level components. It keeps creating higher level components until the desired system is not evolved as one single component. With each higher level, the amount of abstraction is increased.
Bottom-up strategy is more suitable when a system needs to be created from some existing system, where the basic primitives can be used in the newer system.

49.What are activities involved in stepwise refinement?
1.Decomposing design decisions to elementary levels
2. Isolating design aspects that are not truly interdependent
3.Postponing decisions concerning representation details as long as possible
4.Carefully demonstrating that each successive step in the refinement process is a faithful expansion of previous steps.

50.What are the benefits of stepwise refinement?
1.Top-Down decomposition
2.Incremental addition of detail
3.postponement of design decisions
4.Continual verification of consistency

51.Write down the levels of abstraction in T.H.E operating system.
level 0:Processor allocation;clock interrupt handling
Level 1:Memory segment controller
Level 2:Console message interpreter
Level 3:I/O buffering
Level 4: User programs
Level 5:Operator.

52.Define "Scope of Control"
The "scope of control" of a module is that module plus all modules that are subordinate to it in the structure chart.

53.Define "Scope of Effect"
The "Scope of Effect" of a decision is the set of all modules that contain code that is executed based on the outcome of that decision.

54.Write down the primary benefits of structured  design?
1.The use of data flow diagram focuses attention on the problem structure.
2.Translating data flow diagrams into structure charts provides a method for initiating architectural design
3.data dictionaries can be used in conjunction with structure charts to specify data attributes and data relationships.
4.Design techniques like coupling ,cohesion,scope of control,scope of effect provide criteria for systematic development of architectural structure.
5.Detailed design techniques such as HIPO diagrams.....can be used to perform detailed design of the individual module.

55.What do you mean by Stub?
Stubs are dummy routines written to stimulate subfunctions that are invoked  by higher-level functions.

56.How mapping is accomplished in Jackson structured programming?
1.The problem is modeled by specifying the input and output data structures using tree structured diagrams
2.The input-output model is converted into a structural model for the program by identifying points of correspondence between nodes in the input -output trees.
3.The structural model of the program is expanded into a detailed design model that contains the operations needed to solve the problem

57.What  do you mean by Back tracking?
1.Look ahead problem can be resolved by backtracking
2.backtracking involves saving the program state at the beginning of each processing sequence that may be incorrect.
3.if its determined that a processing sequence is incorrect,the program state is reset to the state prior to entry of that processing sequence and an alternative processing sequence is invoked.

58.Define Recursion?
Recursion is a programming technique where a function calls itself and repeats the program code in it unless some pre-defined condition matches. Recursion is the way of creating loops in functional programming.

59.What do you mean by Structure clashes?
1.Structure clashes can be resolved by program inversion.
2.Structure clashes occur when points of commonality between input and output data structures cannot be identified.

60.What do you mean by Test plan?
Test plan prescribes various kinds of activities that will be performed to demonstrate that the software product meets its requirement.
1.Specifies the objectives of testing
2.test completion criteria
3.system integration plan
4.methods to be used on particular modules
5.Particular test cases to be used


61.What are the 4 types of test available?
1.Functional
2.Performance
3.Stress
4.Structural

62.Define functional test?
Tests all functionalities of the software against the requirement.
Specify operating conditions,typical input values,typical expected results,designed to test boundary conditions.
Special values such as files and arrays containing identical values,identity matrix,zero matrix should be tested.

63.Define Stress test
Stress test are designed to overload a system in various ways such as attempting to sign on more than the maximum allowed number of terminals,processing more than the allowed number of identifiers or static levels or disconnecting a communication link.

64.Define Performance test
Performance tests are designed to verify response time,execution time,throughput,primary and secondary memory utilization,traffic rates on data channels and communication links.

65.Define structure test
Concerned with examining the internal processing logic of a software system.
The goal of structure testing is to traverse a specified number of paths through each routine in the system to establish thoroughness of testing.

66.What do you mean by distributed system?
A distributed system consists of collection of nearly autonomous processors that communicate to achieve a coherent computing system.
Each processor possesses a private memory and processors communicate through an interconnection network.

67.What do you mean by real time system?
A real time network for process control may consist of several minicomputers and microcomputers connected to one or more large processors.
Each small processor may be connected to a cluster of  real time devices.
Real time systems typically sense and control external devices,respond to external events and share processing time between multiple tasks.
Real time systems must provide specified amounts of computation within fixed time intervals.

68.What are the two major milestones of software design?
The TWO major milestones in software design are
1.Preliminary design Review(PDR)
2.Critical Design Review(CDR)

69.Define PDR?
Preliminary design review is held at the end of architectural design and prior to the detailed design.
Goal of PDR is to demonstrate the externally observable characteristics and architectural structure of the product that satisfy the customer's requirements.

70.Define CDR?
Critical Design Review occurs at the end of detailed design and prior to implementation.
CDR provides a final management decision point to build or cancel the system.
CDR is in essence a repeat of PDR but with the benefit of additional design effort.

71.Define walkthrough
Walk through is an in-depth,technical review of some aspect of a software system.
walk through s can be used at any time ,during any phase of a software project.
The person whose material is being reviewed is responsible for providing copies of the review material to members of the walk through team in advance of the walk through session,and team members are responsible for reviewing the material prior to the session.
During walk through the reviewee "walks through" the material while the reviewers look for errors,request clarifications and explore problem areas in the material under review.

72.Define Inspection
Inspection  is used to verify the compliance of the product with specified standards and requirements.
It is done by examining, comparing the product with the designs, code and any other documentation available.
It needs proper planning and overviews are done on the planning to ensure that inspections are held properly.
Lots of preparations are needed, meetings are held to do inspections and then on the basis of the feedback of the inspection, rework is done.



No comments:

Post a Comment