You are on page 1of 5

Ques2 Explain Iterative Development Model in detail.

Ans The iterative development model ties to combine the benefits

of both prototyping and the waterfall model. The basic idea is that the software should be developed in increments, each increment adding some functional capability to the system until the full system is implemented. At each step, extensions and design modifications can be made. An advantage of this approach is that it can result in better testing because testing each increment is likely to be easier than testing the entire system as in the waterfall model. The increment models provide feedback to the client i.e. useful for determining the final requirements of the system

Ques3 What are the major technical and non-technical factors which militate against widespread software reuse Ans The reuse of software can consider at a number of different levels:
Application system reuse Sub-system reuse Module or object reuse Function reuse Software development with reuses Software development for reuse Generator based reuse Application system reuses Systematic reuse in the development process offers the following advantages: System reliability increased Overall process risk is reduced Effective use can be made of specialists Organizational standards can be embodied in reusable components Software development time can be reduced

There are three conditions for software development with reuse: It must be possible to find appropriate reusable components. Organizations need a base properly catalogued and documented reusable component. The cost of finding an appropriate component in this catalogue must be relatively low. The reuser of the components must have confidence that the components will behave as specified and will be reliable. Ideally, 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 include information about where components have been reused and any reuse problems, which have been found. Difficulties in introducing software development with reuse are: It is difficult to quantify what the cost reductions might be as there are usually costs associated with reuse. Software components have to be discovered in a library, understood and sometimes adapted to work in a new environment. These reuse costs may sometimes be greater than the cost of re-implementing the component. CASE toolsets do not support development with reuse. Some software engineers sometimes prefer to rewrite components, as they believe that they can improve on the reusable component. This is a natural consequence of an educational process, which concentrates on original software development rather than reuse. Our current techniques for classifying, cataloguing and retrieving software components are immature.

Adapting a component to make it reusable may involve making different types of changes: 1. Name generalization: The names used in the component may be modified so that they are neutral rather than a direct reflection of some specific application entity. 2. Operation generalization: This may involve adding operations to a component or removing operations, which are very specific to some application domain. 3 Exception generalizations: This may involve checking each component to see which exceptions it might generate and including these exceptions in the component interface

Ques4 Suggest six reasons why software reliability is important. Ans The Reliability of a software system is a measure of how well users think it
provides the services that they require. Reliability is usually defined as the probability of failure-free operation for a specified time in a specified environment for a specific purpose. Improved programming techniques, better programming languages and better quality management have led to very significant improvements in reliability for most software. However, for some systems, such as those which control unattended machinery, these normal techniques may not be enough to achieve the level of reliability required. In these cases special programming techniques may be necessary to achieve the required reliability. Improved reliability is one of the benefits of software reuse. Software reliability is a function of the number of failures experienced by a particular use of that software. A software failure occurs when the software is executing. It is a situation in which the software does not deliver the service expected by the user. Reliability should always take precedence over efficiency for the following reasons: Computers are now cheap and fast. Unreliable software is liable to be discarded by users. System failure costs may be enormous. Unreliable systems are difficult to improve. Unreliable systems may cause information loss.

Ques5 Explain why it is important to describe software designs. Ans

Architectural Design: The sub-systems making up the system and their relationships are identified and documented. Abstract Specification: For each sub-system, an abstract specification of the services it provides and the constraints under which it must operate is produced. Interface Design: For each sub-system, its interface with other sub-systems is designed and documented. This interface specification must be unambiguous as it allows the sub-system to be used without knowledge of the sub-system operation. Component Design: Services are allocated to different components and the interfaces of these components are designed. Data Structure Design: The data structures used in the system implementation is designed in detail and specified.

Structured methods often support some of the following models of a system: A data flow model, where the system is modeled using the data transformations, which take place as it is processed. An entity relation model, which is used to describe the logical data structures being used. A structural model, where the system components and their interactions are documented. An object oriented model, which includes an inheritance model of the system, a model of how objects are composed of other objects and, usually, an object use model which shows how objects are used by other objects. Design Description There are three main types of notation used in design documents: Graphical notations: These are used to display the relationships between the components making up the design and to relate the design to the real-world system. A graphical view of a design is an abstract view. It is most useful for giving an overall picture of the system. Program description languages: These languages use control and structuring constructs based on programming language constructs but also allow explanatory text and additional types of statement to be used. These allow the intention of the designer to be expressed rather than the details of how the design is to be implemented. Informal text: Much of the information that is associated with a design cannot be expressed formally. Information about design rationale or non-functional considerations may be expressed using natural language text

Ques8 Explain Data flow design Ans Object oriented design transforms the

analysis model created using objectoriented analysis into a design model that serves as a blueprint for software construction. Designing object oriented software is hard, and designing reusable object oriented software is even harder. It must be possible to find pertinent objects, factor them into classes at the right granularity, define class interfaces hierarchies, and establish key relationships among them. The design should be specific to the problem and also general enough to address future problems and requirements

unlike conventional software design methods, OOD results in a design that achieves a number of different levels of modularity Objects are abstraction of system entities, which are responsible for managing their own private state and offering services to other objects. Objects are independent entities that may readily be changed because state and representation information is held within the objects. System functionality is expressed in terms of operations or services associated with each 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.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. Object Oriented Analysis: It is concerned with developing an object oriented model of the application domain. The identified objects may or may not map directly into system objects. Object Oriented Design: It is concerned with developing an object-oriented model of a software system to implement the identified requirements. These requirements may or may not be structured around objects in the problem domain. Object Oriented Programming: It is concerned with realizing a software design using an object oriented programming language. An object oriented programming language supports the direct implementation of objects and provides object classes and inheritance.

Ques9 Discuss the difference between object oriented and function oriented design strategies Ans An object is an entity that has a state and a defined set of operations, which
operate, on that state. The state is represented as a set of object attributes. The operations associated with the object provide services to other objects (clients) which request these services when some computation is required. An object oriented design process is normally concerned with designing object classes. When the design is implemented, the required objects are created using these class definitions. Objects communicate by requesting services from other objects and, if necessary, exchange information required for service provision. For good design we have to hide information so the representation of the object should not be accessible from outside the object.

You might also like