You are on page 1of 8

Name: Chitradeep Das

Roll Number: 510910740


Learning Centre Code: 00197
Assignment No.: MBA SEM III

Date of Submission at the Learning Centre:


30/05/2010
Assignment: MBA – SEM III

Subject Code: MI0024

Software Engineering

Set I
Question 1: What is software? What are the applications of software?

Answer: Software refers to instructions which when executed provide desired


function and performance and data structures that enable the programs to
adequately manipulate information, and documents describing the operation and
use of software. It refers to a set of instructions also known as program.

Applications of Software:
The application of software is based on the nature of instructions in a particular
area. If the set of instructions are structured well it is appropriate to develop
software for such application. Development becomes easy and convenient
depending on the degree of structure. Higher the degree better it is to develop
the software for such applications. Information content and determinacy play an
important role in determining the nature of a software application. Content
means the form of incoming and outgoing information.

Information determinacy refers to the predictions of the order and timing of


information. It is difficult to develop generic categories for software applications.
The following software areas include potential applications:

System Software – It is a collection of programs written to serve other


programs, e.g., compilers and interpreters. Other system applications like the
operating system components, drivers, and telecommunication processors
process largely indeterminate data.

Real-Time Software – Events that are real world based if possible to be


controlled by programs are referred to as programmable events. Such programs
control the entire event and act as a monitor or as an analyzer of the real-world
events. Such software is known as real time software. It includes data gathering
components and formats information from an external environment, an analysis
component that transforms information, a responder component that responds
to the changes in the external environment and a monitoring component
coordinating all other components.

Business Software – Business software refers to applications in the areas of


business. Such software is mainly useful in decision making and transactions that
facilitates business operations or management decision making. In addition to
conventional data processing applications, business software applications also
encompass interactive computing.

Engineering and Scientific Software – Engineering and scientific software


have been developed mainly to deal with “number crunching” algorithms.
Applications range from astronomical science to seismology to molecular biology
to automated manufacturing. Computer-aided design, system simulation and
other interactive applications have gained prominence.

Personal Software – The personal computer software like the word processing,
spreadsheets, computer graphics, multimedia, entertainment, database
management, personal and business financial applications, external network,
and database access are some of the applications.

Web-Based Software – The web pages are a software application page that
incorporates executable instructions performing one or more tasks.
Artificial Intelligence Software – it uses non-numerical algorithms to solve
complex problems. Expert systems, also called knowledge based systems,
pattern recognition, artificial neural networks, and game playing are
representative of applications within this category.

Question 2: Explain decomposition techniques.

Answer: Decomposition Techniques - While dealing with software project


estimation for large size software, it is convenient to estimate after decomposing
the entire project process into number of smaller process and then estimate. The
entire software project problem can also be broken down into number of smaller
problems and then each smaller problem could be solved easily. The techniques
employed in the aforementioned scenario are known as decomposition
techniques. Software project estimation is a form of problem solving.

The different decomposition techniques are listed as under:

1. Software Sizing – The prediction of accuracy of software project


estimate is based on the size of the product to be built, ability to translate
size into human effort, time and money and the environment that
supports the effort of software engineering.
2. Problem-Based Estimation – Lines of code (LOC) and function points
(FP) are used as estimation variables to “size” elements of the software.
LOC and FP are used in conjunction with estimation variables to develop
cost and effort predictors for various projections. As mentioned earlier the
software scope is considered and various functions are listed out. For each
of the functions LOC and FP are estimated.

Example of Estimation – Process Based:


Estimation is done by considering the various activities and tasks involved
in a project. A list of functions involved in operating the various elements of
software and the corresponding standard requirements are stated and points are
assigned to each function. There may be a list of parameters for each function
for the purpose of estimation. The points are converted into percentages and
expressed as effort. The data may be collected through a customer process
by way of feedback on the functions.

3. Software Equation:
Based on the productivity data collected for over thousands of
contemporary software projects, an estimation model may be considered
in the form of a software equation as given below:

EPM = (L X Sk(1/3) /PP)3 X (1/d4)

Where
EPM = effort in person months
L = number of lines of code
Sk = factor of special skills
PP – parameter of productivity
d - duration

4. A decision tree
A decision tree is helpful in analyzing a software problem which has
multiple decision stages. Each stage is represented by a node (rectangle).
The multiple options available at this node are represented as branches of
this node in the form of straight lines. Each branch of the tree represents
alternatives and it may further lead to some probable events/outcomes.
Each such event is associated with a probability value and some cost (-
utile) or gain (+ utile). A utile is a monetary value. Nodes which represent
probable outcomes are known as chance nodes and are represented by
circles. A connection of such nodes and branches constitute a decision
tree. Problems associated with risks can be well represented by a decision
tree.
P-1

Str-3

A
Str-1

P-2
2
1

Str-2 B
Str-4

5. Automated Estimation Tools


Automated estimation tools are useful to estimate cost and effort and to
perform what-if analysis for variables in projects such as staffing and
delivery rate. They exhibit characteristics like – sizing of the deliverable,
proper selection of activities, estimation of staffing levels and software
effort/cost and schedules.

Question 3: a. Write a short note on project scheduling & tracking


b. How do you define a task set for the software project?

Answer: a. Project Scheduling and Tracking:

In the process of development and delivery of the software it is found that most
of the time the delivery of the finished product is delayed. There are many
reasons that could be attributed to the delayed delivery of the product. Some of
the reasons which lead to the delay of the project are listed as follows:

 Very often the requirements are not clearly stated by the customer and
this leads to further changes in the developments which on the whole
causes a delay in the project completion.
 Setting up of deadlines which are unrealistic based on the inputs from
agencies outside the software development group.
 Improper or underestimated amount of the effort and the number of the
resources required to do the job.
 Inaccurate tools to monitor and track the project progress.
 Certain risks that were not considered during the planning process leading
to development of bottlenecks in the project.
 Also there could be one or more problems related to the technicalities in
the project.
 Improper communication system within and outside the development area
of the software.

b. Defining a Task Set for the Software Project:

It is not always possible to define a unique set of task which would be


appropriate for all types of projects. It is dependent on the size of the
project, complexities involved in the project, constraints of the project and
the skill sets and the capabilities of the team members working on the
project. The task set is defined based on the category of the project which
is dealt with by the development team.

The categories of project work that are normally encountered are:

1. Projects dealing with development of new concepts in business.


2. Projects dealing with development of new applications in business as
indicated in the requirements list stated by the customer.
3. Projects dealing with the enhancement of existing facilities in the
product.
4. Projects dealing with the maintenance aspects of the business modules
or applications.
5. Projects dealing with total new structure or restructuring an old system
into a new system or application leading to reengineering.

You might also like