# Software Engineering (Set-I)

Save this PDF as:

Size: px
Start display at page:

## Transcription

1 MCA(4 th Sem) Software Engineering (Set-I) Q. 1) Answer the following questions (2x10) a) Mention the importance of phase containment errors. Relate phase containment errors with the development cost of software. Ans: - Importance of Phase Containment Errors Phase containment of errors means detect and correct errors as soon as possible. It is an important Software Engineering Principle. A software development life cycle has different distinct development phases. Phase containment of errors means detect and correct the errors within the phase where it s actually lives. That is a design error should be detected and corrected within the design phase itself rather than detecting it in the coding phase. To achieve phase containment of errors we have to take periodic reviews. Phase containment is used for defect prevention so that the defects are found at each phase of the application, and are not multiplied further; we do it by taking JAD sessions, performing reviews after each phase, by participating in walkthroughs and inspection. b) Justify the following: Spiral lifecycle model can be considered to be a Meta model. Ans: - Spiral Model is called Meta model because it is composed of several other models. For example, a single loop spiral actually represents the Waterfall Model. The spiral model uses prototyping approach before embarking on the actual product development effort. Also the spiral model can be considered as supporting the evolutionary model-the iterations along the spiral can be considered as evolutionary levels through which the complete system is built. This enables the developer to understand and resolve the risks at each evolutionary level. The spiral models uses prototyping as a risk reduction mechanism and also retain the systematic step approach of waterfall model. c) Compute the nominal effort and development time for m organic type software product with an estimated size of 500,000 line of code. Ans: - Effort=a b (KLOC) 1.05 Development time=c b (KLOC) 0.38 Given, lines of code = 500 KLOC E=2.4(500) 1.05 = D=2.5(500).38 =26.51 d) List any two factors that affect the productivity of a software development team. Ans:- Two Factors that Affect the Productivity of a Software Development Team Technical knowledge in the area of the project (domain knowledge) is an important factor determining the productivity of an individual for a particular project, and the quality of the product that he develops. A programmer having a thorough knowledge of database applications (e.g., MIS' may turn out to be a poor data communication engineer. Lack of familiarity with the application with the application areas can results in low productivity and poor quality of the product. Since software development is a group activity, it is vital for a software engineer to possess three main kinds of communication skills; Oral, Written, and interpersonal.

2 e) Mention any two causes that may lead a high coupling between two software modules. Ans:- Causes of High Coupling Coupling increases between two classes A and B if: A has an attribute that refers to (is of type) B. A call on services of an object B. A has a method which references B (via return type or parameter). A is a subclass of (or implements) class B. f) Write the main differences between structured chart and flow chart in the context of software design. Ans: - A structure chart differs from a flow chat in following i. It is usually difficult to identify different modules of the software from its flow chart representation. ii. Data interchange among different modules is not represented in a flowchart. iii. Sequential ordering of tasks inherent in a flowchart is suppressed in a structure chart. iv. A structure chart has no decision boxes. v. Unlike flow charts, structure charts show how different modules within program interact and data that is passed between them. g) Compare the relative advantages of code inspection and code walk through. Ans: Advantages of Code Inspection and Code Walk Through: - Code inspection and code walk through helps to avoid the faults. Lists all potential design flows that can make s/w code less maintainable and costly to develop. Indicates all defects otherwise difficult to testing and usage. A detailed error feedback' is provided to individual programmers. So that it make easier for them to make changes in the code. Error reduction and cost reduction. Improvement in productivity. h) Design equivalence class partitioning test suite that reads an integer value and display whether it is even. Ans: The equivalence classes are even numbers, odd ad invalid inputs. Selecting one representative value from each equivalence class. i) Name any four metrics to ensure software reliability. Ans: Four Metrics to Measure Software Reliability are:- Rate of Occurrence of Failure (ROCGF) Mean Time To Failure (MTTF) Mean Time to Repair (MTTR) Mean Time between Failures (MTBF)

3 j) Write any two advantages of total quality management. Ans: Advantages of Total Quality Management Elimination of non-confirmation and repetitive work Elimination of waste costs and reject products Elimination of repairs and reworks Process efficiency leading to improved profit per product or service Q. 2) a) Mention the important phases of spiral model. Compare the relative merits and dements of spiral model and the prototype model of software development. Ans: Spiral Model The spiral' model (proposed by Boehm) is an evolutionary software process model that couples the iterative nature of prototyping with the controlled and systematic aspects of the linear sequential model. The Spiral Life Cycle Model combines elements of the waterfall lifecycle model, along with an emphasis on the use of risk management techniques. Boehm proposed a spiral model where each round of the spiral: Identifies the sub-problem which has the highest risk associated with it and Finds a solution for that problem. Its chief distinguishing feature is that it is primarily risk-avoidance driven rather than document-driven, code driven or release driven. It is best suited for highly risky projects as the spiral model uses prototyping as a risk reduction mechanism while following the systematic, sequential waterfall approach. The phases of Spiral model are explained below. Planning: The objectives, limitations and alternatives of the project are found and documented in the planning phase. The strategies to follow during the lifecycle are decided.in this phase. Risk Analysis: The very critical part of Spiral methodology is Risk analysis phase. The available and possible ways of doing cost effective development of project are decided in this phase. The possible risk that may occur during the development is studied in this phase. If any risk factors are found, the ways to eliminate them are also planned at this stage itself. Engineering: The practical development of project takes place in this step. The outcome in this stage is passed iteratively through all phases to obtain modifications or improvement in the project. Evaluation: Customer s evaluation of the project is done at this phase. The customers can give their suggestions and ideas to identify and solve problems in the final software. The phase is similar to testing phase in waterfall model. Merits and Demerits of Prototyping Model Strength Prototyping Helps in requirements elicitation Reduces risk and leads to a better system. Spiral Controls project risks very flexible Less documentation needed. Weakness Front heavy process Possibly higher cost Disallows later changes. No strict standards for software development. No particular beginning or end of particular phase. Types of Projects System with novice users When uncertainties in requirements. Projects built on Untested assumptions.

4 Q.3) b) Write the different types of risks that software might suffer from. Explain three essential activities for risk management. Ans: Types of Risks Project Risks: Project risks threaten the project plan, that is, if project risks become real, it is likely that project schedule will slip and that costs will increase. Project risk; identify potential budgetary, schedule, personnel (staffing and organization), resource, customer, and requirements problems and their impact on a software project. Project complexity, size, and the degree of structural uncertainty were also defined as project (and estimation) risk factors. Technical Risks: Technical risks threatened the quality and timeliness of the software to be produced. If a technical risk becomes a reality, implementation may become difficult or impossible. Technical risks identify potential design, 'implementation, and interface, verification, and maintenance problems. In addition, specification ambiguity, technical uncertainty, technical obsolescence, and a leading edge technology are also risk factors. Technical risks occur because the problem is harder to solve than we thought it would be. Business Risks: Business risks threaten the viability of the software to be built. Business risks often jeopardize the project or the product. The top five business risks are: Building an excellent product or system that no one really wants (market risk). Building a product that no longer fits into the overall business strategy for the company (strategic risk), Building a product that the sales store doesn t understand how to sell Losing the support of senior management due to a change in focus or a change in people (management risk), Losing budgetary or personnel commitment (budget risks). Risk Management Activities Major risk management activities include identify, analyze, plan, track and control risks. These activities serve as the foundation for the application of continuous risk management. Each risk normally goes through these activities sequentially. Step 1: Risk Identification Recognizing what can go wrong is the first step, called risk identification Step 2: Risk Analysis: Next each risk is identified to determine the likelihood that it will occur and the damage that it will do it if does occur. Step 3: Risk Prioritization:Once risk analysis information is established, risks are ranked, by probability and impact. Step 4: Risk Control: Finally, a plan is developed to manage those risks with high probability and high impact. a) If a software product for business application costs Rs. 1, 00,000 to buy and that its size is 60 KLOC assuming that in house developers cost Rs, 10,000 per month. Ans:- Form the basic COCOMO estimation. Formula for organic software: Effort = 2.4 x (60)105 = 73.63PM Nominal development time= 2.5 x (73.63) 0.38 = months Cost required to develop the product = 12 x 10,000= 1, 20,000 So, more cost-effective is to buy the product. b) Discuss the important concepts associated with a layered design. Ans:-An important characteristic feature of a good design solution is layering of the modules. A layered design achieves control abstraction and is easier to understand and debugs.

5 a) Layered design with good control abstraction b) Layered design with poor control abstraction In a layered design, the topmost module in the hierarchy can be considered as a manager that only invokes the services of the lower level module to discharge its responsibility. The modules at the intermediate layers offer services to their higher layer by invoking the services of the lower layer modules and also by doing some work themselves to a limited extent. The modules at the lowest layer are the worker modules. These do not invoke services of any module and entirely carry out their responsibilities by themselves. Understanding a layered design is easier since to understand one module one would have to at best, consider the modules at the lower layers (i.e., the modules whose services it invokes). Besides, in a layered design errors are isolated, since an error in one module can affect only the higher layer modules. As a result, in case of any failure of a module, only the modules at the lower levels need to be investigated for the possible error. Thus, debugging time reduces significantly m a layered design. On the other hand, if the different modules call each other arbitrarily, then this situation would correspond to modules ar; -aged in a single layer. Locating an error would be both difficult and time-consuming. This is because, once a failure is observed, the cause of failure (i.e., error) can potentially be in any module, and all modules would to be investigated for the error. In the following, we discus; some important concepts and terminologies associated with a layered design. Q. 4) a) Compare the relative advantages and disadvantages of function-oriented design and objectoriented design. Ans:- Function-Oriented Design versus Object-Oriented Design come of the differences between the functional oriented and the object-oriented approaches which are very indispensable are described as under in the tabular form:

6 Functional-Oriented Approach Object-Oriented Approach In functional-oriented design approach, the basic abstractions which are given to the user are real- world functions such as sort, merge, track, display, etc. In object-oriented design approach, the basic abstractions are not the real-world functions, but the data abstraction where the real-world entities are represented such as picture, machine, radar system, customer, student,, employee, etc. In function-oriented design, functions are grouped together by which a higher-level function is obtained. For example, SA/SD. In this approach, the state' information is often represented in a centralized shared memory. In this, the functions are grouped together on the basis of data they operate on like in class person, function display are made member functions to operate on its data members like the person name, age, etc. In this approach, the state information is not represented in a centralized shared memory out is implemented/distributed among the objects of the system. b) Draw the Data flow diagram of Payroll management software. Ans: - Data flow diagram of Payroll management software:- Q. 5) a) Explain the important steps to be followed during the architectural design of distributed systems. Ans:- : In a top-down design, the design of the distributed system is manipulated in successive design steps, which make it possible for designers to move from an abstraction level to a more concrete one. Each design step brings the resulting design closer to the implementation, in terms of designs that can be more easily mapped onto concrete components. An entity may represent at a certain abstraction level, a complex structure of more concrete entities. An (interaction may also represent, at a certain abstraction level, a complex structure of more concrete interactions. Therefore, during the design trajectory of distributed systems one can identify the following design steps:

7 Entity Decomposition: Applied to a set of entities in a design, it replaces souse or each of these entities by multiple entities. Interface Refinement: Applied to a set of (inter)actions in a design, it replaces some or each of these (interactions by multiple (interactions. Since the entity and behavior domains are related, i.e., an entity should have a behavior assigned to it; entity decomposition also affects the behavior domain. This means that the original behavior of an entity that is decomposed should also be decomposed so that each resulting entity has a corresponding behavior assigned to it. Methods are necessary to guarantee the correctness of design operations in which behaviors are decomposed. The Figure given below shows a simple example, consisting of an entity E that is decomposed in two entities Ei and E 2, which are connected via an interaction point. In this example, both actions a and b are executed by entity E, such that a is followed by b. In the decomposed design, action a is assigned to E 1 and action b is assigned to E 2. Intuitively one can deduce that an interaction between Ej and E 2, which we call c. is necessary in order to keep the original relationship between actions a and b. Unfortunately, not all instances of behavior refinement are so simple as this one in which correctness can be easily and intuitively assessed by hand. An example of interface refinement is the decomposition of interaction c of figure 3 in two successive interactions c i and c 2, representing an indication that Bj is ready to pass some control information to B 2 and a notification that B 2 has accepted this information from Bj. b) Define Real time system. Mention the essential activities in design of Real time systems. Ans: - Real Time System Real time system is one that must react to inputs and responds to them quickly. A real time system has well defined, fixed time constraints. The design and administration of tests and the selection of test equipment; Real-time system is any system that responds m a timely manner. Activities must be scheduled and executed to meet their timeliness requirements. Timeliness requirements (and systems) are often classified into hard real -time, where failure to meet a deadline is treated as catastrophic system failure: and soft real-time, where an occasional missed deadline may be tolerated. Characteristics of Real Time Systems Timeliness: Time is a resource of fundamental concern in real-time systems. Embedded Systems: They are components of a larger system that interacts with the physical world. This is often the primary source of complexity in real-time systems. The physical world typically behaves in a non- deterministic manner, with events occurring asynchronously, concurrently, and in an unpredictable order. Whatever happens, the embedded real-time system must respond appropriately and in a timely fashion. Concurrency: The concurrency of the physical world usually implies that real-time system software must also be concurrent. In fact, one of the primary requirements of many realtime systems is to synchronize multiple concurrent activities arising in the environment. Unfortunately, concurrency adds complexity to software design since it conflicts with the inherently serial, cause-and-effect flow of human reasoning. Dependability: Another salient characteristic of many real-time systems is dependability. Many real-time systems play a crucial role in their environments and failure to perform correctly may result in significant costs or risk human safety. As a result, real-time systems must often be highly reliable (i.e., they must perform correctly), and available (i.e., they must operate continuously).

8 Q. 6) Essential Activities in Design of Real Time Systems 1. Selection of the hardware and software and the appropriate mix for a cost-effective solution; 2. Decision to use a commercial RTOS or-to design a special OS (or dedicated application without an OS); 3. The selection of software language; 4. Maximizing fault tolerance and reliability through careful design and rigorous testing; 5. The design and administration of tests and the selection of test equipment; a) Write essential steps to test a system through white box testing. Write how white box testing is different from black box testing. Ans:- Steps to Test a System through White Box Testing White box testing involves the following steps: 1. Create test plans. Identify all white box test scenarios and prioritize them. 2. Profile the application block. This involves studying the code at run time to understand the resource utilization, time spent by various methods and operations, areas in code that are not accessed, and so on. 3. Test the internal subroutines. This step ensures that the subroutines or the nonpublic interfaces can handle all types of data appropriately. 4. Test loops and conditional statements. This step focuses on testing the loops and conditional statements for accuracy and efficiency for different data inputs, 5. Perform security testing. White box security testing helps you understand possible security loopholes by looking at the way the code handles security. White-Box Testing versus Black-Box Testing 1. White-box testing is testing on more detailed level at the earlier stage of software development, it covers testing of the code itself (i.e. unit testi ng)..programming knowledge is usually required for white-box testing. 2. White-box testing is also sometimes called clear-box testing. The name comes from the fact that the inner part of the software (code) is tested so you get a view inside the software. 3. Black-box testing is testing of software functionality. Programming skills are usually not required. This is testing more from the end-user point of view. It is called black-box testing because during the testing you don t get to see the inner structure (i.e. code) of the software. b) Mention the importance of program analysis tools in software development Explain the different types of program analysis tools. Ans: Importance of Program Analysis Tools:-A programming tool or software development tool is a program or application that software developers use to create, debug, maintain, or otherwise support other programs and applications. The term usually refers to relatively simple programs that can be combined together to accomplish a task, much as one might use multiple hand tools to fix a physical object. Programming tool or programming software is a sub- category of system software but sometimes it is stated as a separate category of software along with application and system software Program analysis tools can be classified in to two broad categories 1. Static Analysis Tools: Static analysis tools assess and compute the various characteristics of a software product without executing, it.typically static analysis tools analyze some structural representation of a program to arrive at certain analytical conclusion, e.g. that some structural properties hold. Static analysis tools often summarize the result of analysis of every function in a polar chart known as Kiviat chart. A kividt chart typically shows the analyzed values for cyclomatic complexity, number of source line, percentage of comment lines, Halstead s metric. eu,. 2. Dynamic Analysis Tools: Dynamic program analysis techniques require the program to be executed and its actual behavior recorded. A dynamic analyzer usually instruments the code. The instrumented code when executed allows us to record the behavior of the software for different test cases. After the software has been tested with its full test suite and its behavior recorded, the dynamic analysis tool carries out a post execution analysis

9 Q. 7) and produce reports which described the structural coverage that has been achieved by the complete test suit for the program. Normally the dynamic analysis results are reported in the form of a histogram or pie chart to describe the structural coverage achieved for different modules of the program. a) Draw the control flow graph for the function find largest, which will find the largest number from a set of input numbers. From the control graph determine its cyclometric complexity. Ans: - The control flow graph to find maximum from N number of inputs is shown in the figure given below. Cyclomatic Complexity:- Cyclomatic complexity is defined for each graph to be e - n + 2, where e and n are the number of edges and nodes in the control flow graph, respectively. Cyclomatic complexity is also known as v(g), where v refers to the cyclomatic number in graph theory and G indicates,that the complexity is a function of the graph. Cyclomatic Complexity for Maximum number of n inputs From the figure, the number of edges e =8 Number of nodes n. =7 Hence cyclomatic complexity V (G) = = 3 b) Write the, importance of statistical testing. Mention the important steps associated with it. Ans: Statistical Testing Statistical testing is a testing process whose objective is to determine the reliability of the product rather than discovering errors. The test cases designed for statistical testing have an. entirely different objective from that of conventional testing. To carry-out statistical testing, we need to first define the operation profile of the product; 1. Operation Profile: Different categories of users may use software for very different purposes. I or example, a librarian might use the Library Automation Software to create member records, delete member records, and add books to the library, etc., whereas a library member might use the same software to query about the availability of a book, or to issue and return books. Formally, we can define the operation profile of software as the probability distribution of the input of an average user. If we divide the input into a number of classes {Ci}, the probability value of a class represents the probability of an average user selecting his next input from this class. Thus, the operation profile assigns a probability value {Pi} to each input class {Ci}. 2. How to Define the Operation Profile for a Product? We need to divide the input data

10 into a number of input classes. For example, for the graphical editor software, we might divide the input into data associated with the edit, print, and file operations. We then need to assign a probability value to each input class; this probability value would signify the probability for an input value from that class to be selected. The operation profile of a software product can be determined by observing and analyzing the usage pattern of a number of users. 3. Steps in Statistical Testing: The first step is to determine the operation profile of the software. The next step is to generate a set of test data corresponding to the determined operation profile. The third step is to apply, the test cases to the software and record the time between each failure. After a statistically significant number of failures have been observed, the reliability can be computed. For accurate results, statistical testing requires some fundamental assumptions to be satisfied. It requires a statistically significant number of test cases to be used. It further requires that a small percentage of test inputs that are likely to cause system failure be included. It is straightforward to generate test cases for the common types of inputs; it is easy to write a test case generator program which can automatically generate these test cases. But, it is also required that a statistically significant percentage of the unlikely inputs should also be included in the test suite. Creating these unlikely inputs using a test case generator is very difficult. 4. Pros and cons of Statistical Testing: Statistical testing allows one to concentrate on testing parts of the system that are most likely to be used. Therefore, it results in a system that the users find more reliable (than actually it is!). Also, the reliability estimation arrived at by using statistical testing is more accurate compared to those of other methods discussed. However, it is not easy to do the statistical testing properly. There is no simple and repeatable way of defining operation profiles. Also, the number of test cases with which the system is to be tested should be statistically significant. Q. 8) Write short notes on any Two of the following: (5x2) a) Project estimation technique. b) Coupling and cohesion c) System testing a) Project estimation technique. Estimation of various project parameters is a basic project planning activity. The important project parameters that are estimated include: project size, effort required to develop the software, project duration, and cost. These estimates not only help in quoting the project cost to the customer, but are also useful in resource planning and scheduling. There are three broad categories of estimation techniques: 1. Empirical Estimation Techniques: Empirical estimation techniques are based on making an educated guess of the project parameter: While using this technique, prior experience with development of similar products is helpful. Although empirical estimation techniques are based on common sense, different activities involved in estimation have been formalized over the years. 2. Heuristic Techniques: Heuristic techniques assume that the relationships among the different project parameters can be modeled using suitable mathematical expressions. Once the basic (independent) parameters are known, the other (dependent) parameters can be easily determined by substituting the value of the basic parameters in the mathematical expression. 3. Analytical Estimation Techniques: Analytical estimation techniques derive the required results starting with basic assumption regarding the project. Thus, unlike empirical and heuristic techniques, analytical techniques do have scientific basis. Halstead s software science is an example of an analytical technique. Halstead s software science can be used to derive some interesting results starting with a few simple assumptions.

11 b) Coupling and Cohesion:- Coupling between two modules is a measure of the degree of interdependence or interaction between the two modules. A module having high cohesion and low coupling is said to be functionally independent of other modules. If two modules interchange large amounts of data, then they are highly interdependent. The degree of coupling between two modules depends on their interface complexity. The interface complexity is basically determined by the number of types of parameters that are interchanged while invoking the functions of the module. Classification of Coupling Even if there are no techniques to precisely and quantitatively estimate the coupling between two modules, classification of the different types of coupling will help to quantitatively estimate the degree of coupling between two modules, rive types of coupling can occur between any two modules. Data coupling Stamp coupling Control coupling Common coupling Content coupling Cohesion Most researchers and engineers agree that a good software design implies clean decomposition of the problem into modules, and the neat arrangement of these modules in a hierarchy. The primary characteristics of neat module decomposition are high cohesion and low coupling. Cohesion is a measure of functional strength of a module. A module having high cohesion and low coupling is, said to be functionally independent of other modules. By the term functional independence, we mean that a cohesive module performs a single task or function. A functionally independent module has minimal interaction with other modules Classification of Cohesion The different classes of cohesion that a module may possess are: Coincidental cohesion Logical cohesion Communications cohesion Functional cohesion c) System Testing System testing is a series of different tests whose primary purpose is to fully exercise the computer-based system. Bach test has a different purpose for the various system elements that have been properly integrated. System testing involves integrating two or more components that implement system functions or features and then testing this integrated system is an iterative development process, system testing is concerned with testing an increment to be delivered to the customer; in a waterfall process, system testing is concerned with testing the entire system. Phases in System Testing For most complex systems, there are two distinct phases to system testing:

12 1. Integration Testing: Where the test.teams have access to the source code of the system. When a problem is discovered, the integration team tries to fmd the source of the problem and identifies the components that have to be debugged. Integration testing is mostly concerned with finding defects in the system. 2. Release Testing: Where a version of the system that could be released to users is tested. Hence, the test team is concerned with validating that the system meets its requirements and with ensuring that the system is dependable. Release testing is usually black-box testing where the test team is simply concerned with demonstrating that the system does or does not work properly. Problems are reported to the development team whose job is to debug the program. Where customers are involved in release testing, this is sometimes called acceptance testing. If the release is good enough, the customer may then accept it for use.

### (Refer Slide Time: 01:52)

Software Engineering Prof. N. L. Sarda Computer Science & Engineering Indian Institute of Technology, Bombay Lecture - 2 Introduction to Software Engineering Challenges, Process Models etc (Part 2) This

### Karunya University Dept. of Information Technology

PART A Questions 1. Mention any two software process models. 2. Define risk management. 3. What is a module? 4. What do you mean by requirement process? 5. Define integration testing. 6. State the main

### COURSE CODE : 4072 COURSE CATEGORY : A PERIODS / WEEK : 4 PERIODS / SEMESTER : 72 CREDITS : 4

COURSE TITLE : SOFTWARE ENGINEERING COURSE CODE : 4072 COURSE CATEGORY : A PERIODS / WEEK : 4 PERIODS / SEMESTER : 72 CREDITS : 4 TIME SCHEDULE MODULE TOPICS PERIODS 1 Software engineering discipline evolution

### Software Engineering Prof. N.L. Sarda Computer Science & Engineering Indian Institute of Technology, Bombay Lecture-4 Overview of Phases (Part - II)

Software Engineering Prof. N.L. Sarda Computer Science & Engineering Indian Institute of Technology, Bombay Lecture-4 Overview of Phases (Part - II) We studied the problem definition phase, with which

### Software Engineering Introduction & Background. Complaints. General Problems. Department of Computer Science Kent State University

Software Engineering Introduction & Background Department of Computer Science Kent State University Complaints Software production is often done by amateurs Software development is done by tinkering or

### SOFTWARE ENGINEERING INTERVIEW QUESTIONS

SOFTWARE ENGINEERING INTERVIEW QUESTIONS http://www.tutorialspoint.com/software_engineering/software_engineering_interview_questions.htm Copyright tutorialspoint.com Dear readers, these Software Engineering

### Project Planning and Project Estimation Techniques. Naveen Aggarwal

Project Planning and Project Estimation Techniques Naveen Aggarwal Responsibilities of a software project manager The job responsibility of a project manager ranges from invisible activities like building

### Fourth generation techniques (4GT)

Fourth generation techniques (4GT) The term fourth generation techniques (4GT) encompasses a broad array of software tools that have one thing in common. Each enables the software engineer to specify some

### Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

Preface xvi Part I Introduction and System Engineering 1 Chapter 1 Introduction 2 1.1 What Is Software Engineering? 2 1.2 Why Software Engineering? 3 1.3 Software Life-Cycle Activities 4 1.3.1 Software

### What is a life cycle model?

What is a life cycle model? Framework under which a software product is going to be developed. Defines the phases that the product under development will go through. Identifies activities involved in each

### D6 INFORMATION SYSTEMS DEVELOPMENT. SOLUTIONS & MARKING SCHEME. June 2013

D6 INFORMATION SYSTEMS DEVELOPMENT. SOLUTIONS & MARKING SCHEME. June 2013 The purpose of these questions is to establish that the students understand the basic ideas that underpin the course. The answers

### PESIT Bangalore South Campus. Department of MCA SOFTWARE ENGINEERING

PESIT Bangalore South Campus Department of MCA SOFTWARE ENGINEERING 1. GENERAL INFORMATION Academic Year: JULY-NOV 2015 Semester(s):III Title Code Duration (hrs) SOFTWARE ENGINEERING 13MCA33 Lectures 52Hrs

### Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: 0306211(Computer Programming 2).

0305203 0305280 0305301 0305302 Software Engineering/Courses Description Introduction to Software Engineering Prerequisite: 0306211(Computer Programming 2). This course introduces students to the problems

### Module 10. Coding and Testing. Version 2 CSE IIT, Kharagpur

Module 10 Coding and Testing Lesson 26 Debugging, Integration and System Testing Specific Instructional Objectives At the end of this lesson the student would be able to: Explain why debugging is needed.

### An Introduction to. Metrics. used during. Software Development

An Introduction to Metrics used during Software Development Life Cycle www.softwaretestinggenius.com Page 1 of 10 Define the Metric Objectives You can t control what you can t measure. This is a quote

### Software Engineering. Software Development Process Models. Lecturer: Giuseppe Santucci

Software Engineering Software Development Process Models Lecturer: Giuseppe Santucci Summary Modeling the Software Process Generic Software Process Models Waterfall model Process Iteration Incremental

### Total Quality Management (TQM) Quality, Success and Failure. Total Quality Management (TQM) vs. Process Reengineering (BPR)

Total Quality Management (TQM) Quality, Success and Failure Total Quality Management (TQM) is a concept that makes quality control a responsibility to be shared by all people in an organization. M7011

### Module 11. Software Project Planning. Version 2 CSE IIT, Kharagpur

Module 11 Software Project Planning Lesson 28 COCOMO Model Specific Instructional Objectives At the end of this lesson the student would be able to: Differentiate among organic, semidetached and embedded

### 2. Analysis, Design and Implementation

2. Analysis, Design and Implementation Subject/Topic/Focus: Software Production Process Summary: Software Crisis Software as a Product: From Programs to Application Systems Products Software Development:

### 11.1 What is Project Management? Object-Oriented Software Engineering Practical Software Development using UML and Java. What is Project Management?

11.1 What is Project Management? Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 11: Managing the Software Process Project management encompasses all the

### Software Life Cycle Processes

Software Life Cycle Processes Objective: Establish a work plan to coordinate effectively a set of tasks. Improves software quality. Allows us to manage projects more easily. Status of projects is more

### 2. Analysis, Design and Implementation

2. Subject/Topic/Focus: Software Production Process Summary: Software Crisis Software as a Product: From Individual Programs to Complete Application Systems Software Development: Goals, Tasks, Actors,

### To introduce software process models To describe three generic process models and when they may be used

Software Processes Objectives To introduce software process models To describe three generic process models and when they may be used To describe outline process models for requirements engineering, software

### Software cost estimation

Software cost estimation Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 26 Slide 1 Objectives To introduce the fundamentals of software costing and pricing To describe three metrics for

### Process Methodology. Wegmans Deli Kiosk. for. Version 1.0. Prepared by DELI-cious Developers. Rochester Institute of Technology

Process Methodology for Wegmans Deli Kiosk Version 1.0 Prepared by DELI-cious Developers Rochester Institute of Technology September 15, 2013 1 Table of Contents 1. Process... 3 1.1 Choice... 3 1.2 Description...

### CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS) Prescriptive Process Model Defines a distinct set of activities, actions, tasks, milestones, and work products that are required to engineer high quality

### Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

Software Engineering Software Processes Based on Software Engineering, 7 th Edition by Ian Sommerville Objectives To introduce software process models To describe three generic process models and when

VIDYAVAHINI FIRST GRADE COLLEGE SOFTWARE ENGINEERING 5 th Sem BCA Vidyavahini First Grade College Near Puttanjaneya Temple, Kuvempunagar, Tumkur 572103. E-Mail:vvfgc.bca@gmail.com Website:www.vidyavahini.org/bca

### Foundations for Systems Development

Foundations for Systems Development ASSIGNMENT 1 Read this assignment introduction. Then, read Chapter 1, The Systems Development Environment, on pages 2 25 in your textbook. What Is Systems Analysis and

### Expert Reference Series of White Papers. Intersecting Project Management and Business Analysis

Expert Reference Series of White Papers Intersecting Project Management and Business Analysis 1-800-COURSES www.globalknowledge.com Intersecting Project Management and Business Analysis Daniel Stober,

### System Design Approaches. System Design. Model-Driven Approaches Modern Structured Design. Model-Driven Approaches

System Design Systems design the specification of a detailed computer-based solution. Also called physical design. systems analysis emphasizes the business problem systems design emphasizes the technical

### Module 2. Software Life Cycle Model. Version 2 CSE IIT, Kharagpur

Module 2 Software Life Cycle Model Lesson 4 Prototyping and Spiral Life Cycle Models Specific Instructional Objectives At the end of this lesson the student will be able to: Explain what a prototype is.

### Objectives. The software process. Basic software process Models. Waterfall model. Software Processes

Software Processes Objectives To introduce software process models To describe three generic process models and when they may be used To describe outline process models for requirements engineering, software

### Acknowledgement. Software Engineering. CS 3141: Team Software Project Introduction

CS 3141: Team Software Project Introduction Ali Ebnenasir Department of Computer Science Michigan Technological University Acknowledgement Betty H.C. Cheng Software Engineering Systematic approach for

### Software Engineering 1

THE BCS PROFESSIONAL EXAMINATIONS Diploma April 2006 EXAMINERS REPORT Software Engineering 1 General Comments Most of the scripts produced by candidates this year were well structured and readable, showing

### Measurement Information Model

mcgarry02.qxd 9/7/01 1:27 PM Page 13 2 Information Model This chapter describes one of the fundamental measurement concepts of Practical Software, the Information Model. The Information Model provides

### Contents. Today Project Management. Project Management. Last Time - Software Development Processes. What is Project Management?

Contents Introduction Software Development Processes Project Management Requirements Engineering Software Construction Group processes Quality Assurance Software Management and Evolution Last Time - Software

### Chapter 23 Software Cost Estimation

Chapter 23 Software Cost Estimation Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 23 Slide 1 Software cost estimation Predicting the resources required for a software development process

### APPROACHES TO SOFTWARE TESTING PROGRAM VERIFICATION AND VALIDATION

1 APPROACHES TO SOFTWARE TESTING PROGRAM VERIFICATION AND VALIDATION Validation: Are we building the right product? Does program meet expectations of user? Verification: Are we building the product right?

### Unit Title: Personnel Information Systems Unit Reference Number: F/601/7510 Guided Learning Hours: 160 Level: Level 5 Number of Credits: 18

Unit Title: Personnel Information Systems Unit Reference Number: F/601/7510 Guided Learning Hours: 160 Level: Level 5 Number of Credits: 18 Unit objective and aim(s): This unit aims to give learners a

### Objectives. Chapter 12. System Design. Model-Driven Approaches. System Design Approaches 2016-02-17. Systems Design

McGraw-Hill/Irwin Chapter 12 Systems Design Copyright 2007 by The McGraw-Hill Companies, Inc. All rights reserved. 12-2 Objectives Describe the design phase in terms of your information building blocks.

### Certified Software Quality Engineer (CSQE) Body of Knowledge

Certified Software Quality Engineer (CSQE) Body of Knowledge The topics in this Body of Knowledge include additional detail in the form of subtext explanations and the cognitive level at which the questions

### A Study on Software Metrics and Phase based Defect Removal Pattern Technique for Project Management

International Journal of Soft Computing and Engineering (IJSCE) A Study on Software Metrics and Phase based Defect Removal Pattern Technique for Project Management Jayanthi.R, M Lilly Florence Abstract:

### Chapter 8 Approaches to System Development

Systems Analysis and Design in a Changing World, sixth edition 8-1 Chapter 8 Approaches to System Development Table of Contents Chapter Overview Learning Objectives Notes on Opening Case and EOC Cases

### Software Development Processes. Software Life-Cycle Models. Process Models in Other Fields. CIS 422/522 Spring 1998 1

1 Software Development Processes Sequential, Prototype-based RAD, Phased, Risk-based Spiral (c) 1998 M Young CIS 422/522 1/10/99 1 Software Life-Cycle Models Breaking projects down into pieces for... Planning

### Software Project Models

INTERNATIONAL JOURNAL OF TECHNOLOGY ENHANCEMENTS AND EMERGING ENGINEERING RESEARCH, VOL 1, ISSUE 4 135 Software Project Models Abhimanyu Chopra, Abhinav Prashar, Chandresh Saini Email-abhinav.prashar@gmail.com,

### Overview of Software Engineering and the Software Development Process

Overview of Software Engineering and the Software Development Process CONTENTS I. Definition of Software and Characteristics of Software II. Types / Categories of Software 1. System Software 2. Real-time

### CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

CS 389 Software Engineering Lecture 2 Chapter 2 Software Processes Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed. Topics covered Software process models Process activities Coping

### EVALUATING METRICS AT CLASS AND METHOD LEVEL FOR JAVA PROGRAMS USING KNOWLEDGE BASED SYSTEMS

EVALUATING METRICS AT CLASS AND METHOD LEVEL FOR JAVA PROGRAMS USING KNOWLEDGE BASED SYSTEMS Umamaheswari E. 1, N. Bhalaji 2 and D. K. Ghosh 3 1 SCSE, VIT Chennai Campus, Chennai, India 2 SSN College of

### Software Metrics. Lord Kelvin, a physicist. George Miller, a psychologist

Software Metrics 1. Lord Kelvin, a physicist 2. George Miller, a psychologist Software Metrics Product vs. process Most metrics are indirect: No way to measure property directly or Final product does not

### Software Development Processes. Software Life-Cycle Models

1 Software Development Processes Sequential, Prototype-based RAD, Phased, Risk-based Spiral (c) 1998 M Young CIS 422/522 4/3/98 1 Software Life-Cycle Models Breaking projects down into pieces for... Planning

### Software Engineering Question Bank

Software Engineering Question Bank 1) What is Software Development Life Cycle? (SDLC) System Development Life Cycle (SDLC) is the overall process of developing information systems through a multi-step

### Software Engineering. Software Testing. Based on Software Engineering, 7 th Edition by Ian Sommerville

Software Engineering Software Testing Based on Software Engineering, 7 th Edition by Ian Sommerville Objectives To discuss the distinctions between validation testing and defect t testing To describe the

### CS6403-SOFTWARE ENGINEERING UNIT-I PART-A

Handled By, VALLIAMMAI ENGINEERING COLLEGE SRM Nagar, Kattankulathur-603203. Department of Information Technology Question Bank- Even Semester 2014-2015 IV Semester CS6403-SOFTWARE ENGINEERING MS.R.Thenmozhi,

### Software cost estimation

Software cost estimation Sommerville Chapter 26 Objectives To introduce the fundamentals of software costing and pricing To describe three metrics for software productivity assessment To explain why different

Introduction & Procedural Programming Sample Courseware Introduction to Software Paradigms & Procedural Programming Paradigm This Lesson introduces main terminology to be used in the whole course. Thus,

### Classnotes 5: 1. Design and Information Flow A data flow diagram (DFD) is a graphical technique that is used to depict information flow, i.e.

Classnotes 5: 1. Design and Information Flow A data flow diagram (DFD) is a graphical technique that is used to depict information flow, i.e., a representation of information as a continuous flow that

### Module 2. Software Life Cycle Model. Version 2 CSE IIT, Kharagpur

Module 2 Software Life Cycle Model Lesson 3 Basics of Software Life Cycle and Waterfall Model Specific Instructional Objectives At the end of this lesson the student will be able to: Explain what is a

### Software Test Specification

Software Test Specification 1. Introduction This section provides an overview of the entire test document. This document describes both the test plan and the test procedure. 1.1 Goals and objectives Overall

### Baseline Code Analysis Using McCabe IQ

White Paper Table of Contents What is Baseline Code Analysis?.....2 Importance of Baseline Code Analysis...2 The Objectives of Baseline Code Analysis...4 Best Practices for Baseline Code Analysis...4 Challenges

### Software development life cycle. Software Engineering - II ITNP92 - Object Oriented Software Design. Requirements. Requirements. Dr Andrea Bracciali

Software development life cycle Software life cycle: Software Engineering - II ITNP92 - Object Oriented Software Design Dr Andrea Bracciali Module Co-ordinator 4B86 abb@cs.stir.ac.uk Spring 2014 (elicitation)

### SoftwareCostEstimation. Spring,2012

SoftwareCostEstimation Spring,2012 Chapter 3 SOFTWARE COST ESTIMATION DB Liu Software Cost Estimation INTRODUCTION Estimating the cost of a software product is one of the most difficult and error-prone

### In the case of the online marketing of Jaro Development Corporation, it

Chapter 2 THEORETICAL FRAMEWORK 2.1 Introduction Information System is processing of information received and transmitted to produce an efficient and effective process. One of the most typical information

### Utilizing Defect Management for Process Improvement. Kenneth Brown, CSQA, CSTE kdbqa@yahoo.com

Utilizing Defect Management for Process Improvement Kenneth Brown, CSQA, CSTE kdbqa@yahoo.com What This Presentation Will Cover How to Appropriately Classify and Measure Defects What to Measure in Defect

### IT3205: Fundamentals of Software Engineering (Compulsory)

INTRODUCTION : Fundamentals of Software Engineering (Compulsory) This course is designed to provide the students with the basic competencies required to identify requirements, document the system design

### JOURNAL OF OBJECT TECHNOLOGY

JOURNAL OF OBJECT TECHNOLOGY Online at www.jot.fm. Published by ETH Zurich, Chair of Software Engineering JOT, 2006 Vol. 5. No. 8, November-December 2006 Requirements Engineering Tasks Donald Firesmith,

### Module 11. Software Project Planning. Version 2 CSE IIT, Kharagpur

Module 11 Software Project Planning Lesson 29 Staffing Level Estimation and Scheduling Specific Instructional Objectives At the end of this lesson the student would be able to: Identify why careful planning

### Chapter 11, Testing, Part 2: Integration and System Testing

Object-Oriented Software Engineering Using UML, Patterns, and Java Chapter 11, Testing, Part 2: Integration and System Testing Overview Integration testing Big bang Bottom up Top down Sandwich System testing

### Software Engineering I: Software Technology WS 2008/09. Integration Testing and System Testing

Software Engineering I: Software Technology WS 2008/09 Integration Testing and System Testing Bernd Bruegge Applied Software Engineering Technische Universitaet Muenchen 1 Overview Integration testing

### Process Models and Metrics

Process Models and Metrics PROCESS MODELS AND METRICS These models and metrics capture information about the processes being performed We can model and measure the definition of the process process performers

### CHAPTER 1 INTRODUCTION

1 CHAPTER 1 INTRODUCTION Exploration is a process of discovery. In the database exploration process, an analyst executes a sequence of transformations over a collection of data structures to discover useful

### A system is a set of integrated components interacting with each other to serve a common purpose.

SYSTEM DEVELOPMENT AND THE WATERFALL MODEL What is a System? (Ch. 18) A system is a set of integrated components interacting with each other to serve a common purpose. A computer-based system is a system

### In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is:

In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is: The period of time that starts when a software product is conceived and ends when the product is no longer

### Engineering Process Software Qualities Software Architectural Design

Engineering Process We need to understand the steps that take us from an idea to a product. What do we do? In what order do we do it? How do we know when we re finished each step? Production process Typical

### And the Models Are 16-03-2015. System/Software Development Life Cycle. Why Life Cycle Approach for Software?

System/Software Development Life Cycle Anurag Srivastava Associate Professor ABV-IIITM, Gwalior Why Life Cycle Approach for Software? Life cycle is a sequence of events or patterns that are displayed in

### Module 10. Coding and Testing. Version 2 CSE IIT, Kharagpur

Module 10 Coding and Testing Lesson 23 Code Review Specific Instructional Objectives At the end of this lesson the student would be able to: Identify the necessity of coding standards. Differentiate between

### SOFTWARE ENGINEERING IT 0301 Semester V B.Nithya,G.Lakshmi Priya Asst Professor SRM University, Kattankulathur

SOFTWARE ENGINEERING IT 0301 Semester V B.Nithya,G.Lakshmi Priya Asst Professor SRM University, Kattankulathur School of Computing, Department of IT 1 2 Process What is it? A series of predictable steps

### A Security Approach in System Development Life Cycle

A Security Approach in System Development Life Cycle (1) P.Mahizharuvi, Research Scholar, Dept of MCA, Computer Center, Madurai Kamaraj University, Madurai. mahiconference@gmail.com (2) Dr.K.Alagarsamy,

### SE464/CS446/ECE452 Software Life-Cycle and Process Models. Instructor: Krzysztof Czarnecki

SE464/CS446/ECE452 Software Life-Cycle and Process Models Instructor: Krzysztof Czarnecki 1 Some of these slides are based on: Lecture slides by Ian Summerville accompanying his classic textbook software

### LECTURE 1. SYSTEMS DEVELOPMENT

LECTURE 1. SYSTEMS DEVELOPMENT 1.1 INFORMATION SYSTEMS System A system is an interrelated set of business procedures used within one business unit working together for a purpose A system has nine characteristics

### A Comparison of System Dynamics (SD) and Discrete Event Simulation (DES) Al Sweetser Overview.

A Comparison of System Dynamics (SD) and Discrete Event Simulation (DES) Al Sweetser Andersen Consultng 1600 K Street, N.W., Washington, DC 20006-2873 (202) 862-8080 (voice), (202) 785-4689 (fax) albert.sweetser@ac.com

### PROCESS OF MOVING FROM WATERFALL TO AGILE PROJECT MANAGEMENT MODEL

PROCESS OF MOVING FROM WATERFALL TO AGILE PROJECT MANAGEMENT MODEL Sanja Vukićević 1, Dražen Drašković 2 1 Faculty of Organizational Sciences, University of Belgrade, vukicevicsanja@yahoo.com 2 Faculty

### Software Engineering. What is a system?

What is a system? Software Engineering Software Processes A purposeful collection of inter-related components working together to achieve some common objective. A system may include software, mechanical,

### Chapter 11: Integration- and System Testing

Chapter 11: Integration- and System Testing Chapter 14: Testing (2/2) Object-Oriented Software Construction Armin B. Cremers, Sascha Alda & Tobias Rho (based on Bruegge & Dutoit) Software Lifecycle Activities...and

### Basic Testing Concepts and Terminology

T-76.5613 Software Testing and Quality Assurance Lecture 2, 13.9.2006 Basic Testing Concepts and Terminology Juha Itkonen SoberIT Contents Realities and principles of Testing terminology and basic concepts

### Automated Module Testing of Embedded Software Systems

Automated Module Testing of Embedded Software Systems Master s Thesis Fredrik Olsson Henrik Lundberg Supervisors Thomas Thelin, LTH Michael Rosenberg, EMP Nicklas Olofsson, EMP II Abstract When designing

### Software Engineering. So#ware Processes

Software Engineering So#ware Processes 1 The software process A structured set of activities required to develop a software system. Many different software processes but all involve: Specification defining

### IV. Software Lifecycles

IV. Software Lifecycles Software processes and lifecycles Relative costs of lifecycle phases Examples of lifecycles and processes Process maturity scale Information system development lifecycle Lifecycle

### Software Testing Strategies and Techniques

Software Testing Strategies and Techniques Sheetal Thakare 1, Savita Chavan 2, Prof. P. M. Chawan 3 1,2 MTech, Computer Engineering VJTI, Mumbai 3 Associate Professor, Computer Technology Department, VJTI,

### Java: Learning to Program with Robots. Chapter 11: Building Quality Software

Java: Learning to Program with Robots Chapter 11: Building Quality Software Chapter Objectives After studying this chapter, you should be able to: Identify characteristics of quality software, both from

### TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

Year 2014, Vol. 1, issue 1, pp. 49-56 Available online at: http://journal.iecuniversity.com TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW Singh RANDEEP a*, Rathee AMIT b a* Department of

### Development models. 1 Introduction. 2 Analyzing development models. R. Kuiper and E.J. Luit

Development models R. Kuiper and E.J. Luit 1 Introduction We reconsider the classical development models: the Waterfall Model [Bo76], the V-Model [Ro86], the Spiral Model [Bo88], together with the further

### Chapter 4 Software Lifecycle and Performance Analysis

Chapter 4 Software Lifecycle and Performance Analysis This chapter is aimed at illustrating performance modeling and analysis issues within the software lifecycle. After having introduced software and

### I. General Knowledge, Conduct, and Ethics (16 Questions)

Certified Software Quality Engineer (CSQE) Body of Knowledge The topics in this Body of Knowledge include additional detail in the form of subtext explanations and the cognitive level at which the questions

### Introduction to Systems Analysis and Design

Introduction to Systems Analysis and Design What is a System? A system is a set of interrelated components that function together to achieve a common goal. The components of a system are called subsystems.

### Noorul Islam College of Engineering M. Sc. Software Engineering (5 yrs) IX Semester XCS592- Software Project Management

Noorul Islam College of Engineering M. Sc. Software Engineering (5 yrs) IX Semester XCS592- Software Project Management 8. What is the principle of prototype model? A prototype is built to quickly demonstrate

### Software Processes. Coherent sets of activities for specifying, designing, implementing and testing software systems

Questions What is the life cycle of a software product? Why do we need software process models? What are the goals of a software process and what makes it different from other industrial processes? Software

### Software Metrics & Software Metrology. Alain Abran. Chapter 4 Quantification and Measurement are Not the Same!

Software Metrics & Software Metrology Alain Abran Chapter 4 Quantification and Measurement are Not the Same! 1 Agenda This chapter covers: The difference between a number & an analysis model. The Measurement