You are on page 1of 17

SOFTWARE ENGINEERING AND SOFTWARE PROJECT MANAGEMENT

UNIT I

1. Write a short note on component based software engineering.


2..Discuss the difficulties in eliciting and understanding stakeholder requirements.

Discuss the difficulties in eliciting and understanding stakeholder


requirements.
Eliciting requirements is the first step of the Requirement Engineering process.
It helps the analyst to gain knowledge about the problem domain which in turn
is used to produce a formal specification of the software. There are a number
of issues and challenges encountered during this process. Some of them are
as follows:

Understanding large and complex system requirements is difficult –
The word ‘large’ represents 2 aspects:
• (i) Large constraints in terms of security, etc. due to a large number of users.
• (ii) a Large number of functions to be implemented.
• Undefined system boundaries –
There might be no defined set of implementation requirements. The customer may go on to
include several unrelated and unnecessary functions besides the important ones, resulting in an
extremely large implementation cost that may exceed the decided budget.

• Customers/Stakeholders are not clear about their needs. –


Sometimes, the customers themselves may be unsure about the exhaustive list of functionalities
they wish to see in the software. This might happen when they have a very basic idea about
their needs but haven’t planned much about the implementation part.

• Conflicting requirements are there –


There is a possibility that two different stakeholders of the project express demands which
contradict each other’s implementation. Also, a single stakeholder might also sometimes
express two incompatible requirements.

• Changing requirements is another issue –


In the case of successive interviews or reviews from the customer, there is a possibility that the
customer expresses a change in the initial set of specified requirements. While it is easy to
accommodate some of the requirements, it is often difficult to deal with such changing
requirements.

• Partitioning the system suitably to reduce complexity –


The projects can sometimes be broken down into small modules or functionalities which are
then handled by separate teams. Often, more complex and large projects require more
partitioning. It needs to be ensured that the partitions are non-overlapping and independent of
each other.
• Validating and Tracing requirements –
Cross-checking the listed requirements before starting the implementation part is very
important. Also, there should be forward as well as backward traceability. For eg, all the entity
names should be the same everywhere, i.e., there shouldn’t be a case where ‘STUDENT’ and
‘STUDENTS’ are used at separate places to refer to the same entity.

• Identifying critical requirements –


Identifying the set of requirements that have to be implemented at any cost is very important.
The requirements should be prioritized so that crucial ones can be implemented first with the
highest priority.

• Resolving the “to be determined” part of the requirements –


The TBD set of requirements include those requirements which are yet to be resolved in the
future. The number of such requirements should be kept as low as possible.

• Proper documentation, proper meeting time, and budget constraints –


Ensuring proper documentation is an inherent challenge, especially in the case of changing
requirements. The time and budget constraints too need to be handled carefully and
systematically.

3.What is the use of a data dictionary?

Features of Data Dictionary :

Here, we will discuss some features of the data dictionary as follows.


• It helps in designing test cases and designing the software.
• It is very important for creating an order list from a subset of the items
list.
• It is very important for creating an order list from a complete items list.
• The data dictionary is also important to find the specific data item
object from the list.
Uses of Data Dictionary :

Here, we will discuss some use cases of the data dictionary as follows.
1. Used for creating the ordered list of data items
2. Used for creating the ordered list of a subset of the data items
3. Used for Designing and testing of software in Software Engineering
4. Used for finding data items from a description in Software Engineering
4.Differentiate cardinality and modality.
UNIT II
5. Modularity and explain it.
UNIT - III

6.Give a note on control structure testing.


UNIT – IV

7.Define SCM and its terminology


UNIT – V

8.Discuss COCOMO model.


9.Give some advantages of function points.

Advantages of function point analysis.


a.It can be applied early in the software development life cycle.
b.It is independent of the programming language, technology, techniques.
c. It provides a reliable relationship to effort.
d. Creation of more function points can define productivity goal as opposed to LOC.
e. Productivity of projects written in different languages can be measured.
f. They can be counted early and often.
g. They can be used for GUI systems.
h. It considers environmental factors.

10.Define user and system requirements

1. User requirements are statements, in a natural language plus diagrams, of


what services the system is expected to provide to system users and the
constraints under which it must operate. The user requirements may vary from
broad statements of the system features required to detailed, precise
descriptions of the system functionality.
2. System requirements are more detailed descriptions of the software system’s
functions, services, and operational constraints. The system requirements
document (sometimes called a functional specification) should define exactly
what is to be implemented. It may be part of the contract between the system
buyer and the software developers.

You might also like