Sunteți pe pagina 1din 10

Kuvempu University Assignments for B.Sc.(IT) & M.Sc.(IT) Courses Subject: Software Engineering Subject Code: BSIT - 44 Q.

1 Define Software Engineering as per IEEE. Ans. According to IEEE, Software engineering is defined more comprehensive as The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, that is, the application of engineering to software. Q. 2 Give important characteristics of the Prototype Model. Ans. The important characteristics of this model are: For prototyping, the cost of the requirements analysis must be must be kept low, in- order for it to be feasible. The development approach followed is quick and dirty, the focus is on quicker development rather than on the quality. Only minimal documentation is required because it is a throw away prototype model. This model is very useful in projects where requirements are not properly understood in the beginning. It is an excellent method for reducing some types of risks involved with a projects. Q. 3 What is DFD? Ans. Data Flow Diagrams: Data Flow Diagrams also called data flow graphs are commonly used during problem analysis, for understanding a system. It shows the flow of data through the system it does not represent procedural information. The DFD is an excellent communication tool for analysts to model processes and functional requirements. It is still considered one of the best modeling techniques for eliciting and representing the processing requirements of a system. Q. 4 What are the two levels of Software design process? Ans. The design process for the software has two levels: system design or top-level design detailed design or logic design Q. 5 Name any 4 criteria used to guide modularization. Ans. There are Four important criteria for defining an effective modular system that enable us to evaluate a design method: Modular decomposability If a design method provides a systematic way for decomposing a problem into sub problems, it will reduce the complexity of the over all problem, there by achieving an effective modular solution. Modular composability If a design method enables the existing design components to be assembled in to a new system, it will produce a modular solution for the problem.

Modular understandability If a module can be understood as a single unit without referring to other modules, it will be easier to build a module and make changes easily. Modular continuity If any small changes to the system requirements result in changes to individual modules, rather than system-wide changes, the impact of change induced on it will be minimum.

Q. 6 Define Cohesion. Ans. Cohesion is a meaure of the reative functional strength of a module. It is an extension of information hiding concept. A cohesive module must perform a single task within a software procedure, requiring little interaction with procedures that are performed in other parts of a program. Cohesion may be represented in various levels ranging from low measure to high measue. Strongest cohesion is most desirable (7), weakest cohesion (1) is least desirable. Coincidental cohesion (no apparent relationship among module elements). Logical cohesion (some inter-element relationships exist, e.g. several related functions, math library) Temporal cohesion (elements are usually bound through logic (2) and are executed at one time, i.e. same invocation of the module, e.g. initialization module). Communication cohesion (all elements are executed at one time an also refer to the same data, e.g. I/O module). Sequential cohesion (output of one element is input to the next, model structure bears close resemblance to the problem structure or procedure). Functional cohesion (all elements relate to performance of a single function). Information cohesion (complex data structure with all its functions/operators, concrete realization of data abstraction objects). Q. 7 List any 3 popular Tabular Design Tools. Ans. Here are a few Tabular Design Tools that are used in designing a procedure, among them decision table is the popular one. Decision Tables Detailed State Diagrams and Tables Karnaugh map Q. 8 Why we require Coding standards and Practices? Ans. Coding Standards and Practices Most of the software is developed by a team of people. In-order to generate a quality product, several types of jobs are required to be performed by the team. Even when writing the code, many people are generally involved, and a great level of cooperation and coordination is required. Thus, it is very important for others to understand not only what you have written, but also why you have written it and bow it fits in their work. For these reasons, one must know the organizations standards and procedures before beginning to write code.

Standards and procedures can help you to Organize your thoughts and avoid mistakes. Some procedures involve methods of documenting your code so it is clear and easy to follow. Translate designs to code. By structuring code according to standards, it is possible to maintain the correspondence between design components and code components. Q. 9 What are Source code tools? Give example. Ans. There are tools available that help to reduce the amount of time spent on the development of programs. Let us see some of the popular one. Source-code tools There are two commonly used source-code tools Editing tools, these relate to the editing of source code Browsing tools, helps to view the source code The source-code beautifiers and templates not only makes a program look consistent but also standardize indentation styles, align variable declarations and formant comments. Q. 10 What us internal documentation? Ans. Internal Documentation: Internal documentation is a descriptive material written directly with in the program, at a level appropriate for a programmer. It contains information directed at some one who will be reading the source code of the program. The information cotains a description of data structures, algorithms and control flow. Usually, this information is placed at the beginning of each componentin a set of comments called the header comment block. The header comment block acts as an introduction to the program. It has the following information for each of the code component: What is the name of the component. Who wrote it. Where does the component fit in the general system design. When was the component written and revised. Why the component exists. How the component uses its data structures, algorithms and controls. Q. 11 Discuss the four major goals of SRS. Ans. The four major goals of SRS: It provides feedback to the customer. An SRS is the customer's assurance that the development organization understands the issues or problems to be solved and the software behavior necessary to address those problems. Therefore, the SRS should be written in natural language, in an unambiguous manner that may also include charts, tables, data flow diagrams, decision tables, and so on. It decomposes the problem into component parts. The simple act of writing down software requirements in a well-designed format organize information, places borders around the problem, solidifies ideas, and helps break down the problem into its component parts in an orderly fashion.

It serves as an input to the design specification. As mentioned previously, the SRS serves as the parent document to subsequent documents, such as the software design specification. Therefore, the SRS must contain sufficient detail in the functional system requirements so that a design solution can be devised. It serves as a product validation check. The SRS also serves as the parent document for testing and validation strategies that will be applied to the requirements for verification. SRSs are typically developed during the first stages of "Requirements Development," which is the initial product development phase in which information is gathered about what requirements are needed--and not. This information-gathering stage can include onsite visits, questionnaires, surveys, interviews, and perhaps a return-on-investment (ROI) analysis or needs analysis of the customer or client's current business environment. The actual specification, then, is written after the requirements have been gathered and analyzed. PART A I. Fill up the blanks using suitable word or phrase in the following sentences: 1) Software is a set of_____________that when executed provide desired function and performance. Ans. INSTRUCTIONS OR COMPUTER PROGRAMS 2) Software is a process and _____________. Ans.:PRODUCT 3) The_____________method is also known as the iterative enhancement model. Ans. INCREMENTAL MODEL 4) An external entity is represented using _____________ in a DFD. Ans. EXTERNAL DESIGN INTERFACE 5) The software requirements deal with the_____________of the proposed system. Ans.REQUIREMENTS 6) The weakest coupling that is most desirable is _____________. Ans.DATA COUPLING 7) The three important levels of abstraction are _____________,_____________, and_____________. Ans. PHYSICAL LEVEL, LOGICAL LEVEL ,VIEW LEVEL 8) P.D.L. stands for_____________. Ans. PROGRAM DESIGN LANGUAGE 9) _____________helps to view the source code. Ans. BROWSING TOOLS 10) _____________tools help in code creation, debugging and testing. Ans.-EXECUTABLE CODE 11) The two kinds of program documentation are _____________and_____________ Ans. INTERNAL AND EXTERNAL 12) Estimation makes use of an important approach_____________. Ans.DECOMPOSITION 13) PERT stands for_____________. Ans. :PROGRAM EVALUATION AND REVIEW TECHNIQUE II. 1) Write Define brief the answers to terms risk the following mitigation, risk questions: monitoring.

Ans.:- Risk mitigation refers to avoiding risks by developing a strategy for reducing the turn over thereby adopting a proactive approach to risks. Risk monitoring refers to monitoring the facts that may provide an indication of whether the risk is becoming more or less likely. 2) Name the important approaches used in program debugging. Ans.:There are three debugging approaches commonly used It occurs as a consequence of successful testing. - When a test can uncovers an error, then debugging, a process that results in the removal of errors occur. Debugging process begins with the execution of test cases. 3) What are specification languages? Give an example. Ans.:- specification languages posses many desired qualities of an SRS. Unlike formal languages of SRS must be exact, without ambiguity, and precise because the design specification, statement of work, and other project documents are what drive the development of the final product. Example :-Structured English, Regular Expression. PART B 1. a) What is software? List out the important characteristics of software. Ans.:- Software is a set of instructions of computer programs that when executed provide desired function and performance. It is both a process and a product. To gain an understanding of software, it is important to examine the characteristics of software, which differ considerably from those of hardware. Software Characteristic 1). Software is developed or engineered, it is not manufactured. Unlike hardware, software is logical rather than physical. It has to be designed well before producing it. In spite of availability of many automated software development tools, it is the skill of the individual, creativity of the developers and proper management by the project manager that counts for a good software product. 2). Software does not wear out. The hardware components start deteriorating they are subjected to environmental maladies such as dust, vibration, temperature etc. and at some point of time they tend to breakdown. The defected components can then be traced and replaced. 3) Most software is custom-built, rather than being assembled from existing components Most of the engineered products are first designed before they are manufactured. Designing includes identifying various components for the product before they are actually assembled. Here several people can work independently on these components thus making the manufacturing system highly flexible. in software , breaking a program into modules is a difficult task, since each module is highly interlinked with other modules. b) Explain the waterfall model of software process. What are its limitations? Ans.:-It is the simplest and the widely used process model for software development. Here the phases involved in the software development are organized in a linear order. In a typical waterfall model, a project begins with the feasibility analysis. on successfully demonstrating the feasibility of a project, the requirements analysis and project planning begins. The design starts after completing the requirements analysis and coding starts after completing the design phase. The limitations of waterfall model are: nThe model states that the entire set of requirements should be frozen before development begins. This is possible for small projects, but is difficult for large projects where the exact requirements may not be known in advance. nThe waterfall model requires formal documents after each phase. This is not possible in GUI-

based applications where the documentation will be very extensive. nThe customer sees the software only at the end of the development phase. As a result, the customer cannot suggest any changes until the product is delivered. 2. a) Describe the three generic views of software engineering. Ans.:- The software engineering as such can be categorized in to three generic phases, regardless of application area, project size or complexity. The three generic phases of software engineering are :The definition phase The development phase Formatted: Bullets and Numbering The maintenance phase The definition phase developer attempts to identify what information is to be processed, what function and performance are desired, what system behavior can be expected, what interfaces are to be established, what design constraints exists, and what validation criteria are required to define a successful system. The development phase attempts to define how data are to be structured, how function is to be implemented as a software architecture, how produces are to be implemented, how design will be translated, into a programming language, how testing will be performed. The maintenance phase focus on change that is associated with the software. Correction:- it is likely that are customers will find errors or defects in the software in spite of quality assurance activities. Adaptations As time progress, it is likely that the original environment for which the software was developed is likely to change. Enhancement as software is used, the customer will recognize the need for additional functional requirements that will benefit him. Prevention computer software deteriorates due to change. so, preventive maintenance, often called software reengineering must be conducted in order to make changes to the computer software more easily. b) List out the important characteristics of good SRS. Ans.:A good SRS should be: nComplete nConsistent nAccurate nModifiable nRanked nTestable nTraceable nUnambiguous nValid 3. a) Give the outline structure of SRS. Ans.:The outline of SRS structure is: Introduction 1.1 Purpose 1.2 Document conventions 1.3 Intended audience 1.4 Additional information Formatted: Bullets and Numbering 1.5 Contact information/SRS team members 1.6 References Overall Description

2.1 Product perspective 2.2 Product functions 2.3 User classes and characteristics 2.4 Operating environment 2.5 User environment 2.6 Design/implementation constraints 2.7 Assumptions and dependencies External Interface Requirements 3.1 User interfaces 3.2 Hardware interfaces 3.3 Software interfaces 3.4 Communication protocols and interfaces System Features 4.1 System feature A 4.1.1 Description and priority 4.1.2 Action/result 4.1.3 Functional requirements 4.2 System feature B Other Nonfunctional Requirements 5.1 Performance requirements 5.2 Safety requirements 5.3 Security requirements 5.4 Software quality attributes 5.5 Project documentation 5.6 User documentation b) Why is design an important phase in software development life cycle? Describe design process. Ans.:- Design is an important phase in the software development life cycle because it bridges the requirements specification and the final solution for satisfying the requirements. The software design is an activity which is after the requirements analysis activity. This phase begins when the requirements document for the system to developed is available. Design is an important phase in the software development life cycle, it bridges the requirements specification and the final solution for satisfying the requirements. The design process for the software has two levels:1. System design or top-level design 2. Detailed design or logic design System design Using this, the modules that are needed for the system are decided, the specifications of these modules and how these modules need to be connected are also decided. Detailed design Using this, the internal design of the modules are decided or how the specifications of the modules can be satisfied are decided. This type of design essentially expands the system design to contain more detailed description of the processing logic and data structures so that the designs is sufficiently complete for coding. 4. Outline programming guidelines with regard to; i) Control structures ii) Algorithms iii) Data structures and iv) General guidelines i) Control Structures :- Many of the control structures for a program component are given by the architecture and design of a system. And the given design is translated in to code. In case of

some architecture, such as implicit invocation and object-oriented design, control is based on the system states and changes in variables. ii) Algorithms:- The program design often specifies a class of algorithms to be used in coding. For example, the design may tell the programmer to use binary search technique. Even though, a programmer has lot of flexibility in converting the algorithm to code, it depends on the constraints of the implementation language and hardware. iii) Data Structures :- Data structures can influence the organization and flow of a program. In some cases , it can even influence the choice of programming language. For example, LISP is a language for list processing. It is so designed that it contains structures that make it much easier for handling lists than other languages. iv) General Guidelines :- there are several strategies that are useful in preserving the design quality of a program:Localization input and output :- those parts of a program that read input or generate output are highly specialized and must reflect characteristics of the underlying hardware and software . Pseudo-code can be used for transforming the design to code through a chosen programming language. Revise the design and rewrite the code until one is completely satisfied with the result. Reuse code components if possible. 5. a) What is software testing ? Describe the two ways of testing any engineered software product. Ans.:- Software testing is the process of testing the functionality and correctness of software by running it. The two ways of testing any engineered software product :1) White-Box Testing 2) Black-Box testing Black-box testing It is also known as functional testing. Knowing the specified function that the product has been designed to perform, tests can be conducted to demonstrate that each function is fully operational Example :Boundary value analysis. White Box Testing It is also known as structural testing. Knowing the internal working of product, test can be conducted to ensure that all internal operations perform according to specification that all internal components have been adequately. EXAMPLE :basic path testing. b) What is the difference between verification and validation ? Ans.:- Verification is a set of activities that ensures that the software correctly implements a specified function while Validation is a set of activities that ensures that the software that has been built, is traceable to the customer requirements. 6. a) Describe the different kinds of software development team structure. Ans.:- The different kinds of software development team structure are: nDemocratic decentralized team nControlled centralized team Controlled decentralized team Democratic decentralized team It consists of ten or few number of programmers. The goals of the group are set by consensus Formatted: Bullets and Numbering

Every member is considered for taking major decision Group leadership rotates among group member Controlled centralized team It consists of a chief programmer, who is responsible for all the major technical decisions of the project. He also does most of the design activities and allocates coding part to each and every member of the team. Under him, he has a backup programmer, program librarian, and programmers The backup programmer helps the chief in making decisions and takes over the role of chief in absence of the chief programmer. The program librarian is responsible for maintaining the documents and other communication related work. Controlled decentralized team It combines the strength of the democratic and chief programmer teams It consists of a project leader who has a group of senior programmers under him and a group of junior programmers under a senior programmer. The communication between the senior and junior programmers are like ego-less team, This structure is best suited for every simple projects or research-type works. b) What is COCOMO model? Explain the basic COCOMO model. Ans.:-The COCOMO model predicts the effort and duration of a project based on inputs relating to the size of the resulting system and a number of cost drivers that affect productivity. THE BASIC COCOMO MODEL Basic COCOMO model estimates the software development effort using only a single predictor variable and three software development modes. Basic COCOMO is good for quick, early, rough, order of magnitude estimates of software costs, but its accuracy is necessarily limited because of its lack of factors which have a significant influence on software costs. The basic equation for the COCOMO model is about the effort estimate in persons month required develop a project and the KLOC, the number of delivered lines of code for the project. 7. a) Define the terms: quality, quality assurance and quality control. Ans.:- QUALITY:- Software quality is conformance to the explicitly stated functional and performance requirements, explicitly documented development standards, and implicit characteristics that are expected of all professionally developed software. QUALITY ASSURANCE :- Quality assurance is an auditing and reporting function of management. QUALITY CONTROL :- Quality control consists of a series of activities like inspections, reviews, and tests, which are carried out during the entire life cycle of software, so that each work product meets the requirements, placed upon it. b) Mention the objectives of formal technical review. Ans.:- This is a software quality assurance activity that is performed by software engineers. OBJECTIVES To detect the errors in functions, logic or implementation found in software. To verify that the software under review meets its requirements. To ensure that the software has been represented according to predefined standards To achieve software with consistent quality and on time To make projects more manageable. It acts as a training ground for junior engineers to observe different approaches to software analysis, design, implementation

FTR includes walkthroughs, inspections, round-robin reviews. 8. Write short notes on: a) Software engineering Ans.:-Software engineering is a discipline. It uses the existing tools and methods of software development and systematizes the entire process of software development. There are a number of formal definitions for software engineering, given by experts in the field. However for the purpose of understanding , we shall see some of them. The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, that is , the application of engineering to software . b) The spiral model of software process Ans.:-The activities in this model can be organized like a spiral, that has many cycles. Typically the inner cycles represent the early phase of requirement analysis along with the prototyping and the outer spirals represent the classic software lifecycle. This model has been divided into four quadrants, each quadrant representing a major activity like planning, risk analysis engineering and customer evaluation. The software process cycle begins with the planning activity represented by the first quadrant of this model. Each cycle here begins with the identification of objectives for that cycle, the alternatives and constraints associated with that objective. c) Programming tools. Ans.:-programming tools is used to reduce time spent on the development of programs. The tools which used in programming tools 1) source-code tools editing tools, these relate to the editing of source code browsing tools, helps to view the source code The source-code beautifiers and templates not only makes a program look consistent but also standardize indentation styles, align variable declarations and format comments. 2) Executable code tools Tools that are required for working with executable codes. it helps in code creation, debugging and testing 3) code creation has four major tools which help the developer in converting the source code into executable code : 4) Debugging tools help in debugging the code. 5) testing tools help in tracing the code errors.

S-ar putea să vă placă și