2015 - 2016
Comprehensive Examination (Regular)
Question) Indicate True or False for following statements with a justification within 30 words. No credit is given for answers with no justification.
a. For successful design, you must practice diversification followed by convergence.
Answer)TRUE
b. Appraisal cost is likely to be the most expensive element of cost of quality.
Answer)TRUE
c. Before an architectural pattern is chosen for use in a particular system it must have a code implementation to expedite its reuse.
Answer)FALSE
d.Quantitative methods for evaluating the quality of proposed architectural designs are freely available.
Answer) FALSE
e. In component-based software engineering, the team searches for available components at the outset of the project.
Answer)FALSE
f. With thorough testing it is possible to remove all defects from a program prior to delivery to the customer.
Answer)FALSE
g. Many software metrics can only be measured indirectly.
Answer)TRUE
h. Software testing is deemed complete at end of budgeted duration for testing.
Answer)FALSE
i. Design patterns are not applicable to the design of object-oriented software.
Answer)FALSE
Question) Differentiate the following:
a. Analysis vs. design
Answer)
Analysis: The goal in Analysis is to understand the problem and to begin to develop a visual model of what you are trying to build, independent of implementation and technology concerns. Analysis concentrates on translating the functional requirements into software theories. The idea is to get a rough cut at the objects that comprise our system, but focusing on behavior (and therefore encapsulation). After Analysis is performed we move effortlessly, into "Design" and the other concerns.
Design: Goal of Design is to improve the model with the purpose of developing a Design Model that will permit a seamless transition to the coding phase. In design, we familiarize ourselves to the implementation and the deployment environment. The implementation environs is the "developer" environment, which is a software super set and also a hardware subset of the deployment environment.
 
 
 
d. Measure vs. indicator
e. Function-points vs. Lines of Code estimation
Answer)
Both FP and LOC are units of measurement for software size. The size of a software that is subject to development is required in order to come up with accurate estimates of effort, cost and duration of a software project. Most parametric estimation models such as COCOMO accept size expressed in either FP or LOC as input. Personally i prefer functional size of software expressed as FP for one very important reason: Size expressed using the FP metric stay constant regardless of which programming language or languages are used. Since the industry has more than 700 programming languages and almost every application uses multiple languages, the consistency of FP metric allow economic studies that are not possible using LOC metric. Function points can be seen as a universal IT-currency converter, giving a synthetic measure of the size of a software. For instance, it takes about 106.7 Cobol statements to construct 1 function point of software. It takes 128 C statements for the same 1 function point.
Question) Your organization has been executing software projects using prescriptive process models. Your management wanted to shift to agile processes. Prepare a memo listing requirements and implications of the shift.
Answer)
Question) Consider the software requirements for a modern bank offering savings accounts to its customers.
a.Draw use case diagram to express their requirements
Answer)
b.Prepare detailed structured documentation for one of the use cases.
c.Identify the analysis classes with brief justification for the selection of each class.
Question) Consider the binary search algorithm given below:
algobinarySearch(arr, size, searchValue)
{
int low =0;
int high = size-1;
int mid = (low + high) /2;
int NOT_FOUND = -1;
while (low < = high &&arr[mid] != searchValue)
{
if (arr[mid] <searchValue) low = mid +1;
else high = mid - 1;
mid = (low + high)/2;
}
if (low > high) mid = NOT_FOUND;
return mid;
}
Answer the following questions:
a) Draw the control flow graph for the given algorithm.
b) Calculate Cyclomatic Complexity using all the three methods.
Comprehensive Examination (Regular)
Question) Indicate True or False for following statements with a justification within 30 words. No credit is given for answers with no justification.
a. For successful design, you must practice diversification followed by convergence.
Answer)TRUE
b. Appraisal cost is likely to be the most expensive element of cost of quality.
Answer)TRUE
c. Before an architectural pattern is chosen for use in a particular system it must have a code implementation to expedite its reuse.
Answer)FALSE
d.Quantitative methods for evaluating the quality of proposed architectural designs are freely available.
Answer) FALSE
e. In component-based software engineering, the team searches for available components at the outset of the project.
Answer)FALSE
f. With thorough testing it is possible to remove all defects from a program prior to delivery to the customer.
Answer)FALSE
g. Many software metrics can only be measured indirectly.
Answer)TRUE
h. Software testing is deemed complete at end of budgeted duration for testing.
Answer)FALSE
i. Design patterns are not applicable to the design of object-oriented software.
Answer)FALSE
Question) Differentiate the following:
a. Analysis vs. design
Answer)
Analysis: The goal in Analysis is to understand the problem and to begin to develop a visual model of what you are trying to build, independent of implementation and technology concerns. Analysis concentrates on translating the functional requirements into software theories. The idea is to get a rough cut at the objects that comprise our system, but focusing on behavior (and therefore encapsulation). After Analysis is performed we move effortlessly, into "Design" and the other concerns.
Design: Goal of Design is to improve the model with the purpose of developing a Design Model that will permit a seamless transition to the coding phase. In design, we familiarize ourselves to the implementation and the deployment environment. The implementation environs is the "developer" environment, which is a software super set and also a hardware subset of the deployment environment.
Analysis 
 | 
  
Design 
 | 
 
.Focus
  on understanding the problem 
.Idealized
  design 
.Behavior 
.System
  structure 
.Functional
  requirements 
.A small
  model 
 | 
  
.Focus
  on understanding the solution 
.Operations
  and attributes 
.Performance 
.Close to
  real code 
.object
  life cycles 
.Nonfunctional
  requirements 
.A large
  model 
 | 
 
b. Cohesion vs. coupling
Answer)
Cohesion 
 | 
  
Coupling 
 | 
 
Cohesion is the indication of the relationship
  within module. 
 | 
  
Coupling is the indication of the
  relationships between modules. 
 | 
 
Cohesion shows the module’s
  relative functional strength. 
 | 
  
Coupling displays the relative independence between
  the modules and components of system. 
 | 
 
Cohesion is a degree (quality) to
  which a component / module emphases on the single thing. 
 | 
  
Coupling is a degree to which a
  component / module is related to the other modules. 
 | 
 
While designing you should strive for high cohesion i.e.
  a cohesive component/ module focus on a single task (i.e., single-mindedness)
  with little interaction with other modules of the system. 
 | 
  
While designing you should strive
  for low
  coupling i.e. dependency between
  modules should be less. 
 | 
 
Cohesion is a natural way of extension
  of data hiding. For example, class having
  all members visible with a package ensuring default visibility. 
 | 
  
Creating private methods, private fields
  and non-public classes delivers loose coupling. 
 | 
 
Cohesion is Intra – Module Concept. 
 | 
  
Coupling is Inter -Module Concept. 
 | 
 
c. White-box testing vs. black-box testing
Answer)
             Black
  Box Testing 
 | 
  
 
                   White
  Box Testing 
 | 
 
With Black box testing one
  can test the software without knowing the internal structure of code or
  program. 
 | 
  
With White box the
  internal structure of system is well-known to tester who is going to check
  the software. 
 | 
 
This type of testing is
  carried out by testers. 
 | 
  
Generally, this type of
  testing is performed by software developers. 
 | 
 
Implementation Knowledge
  is not required to carry out Black Box Testing. 
 | 
  
Implementation Knowledge
  is required to carry out White Box Testing. 
 | 
 
Programming Knowledge is
  not required to carry out Black Box Testing. 
 | 
  
Programming Knowledge is
  required to carry out White Box Testing. 
 | 
 
In this method, testing
  is applicable on higher levels of testing .For instance System Testing,
  Acceptance testing. 
 | 
  
In this method, testing
  is applicable on lower level of testing .Example :Unit Testing, Integration
  testing. 
 | 
 
Black box testing means external
  test or functional testing. 
 | 
  
White box testing means interior
  test or structural testing. 
 | 
 
d. Measure vs. indicator
e. Function-points vs. Lines of Code estimation
Answer)
Both FP and LOC are units of measurement for software size. The size of a software that is subject to development is required in order to come up with accurate estimates of effort, cost and duration of a software project. Most parametric estimation models such as COCOMO accept size expressed in either FP or LOC as input. Personally i prefer functional size of software expressed as FP for one very important reason: Size expressed using the FP metric stay constant regardless of which programming language or languages are used. Since the industry has more than 700 programming languages and almost every application uses multiple languages, the consistency of FP metric allow economic studies that are not possible using LOC metric. Function points can be seen as a universal IT-currency converter, giving a synthetic measure of the size of a software. For instance, it takes about 106.7 Cobol statements to construct 1 function point of software. It takes 128 C statements for the same 1 function point.
Answer)
Question) Consider the software requirements for a modern bank offering savings accounts to its customers.
a.Draw use case diagram to express their requirements
Answer)
b.Prepare detailed structured documentation for one of the use cases.
c.Identify the analysis classes with brief justification for the selection of each class.
algobinarySearch(arr, size, searchValue)
{
int low =0;
int high = size-1;
int mid = (low + high) /2;
int NOT_FOUND = -1;
while (low < = high &&arr[mid] != searchValue)
{
if (arr[mid] <searchValue) low = mid +1;
else high = mid - 1;
mid = (low + high)/2;
}
if (low > high) mid = NOT_FOUND;
return mid;
}
Answer the following questions:
a) Draw the control flow graph for the given algorithm.
b) Calculate Cyclomatic Complexity using all the three methods.
c) Find the basis set of the execution paths.
Answer) 
a. 



No comments:
Post a Comment