Showing posts with label CS2301. Show all posts
Showing posts with label CS2301. Show all posts

Thursday, July 3, 2014

UNIT – V SOFTWARE PROJECT MANAGEMENT

1. Define measure.
Measure is defined as a quantitative indication of the extent, amount, dimension, or size of some attribute of a product or process.

2. Define metrics.
Metrics is defined as the degree to which a system component, or process possesses a given attribute.

3. What are the types of metrics?
Direct metrics – It refers to immediately measurable attributes.
          Example – Lines of code, execution speed.
Indirect metrics – It refers to the aspects that are not immediately quantifiable or measurable.   Example – functionality of a program.

4. Write short note on the various estimation techniques.
Algorithmic cost modeling – the cost estimation is based on the size of the software.
Expert judgment – The experts from software development and the application domain.
Estimation by analogy – The cost of a project is computed by comparing the project to a similar project in the same application domain.
Parkinson’s Law – The cost is determined by available resources rather than by objective assessment.
Pricing to win – The project costs whatever the customer ready to spend it.

5. What is COCOMO model?
COnstructive COst MOdel is a cost model, which gives the estimate of number of man-months it will take to develop the software product.

6. Give the procedure of the Delphi method.
1. The co-coordinator presents a specification and estimation form to each expert.
2. Co-coordinator calls a group meeting in which the experts discuss estimation issues with the coordinator and each other.
3. Experts fill out forms anonymously.
4. Co-coordinator prepares and distributes a summary of the estimates.
5. The Co-coordinator then calls a group meeting.


7. What is the purpose of timeline chart?
The purpose of the timeline chart is to emphasize the scope of the individual task. Hence set of tasks are given as input to the timeline chart.

8. What is EVA?
Earned Value Analysis is a technique of performing quantitative analysis of the software project. It provides a common value scale for every task of software project. It acts as a measure for software project progress.

9. What are the metrics computed during error tracking activity?
Errors per requirement specification page.
Errors per component-design level
Errors per component-code level
DRE-requirement analysis
 DRE-architectural analysis
DRE-component level design
DRE-coding.

10. What is software maintenance?
Software maintenance is an activity in which program is modified after it has been put into use. 

11. Define maintenance.
Maintenance is defined as the process in which changes are implemented  By either modifying the existing system’s architecture or by adding new components to the system.

12. What are the types of software maintenance?
Corrective maintenance – Means the maintenance for correcting the software faults.
Adaptive maintenance – Means maintenance for adapting the change in environment.
Perfective maintenance – Means modifying or enhancing the system to meet the new requirements.
Preventive maintenance – Means changes made to improve future maintainability.


13. How the CASE tools are classified?
CASE tools can be classified by    a. By function or use    b. By user type (e.g. manager, tester), or   c. By stage in software engineering process (e.g. requirements, test).

Wednesday, July 2, 2014

UNIT – IV TESTING CS2301, SOFTWARE ENGINEERING,

1. Define software testing?
            Software testing is a critical element of software quality assurance and represents the ultimate review of specification, design, and coding.

2. What are the objectives of testing?
i. Testing is a process of executing a program with the intend of finding an error.
ii. A good test case is one that has high probability of finding an undiscovered error.
iii. A successful test is one that uncovers as an-yet undiscovered error.

3. What are the testing principles the software engineer must apply while performing the software testing?
i. All tests should be traceable to customer requirements.
ii. Tests should be planned long before testing begins.
iii. The pareto principle can be applied to software testing-80% of all errors uncovered during testing will likely be traceable to 20% of all program modules.
iv. Testing should begin “in the small” and progress toward testing “in the large”. v. Exhaustive testing is not possible.
vi. To be most effective, an independent third party should conduct testing.

4. What are the two levels of testing?
i. Component testing - Individual components are tested. Tests are derived from developer’s experience.
ii. System Testing - The group of components are integrated to create a system or sub-system is done. These tests are based on the system specification.

5. What are the various testing activities?
i. Test planning
ii. Test case design
iii. Test execution
iv. Data collection
v. Effective evaluation

6. Write short note on black box testing.
The black box testing is also called as behavioral testing. This  method  fully focus on the functional requirements of the software. Tests are derived that fully exercise all functional requirements.                                                                                                         
7. What is equivalence partitioning?
Equivalence partitioning is a black box technique that divides the input domain into classes of data. From this data test cases can be derived. Equivalence class represents a set of valid or invalid states for input conditions. 
 
8. What is a boundary value analysis?
A boundary value analysis is a testing technique in which the elements at the edge of the domain are selected and tested. It is a test case design technique that complements equivalence partitioning technique.

9. What are the reasons behind to perform white box testing?
There are three main reasons behind performing the white box testing.
1. Programmers may have some incorrect assumptions while designing or implementing some functions.
 2. Certain assumptions on flow of control and data may lead programmer to make design errors. To uncover the errors on logical path, white box testing is must.
3. There may be certain typographical errors that remain undetected even after syntax and type checking mechanisms. Such errors can be uncovered during white box testing.

10. What is cyclomatic complexity?
Cyclomatic complexity is software metric that gives the quantitative   Measure of logical complexity of the program.                                                                                                                                                                                                      
11. How to compute the cyclomatic complexity?
The cyclomatic complexity can be computed by any one of the following ways. 
   1. The numbers of regions of the flow graph correspond to the cyclomatic complexity.
              2. Cyclomatic complexity (G), for the flow graph G, is defined as: V(G)=E-N+2, E -- number of flow graph edges, N -- number of flow graph nodes
            3. V(G) = P+1 Where P is the number of predicate nodes contained in the flow graph.

12. Distinguish between verification and validation.
Verification refers to the set of activities that ensure that software correctly implements a specific function.Validation refers to a different set of activities that ensure that the software that has been built is traceable to the customer requirements.

13. What are the various testing strategies for conventional software?
i. Unit testing
ii. Integration testing.
iii. Validation testing.
iv. System testing.

Tuesday, July 1, 2014

UNIT – III ANALYSIS, DESIGN CONCEPTS AND PRINCIPLES

1. What are the elements of design model?
i. Data design      
ii. Architectural design
iii. Interface design                                                                                         
iv. Component-level design

2. Define design process.
Design process is a sequence of steps carried through which the requirements are translated into a system or software model.

3. List the principles of a software design.
i. The design process should not suffer from “tunnel vision”
ii. The design should be traceable to the analysis model.
iii. The design should exhibit uniformity and integration.
iv. Design is not coding.
v. The design should not reinvent the wheel.

4. What is the benefit of modular design?
Changes made during testing and maintenance becomes manageable and they do not affect other modules.

5. What is a cohesive module?
A cohesive module performs only “one task” in software procedure with little interaction with other modules. In other words cohesive module performs only one thing.

6. What are the different types of Cohesion?
i. Coincidentally cohesive - The modules in which the set I\of tasks are related with each other loosely.
 ii. Logically cohesive – A module that performs the tasks that are logically related with each other.
 iii. Temporal cohesion – The module in which the tasks need to be executed in some specific time span.
 iv. Procedural cohesion – When processing elements of a module are related with one another and must be executed in some specific order.
v. Communicational cohesion – When the processing elements of a module share the data then such module is called communicational cohesive.

7. What is coupling?
Coupling is the measure of interconnection among modules in a program structure. It depends on the interface complexity between modules. 

8. What are the various types of coupling?
i. Data coupling – The data coupling is possible by parameter passing or data interaction.
                        ii. Control coupling – The modules share related control data in control coupling.
iii. Common coupling – The common data or a global data is shared among modules.
                     iv. Content coupling – Content coupling occurs when one module makes use of data or control information maintained in another module.

9. What are the common activities in design process?
i. System structuring – The system is subdivided into principle subsystems components and communications between these subsystems are identified.
ii. Control modeling – A model of control relationships between different parts of the system is established.
iii. Modular decomposition – The identified subsystems are decomposed into modules.

 10. What are the benefits of horizontal partitioning?
i. Software that is easy to test.
ii. Software that is easier to maintain.
iii. Propagation of fewer side effects.
iv. Software that is easier to extend.

11. What is vertical partitioning? 
Vertical partitioning often called factoring suggests that the control and work should be distributed top-down in program structure.

12. What are the advantages of vertical partitioning?
i. These are easy to maintain changes.
ii. They reduce the change impact and error propagation.

13. What are the various elements of data design?
i. Data object – The data objects are identified and relationship among various data objects can be represented using ERD or data dictionaries.
            ii. Databases – Using software design model, the data models are translated into data structures and data bases at the application level.
            iii. Data warehouses – At the business level useful information is identified from various databases and the data warehouses are created.