Monday, April 22, 2013

B.Sc. IT BT0081 (Semester 4, Software Engineering) Assignment

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
            Illusion-based ignorance

For More Assignments Click Here

1 comment: