bc0049(software eng)

Post on 02-Apr-2018

215 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

  • 7/27/2019 BC0049(Software Eng)

    1/12

    1

    February2010

    Bachelor of Computer Application (BCA) Semester 4

    BC0049 Software Engineering 4 Credits

    (Book ID: B0808)Assignment Set 1 (60 Marks)

    Each question carries six marks 10 x 6 = 60

    1. Discuss the impact of information era.

    Answer:

    Information era

    The impacts of software in different applications are as follows

    Software impact on our society and culture continues to be profound. As its importancegrows, the software community continually attempts to develop technologies that will make iteasier, faster, and less expensive to build high- quality computer programs. Some of thesetechnologies are targeted at specific domain and others focus on a technology domain and stillothers are more broad based and focus on operating system.

    Today software takes on a dual role. It is a product; it delivers the computing potential and asa vehicle used to deliver the product, software acts as the basis for the computer, the networksand 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 businessinformation to enhance competitiveness. It provides a gateway to worldwide informationnetworks 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 morethan 50 years. Dramatic improvements in hardware performance, profound changes incomputing 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 onour day to day life.

    Some of the applications of software are

    System software system software is a collection of programs written to service other programs.

  • 7/27/2019 BC0049(Software Eng)

    2/12

    2

    Real time software software that monitors/analyzes/controls real world events asthey occur is called real time.

    Business software business information processing is the largest single softwareapplication area. Discrete systems like payroll, accounts receivable/payable haveevolved into management information system (MIS) software that accesses one or more large databases containing business information

    Engineering and scientific software engineering and scientific software has beencharacterized by number crunching algorithms.

    Embedded software embedded software resides only in read.

    Personal computer software examples are: day to day application like word processing, spreadsheets, multimedia, database management, personal and businessfinancial applications.

    Web based software the web pages retrieved by a browser are software thatincorporates executable instructions and data.

    Artificial intelligence software this makes use of non numerical algorithms to solvecomplex problems that are not amenable to computation or straightforward analysis.Expert systems, also called knowledge based systems, pattern recognition.Example playing game.

    2. Explain Iterative Development Model in detail.

    Answer:

    One of the disadvantages of linear sequential model says that all the requirements should belisted before the design phase can start, where the requirements are implemented to develop afunctional system.Iterative development model was designed to eliminate the above disadvantage. In this modelinstead of developing the entire software, only part of the software is generated in a step bystep process. The basic idea of this model is that the software should be developed inincrements, where each increment adds some functional capability to the system until the fullsystem is implemented. At each step, extensions and design modifications can be made.The 1 st step of this model is to implement the initial subset of the overall problem. The subsetis one that contains some of the key aspects of the problem that are easy to understand andimplement and forms a useful and usable system. In this model, entire software is divided intomodules and a project control list is created that contains all the detailed information abouthow the tasks should be performed in order, so as to implement the entire system. Eachmodule goes through design, implementation and analysis phase. These three phases arerepeated for each module till the entire software or system is built, therefore the model is

  • 7/27/2019 BC0049(Software Eng)

    3/12

    3

    named as iterative development mode . Here analysis phase comes at last, because once amodule is designed and implemented, it is taken to the user and if the user lists some morerequirements then based on the users requirements, some changes are done and part or theentire module is resigned. Resigning takes place only during the initial steps, because later onthe design would be stabilized and there will be less chances of redesign.

    Each entry in the project control list specifies a task and all of them have to be performed.After taking the 1 st task it must be removed from the list.

    module 1 module 2 module n

    Advantages: results in better testing because it is easier to test each module rather than testingthe entire system. Also the clients have to pay only for the module that has been created at atime rather than paying a large amount for the entire system at once.

    Disadvantages if any changes are made in the any module then it is difficult for the programmers to calculate the cost associated with the modifications. Also this model cannot be used in places where users have to specify the requirements in advance.

    3. What are the major technical and non-technical factors which militate againstwidespread software reuse?

    Answer:

    Technical and non technical factors that militate against software reuse It must be possible to find appropriate reusable components. Organizations need a base

    property catalogued and documented reusable component. The cost of finding anappropriate component in this catalogue must be relatively low.

    The reuser of the components must have confidence that the components will behaveas specified and will be reliable. All components in an organizations catalogue should

    be certified to confirm that they have reached some quality standards. The components must have associated documentation to help the reuser understand

    them and adapt them to a new application. The documentation should includeinformation about where components have been reused and any reuse problems, whichhave been found.

    It is difficult to qualify, what the cost reduction might be as there are usually costsassociated with reuse. Software components have to be discovered in a library,

    Design = 0Implementation =0Analysis =0

    Design = nImplementation = nAnalysis = n

    Design = nImplementation = nAnalysis = n

  • 7/27/2019 BC0049(Software Eng)

    4/12

    4

    understood and sometimes adapted to work in a new environment. These reuse costsmay sometimes be greater than the cost of re implementing the component.

    CASE toolsets do not support development with reuse. It may be difficult or impossible to integrate these tools with a component library system.

    Some software engineers sometimes prefer to rewrite components, as they believe thatthey can improve on the reusable component. This is a natural consequence of aneducational process, which concentrates on original software development rather thanreuse.

    Our current techniques for classifying, cataloguing and retrieving softwarecomponents are immature. Engineers must be reasonably confident of finding acomponent in the library before they will routinely include a component search as partof their normal development process.

    4. Suggest six reasons why software reliability is important.

    Answer:

    Reasons why software reliability is important

    Reliability is the most important dynamic characteristics of almost all software systems.Unreliable software results in high costs for end users. Developers of such unreliablesystems may acquire a bad reputation for quality and lose future business opportunities.

    Computers are now cheap and fast there is a little need to maximize equipment

    usage. Paradoxically, faster equipment leads to increasing expectations on the part of the user, so efficiency considerations cannot be ignored. Unreliable software is liable to be discarded by the users if a company attains a

    reputation for unreliability because of a single unreliable product, then it is likely toaffect future sales of all that companys products.

    System failure costs may be enormous for some applications, such a reactor controlsystem or an aircraft navigation system, the cost of system failure is orders of magnitude greater than the cost of the control system.

    Unreliable systems are difficult to improve it is usually possible to tune an inefficientsystem because most execution time is spent in small program sections. An unreliablesystem is more difficult to improve as unreliability tends to be distributed throughout

    the system. Inefficiency is predictable programs take a long time to execute and users can adjust

    their work to take this into account. Software that is unreliable can have hidden errorswhich can violate system and the user data without warning and whose consequencesare not immediately obvious.Example : fault in a CAD program used to designed aircraft might not be discovereduntil several plane crashes occur.

  • 7/27/2019 BC0049(Software Eng)

    5/12

    5

    Unreliable systems may cause information loss information is very expensive tocollect and maintain, it may sometimes be worth more than the computer system onwhich it is processed. A great deal of effort and money is spent duplication valuabledata to guard against data corruption caused by unreliable software.

    A software process used to develop a product influences the reliability of the software product. Users often complain that systems are unreliable. This may be due to poor softwareengineering. But a common cause of unreliable systems is incomplete specifications. Thesystem performs as specified but the specifications do not set out how the software should

    behave in exceptional situations.

    5. Explain why it is important to describe software designs.6. Explain the Spiral Model?

    Answer:

    This model couples the iterative nature of the prototyping with the controlled and systematicaspects of the linear sequential model. It provides the potential for rapid development of incremental versions of the software. Using the spiral model, software is developed in a seriesof incremental releases. During early iterations, the incremental release might be a paper model or prototype. During later iterations, increasingly more complete versions of theengineered system are produced.

    Usually the spiral model consists of around six task regions or phases:- Customer communication: tasks required to establish effective communication

    between developer and customer.

    Planning : tasks required to define resources, timelines, and other project-relatedinformation. Risk analysis : tasks required to assess both technical and management risks.

    Engineering : tasks required to build one or more representations of the application.

    Construction and release : tasks required to construct, test, install and provide user support.

    Example : documentation and training Customer evaluation : tasks required to obtain customer feedback based on evaluation

    of the software representations created during the engineering stage and implementedduring the installation stage.

    As the evolutionary process begins, the software engineering team moves around the spiral ina clockwise direction, beginning at the centre. The first circuit around the spiral might resultin the development of a product specification; subsequent circuit passes around the spiralmight be used to develop a prototype and the progressively more sophisticated versions of thesoftware. Each passes through the planning region resulting in adjustments to the project plan.Cost and schedule are adjusted based on feedback derived from customer evaluation. In

  • 7/27/2019 BC0049(Software Eng)

    6/12

    6

    addition, the project manager adjusts the planned number of iterations required to completethe software.

    7. Explain object models.

    Answer:

    To support object-oriented programming, an object oriented development approach may beadopted. This means expressing the system requirements using an object model, designingusing an object-oriented approach and developing the system in object-oriented programminglanguages such as C++.

    Object models of systems, which are developed during requirement analysis, should notinclude details of the individual objects in the system. They should model classes of objectsrepresenting entities. An object class is an abstraction over a set of objects, which identifies

    common attributes and the services or operation, which are provided by each object. Varioustypes of object models can be produced showing how object classes are related to each other,how objects are aggregated to form other objects, how objects use the services provided byother objects and so on. There are three parts to this. The object class name has its obviousmeaning and the attribute section lists the attributes of that object class. When objects arecreated using the class as a template, all created objects acquire these attributes. They maythen be assigned values that are conformant with the attribute type declared in the object class.The service section shows the operations associated with the object. These operations maymodify attribute values and may be activated from other classes.

  • 7/27/2019 BC0049(Software Eng)

    7/12

    7

    There are three types of object models Inheritance model object oriented modeling involves identifying the classes of

    object. These are then organized into taxonomy. Taxonomy is a classification scheme,which shows how an object class is referred to other classes through commonattributes and services. To display this taxonomy, classes are organized into aninheritance or class hierarchy, where general object classes are presented at the top of the hierarchy. More specialized objects inherit their attributes and services. Thesespecialized objects may have their own attributes and services.

    Object aggregation acquiring attributes and services through an inheritancerelationship with other objects, some objects are aggregation of other objects. Theclasses are representing these objects may be modeled using an aggregation model.This model does not consist of a single item but combination of items.

    The black blob to a link means that the relationship between objects is a part of relationship

    rather than an inheritance relationship.

    Service usage model the hierarchical model covers only object classes and servicesassociated with them. They do not give any information about how object classes usethe services provided by other classes.

    Course

    Title Number Year Instructor

    Solutions

    Text

    Problems

    #problemsText

    Videotapes

    Tape IDs

    Lecture notes

    Text

    OHP slides

    Slides

    Assignment

    Credits

    Library user Issue return Library return

    Acquire cataloguedispose

    Library staff Register/deregister

  • 7/27/2019 BC0049(Software Eng)

    8/12

    8

    Service usage

    8. Explain Data flow design?

    Answer:

    Data-flow design is concerned with designing a sequence of functional transformations thatconvert systems inputs into the required. The design is represented as data-flow diagrams.These diagrams illustrate how data flows through a system and how the output is derived fromthe input through a sequence of functional transformations. Data-flow diagrams are a usefuland intuitive way of describing a system. They are normally understandable without specialtraining, especially if control information is excluded. They show end-to-end processing thatis, the flow of processing from when data enters the system to where it leaves the system can

    be traced. Data-flow design is an integral part of a number of design methods and most CASEtools support data-flow diagram entities but their meanings are similar.

    The notation which use is based on the following symbols: Rounded rectangles: represent functions, which transform inputs to outputs. The

    transformation name indicates its function. Rectangles: represent data stores. Again, they should be given a descriptive name.

    Circles: represent user interactions with the system which provide input or receiveoutput.

    Arrows: show the direction of data flow. Their name describes the data flowing alongthat path.

    Get design name

    Produce link report

    Integrate reports

    Print report

    Produce node reportSort by type

    Designdatabase Get entity names Sort entity names

    Datadictionary Look up entity names

  • 7/27/2019 BC0049(Software Eng)

    9/12

    9

    Sorted names

    Design entity link node

    Descriptions descriptions report integrated

    report

    Node descriptions

    9. Discuss the difference between object oriented and function oriented design strategies.

    Answer:

    Object oriented model Objects are abstraction of system entities , which are responsible for managing their

    own private state and offering services to other objects. This model is based on the strategy of information hiding.

    This model views a software system as a set of interacting objects, with their own private state.

    Easier to maintain as the objects are independent because of which any change madeto any object module will not affect the other object modules.

    Different activities of object oriented model

    1. Object oriented analysis : develops an object oriented model for the applicationdomain.

    2. Object oriented design : develops a software system to implement the identifiedrequirements.

    3. Object oriented programming : realizes a software design using an objectoriented programming language.

    Objects are independent entities that may readily be changed because state andrepresentation information is held within the objects. Changes to the representationmay be made without reference to other system objects.

  • 7/27/2019 BC0049(Software Eng)

    10/12

    10

    System functionality is expressed in terms of operations or services associated witheach object.

    Shared data areas are eliminated. Objects communicate by calling on services offered by other objects rather than sharing variables. This reduces overall system coupling.

    There is no possibility of unexpected modifications to shared information. Objects may be distributed and may execute either sequentially or in parallel.

    Decisions on parallelism need not be taken at an early stage of the design process.

    Function oriented model The strategy relies on decomposing the system into a set of interacting functions with a

    centralized system state shared by these functions. They may also maintain local stateinformation but only for the duration of their execution.

    This design conceals the details of an algorithm in a function but system state

    information is not hidden, which leads to many problems because a function canchange the state in such a way that other functions do not expect.

    Views a software system as a set of interacting functions that share a global state.

    Earlier function oriented models were known as structured design strategy whichwas before programming begun. This led to the development of many design methods

    based on functional decomposition. Function oriented approach is successful when the amount of system state information

    is minimized and information sharing is explicit. Different activities of functional oriented design are

    1. Data flow design : model the system design using data flow diagrams.

    2. Structural decomposition : shows how functions are decomposed into sub-functions using graphical structure charts.

    3. Detailed design description : describes the different entities in the design andtheir interfaces.

    10. Explain why it is necessary to design the system architecture before the specificationsis written?

    Answer:There are different types of system models are based on different approaches to abstraction. Adata flow model concentrates on the flow of data and the functional transformations on thatdata. It gives out details of the data structures. An entity relation model is intended todocument the system data and its relationship without concern of the function in the system.

    Architectural design large systems can be decomposed into sub system that provides somerelated set of services. The initial design process of identifying this sub system and

  • 7/27/2019 BC0049(Software Eng)

    11/12

    11

    establishing a framework for sub system control and communication is called architectural design . Architectural design comes before detailed system specification, it should not includeany design information. Architectural design is necessary to structure and organize thespecification. This model is the starting point for the specification of the various parts of thesystem. There is no general accepted process model for architectural design. The process

    depends on application knowledge and on the skill and intuition of the system architect. For the process, the following activities are usually necessary

    System structuring the system is structured into a number of principal sub systemis an independent software unit. Communications between sub-systems are identified.

    Control modeling a general model of the control relationships between the parts of the system is established.

    Modular decomposition each identified sub-system is decomposed into modules.The architect must decide on the types of module and their interconnections.

    During any of these process stages, it may be necessary to develop the design in more detail to

    find out if architectural design decision allow the system to meet its requirements. The outputof the architectural design process is an architectural design documents. This consists of anumber of graphical representations of the system models along with associated descriptivetext. It should describe how the system is structured into sub-systems and how each sub-system is structured into modules.

    February2010

    Bachelor of Computer Application (BCA) Semester 4

    BC0049 Software Engineering 4 Credits(Book ID: B0808)

    Assignment Set 2 (60 Marks)

    Each question carries six marks 10 x 6 = 60

    1. Propose a standard structure for a system maintenance document, which is designed to provide guidance for system maintenance.

    2. Explain white-box and black-box testing in detail.

    3. Explain regression testing.

    Answer

    Each time a new module is added as part of integrating testing, the software changes. Newdata flow paths are established, new I/O may occur and new control logic is invoked. Thesechanges may cause problems with function that previously worked flawlessly. According tointegration test strategy, regression testing is the re-execution of some subset of tests that havealready been conducted to ensure that changes have not propagated unintended side effects.

  • 7/27/2019 BC0049(Software Eng)

    12/12

    12

    Regression testing is the activity that helps to ensure that changes do not introduce unintended behavior or additional errors.

    Regression testing may be conducted manually, by re-executing a subset of all test cases or using automated capture/playback tools. Capture/playback tools enable the software engineer to capture test cases and results for subsequent playback and caparison. The regression testsuite contains three different classes of test cases:

    A representative sample of tests that will exercise all software functions.

    Additional tests that focus on software functions that are likely to be affected by thechange.

    Tests that focus on the software components that have been changed.

    As integration testing proceeds, the number of regression tests can grow quite large.Therefore, the regression test suite should be designed to include only those tests that addressone or more classes of errors in each of the major program functions. It is impractical andinefficient to re-execute every test for every program function once a change has occurred.

    4. What is boundary value analysis?

    5. Give the difference between restructuring and forward engineering.

    6. Using a data flow diagram describe a change management procedure, which might be used

    in a large organization concerned with developing software for external clients. Change may be suggested from either external or internal sources.

    7. What is glass box testing? Explain

    8. Write a note on software Testing Strategy.

    9. Explain why top-down testing is not an effective strategy for testing object oriented system.

    10. What is the importance of Software Validation, in testing?

top related