Spring 2013
Bachelor of Science in
Information Technology (BSc IT) – Semester 4
BT0081 – Software Engineering – 4
Credits
(Book ID: B1090)
Assignment Set (60 Marks)
1.
Give the two
roles of the software process.
Ans.- Software impact on our society and culture
continues to be profound. As its importance grows, the software community
continually attempts to develop technologies that will make it easier, faster,
and less expensive to build high-quality computer programs. Some of these
technologies are targeted at specific application domain and others focus on a
technology domain and still others are more broad based and focus on operating
systems.
Today
software takes on a dual role. It is a product and at the same time, the
vehicle for delivering a product. As a product, it delivers the computing
potential and as a vehicle used to deliver the product, software acts as the
basis for the control of the computer, the networks and the creation and
control of other programs.
Software
delivers the most important product of our time – information. Software
transforms personal data so that the data can be made more useful in a local
context. It manages business information to enhance competitiveness. It
provides a gateway to worldwide information networks and provides the means for
acquiring information in all of its forms.
The role of computer software has
undergone significant change over a time span of little more than 50 years.
Dramatic improvements in hardware performance, profound changes in computing
architecture, vast increase in memory and storage capacity, and a wide variety
of input and output options have all made it possible for a significant
contribution of software on our day to day life.
Why does it take so long to get software
developed?
Why are development costs so high?
Why can’t we find all the errors before
we give the software to customer?
Why do we continue to have difficulty in
measuring progress as software is being developed?
These are some of the common questions
that we have been asking programmers in all the past history of the software
development era and we continue to ask them even now. This concern infact has
led us to the adoption of software engineering practice.
2.
Explain software
maintenance and it types.
Ans.- The process of changing a system after it has
been delivered and is in use is called software maintenance. The changes may
involve simple changes to correct coding errors. Maintenance means evolution.
It is the process of changing a system to maintain its ability to survive.
Software
maintenance is a vital element in SDLC( Systems Development Life Cycle).
Normally and often done by the developers or software maintainers.
Types
of Software maintenance
1)
Corrective
maintenance:-
Corrective maintenance means a REACTIVE modification, done in the software
product after the delivery. The purpose of corrective maintenance is to
correct/or fix discovered problems in the system. Corrective maintenance is
concerned with fixing reported errors in the software. Coding errors are
usually relatively cheap to correct; design errors are more expensive as they
may involve the rewriting of several program components. Requirements errors
are the most expensive to repair because of the extensive system redesign which
may be necessary.
2)
Adaptive
maintenance:-
Adaptive maintenance is also a modification done after delivery, in order to
keep the software product usable in changing environments/ business
environments. If this is not done properly by the time of change, business
opportunities will be lost. Adaptive maintenance means changing the software to
some new environment such as a different hardware platform or for use with a
different operating system. The software functionality does not radically
change.
3)
Perfective
maintenance:- Perfective maintenance a software should be efficient/less
resource consuming and should be easy to cope with. Perfective maintenance is
done in order to improve the software performance. Also improving the
maintainability is a concern. Perfective maintenance involves implementing new
functional or non-functional system requirements. Software customers as their
organization or business changes generate these.
3.
Explain RAD
model and its phases.
Ans.- Rapid Application Development (RAD) is an
incremental software development process model that emphasizes an extremely
short development cycle. The RAD model is a high speed adaptation of the linear
sequential model in which the rapid development is achieved by using
component-based construction. If requirements are clear and well understood and
the project scope is constrained, the RAD process enables a development team to
create a fully functional system within a very short period of time.
The
RAD approach encompasses the following phases:
1)
Business
modeling:-
Here we try to find answers to questions like what information drives the
business process. What information is generated? Who generates? Where does the
information go? Who processes it? Etc.
2)
Data modeling:- Here the information flow which would
have been defined as part of the business modeling phase is refined into a set
of data objects that are needed to support the business.
3)
Process
modeling:-
The data objects defined in the data modeling phase are transformed to achieve
the information flow necessary to implement a business function. Processing
descriptions are created for adding, modifying, deleting, or retrieving a data
object.
4.
Explain spiral
model and its phases.
Ans.- This model combines the repetitive character
of prototyping with the restricted and methodical approaches of the waterfall
model. It impart the latent for fast development of additional versions of the
software by means of spiral model, a chain of additional releases are made to
build the software, the additional release could be a prototype or paper model
all through initial iterations. Gradually very perfect form of engineered
system is developed.
The spiral model is a software
development process combining elements of both design and
prototyping-in-stages, in an effort to combine advantages of top-down and
bottom-up concepts. Also known as the spiral lifecycle model, it is a systems
development method(SDM) used in information technology. This model of
development combines the features of the prototyping and the waterfall model.
The spiral model is intended for large, expensive and complicated projects.
Usually
the spiral model consists of around six task regions or phases.
A.
Customer
communication:-
tasks required to establish effective communication between developer and
customer.
B.
Planning:- tasks required
to define resources, timelines, and other project-related information.
C.
Risk analysis:- tasks required
to assess both technical and management risks.
D.
Engineering:- tasks required
to build one or more representations of the application.
E.
Construction and
release:- tasks required to construct, test,
install and provide user support.
5.
Explain
inheritance with an example.
Ans.- Object-oriented modeling involves
identifying the classes of object, which are important in the domain being
studied. These are then organized into taxonomy. Taxonomy is a classification
scheme, which shows how an object class is related to other classes through
common attributes and services. To display this taxonomy, we organize the
classes into an inheritance or class hierarchy where the most general object
classes are presented at the top of the hierarchy. More specialized objects
inherit their attributes and services. These specialized objects may have their
own attributes and services.
The figure below illustrates part of a
simplified class hierarchy that might be developed when modeling a library
system. This hierarchy gives information about the items held in the library.
It is assumed that the library does not simply hold books but also other types
of items such as music, recordings of films, magazines, newspapers and so on.
The following figure shows, the most
general item is at the top of the tree and has a set of attributes and
services, which are common to all library items. These are inherited by the
classes (Published item, Recorded item) which add their own attributes and pass
these on to lower-level items.
The design of class hierarchies is not a
simple process. One advantage of developing such models is that the analyst
needs to understand, in detail, the domain in which the system is to be
installed.
6.
Explain factors
that affect Interdisciplinary ignorance.
Ans.- For present purposes, the term ignorance
refers to a lack of data or the presence of inaccurate data in a circumstance
in which such a lack hinders the proper understanding and definition of
business and human problems. Ignorance in this sense includes lack of knowledge
about available information as well as about adequate or effective tools. This
results in a problem-solving process that may have unreliable or insufficient
inputs. Understanding the sources and varieties of ignorance can help reduce
the failure rate in problem-solving processes. Just as in the case of domain
knowledge, domain or process ignorance is also an interdisciplinary phenomenon.
The many sources of ignorance
include unreliable sources of information, partial knowledge, lack of
communication and inter-organizational ignorance.
a.
Unreliable
Sources of Information:- this category includes inadequately accountable
sources of information. Examples range from unconfirmed, inconsistent,
suspicious or doubtful resources to resources that are untrustworthy or lack
qualification. Clearly, determining whether a resource is reliable requires
examining the quality and credibility of the data and the data carrier. Even
computerized systems can be based on incorrect formulas, programming bugs and
inaccurate entries. Interdisciplinary capabilities are needed to eliminate or
disqualify unreliable resources and to rate or rank sources, which can be
human, digital or hardcopy sources.
b.
This refers to aspects of an issue that have not
been revealed (so-called in-breath ignorance) or information about a specific
aspect of an issue that is left incomplete (so-called in-depth ignorance). This
type of ignorance may even be derived from a complacent or self-satisfied
attitude-“what we do not know does not exist.”
In-breath
ignorance assumes that information can be gathered using only one or two paths
of knowledge, with other aspects of the problem not even considered for
relevancy. Failure to recognize all the dimensions of an issue can result in
solving the wrong problem and thus leaving the real problem unsolved.
In-depth ignorance may recognize the
relevant aspects of an issue but not study them thoroughly enough to understand
them effectively. For example, when considering the e-business readiness of a
certain organization, a company may be deemed well prepared in terms of Web
presence, design, and infrastructure, but may have overlooked the need to train
and prepare its staff for the demands of e-business.
c.
Lack of
Communication:-
Lack of communication is a major source of ignorance. Communication narrows the
distance between the various elements of the problem in question. Lack of
communication originates in factors such as failure to contact the stakeholders
in a business problem, not using effective communication techniques or not
being able to carry out an efficient communication process. The effects of a
lack of communication can be summarized as follows:
Ignorance
of lack of resources
Extra
contextual ignorance
Ignorance
of lack of communication channels
Differentiation
ignorance
d.
Inter-organizational
Ignorance:-
The value of knowledge stems from its usability and adaptability, not form its
mere existence. To be valuable, information or data must add value to an
organization and to its problem-solving processes. Otherwise, it is tantamount
to a form of double ignorance in which people do not know what they know assume
that they do. This can make knowledge expensive if one is in possession of
unused data to make an organization a victim of knowledge utilization delays
that result from a lack of awareness or ignorance of ignorance. Knowledge-based
ignorance can hide weakness behind apparent strength and business sickness
behind an apparently healthy organization. This source of ignorance has many
manifestations and degrees and even low levels can be damaging and costly.
Although
many levels of ignorance are linked simply to lack of data, information or
knowledge some ignorance can be attributed to vague, surface or unused
knowledge. Examples include:
Unprocessed data
Unused data
Untailored data
Vague data
Politically based ignorance
Technically based ignorance
Statistically based ignorance
thank you bro.........
ReplyDelete