SOFTWARE ENGINEERING: SUB CODE- 35272 QPCODE: -376 … · b) Explain i) Value of good SRS -[5] An...

14
1 SOFTWARE ENGINEERING: SUB CODE- 35272 QPCODE: -376 PART-A (Each question carries 2marks,Answer any FIVE (5) questions. Q.No. 8 - Compulsory) 1.Define software engineering. Software Engineering deals with cost effective solutions to practical problems by applying scientific knowledge in building software artifacts in the service of mankind. 2. Expand SDD? Software Design Description Or Software Design Document 3. Write the steps for software project estimation. Estimating the size of project Estimating effort based on man-month or man-hour Estimating schedule in calendar Estimating total cost of the project 4.Define software version control. Version control combines procedures and tools to manage different versions of configuration objects that are created during the software process. During the process of software evolution, many objects are produced. 5.Define test cases. Testing comes down to selecting and executing test cases. A test case for a specific component consists of three essential pieces of information: A Set of test inputs The expected results when the inputs are executed; and The execution conditions or environments in which the inputs are to be executed 6.What are ethical issues? Ethical issues play a big role in the analysis and development of software products. It implicates and indicates the existence of professional codes of practices. 7.Define software reliability. Software reliability is defined as that software will provide failure-free operation in a fixed environment for fixed interval of time. (or) Reliability of a software product can also be defined as the probability of the product working correctly over a given period of time. 8.Which is represented by the radial and angular dimension of spiral model SDLC? In spiral model the radial dimension represents the cumulative cost incurred in finishing the steps so far and angular dimension represents the progress made in completing each cycle of the spiral.

Transcript of SOFTWARE ENGINEERING: SUB CODE- 35272 QPCODE: -376 … · b) Explain i) Value of good SRS -[5] An...

Page 1: SOFTWARE ENGINEERING: SUB CODE- 35272 QPCODE: -376 … · b) Explain i) Value of good SRS -[5] An SRS establishes the basis for agreement between the client and the supplier on what

1

SOFTWARE ENGINEERING: SUB CODE- 35272

QPCODE: -376

PART-A

(Each question carries 2marks,Answer any FIVE (5) questions. Q.No. 8 - Compulsory)

1.Define software engineering.

Software Engineering deals with cost effective solutions to practical problems by applying scientific knowledge in building software artifacts in the service of mankind.

2. Expand SDD?

Software Design Description Or Software Design Document

3. Write the steps for software project estimation.

Estimating the size of project

Estimating effort based on man-month or man-hour Estimating schedule in calendar

Estimating total cost of the project

4.Define software version control.

Version control combines procedures and tools to manage different versions of configuration objects that are

created during the software process. During the process of software evolution, many objects are produced.

5.Define test cases.

Testing comes down to selecting and executing test cases. A test case for a specific component consists of three essential pieces of information:

• A Set of test inputs

• The expected results when the inputs are executed; and • The execution conditions or environments in which the inputs are to be executed

6.What are ethical issues?

Ethical issues play a big role in the analysis and development of software products. It implicates and indicates the

existence of professional codes of practices.

7.Define software reliability.

Software reliability is defined as that software will provide failure-free operation in a fixed environment for fixed interval of time.

(or)

Reliability of a software product can also be defined as the probability of the product working correctly over a given period of time.

8.Which is represented by the radial and angular dimension of spiral model SDLC?

In spiral model the radial dimension represents the cumulative cost incurred in finishing the steps so far and

angular dimension represents the progress made in completing each cycle of the spiral.

Page 2: SOFTWARE ENGINEERING: SUB CODE- 35272 QPCODE: -376 … · b) Explain i) Value of good SRS -[5] An SRS establishes the basis for agreement between the client and the supplier on what

2

PART – B

(Each question carries 3 mark Answer any FIVE (5) questions. Q. No 16 - Compulsory)

9.Define data flow diagram.

Data Flow Diagram (DFD) is a graphical representation of flow of data in an information system. It is

capable of showing incoming data flow, outgoing data flow, and stored data. The DFD does not mention anything about how data flows through the system.

DFD can easily illustrate relationships among data flows, external entities and data stores.

10.What is coupling and cohesion?

Coupling is the measure of the degree of interdependence between modules.

Content,

Common, External,

Control,

Stamp And Data.

Cohesion of a module represents how tightly the internal elements of the module are bound to one another. Functional Cohesion,

Sequential Cohesion,

Communicational Cohesion,

Procedural cohesion, Temporal Cohesion,

Logical Cohesion,

Coincidental Cohesion.

11.What are the objectives of CASE?

Improve Productivity

Improve information System Quality

Improve Effectiveness

Organizations Reject CASE.

12.Describe any two methods for black box testing strategies.

The following are the two main approaches available to design black-box test cases:

Equivalence class partitioning.

The main idea behind defining equivalence classes of input data is that testing the code with any one value belonging to an equivalence class is as good as testing the code with any other value belonging to the same

equivalence class.

Boundary value analysis Boundary value analysis-based test suite design involves designing test cases using the values at the

boundaries of different equivalence classes.

13.List any three classifications of testing tools with example.

(Any Three)

o Function/ Regression tools. o Performance / Load testing tools.

o Testing process Management Tools.

Page 3: SOFTWARE ENGINEERING: SUB CODE- 35272 QPCODE: -376 … · b) Explain i) Value of good SRS -[5] An SRS establishes the basis for agreement between the client and the supplier on what

3

Function/ Regression tools

Functional testing is a process used within software development in which software is tested to ensure

that it conforms with all requirements.

Regression Testing Regression Testing is always used to verify that modified code does not break the existing functionality

of the application and works within the requirements of the system.

Performance testing tools are basically for system level testing, to see whether or not the system will stand up to a high volume of usage.

A load testing is to check that the system can handle its expected number of transactions.

Test management tools are given below To manage the tests

Scheduling of tests to be executed

Interfaces to other tools

Traceability of tests To log the test results

To prepare progress reports based on metrics

14.Describe software quality attributes.

Software quality attributes are:

Functionality,

Reliability,

Usability,

Efficiency,

Maintainability,

Portability

15.What are the purposes of reverse engineering?

The main purpose of reverse engineering is to recover information from the existing code or any other

intermediate documents, any activity that requires program understanding at any level may fall within the scope of reverse

engineering.

16.Describe the factors affecting the effort.

There are many other factors that contribute to the effort needed to maintain a system. These factors can include the following:

Application Type

System novelty Turnover and maintenance staff availability

System life span

Dependence on a changing environment

Hardware characteristics Design quality

Code quality

Documentation quality Testing quality

Page 4: SOFTWARE ENGINEERING: SUB CODE- 35272 QPCODE: -376 … · b) Explain i) Value of good SRS -[5] An SRS establishes the basis for agreement between the client and the supplier on what

4

PART-C

17. a). Explain about software development life cycle. [10]

(List-3mark, Fig-3mark, Explanations -4marks)

Software Development Life Cycle, SDLC for short, is a well-defined, structured sequence of stages in software

engineering to develop the intended software product.

Water fall Model Simple

Easy to execute

Intuitive and Logical

Prototyping Model

Reduce risk

Leads to a better System

Helps in requirements elicitation

Spiral Model Controls project risks,

Very flexible.

Less documentation.

Page 5: SOFTWARE ENGINEERING: SUB CODE- 35272 QPCODE: -376 … · b) Explain i) Value of good SRS -[5] An SRS establishes the basis for agreement between the client and the supplier on what

5

Iterative Enhancement Model

Regular and fast deliveries Reduces risk

Allows user feedback

Accommodates changes

Rapid Application Development Model

Fast application development and delivery.

Less testing activity required.

Object Oriented Model

More flexible.

Codes are re-used

Page 6: SOFTWARE ENGINEERING: SUB CODE- 35272 QPCODE: -376 … · b) Explain i) Value of good SRS -[5] An SRS establishes the basis for agreement between the client and the supplier on what

6

(OR)

b) Explain i) Value of good SRS -[5]

An SRS establishes the basis for agreement between the client and the supplier on what the software product will do.

An SRS provides a reference for validation of the final product.

A high-quality SRS is a prerequisite to high-quality software.

A high-quality SRS reduces the development cost.

ii) Components of SRS. - [5]

Functionality

Performance

Design constraints imposed on an implementation

External interfaces

Functional Requirements Functional requirements specify what output should be produced from the given inputs. So, they basically

describe the connectivity between the input and output of the system.

Performance Requirements (Speed Requirements) This part of an SRS specifies the performance constraints on the software system. All the requirements

related to the performance characteristics of the system must be clearly specified. Performance requirements

are typically expressed as processed transactions per second or response time from the system for a user event or screen refresh time or a combination of these.

Design Constraints The client environment may restrict the designer to include some design constraints that must be followed.

The various design constraints are standard compliance, resource limits, operating environment, reliability

and security requirements and policies that may have an impact on the design of the system .

External Interface Requirements

For each external interface requirements:

1. All the possible interactions of the software with people, hardware and other software should be clearly specified.

2. The characteristics of each user interface of the software product should be specified and

3. The SRS should specify the logical characteristics of each interface between the software product and the

hardware components for hardware interfacing.

Page 7: SOFTWARE ENGINEERING: SUB CODE- 35272 QPCODE: -376 … · b) Explain i) Value of good SRS -[5] An SRS establishes the basis for agreement between the client and the supplier on what

7

18) a)Write briefly about COCOMO model. - [10]

(List-3-mark, Fig-2mark, Explanation -5marks)

COCOMO stands for Constructive Cost Model. It was introduced by Barry Boehm. It providesthe

following three level of models:

Basic COCOMO: A single – value model that computes software development cost as a function of estimate

of LOC.

Intermediate COCOMO: This model computes development cost and effort as a function of program size

(LOC) and a set of cost drivers.

Detailed COCOMO: This model computes development effort and cost which incorporates all

characteristics of intermediate level with assessment of cost implication on each step of development

(analysis, design, testing etc.,).

Page 8: SOFTWARE ENGINEERING: SUB CODE- 35272 QPCODE: -376 … · b) Explain i) Value of good SRS -[5] An SRS establishes the basis for agreement between the client and the supplier on what

8

(OR)

b. Explain building blocks for CASE and its support in software life cycle.- [10]

(List-4, Fig-2, Explanation-4)

Building Blocks for CASE

Environment Architecture. The environment architecture, composed of the hardware platform and

operating system support including networking and database management software, lays the groundwork for CASE but the CASE environment itself demands other building blocks.

Portability Services. A set of portability service provides a bridge between CASE tools and their integration

framework and the environment architecture. These portability services allow the CASE tools and their integration framework to migrate across different hardware platforms and operating systems without

significant adaptive maintenance.

Integration framework. It is a collection of specialized programs that enables individual CASE tools to

communicate with one another, to create a project database. Case Tools. CASE tools are used to assist software engineering activities (like analysis modeling, code

generation etc.) either communicating with other tools, project database (integrated CASE environment) or

as point solutions.

CASE Support in Software Life Cycle

There are various types of support that provides during the different phases of a software life cycle.

Prototyping Support. The prototyping is used to understand the requirements of complex software products, to market new ideas and so on. The prototyping CASE tools requirements are as follows: • Define

user interaction • Define the system control flow • Store and retrieve data required by the system •

Incorporate some processing logic Structured Analysis and Design. A CASE tool should support one or more of the structured analysis and

design techniques. It should also support making of the fairly complex diagrams and preferably through a

hierarchy of levels. The tool must also check the incompleteness, inconsistencies and anomalies across the

design and analysis through all levels of analysis hierarchy. Code Generation. A support expected from a CASE tool during the code generation phase comprises the

following:

• The CASE tool should support generation of module skeletons or templates in one or more popular programming languages.

• The tool should generate records, structures, class definitions automatically from the contents of

the data dictionary in one or more popular programming languages. • It should be able to generate database tables for relational database management systems.

• The tools should generate code for user interface from prototype definitions for X- Windows and MS

Window based applications.

Test CASE Generator. The CASE tool for test case generator should have following features: • It should support both design and requirement testing.

• It should generate test set reports in ASCII formats, which can be directly imported into the test

plan document.

Page 9: SOFTWARE ENGINEERING: SUB CODE- 35272 QPCODE: -376 … · b) Explain i) Value of good SRS -[5] An SRS establishes the basis for agreement between the client and the supplier on what

9

19) a) Briefly explain risk management categories. - [10]

SOURCES OF RISK

Generic Risks. Generic risks are common to all software projects. Generic risks are a potential threat to every software project. For example, Requirements misunderstanding, allowing

insufficient time for testing is losing key personnel etc.

Project-Specific Risks.A vendor may be promising to deliver particular software by a particular

date, but he is unable to do it.

TYPES OF RISKS

Technical Risks.Technical risks threaten the quality and timeliness of the software to be

produced.

Business Risk.Business risks are risks, which affect the organization developing or

procuring the software. Project Risks.Project risks are risks, which affect the project schedule or resources.

Page 10: SOFTWARE ENGINEERING: SUB CODE- 35272 QPCODE: -376 … · b) Explain i) Value of good SRS -[5] An SRS establishes the basis for agreement between the client and the supplier on what

10

(OR)

b. i) Explain Gantt chart. - [5]

(List-2-mark, Explanation -3marks)

Gantt chart is a graphical representation of the project. It is used in project scheduling to depict the

activities of the project. This chart shows the start and end dates of each activity in the project. In addition, it shows week, month, or quarter required to complete each activity. Due to this fact, Gantt chart is also known as timeline

chart. It shows information about activities in the form of horizontal bars. Generally, a Gantt chart is prepared on a

graph paper. In case a Gantt chart is big and complex, it is prepared using applications such as Microsoft Excel. A Gantt chart helps the project manager by providing a graphical illustration of the project schedule. The

advantages of using Gantt chart are:

It represents the project in a graphical form.

It reports the status of the project by showing the progress of each activity. It keeps a record of the activities being performed in the project.

It depicts milestones after completion of each activity.

It describes the tasks which are assigned to the project management team members.

b.ii) Explain PERT scheduling methods.

(List-2-mark, Explanation -3marks)

PERT CHART: The Program Evaluation and Review Technique (PERT) chart is used to schedule, organize

and coordinate tasks within the project. The objective of PERT chart is to determine the critical path, which

comprises critical activities that should be completed on schedule. This chart is prepared with the help of information generated in project planning activities such as estimation of effort, selection of suitable process model for software

development and decomposition of tasks into subtasks.

The advantages of using PERT charts are: • It represents the project in a graphical form.

• It provides information about the expected completion time of the project.

• It describes the probability of completion of the project before the specified date. • It specifies the activities that form the critical path.

• It specifies the start and end dates of activities involved in project.

• It describes the dependencies of one or more tasks on each other.

Page 11: SOFTWARE ENGINEERING: SUB CODE- 35272 QPCODE: -376 … · b) Explain i) Value of good SRS -[5] An SRS establishes the basis for agreement between the client and the supplier on what

11

20) a)Describe briefly different levels of testing. – [10]

(List-2-mark, Fig-4, Explanation -4marks)

Testing is an important step n software development life cycle. The process of testing takes place at various

stages of development in programming. This is a vital step in development life cycle because the process of testing

helps to identify the mistakes and sends the program for correction.

This process gets repeated at various stages until the final unit or program is found to be complete thus gives

a total quality to the development process. The various levels and types of testing found in a software development

life cycle are:

Unit testing

Integration testing

System testing

Acceptance testing

Unit Testing- Unit testing is a level of the software testing process where individual units/components of a software/System are tested. The purpose is to validate that the software performs as designed.

Integration Testing - Integration testing is the activity of software testing in which individual software modules

are combined and tested as a group. The purpose of integration testing is to verify functional, performance , and reliability requirement placed on major design items.

System Testing - System testing of software or hardware is the testing conducted on a complete, integrated system to evaluate the system’s compliance with its specified requirement.

Acceptance Testing- Acceptance testing is the testing of system with the intent of confirming readiness of the

product and customer acceptance.

Acceptance Testing

System Testing

Integration Testing

Unit Testing

Page 12: SOFTWARE ENGINEERING: SUB CODE- 35272 QPCODE: -376 … · b) Explain i) Value of good SRS -[5] An SRS establishes the basis for agreement between the client and the supplier on what

12

(OR)

b i) Explain software engineering code of ethics and professional practice. – [10]

(List-4-mark, Explanation -6marks)

Software engineers shall commit themselves to making the analysis, specification, design, development, testing and maintenance of software a beneficial and respected profession.

In accordance with their commitment to the health, safety and welfare of the public, software engineers shall adhere to the following Eight Principles:

1. PUBLIC - Software engineers shall act consistently with the public interest.

2. CLIENT AND EMPLOYER - Software engineers shall act in a manner that is in the best interests of their client and employer consistent with the public interest.

3. PRODUCT - Software engineers shall ensure that their products and related modifications meet the highest professional standards possible.

4. JUDGMENT - Software engineers shall maintain integrity and independence in their professional judgment.

5. MANAGEMENT - Software engineering managers and leaders shall subscribe to and promote an ethical

approach to the management of software development and maintenance.

6. PROFESSION - Software engineers shall advance the integrity and reputation of the profession consistent

with the public interest.

7. COLLEAGUES - Software engineers shall be fair to and supportive of their colleagues.

8. SELF - Software engineers shall participate in lifelong learning regarding the practice of their profession

and shall promote an ethical approach to the practice of the profession.

21) a) Explain SEI-CMM levels.- [10]

(List-4-mark, Explanation -6marks)

SEI-CMM stands for Software Engineering Institute Capability Maturity Model

These levels are defined as follows:

1.Level 1 (Initial). The software process is adhoc, and even chaotic at time. The organization whose success

depends on individual effort and processes are not defined and documented come under this level. Organization at this level can benefit most by improving project management, quality assurance and change control.

2. Level 2 (Repeatable): Company defines the basic management practices such as tracking cost; schedule and functionality are established but not the procedures of doing it. Here the efforts done previously for success of

project may repeat. Some of the characteristics of a process at this level are: Project commitments are realistic and

based on past experience with similar projects, cost and schedule are tracked and problems resolved when they arise,

formal configuration control mechanisms are in place, and software project standards are defined and followed.

Page 13: SOFTWARE ENGINEERING: SUB CODE- 35272 QPCODE: -376 … · b) Explain i) Value of good SRS -[5] An SRS establishes the basis for agreement between the client and the supplier on what

13

3. Level 3(Defined). The organization-wide software process includes management and engineering

procedures. These procedures are well defined, documented, standardized and integrated. All projects make use of the documented and approved version of the organization process for software development and maintenance. But

the process and practices are not analyzed quantitatively. In this process both the development and management

processes are formal. ISO 9000 aims at achieving this level.

4. Level 4(Managed). At this level, the focus is on software metrics. Two types of metric are collected.

Product metrics measure the characteristics of the product being developed, such as its size, reliability, time

complexity, understandability, etc. Process metrics reflect the effectiveness of the process being used, such as the average defect correction time, productivity, the average number of defects found per hour of inspection, the average

number of failures detected during testing per LOC, and so forth. The process metrics are used to check if a project

performed satisfactorily. Thus, the results of process measurements are used to evaluate project performance rather than to improve the process.

Software processes and products are quantitatively understood; measured and controlled using detailed

procedures.

5. Level 5(Optimized). By using the quantitative feedback from the process in place, exploring new ideas

and technologies. At this level, an organization is committed to continuous process improvement. Process

improvement is budgeted and planned and is an integral part of the organization’s process. The organization has the means to identify weakness and strengthen the process proactively, with the goal of preventing the occurrence of

defects. Best software engineering and management practices are used throughout the organization.

Except for level 1, each maturity level is characterized by several Key Process Areas (KPAs)

(OR)

b) Explain re-engineering process with a blockdiagram. - [10]

(List-2-mark, Fig-3, Explanation -5marks)

The input to the process is an original program and the output is a structured, modularized version of the

same program. At the same time as program re-engineering, the data for system may also be re-engineered.

Re-engineering process includes the following activities:

Source Code Translation: The programming language of an old program is converted into the

modern version of the same language or to a new language.

Page 14: SOFTWARE ENGINEERING: SUB CODE- 35272 QPCODE: -376 … · b) Explain i) Value of good SRS -[5] An SRS establishes the basis for agreement between the client and the supplier on what

14

Reverse Engineering: The program is analyzed and important and useful information’s are

extracted from it which helps to document its functionality.

Program Structure Improvement: Control structure of the program is analyzed and modified to

make it to read and understand.

Program Modularization: Redundancy of any part is removed and related parts are grouped

together.

Data Re-engineering: The data processed by the program ischanged to reflect program changes.

Date : Prepared by

Location : CHENNAI MALARVIZHI K [41205206]

Part Time / Guest Lecturer

120, Government Polytechnic College,

Purasaiwakkam,

Chennai – 12.