You are on page 1of 50

CS2301 Software Engineering

PROFO4C

S.A.ENGINEERING COLLEGE (AN ISO 9001:2000 Certified, NBA Accredited Institution) Approved By AICTE & Affiliated to Anna University QUESTION BANK Subject Code: CS2301 Subject Name: Software Engineering

Submitted By Mrs. E.Sujatha / Assistant Professor Department of Computer Science & Engineering

Signature of the HOD

Signature of the PRINCIPAL

CS2301 Software Engineering CS2301 - SOFTWARE ENGINEERING UNIT-I 1.What is meant by Software Engineering? The application of a systematic, disciplined, quantifiable approach to the development, operation & maintenance of software .(ie)The application of Engineering to Software. 2.What are the characteristics of Software? oftware is engineered or developed, it is not manufactured in the classical sense. S Software doesnt wear out. Although the industry is moving toward component based assembly, most software continues to be custom built. 3.What are the phases of Problem solving Loop? Problem definition identifies the problem to be solved. Technical developmentSolve the Problem through some Technology. Solution Integration Delivers the result Status Quo Represents the Current status affairs. 4.List out the activities of Linear Sequential Model. Software requirement analysis Understand the nature of the problem, information domain, function etc. Design Translates the requirement in to Software representation. Code generation Translates design in to Machine-readable form. Testing Test the Logical internals functional externals of the System. 5.Mention some of the drawbacks of RAD model. Not suitable for large-scale projects. Commitment of developers & customers are needed. Not appropriate when technical risks are high.

6.What are the types of changes encountered during the Support phase> Correction To uncover defects in the Software Adaptation To accommodate changes to its environment Enhancement To provide additional functionalities. Prevention To serve the needs of its end users. 7.Define Business process engineering. When the context of the engineering work focuses on a business enterprise. 8.What are the elements of Computer based Systems? Software: Computer programs, data structures, & related document Hardware: Electronic devices, inter connectivity devices, Electro mechanical devices.

CS2301 Software Engineering People: Users & Operators Database :organized collection of information. Documentation: Descriptive information Procedures: Steps that define the specific use of each system element. 9.Define Software Lifecycle. Software Lifecycle is the period of time beginning with the concept for a Software product ending whenever the Software is no longer available for use. SLC = SLCM + Activities. 10.What are the functions of data architecture? It provides the information needed for a business function. Identify the data objects and their relationship. Eg: Customer Attributes: Company name Contact information Product information Past purchase 11.Define System Modeling?

Define the processes that serve the needs of the view under consideration. Represent the behavior of the processes and the assumptions on which the behavior is based. Explicitly define both exogenous & endogenous input to the model. Represent all linkages that will enable the engineer to better understand the view.

12.State the System Engineering Hierarchy? The world view is composed of a set of domains (Di),which can each be a system, or system of systems. WV = {D1,D2,D3,..,Dn} Each domain is composed of specific elements (Ej). Di = {E1, E2, E3,..Em} Each element is implemented by specifying the technical components (Ck)that achieve the necessary function for an element. Ej = {C1,C2,C3..C4}. 13.Mention some of the factors to be considered during System Modeling. Assumptions Simplifications Limitations Constraints Preferences.

CS2301 Software Engineering

14.What are the different architectures developed during BPE? Data architecture - framework for the information needs of a business. Application architecture - incorporates the role of people & business procedures. Technology infrastructure - foundation for the data & application architecture. 15.Define Verification &Validation. Verification: The set of activities that ensure that software correctly implements a specific function. Validation: The set of activities that ensure that the software has been built is traceable to customer requirements. 16. What are the fundamental activities of a software process? Specification Design and implementation Validation Evolution 17. What are the umbrella activities of a software process? Software project tracking and control. Risk management. Software Quality Assurance. Formal Technical Reviews. Software Configuration Management. Work product preparation and production. Reusability management. Measurement. 18. What are the merits of incremental model? i. The incremental model can be adopted when tere are less number of people involved in the project. ii. Technical risks can be managed with each increment. iii. For a very small time span,at least core product can be delivered to the customer. 19 . List the task regions in the Spiral model. Customer communication In this region it is suggested to establish customer communication. Planning All planning activities are carried out in order to define resources timeline and other project related activities. Risk analysis The tasks required to calculate technical and management risks. Engineering In this the task region,tasks required to build one or more representations of applications are carried out. Construct and release All the necessary tasks required to construct,test,install the applications are conducted. Customer evaluation Customers feedback is obtained and based on the customer evaluation required tasks are performed and implemented at installation stage. 20 . What are the drawbacks of spiral model? i. It is based on customer communication.If the communication is not proper then the software product that gets developed will not be the up to the mark.

CS2301 Software Engineering ii. It demands considerable risk assessment.If the risk assessment is done properly then only the successful product can be obtained. 21. Define the computer based system. The computer based system can be defined as a set or an arrangement of elements that are organized to accomplish some predefined goal by processing information. 22. Name the Evolutionary process Models. i. Incremental model ii. Spiral model iii. WIN-WIN spiral model iv. Concurrent Development 23. Define the term PROGRAMMER.

The term programmer is used to denote an individual who is concerned with the details of implementing, packaging vend modifying algorithms and data structures written in particular programming languages. 24. What is the job of software engineer Software engineers are concerned with issues of analysis, design, verification documentation, software maintenance and project management 25. Define the term of computer software computer software includes the source code and all the associated documents and documentation, that constitute a software product. 26. What are all the components of a software product Requirements document Users manuals Design specifications ware problem repots Source code Soft Test plans Training aid Principles of operation Quality assurance produces 27. What are the generic view phases in software engineering? 1. 2. 3. 28. Definition phase. Development phase. Support phase. and testing,

What are the characteristics of KPA? 1. 2. 3. 4. 5. 6. Goals Commitments Abilities Activities Monitoring Implementation Method Verifying Implementation Method

KPA Key Process areas. 29. What is risk analysis?

CS2301 Software Engineering

A risk is a potential problem, it might happen, it might not. But, have define idea to identity it, and assess its probability of occurrence estimate its impact and establish a contingency plan should the problem actually occur. 30. What is a "task set"?

Each of the regions is populated by a set of work tasks, called a task set, that are adapted to the characteristics of the project to be undertaken. 31. What is WIN-WIN?

The best negotiations string for a "Win-Win" result. That is, the customer wins by getting the system or product that satisfies the majority of the customer's needs and the developer wins by working to realistic and achievable budgets and deadlines. UNIT-II 1.What is meant by System Requirements? Set out the system services and constraints in detail. Serves as a contract between the system buyer & the system developer. 2.What are the types of Software system requirements? Functional requirements: Services the system should provide. Non-functional requirements: Constraints on the services. Domain requirements: reflect characteristics of the domain. 3.Write down the functional requirement for an Library management system. The user should able to search either all of the initial set of databases or select a subset of databases or select subset from it. The system shall provide appropriate viewers for the user to read documents in the document store. Every order shall be allocated a unique identifier. 4.Mention some of the Notations for requirements specification. Structured natural language: Use standard form or Templates. Design description language: Programming language is used. Graphical notation: Text annotations is used. Mathematical Specifications: Based on finite state machines or sets. 5.Write down the SRC for Add a node Function Add node Description Adds a node to an existing design. Inputs Node type, Node position, Design Identifier Source Node type, Node position user Design identifier database Output Design identifier Precondition The design is open & displayed on the users screen

CS2301 Software Engineering Side effects None 6.Define Requirement Engineering. Requirement Engineering is a process that involves all of the activities required to create and maintain a system requirements document. The four generic Requirement Engineering activities are: Feasibility study, Requirement Elicitation & Analysis, Requirement Specification, Validation. 7..Mention some of the process activities of Requirement Elicitation & analysis. Domain Understanding Requirement Collection Classification Conflict resolution Prioritisation Requirement Checking

8..What are the different types of checks carried out during Requirement Validation? Validity checks Consistency checks Completeness checks Realism checks Verifiability. 9..Define Traceability Traceability is the overall property of requirements specification which reflects the ease of finding related requirements. Three types of traceability information to be maintained are: Source traceability information Requirement traceability information Design traceability information

10. Define software prototyping. Software prototyping is defined as a rapid software development for validating the requirements. 11. What are the benefits of prototyping? i. Prototype serves as a basis for deriving system specification. ii. Design quality can be improved. iii. System can be maintained easily. iv. Development efforts may get reduced. v. System usability can be improved. 12. What are the prototyping approaches in software process? i. Evolutionary prototyping In this approach of system development, the initial prototype is prepared and it is then refined through number of

CS2301 Software Engineering stages to final stage. ii. Throw-away prototyping Using this approach a rough practical implementation of the system is produced. The requirement problems can be identified from this implementation. It is then discarded. System is then developed using some different engineering paradigm. 13. What are the characteristics of SRS? i. Correct The SRS should be made up to date when appropriate requirements are identified. ii. Unambiguous When the requirements are correctly understood then only it is possible to write an unambiguous software. iii. Complete To make SRS complete,it shold be specified what a software designer wants to create software. iv. Consistent It should be consistent with reference to the functionalities identified. v. Specific The requirements should be mentioned specifically. vi. Traceable What is the need for mentioned requirement?This should be correctly identified. 14 . What are the objectives of Analysis modeling? i. To describe what the customer requires. ii. To establish a basis for the creation of software design. iii. To devise a set of valid requirements after which the software can be built. 15 . What is data modeling? Data modeling is the basic step in the analysis modeling. In data modeling the data objects are examined independently of processing. The data model represents how data are related with one another. 16. What is a data object? Data object is a collection of attributes that act as an aspect, characteristic, quality, or descriptor of the object. 17. What are attributes? Attributes are the one, which defines the properties of data object. 18. What is software requirements?

The software requirements specification is produced at the culmination of analysis tasks. The function and performance allocated to software as part of system engineering are refined by establishing a complete information description, a detailed functional description, a representation of system behavior, an indication of performance requirements and design constraints, appropriate validation criteria and other information pertinent to requirements. 19. What are the various representation used to depict the analysis model? Man different representation can be used to depict the anlalysis mode Use-case diagram Activity diagram Class diagrams State diagram Data flow diagram(DFD) 20.Define DFD Data flow diagram(DFD) provides an indication of how data are transformed as they move through the system; also depicts functions that transform the data flow(a function is represented in a DFD using a process specification or PSPTEC) 21.State the primary objectives of analysis Model. To describe what the customer requires To establish a basis for the creation of a software design To define a set of requirements that can be validated once the software is built. Problem analysis &

CS2301 Software Engineering Change specification Change analysis & costing Change Implementation 22..Define Data objects, attributes & relationship. Data object: Representation of any composite information that must be understood by a software. It can be any external entity. Attributes: Define the properties of the Data object Relationship: Connecting two different data object. Eg: Object Attributes Relationship Person Name Age Address Owns Car Make Model Body type 23.Define Cardinality & Modality. Cardinality: Specification of the number of occurrences of one that can be related to number of occurrences of another. Modality: The Modality of a relationship is 0 if there is no explicit need for the relationship to occur or the relationship is optional. The modality is 1 if an occurrence of the relationship is mandatory. 24..Define Behavioral Modeling. The state transition diagram represents the behavior of a system by depicting its states and the events that cause the system to change state. 25.What is meant by Data dictionary? The Data dictionary is an organized listing of all data elements that are pertinent to the system, with precise, rigorous definitions so that both user & system analyst will have a common understanding of inputs, outputs, components of store & intermediate 26.What does data dictionary contains? Name: The primary name of the data. Alias: other names used Where-used/How-used: A listing of processes that use the data or control item. Content description: A notation for representing the content Supplementary information: Other information like restrictions, limitations etc. 27.Write down the Data dictionary for the data item Telephone Number.

CS2301 Software Engineering Names: Telephone number Aliases: none Where used/How used: assess against set-up Description Telephone number = [local number| long distance number] Local number = prefix + access number Long distance number = 1 + area code + local number Area code = [800 | 888 | 561] Prefix = * a three digit number that never starts with 0 or 1* 28.What is meant by Throw away Prototyping? Giving the user a system which is incomplete and then modifying and augmenting it as the user requirements become clear. The objective is to validate or derive the system requirements. Start with those requirements that are not well understood since you need to find more about them. Unit-III

10

1. Define: Architectural design Architectural design represents the structure of data and program components that are required to build a computer based system. It considers the architectural style that the system will take, the structure and properties of the components that constitute the system, and the interrelationship that occur among all architectural components of a system. 2.What is Data Design? High level model depicting users view of the data or information. Design of data structures and operators is essential to creation of high-quality applications. Translation of data model into database is critical to achieving system business objectives. Reorganizing databases into data warehouse enables data mining or knowledge discovery that can impact success of business itself 3. Define the term in software designing: Modularity. The software is divided into separately named and addressable components, often called modules that are integrated to satisfy problem requirements. Modularity is the single attribute of software that allows a program to be intellectually manageable. 4.How will you ensure for effective modular design? Effective modular design reduces complexity, facilitates change, & easier implementation by encouraging parallel development of different parts of a system. Developing modules with single minded function is said to be functional independence. Functional independence modules have high cohesion and low coupling Functional Independence. Functional independence modules have high cohesion and low coupling Functional Independence is measured using two qualitative criteria: Cohesion and coupling. Cohesion qualitative indication of the degree to which a module focuses on just one thing Coupling qualitative indication of the degree to which a module is connected to other modules and to the outside world. 5.What is the difference between cardinality and modality. Cardinality-in data modeling, Cardinality specifies how the number of occurrences of one object are related to the number of occurrences of another object(1:1,1:N,M:N)

CS2301 Software Engineering

11

Modality-Zero(0) for an optional object relationship and one(1) for a mandatory relationship. 6. Explain State Transition Diagrams. State transition diagram(STD) indicates how the system behaves as a consequence external events, states are used to represent behavior modes. Arcs are labeled with the event triggering the transitions from one state to another(Control information is contained in couple of specification or CSPEC).STD represent the system states and events that trigger state transitions. 7. Describe about Interface Design. Interface is a set of operations that describes the externally observable behavior of a class and provides access to its operations. Important elements: ->User interface(UI),External interfaces to other systems, Internal interfaces between various design components, Modeled using UMI, collaboration diagrams. 8..Define component level design. Describes the internal detail of each software component. Defines: Data structures for all local data objects. Algorithmic Detail for all component processing functions. Interface that allows access to all component operations. Modeled using UML component diagrams, UML activity diagrams, and pseudocode(PDL).

9. What do you meant by ADL? Architectural Description Language (ADL) Provides syntax and semantics for describing software architecture. Provides designers with ability to decomposee components, combine components, and define interfaces. 10. Write the steps in transform mapping. Transform Mapping 1. Review fundamental system model 2. Review and redefine data flow diagrams for the software. 3. Determine whether the DFD has transform or transaction characteristics 4. Isolate the transform center by specifying incoming and outgoing flow boundaries 5. Perform first level factoring 6. Perform second level factoring. 7. Refine the first iteration architecture using design heuristics for improved software quality. 11.Mention some of the cohesion types. Cohension Utility Cohesion Temporal Cohesion Procedural Cohesion Communication Cohesion. Sequential Cohesion Layer Cohesion Functional Cohesion. 12. Mention various coupling types. Coupling: Data Coupling. Stamp Coupling.

CS2301 Software Engineering

12

Control Coupling. External Coupling. Common Coupling. Content Coupling. Routine Call Coupling. Type use Coupling. Inclusion or Import.

13.What is the use of Architectural design? The Architectural design defines the relationship between major structural elements of the software, the design patterns that can be used ,and the constraints that affect the way in which architectural design patterns can be applied. 14.Define Software design. Software design is an iterative process through requirements are translated into a blue print for constructing the software. The blue print depicts a holistic view of software. 15.Mention some of the Design principles. The design process should not suffer from tunnel vision. The design should not reinvent the wheel. The Design should exhibit uniformity & integration. Design is not coding ,coding is not design. The design should be traceable to the analysis model. 16..State Procedural abstraction. A Procedural abstraction is a named sequence of instructions that has a specific and limited function. Eg: Open Walk to the door, reach out & grasp the knob, turn knob & pull door Step away from moving door. 17.What does Data abstraction contains? A Data abstraction is a named collection of data that describes a data object Eg: door Attributes: door type, Swing direction, Opening mechanism, weight. 18..What does Modularity concept mean? Software architecture embodies modularity ;ie, Software is named in to addressable components called modules, that are integrated finally. C(P1+P2) > C(P1) + C(P2) The perceived complexity of a problem that combines p1 7p2 is greater than perceived complexity when each problem is considered separately. 19..Mention some of the criterias used to define effective modular design . Modular decomposability Modular Composability

CS2301 Software Engineering Modular Understandability Modular Continuity. Modular protection 20.Define Fan-in & Fan-out. Fan-out A measure of the number of modules that are directly controlled by another module. Fan-in Indicates how many modules directly control a given module. 21.Differentiate horizontal partitioning & Vertical partitioning. Horizontal partitioning Vertical partitioning 1.Defines separate branches of the 1.The Control & work should be Modular Hierarchy for each each distributed top-down in the program major program function structure. 2.Propagaton of fewer side-effects 2.Higher probability of side effects. 3.Software is easier to maintain 3.susceptible to side effects when Changes are made. 22. Write down the concept of Functional independence. Functional independence is achieved by developing modules with single minded function and an aversion to excessive interaction with other modules. Independent modules ,is easier to develop because function may be compartmentalized,& interfaces are simplified. Independent modules are easier to maintain. 23.What is meant by software prototyping? Software prototyping is a method of creating a model for the software product. This is developed based on the currently known requirements. Software prototyping helps in the better understanding of the required system. It is applied for complicated and large systems. In software prototyping, the customer defines a set of general objectives for the software, but does not identify the real input, processing and output requirements. 24.What is the work product of software design process and who does this? A design model that encompasses architectural, interface, component level and their representations is the primary work product that is produced during software design. Software engineers conduct each of the design tasks. 25.Define the term software architecture. The software architecture of a program or a computing system is the structure of the system, which comprises software components, externally visible properties of those components and relationship among them. The architecture is the manner in which the various components of the building are integrated to form a cohesive whole. 26.Describe about Interface Design. Interface Design:

13

CS2301 Software Engineering

14

Use the information Developed during interface analysis to define interface objects and actions(Operations) Define events that will cause the state of the user interface to change and model this behavior. Depict each interface state as it will appear to the end-user. Indicate how the user interprets the state of the system from information provided through the interface. 27.What are the golden rules while performing user interface design. The Golden Rules: Place the user in control Reduce the users memory load Make the Interface Consistent 28. What are the common activities in design process? i. System structuring The system is subdivided into principle subsystems components and communications between these subsystems are identified. ii. Control modeling A model of control relationships between different parts of the system is established. iii. Modular decomposition The identified subsystems are decomposed into modules. 29. What are the benefits of horizontal partitioning? i. Software that is easy to test. ii. Software that is easier to maintain. iii. Propagation of fewer sideeffects. iv. Software that is easier to extend. 30. What are the various elements of data design? i. Data object The data objects are identified and relationship among various data objects can be represented using ERD or data dictionaries. ii. Databases Using software design model, the data models are translated into data structures and data bases at the application level. iii. Data warehouses At the business level useful information is identified from various databases and the data warehouses are created. 31. List the guidelines for data design. i. Apply systematic analysis on data. ii. Identify data structures and related operations. iii. Establish data dictionary. iv. Use information hiding in the design of data structure. v. Apply a library of useful data structures and operations. 32. Name the commonly used architectural styles. i. Data centered architecture. ii. Data flow architecture. iii. Call and return architecture. iv. Object-oriented architecture. v. Layered architecture. 33. What is Transform mapping? The transform mapping is a set of design steps applied on the DFD in order to map the transformed flow characteristics into specific architectural style. 34. What is a Real time system? Real time system is a software system in which the correct functionalities of the system are dependent upon results produced by the system and the time at which these results are produced. 35. What is SCM? Software Configuration Management is a set of activities carried out for identifying, organizing and controlling changes throughout the lifecycle of computer software.

CS2301 Software Engineering

15

36. What is SCI? Software Configuration Item is information that is carried as part of the software engineering process. 8. Explain Version control. Version is an instance of a system which is functionally distinct in some way from other system instances. A baseline can only be changed by creating a new version. It is used to Keep track of SCI version. To mange different version of SCI To ensure repeatability & ability to reproduce any version of the s/w at any time. 37. What is version management? Version management is, Invent identification scheme for system version. Plan when new system version is to be produced. Ensure that version management tools & procedures are applied. Plan & distribute new system releases. 38. Discuss Configuration change control It involves managing & controlling changes to the SCIs, baseline & s/w releases Elements(process steps/activities) Evaluation Co-ordination Approval or disapproval Implementation of changes. 39. What is change management? Changes should be Analyzed before they are made Recorded before they are implemented. Verified after they are implemented Reported to affected parties. 40. What is the base line criteria in SCM? A work product becomes a baseline only after it is reviewed and approved. A baseline is a milestone in software development that is marked by the delivery of one or more configuration items. Once a baseline is established each change request must be evaluated and verified by a formal procedure before it is processed. 41. Explain configuration status reporting. Configuration status reporting( Configuration Audit) is an SCM task that answers the following questions. What are the conformance with requirements? What are the procedures to be followed? What kind of traceability is maintained? It is the verification of a configuration items compliance with its configuration identification. Two types of audit Functional Configuration Audit(FCA) Physical Configuration Audit(PCA) 42.What is baseline? It is a software configuration item(CI)chat. Has been formally reviewed and agreed. Serve as the basis for further development Changed only through formal change procedure.

CS2301 Software Engineering

16

It is the foundation for configuration management. It provides the official standard on which subsequent work is based and to only authorized changes are made.

After an initial baseline is established and frozen, every subsequent change is recorded as until the nest baseline is set. A point at which some deliverable produced during the software engineers process is put under formal change control. 43. Why software architecture is important in software process? Software architecture is a representation because it is used to convey the information content of the related elements comprising a system, the relationships among those elements, and the rules governing those relationships. It is a process because a sequence of steps is prescribed to produce or change the architecture, and/or a design from that architecture, of a system within a set of constraints. A Software architecture is primarily concerned with the external interfaces among the system's software entities, and between the system and its external environment. Unit-IV 1.Define software testing? Software testing is a critical element of software quality assurance and represents the ultimate review of specification, design, and coding. 2. . What are the objectives of testing? i. Testing is a process of executing a program with the intend of finding an error. ii. A good test case is one that has high probability of finding an undiscovered error. iii. A successful test is one that uncovers as an-yet undiscovered error. 3. What are the testing principles the software engineer must apply while performing the software testing? i. All tests should be traceable to customer requirements. ii. Tests should be planned long before testing begins. iii. The pareto principle can be applied to software testing-80% of all errors uncovered during testing will likely be traceable to 20% of all program modules. iv. Testing should begin in the small and progress toward testing in the large. v. Exhaustive testing is not possible. vi. To be most effective, an independent third party should conduct testing. 4. What are the two levels of testing? i. Component testing Individual components are tested. Tests are derived from developer s experience. ii. System Testing The group of components are integrated to create a system or sub-system is done.These tests are based on the system specification. 5. What are the various testing activities? i. Test planning ii. Test case design

CS2301 Software Engineering

17

iii. Test execution iv. Data collection v. Effective evaluation 6. Write short note on black box testing. The black box testing is also called as behavioral testing. This method fully focus on the functional requirements of the software. Tests are derived that fully exercise all functional requirements. 7. What is equivalence partitioning? Equivalence partitioning is a black box technique that divides the input domain into classes of data. From this data test cases can be derived. Equivalence class represents a set of valid or invalid states for input conditions. 8. What is a boundary value analysis? A boundary value analysis is a testing technique in which the elements at the edge of the domain are selected and tested. It is a test case design technique that complements equivalence partitioning technique. Here instead of focusing on input conditions only, the test cases are derived from the output domain. 9. What are the reasons behind to perform white box testing? There are three main reasons behind performing the white box testing. 1. Programmers may have some incorrect assumptions while designing or implementing some functions.Due to this there are chances of having logical errors in the program.To detect and correct such logical errors procedural details need to be examined. 2. Certain assumptions on flow of control and data may lead programmer to make design errors.To uncover the errors on logical path,white box testing is must. 3. There may be certain typographical errors that remain undetected even after syntax and type checking mechanisms.Such errors can be uncovered during white box testing. 10. Define black box testing strategy. Black box testing focuses on the functional requirements of the software. Test cases are decided on the basis of the requirements or specifications of the program and internals of program are not considered. Test cases are generated based on program code. 11.What is meant by software change? Software change is defined as the change in nature of software as the requirements of software changes. 12.Why testing is important with respect to software? A testing process focuses on logical internals of software ensuring that all statements have been tested and all are functional externals. While testing, we execute the entire program before it gets to the customer with specific indent of finding and removing all errors. In order to find the highest number of errors, test must be conducted systematically and test cases must be designed using disciplined techniques. 13.Write short notes on empirical estimation models. Estimation model for computer software uses empirically derived formulas to predict effort as a function of line of codes (LOC) and function points (FP). The values of LOC and FP estimated are plugged into estimation model. The empirical data that support most estimation models are derived from a limited sample of projects. So, results obtained from models should be used judiciously. The model must be tested and compared with actual and predicted data

CS2301 Software Engineering 14.Define software scope. The first software project management activity is the determination of software scope. Scope is defined answering the following questions. Context: What constraints are imposed as a result of the context. Information objectives: What data objects are required for input? Function and performance: Are any special performance characteristics to be addressed? 15.Define process maturity. In recent years there has been a significant emphasis on process maturity. The Software Engineering Institute. (SEI) has developed a comprehensive model predicated on a set of software engineering capabilities that should be present as organizations reach different levels of process maturity .The grading schema determines compliance with a capability maturity model (CMM) that defines key activities required at different levels of process maturity. 16.Distinguish between alpha testing and beta testing. The alpha test is conducted at the developer site. The software is used in a natural setting with the developer looking over the shoulder of the user and recording The beta test is conducted at one or more customer sites by the end user of the software. The beta test is a Live application of the software in an environment that problems. cannot be controlled by the developer. 17. What is cyclomatic complexity? Cyclomatic complexity is a software metric that gives the quantitative measure of logical complexity of the program. The Cyclomatic complexity defines the number of independent paths in the basis set of the program that provides the upper bound for the number of tests that must be conducted to ensure that all the statements have been executed at least once. 18. How to compute the cyclomatic complexity? The cyclomatic complexity can be computed by any one of the following ways. 1. The numbers of regions of the flow graph correspond to the cyclomatic complexity. 2. Cyclomatic complexity,V(G),for the flow graph,G,is defined as: V(G)=E-N+2, E -- number of flow graph edges, N -- number of flow graph nodes 3. V(G)=P+1

18

CS2301 Software Engineering Where P is the number of predicate nodes contained in the flow graph. 19. Distinguish between verification and validation

19

Verification refers to the set of activities that ensure that software correctly implements a specific function. Validation refers to a different set of activities that ensure that the software that has been built is traceable to the customer requirements.

According to Boehm, Verification: Are we building the product right? Validation: Are we building the right product?

18. What are the various testing strategies for conventional software? i. Unit testing ii. Integration testing. iii. Validation testing. iv. System testing. 19. Write about drivers and stubs. Drivers and stub software need to be developed to test incompatible software.

The driver is a program that accepts the test data and prints the relevant results. The stub is a subprogram that uses the module interfaces and performs the minimal data manipulation if required.

20 . What are the approaches of integration testing? The integration testing can be carried out using two approaches. 1. The non-incremental testing. 2. Incremental testing. 21. What are the benefits of smoke testing? Integration risk is minimized. The quality of the end-product is improved. Error diagnosis and correction are simplified. Assessment of program is easy.

22. What are the conditions exists after performing validation testing? After performing the validation testing there exists two conditions. The function or performance characteristics are according to the specifications and are accepted. The requirement specifications are derived and the deficiency list is created. The deficiencies then can be resolved by establishing the proper communication with the customer. 24.What are the various types of system testing?

CS2301 Software Engineering 1. Recovery testing is intended to check the system s ability to recover from failures. 2. Security testing verifies that system protection mechanism prevent improper penetration or data alteration. 3. Stress testing Determines breakpoint of a system to establish maximum service level. 4. Performance testing evaluates the run time performance of the software, especially real-time software. 25. Define debugging. Debugging is defined as the process of removal of defect. It occurs as a consequence of successful testing. 26. What are the common approaches in debugging?

20

Brute force method: The memory dumps and run-time tracksare examined and program with write statements is loaded to obtain clues to error causes. Back tracking method: The source code is examined by looking backwards from symptom to potential causes of errors. Cause elimination method: This method uses binary partitioning to reduce the number of locations where errors can exists.

27. Discuss on software maintenance The maintenance of existing software can account for over 60% of all effort expend by a development organization and the percentage continues to rise as more than fixing mistakes. The four activities of software maintenance are Corrective maintenance, adaptive maintenance or enhancement and preventive maintenance or reengineering. Only about 20% of all maintenance work is spent fixing mistakes. The remaining 80% spent adapting existing systems to changes in their external environment, making enhancement requested by users. 28. Mention some of the white box testing techniques 1. Basic path testing Flow graph notation Cyclomatic complexity Graph metrics 2. Control structure testing a) Condition testing i) Statement coverage, ii) Decision Coverage iii) Condition Coverage iv) Multiple condition coverage v) path coverage. b) Data flow testing c) Loop testing

CS2301 Software Engineering

21

i) Simple loop testing ii) nested loop testing iii) concatenated loop testing iv) unstructured loop testing. 29. What is incremental testing? Top down integration testing is an incremental approach to construction of program structure. Modules are integrated by moving downward thru the control hierarchy beginning from main control module and then the subordinate modules are incorporated in the depth first or breadth first manner. 30. Explain Unit testing Unit Testing makes heavy use of testing techniques that exercise specific control paths to detect errors in each software components individually. The steps are Module interfaces are tested for proper information flow. Local data are examined to ensure that integrity is maintained. Boundary conditions are tested. Basis (independent) path are tested. All error handling paths should be tested. Drivers and/or stubs need to be developed to test incomplete software.

31.. What is Scenario-Based testing? OO Scenario-Based Testing Using the user tasks described in the use-cases are building the test cases from the task and their variants Uncovers errors that occur when any actor interacts with the OO software Concentrates on what the use does, not what the product does You can get a higher return on your effort t by spending more time on reviewing the usecases as they are creating, than spending more time on use-case testing. 32.Describe about comparison testing. Comparison testing black-box testing for safety critical systems in which independently developed implementations of redundant systems are tested for conformance to specifications Often equivalence class partitioning is used to develop a common set of test cases for each implementation.

CS2301 Software Engineering UNIT-V 1. Define measure. Measure is defined as a quantitative indication of the extent, amount, dimension, or size of some attribute of a product or process. 2. Define metrics. Metrics is defined as the degree to which a system component,or process possesses a given attribute. 3.. What are the types of metrics?

22

Direct metrics It refers to immediately measurable attributes. Example Lines of code, execution speed. Indirect metrics It refers to the aspects that are not immediately quantifiable or measurable. Example functionality of a program.

4. What are the advantages and disadvantages of size measure? Advantages: Artifact of software development which is easily counted. Many existing methods use LOC as a key input. A large body of literature and data based on LOC already exists. This method is dependent upon the programming language. This method is well designed but shorter program may get suffered. It does not accommodate non procedural languages. In early stage of development it is difficult to estimate LOC.

Disadvantages:

5.. Write short notes on estimation models. Empirical estimation models can be used to complement decomposition techniques and offer a potentially valuable approach in their own right. A model is based on experience and takes the form D=f(vi) Where d number of estimated values vi selected independent parameters 6.Define software measurement. A software measurement is a technique or method that applies software measures to a class of software engineering objects to achieve a predefined goal. 7.What are the characteristics of software measurement? Object of measurement Purpose measurement

CS2301 Software Engineering

23

Source of measure Measured property Context of measurement.

8.What is COCOMO model? COCOMO stands for COnstructive COst MOdel. It is used for cost Effort=a * KDLOCb Where a and b are two parameters of the model whose specific values are selected upon the class of the software system. 9. What is function point? Function point is the size of measure it is also used to estimate the software cost. Function point (FP)=Function Count (FC) * Value adjustment factor (VAF). Function Count (FC)= xij wij Where x - Number of elements w - Weight Value adjustment factor (VAF)=0.65 + 0.01 fi 10.What are business process engineering tools? By modeling the strategic information requirements of an organization, business process engineering tools provide a meta-model from which specific information systems are derived. 11.What is Delphi model? In Delphi method, a number of parameters to be determined based on as experts estimates. The group estimate is taken as an average of the weighted individual estimtes, computed as Estimate=(lower bound of estimate+4*most likely estimate +upper bound of estimate)/6 Variance=(upper bound of estimate-lower bound of estimate)/6 12. Write short note on the various estimation techniques.

Algorithmic cost modeling the cost estimation is based on the size of the software. Expert judgement The experts from software development and the application domain use their exoerience to predict software costs. Estimation by analogy The cost of a project is computed by comparing the project to a similar project in the same application domain and then cost can be computed.

Parkinsons law The cost is determined by available resources rather than by objective assessment.

CS2301 Software Engineering

24

Pricing to win The project costs whatever the customer ready to spend it

13. Give the procedure of the Delphi method. 1. The co-ordinator presents a specification and estimation form to each expert. 2. Co-ordinator calls a group meeting in which the experts discuss estimation issues with the coordinator and each other. 3. Experts fill out forms anonymously. 4. Co-ordinator prepares and distributes a summary of the estimates. 5. The Co-ordinator then calls a group meeting.In this meeting the experts mainly discuss the points where their estimates vary widely. 6. The experts again fill out forms anonymously. 7. Again co-ordinator edits and summarizes the forms,repeating steps 5 and 6 until the co-ordinator is satisfied with the overallprediction synthesized from experts. 14. What is the purpose of timeline chart? The purpose of the timeline chart is to emphasize the scope of the individual task. Hence set of tasks are given as input to the timeline chart. 15. What is CASE? CASE tool stands for Computer Aided Software Engineering. Computer Aided Software Engineering tools assists software engineering manages and practitioners in every activity associated with the software process. 16. What are the programming CASE tools available? It includes compilers, debuggers ,editors and also object oriented programming environments, 4G languages , graphical language environments , application generators, and database query languages. 17. What are the various reengineering tools? Reverse engineering to specification tools. Code restructuring and analysis tools. On-line system reengineering tools.

18. What are risk analysis CASE tools? Identifies potential risks and developing a plan to mitigate , monitor and manage risks. Also it enables to build a risk table. 19. What is direct metrics? Direct metrics/ size orinted metrics:

CS2301 Software Engineering

25

Size oriented metrics are derived by normalizing quality and / or productivity measures by considering the size of the software that has been produced . SE process includes cost and effort applied. Software product includes LOC produced, execution speed, memory size and defects reported. A table is created as follows: Project LOC Effort $(000) Pp.doc Errors Defects People

20. What is indirect metrics? Indirect metrics(Function-oriented metrics) Use a measure of the functionality delivered by the application as a normalization value. It uses the measure called Function Point. Metrics is derived based on direct measures of software information domain and assessment of software complexity. FP is determined by five information domain characteristics. Function points are computed by completing the table: Measurement parameter Number of user i/ps Number of user o/ps Number of user enquries Number files Number external Interface Count total = FP = count total * [0.65 + 0.01* fi] Fi( I = 1 to 14) complexity adjustment value.It is based on 14 question asked by the developer to himself. 21. Why line of code based software metrics are not universally accepted ? Line of Code(LOC) based software metrics are not universally accepted because a program which is written in 100LOC can be written in 50loc or 200LOC. It depends on the developer who write the code and with PL chosen. Metrics may differ for the same problem. So the software metrics based on LOC will not be consistent. 22. Give some example for size-oriented metrics? of of Count Simple Average Complex Total

CS2301 Software Engineering * Errors per KLOC. * Defects per KLOC * $ per LOC * Page of documentation per KLOC $ per page of document. 23. What is meant by cost of quality?

26

Cost of quality includes all costs incurred in performing quality related activities. Studies are conducted to provide a baseline for current cost of quality, to identify opportunities for reducing cost of quality.

CS2301 -SOFTWARE ENGINEERING 16 Marks Questions UNIT I 1.Define Software process model? Explain any one of it with a neat diagram The strategy that encompasses process, methods, and tools. Explanation of any of the eight process model. 2.Expalin the hierarchy of Business process Engineering . Enterprise Business area Analysis Business System Design Construction & Engineering 3.Explain Software Life cycle process Definition of SLC,SLCM Predevelopment process Development process. 4.Explain Evolutionary process model Incremental model WIN-WIN spiral model Spiral model Concurrent development model 5.Explain the different layers of Software Engineering? Tools Methods Process A quality focus 6. Explain iterative waterfall and spiral model for software life cycle and

CS2301 Software Engineering various activities in each phase. Answer: Iterative waterfall model The iterative waterfall model is as shown in the following figure.

27

Requirement gathering phase in which all requirements are identified. The deign phase is responsible for creating architectural view of the software. The implementation phase in which the software design is transformed into coding. Testing is a kind of phase in which the developed software component is fully tested. Maintenance is an activity by which the software product can be maintained. SPIRAL MODEL

CS2301 Software Engineering

28

The spiral model is divided into number of frame works. These frameworks are denoted by task regions. Usually there are six task regions. In spiral model project entry point axis is defined. The task regions are: Customer communication Planning Risk analysis. Engineering. Construct and release. Customer evaluation. Drawbacks It is based on customer communication. It demands considerable risk assessment. 7. Explain about the incremental model. Have same phases as the waterfall model. Phases are Analysis. Design. Code.

CS2301 Software Engineering Test. Incremental model delivers series of releases to customers called as increments. The first increment is called as core product. Here only the document processing facilities are available. Second increment, more sophisticated document producing and processing facilities are available. Next increment spelling and grammar checking facilities are given. Merits This model can be adopted when there is less number of people involved in the project. Technical risks can be managed with each increment. For a very small time span, at least core product can be delivered to the customer. RAD Model Rapid Application Development Model is the type of incremental model. Achieves the high speed development using component based construction. Phases Business modeling Data modeling Process modeling Application generation. Testing and turnover. 8. Explain in detail about the software process. It is defined as the structured set of activities that are required to develop the software system. Fundamental activities Specification Design and implementation Validation Evolution Common Process Framework Process framework activities

29

CS2301 Software Engineering Communication Planning Modeling Construction Deployment. Task Sets Defines the actual work to achieve the software objective. Umbrella activities Software project tracking and control Risk management Software quality assurance Formal technical reviews Software configuration management Work product preparation and production Reusability management. Measurement. Capability Maturity Model(CMM) Level 1:Initial Few processes are defined and individual efforts are taken. Level 2:Repeatable To track cost schedule and functionality basic project management processes are established. Level 3:Defined The process is standardized, documented and followed. Level 4:Managed Both the software process and product are quantitatively understood and controlled using detailed measures. Level 5:Optimizing Establish mechanisms to plan and implement change 9. What is Software myths ?

30

Software standards provide s/w engineers with all the guidance they need. The reality is the standards may be out dated and rarely referred to. People with modern computers have all the s/w development tools. The reality is that case tools are mare important than hardware to producing high quality s/w yet they rarely used effectively. Adding people is a good way to catch up when a project is behind schedule. The reality is that adding people only helps the projects schedule when is it done in a planned well coordinated manner. Giving s/w projects to outside parties to develop solves s/w project management problems. The reality is the people who cannot manage internal software development problems will struggle to mange or control the external development of s/w too.

CS2301 Software Engineering

31

A general statement of objective from the customer is all that is needs to begin a s/w projects. The reality is without constant communication between the customers and the developers it is impossible to build a s/w product that meets the customers real needs. Projects requirements change continually and change is easy to accommodate in the s/w design. He reality is that every change has far-reaching and unexpected consequences. Change to software requirements must be managed very carefully to keep a software project on time and under budget. Once a program is written, the s/w engineers work is finished. The reality is that maintaining a piece of s/w is never done, until the s/w product is retired from service. There is no ay to assess the quality of a piece of software until it is actually running on some machine. The reality is that one of the most effective quality assurance practices (formal technical reviews) can be applied to any software design product and can serve as a quality filter very early in the product life cycle. The only deliverable from a successful software project is the working program. The reality is the working program is only one of several deliverables that arise from a well managed software project. The documentation is also important since it provides a basis for software support after delivery.

10. Explain in detail Boehms spiral model for software lifecycle and discuss various activities in each phase The spiral model is a software development process combining elements of both design and prototyping-in-stages, in an effort to combine advantages of top-down and bottom-up concepts. Spiral Lifecycle

CS2301 Software Engineering

32

Representation of Components, Relationships, and rules The spiral lifecycle model is the combination of the classic waterfall model and an element called risk analysis. This model is very appropriate for large software projects. The model consists of four main parts, or blocks, and the process is shown by a continuous loop going from the outside towards the inside. This shows the progress of the project. Planning This phase is where the objectives, alternatives, and constraints are determined. Risk Analysis

What happens here is that alternative solutions and constraints are defined, and risks are identified and analyzed. If risk analysis indicates uncertainty in the requirements, the prototyping model might be used to assist the situation. Engineering Here the customer decides when the next phase of planning and risk analysis occur. If it is determined that the risks are to high, the project can be terminated. Customer Evaluation - In this phase, the customer will assess the engineering results and make changes if necessary. Strengths and Weaknesses Strengths: o o o o Weaknesses: o o Difficult to convince some customers that the evolutionary approach is controllable Needs considerable risk assessment Good for large and complex projects Customer Evaluation allows for any changes deemed necessary, or would allow for new technological advances to be used Allows customer and developer to determine and to react to risks at each evolutionary level Direct consideration of risks at all levels greatly reduces problems

CS2301 Software Engineering If a risk is not discovered, problems will surely occur

33

o UNIT - II

1. Explain the prototyping approaches in software process. Two approaches i. Evolutionary prototyping In this approach of system development, the initial prototype is prepared and it is then refined through number of stages to final stage. ii. Throw-away prototyping Using this approach a rough practical implementation of the system is produced. The requirement problems can be identified from this implementation. It is then discarded. System is then developed using some different engineering paradigm. Evolutionary prototyping Objective: The principal objective of this model is to deliver the working system to the end-user. Example-AI systems. Advantages Fast delivery of the working system. User is involved while developing the system. More useful system can be delivered. Specification, design and implementation work is co-ordinated manner. Problems Management problems Maintenance problem Verification 20 Incremental Development After designing the overall architecture the system is developed and delivered in series of increments. Throw-away prototyping Objective: The principal objective of this model is to validate or to derive the system requirements. It is developed to reduce requirement risks.

CS2301 Software Engineering Advantages Requirement risks are very less. Problems It can be undocumented. Changes made during the software development proceed may degrade the system structure. Sometimes organizational quality standard may not be strictly applied. 2. Explain about rapid prototyping techniques. Executable specification languages. Used to animate the system specification. It is expressed in a formal, mathematical language to provide a system prototype. Very high level languages. These are programming languages which include powerful data management facilities. They simplify program development. Application generators and fourth-generation languages. These are successful languages because there is a great deal of communality across data processing applications. 3.. Explain in detail about data modeling. Data modeling makes use of the ERD. Consists of 3 interrelated information. The data object. Attributes. Relationships. Cardinality and Modality Cardinality is the specification of the number of occurrences of one object that can be related to the number of occurrences of another object. One-to-one cardinality. One-to-many cardinality. Many-to-Many cardinality. Modality of a relation is 0 if there is no explicit relationship or relation is optional. Modality is 1 if an occurrence of relationship is mandatory. Entity/Relationship Diagrams

34

CS2301 Software Engineering Components are Data Objects. Attributes. Relationships. Various type indicators. 4. Explain in detail about Functional Modeling. This model describes the computations that take place within a system. This model is useful when the transformation from the inputs to outputs is complex. The functional model of a system can be represented by a data Flow Diagram(DFD). Data Flow Diagrams/Data Flow Graph/Bubble chart A DFD is a graphical representation that depicts the information flow and the transforms that are applied as the data move from input to output. Level 0 DFD also called as fundamental system model or context model represents the entire software as a single bubble with input and output data indicated by incoming and outgoing arrows. Level 1 DFD contains 5 or 6 bubbles. Each bubbles can be refined at Layers to depict more details. Extensions to Real Time Systems Ward and Meller extensions Hatley and Pirbhai extension. 5. Explain in detail about Structural Modeling. Structural model includes a detail refinement of ERD,data flow model and control flow model. Creating an ERD. Example: Safe Home Security System. Developing relationships and cardinality/Modality. Creating a data flow model using the guidelines. Creating a control flow model which describes the structural connection of Processes Control flows Control stores. State automation Process activation table. 6.Bulid the following system:

35

CS2301 Software Engineering A Network based course registration system for your University Develop an ERD & a context level model for the above. Create an ERD Create a level 0 DFD. 7. Discuss the various phases of Analysis Modeling. Data Modeling Functional Modeling & Information flow Behavioral Modeling The Data dictionary 8.Explain briefly Functional Modeling Definition of Functional Modeling Data Flow Diagrams Extensions for real time systems Information hiding 9. Explain software prototyping?

36

A model of s/w to be built is called a prototype. A prototype is constructed for customer and developer assessment. (i) selecting a prototyping approach: * the prototyping paradigm can be either close ended or open ended * the close ended approach also called throw away prototyping. Using this a prototype serves as a rough demonstration of requirements. * an open ended approach, called evolution of the prototyping uses the prototype as the first part of an analysis activity that will be continued into design and construction. * Before a close ended or open ended approach can be chosen, it is necessary to determine whether the system to be built is amenable to prototyping. * Prototyping factors are application area, application complexity, customer characteristics and project characteristics. (ii) prototyping s/w process: * in common with other types of s/w development, the prototyping process follows a define s/w process model. * This model indicated the processes and tasks, which have to be performed during development of the prototype. * Process model device for this particular approach comprise the following stages. 1. analysis requirements: This involved the developer understanding the content and nature of the customers initial requirements. 2. prototype design: Here the developer should choose a suitable implementation approach for which to develop the prototype. Also a design is derived for the prototype based upon the results of analysis phase.

CS2301 Software Engineering 3. Prototype construction: This stage involves actual coding of the prototype Rapid prototyping:

37

* An evolutionary s/w prototyping process is produced based on a requirement analysis of the customers problem. This analysis is needed to ensure the initial version of the prototype is close enough to what the customer need to enable them to provide meaningful evaluations and criticism. * Each succeeding version of the prototype is produced based upon an analysis of the customers reaction to the demonstration of the previous version. * Delivered products are delivered from the prototypes that are accepted by the customers via an optimal optimization process. * maintenance activities are sparked by new customers requirements, which restart the prototyping process and extent the series of prototypes until a new stable point is reached. * The spiral model is well known because it combines the common knowledge of water fall model, incremental method and process model work into an attractive notation, even with less specific variation of the process. * Some advantage of this approach are that prototype of different aspects of the system can be developed concurrently and independently, that each fragment is relatively small, simple and easy to change, and that different tools and environments can be used for different aspects. The last property can be important in the short term, if tools are available for solving different parts of the problem, but these tools have not been integrated together into a comprehensive prototyping environment. 10. Explain Requirement and specification? Software Requirements Specification(SRS): The s/w requirement and specification focuses on what the system will do, not how the system will be implemented. It is produced as the culmination of the s/w requirements analysis task in the lifecycle model. You must analyze the information domain, the function, performance and behavior and interface requirement of the system. Software requirements can be specified in the following ways. representation format and content should be relevant to the problem information contain within the specification should be nested. Representations should be revisable. s/w requirements specification produced at the culmination of the analysis task. This also states the goal and objectives of the s/w. information description provides a detailed description of the problem that the s/w must solve. Functional description is a description of each function required to the solve the problem. Behavioral description section of the specification examines the operation of the s/w as a consequence of external events and internally generated control characteristics.

CS2301 Software Engineering (i)

38

Validation criteria is the most important and ironically the most often neglected section of requirements specification. Functional vs. non functional requirements functional requirements: statements of services the systems should provide, how the system should react to particular inputs and how the systems should behave in particular situations.

(ii)

Non functional requirements: constraints on the services or functions offered by the system such as timing constraints, constrains on the development process, standards etc.,

11. Explain Requirement Engineering Process. Requirement engineering provides the appropriate mechanism for understanding what the customer wants, analyzing need accessing feasibility, negotiating a reasonable solution, specifying the solution unambiguously, validating the specification and managing the requirements as they are transformed into an operational system. The requirement engineering process can be described in five distinct steps. UNIT-III 1.Explain Transform Mapping with Safehome Software Definition of Transform Mapping Explain Safehome applications Implement Transform mapping 2.Explain the various Design concepts in detail. Abstraction Refinement Modularity Control Hierarchy Structural Partitioning Data structure 3..Discuss briefly Effective Modular Design. Functional Independence. Cohesion Coupling 4.Expalin User Interface Design activities Interface design models requirement elicitation requirement analysis and negotiation requirement specification system modeling requirement validation requirement management

CS2301 Software Engineering Interface design process Defining Interface objects & actions Design Issues. 5..Discuss in detail Software configuration Management? The SCM process Version Control Change control SCM standards 6..Explain Real Time Systems. Real Time Software design System Design Real time executives 7.What is Software Architecture? Explain it. Definition Explanation 8. Explain the design steps of the transform mapping. Review the fundamental model. Review and refine the DFD for the software. Determine whether the DFD has the transform or transaction mapping. Isolate the transform center by specifying incoming and outgoing flow boundaries. Perform first-level factoring. Perform second-level factoring. Refine the first iteration architecture using design heuristics for improved software quality. 9. Explain the design steps in transaction mapping. Review the fundamental model. Review and refine the DFD for the software. Determine whether the DFD has the transform or transaction mapping. Identify transaction center and the flow characteristics along each of the action paths. Factor and refine the transaction structure and the structure of each action path. Refine the first iteration architecture using design heuristics for improved software quality. 10. Explain in detail about SCM.

39

CS2301 Software Engineering Software Configuration Management is an umbrella activity that is applied throughout the software process. SCM Activities Identify change. Control change. Ensure the change is properly implemented. Report change to others. Need for SCM When you build computer software change happens, you need to control it effectively. SCI Software Configuration Item is information that is carried as part of the software engineering process. UNIT IV 1..Explain in detail Black box testing in detail Syntax driven testing Decision table based testing Cause effects graph in Functional testing 2.How Boundary test conditions are achieved? Figure Explanation 3..Explain in detail Structural testing? Statement coverage Branch coverage Path coverage Example 4..Explain in detail Software Testing Strategies. Unit testing Integration testing Validation testing System testing 5.Explain the test coverage criteria based on Data flow mechanisms. Basic block All-use c-use p-use du-path

40

CS2301 Software Engineering 6.Define Software Cyclomatic Complexity? How it can be calculated? Definition Figure & Explanation Formula Example 7. Explain in detail about Integration testing. It is a systematic technique for constructing the program structure. Incremental integration The program is constructed and tested in small increments. Top-down integration It is an incremental approach. Modules are integrated by moving downward through the control hierarchy beginning with the main control module(main program). Subordinate modules are incorporated by depth-first or breadth-first manner. Bottom-up integration This testing begins construction and testing with the components at the lowest levels in the program structure. Regression testing It is the re-execution of some subset of tests that have already been conducted to ensure the changes that have not been propagated unintended side effects. Smoke testing It minimizes the integration risk. Error diagnosis and correction are simplified. 8. Explain in detail about system testing. System testing Stress testing Security testing. Performance testing 9. What is meant by integration testing ? Explain.Discuss on their outcomes

41

Integration testing is a logical extension of unit testing. In its simplest form, two units that have already been tested are combined into a component and the interface between them is tested. A component, in this sense, refers to an integrated aggregate of more than one unit. In a realistic scenario, many units are combined into components, which are in turn aggregated into even larger parts of the program. The idea is

CS2301 Software Engineering

42

to test combinations of pieces and eventually expand the process to test your modules with those of other groups. Eventually all the modules making up a process are tested together. Beyond that, if the program is composed of more than one process, they should be tested in pairs rather than all at once. Integration testing identifies problems that occur when units are combined. By using a test plan that requires you to test each unit and ensure the viability of each before combining units, you know that any errors discovered when combining units are likely related to the interface between units. This method reduces the number of possibilities to a far simpler level of analysis. The three common categories of Integration testing: The top-down approach to integration testing requires the highest-level modules be test and integrated first. This allows high-level logic and data flow to be tested early in the process and it tends to minimize the need for drivers. However, the need for stubs complicates test management and low-level utilities are tested relatively late in the development cycle. Another disadvantage of topdown integration testing is its poor support for early release of limited functionality. The bottom-up approach requires the lowest-level units be tested and integrated first. These units are frequently referred to as utility modules. By using this approach, utility modules are tested early in the development process and the need for stubs is minimized. The downside, however, is that the need for drivers complicates test management and high-level logic and data flow are tested late. Like the top-down approach, the bottom-up approach also provides poor support for early release of limited functionality. The third approach, sometimes referred to as the umbrella approach, requires testing along functional data and control-flow paths. First, the inputs for functions are integrated in the bottom-up pattern discussed above. The outputs for each function are then integrated in the top-down manner. The primary advantage of this approach is the degree of support for early release of limited functionality. It also helps minimize the need for stubs and drivers. The potential weaknesses of this approach are significant, however, in that it can be less systematic than the other two approaches, leading to the need for more regression testing. 10. Discuss in detail: (1) Alpha testing. Alpha testing is the software prototype stage when the software is first able to run. It will not have all the intended functionality, but it will have core functions and will be able to accept inputs and generate outputs. An alpha test usually takes place in the developer's offices on a separate system The first test of newly developed hardware or software in a laboratory setting. When the first round of bugs has been fixed, the product goes into beta test with actual users. For custom software, the

CS2301 Software Engineering

43

customer may be invited into the vendor's facilities for an alpha test to ensure the client's vision has been interpreted properly by the developer. (2) Beta testing The beta phase of software design exposes a new product, which has just emerged from in-house (alpha) testing, to a large number of real people, real hardware, and real usage. Beta testing is not a method of getting free software long-term, because the software expires shortly after the testing period. The benefits of testing include: Getting a look at the new features before anyone else. The pleasure of finding unususpected bugs. Making our (i.e., your!) software better as a result of detecting those bugs. Possibly, affecting our future direction of development through your suggestions.

A test for a computer product prior to commercial release. Beta testing is the last stage of testing, and normally can involve sending the product to beta test sites outside the company for real-world exposure or offering the product for a free trial download over the Internet. Beta testing is often preceded by a round of testing called alpha testing. Unit-V 1.Explain the various measures of Software. Program length Program volume measure] Potential volume measure Program level Effort & Time measure 2.Explain how Software cost estimation can be achieved using Function point model? Figure & Explanation 3.Explain the COCOMO model in detail. The basic form of the COCOMO model. Explanation 4.Explain Delphi method of cost estimation Explanation with example 5. Explain about software cost estimation. Major factors are: Programme ability.

CS2301 Software Engineering Product Complexity. Product size. Available time. Required reliability. 6. Explain in detail about COCOMO model. Constructive Cost Model. Software cost estimation gives the estimation of how much months a man take to develop a software product. Application Composition Model. Early design stage model Post-architecture stage model. COCOMO II application composition uses object points. NOP=(object point)X[100-%reuse)/100] NOP-New Object Point. Productivity Rate, PROD=NOP/person-Month. 7.. Explain in detail about Delphi Method. Procedure The co-ordinator presents a specification and estimation form to each expert. Co-ordinator calls a group meeting in which the experts discuss estimation issues with the coordinator and each other. Experts fill out forms anonymously. Co-ordinator prepares and distributes a summary of the estimates. The Co-ordinator then calls a group meeting.In this meeting the experts mainly discuss the points where their estimates vary widely. The experts again fill out forms anonymously. Again co-ordinator edits and summarizes the forms,repeating steps 5 and 6 until the co-ordinator is satisfied with the overall prediction synthesized from experts. 8.. Explain in detail about software Maintenance. Software maintenance is an activity in which program is modified after it has been put into use. Maintenance is defined as the process in which changes are implemented by either modifying the existing system s architecture or by adding new components to the system. Different aspects of maintenance

44

CS2301 Software Engineering The bug-fixing view The need-to-adapt view The user-support view Need for software maintenance To provide continuity of service To support mandatory upgrades. To support user requests for improvements. To facilitate future maintenance work. 9. Explain about CASE tools. Computer Aided Software Engineering. Business Process Engineering Tools. Process Modeling and Management Tools. Project Planning Tools. Risk analysis tools. Project management tools. Requirement tracing tools. Metrics and management tools. Documentation tools. System Software tools. Quality Assurance tools. Database management tools. SCM tools. Analysis and design tools. PTO/SIM tools. Interface design and development tools. Prototyping tools. Programming tools. Web development tools. Integration and testing tools. Static analysis tools. Dynamic analysis tools. Test management tools. Client/server tools. Re-engineering tools.

45

CS2301 Software Engineering 10. Explain software cost estimation? Predicting the resources required for a software development process. SOFTWARE COST COMPONENTS: *Hardware and software costs *Travel and training costs *Efforts costs *Salaries of engineers involved in the project *Social and insurance costs *Effort costs must take overheads into account *Costs of shared facilities COSTING AND PRICING: *Estimates are made to discover the cost, to the developer of producing a software system.

46

*There is not a simple relationship between the development ost and the price charged to the customer. PROGRAMMER PRODUCTIVITY: *A measure of the rate at which individual engineers involved in software development produce software and associated documentation. * Not quality oriented although quality assurance is a factor in productivity assessment PRODUCTIVITY MEASURES: *Size related measures based on some output from the software process. This may be lines of delivered source code, object code instructions etc., * Function related measures based on an estimate of the functionality of the delivered software. MEASUREMENT PROBLEM: *Estimating the size of the measure. *Estimating the total number of programmer months which have elapsed. LINES OF CODE: The measures was first proposed when programs were typed on cards with one line per card. Analysis 3 weeks 3 weeks Design 5 weeks 5 weeks Coding 8 weeks 8 weeks Testing 10 weeks 6 weeks Documentation 2 weeks 2 weeks

Assembly code High level Language Assembly High level language

Size 5000 lines 1500 lines

Effort 28 weeks 20 weeks

Productivity 714 lines / months 300 lines / months

11. Explain Project scheduling and tracking?

CS2301 Software Engineering

47

The scheduling is the process of building and monitoring schedules for software development systems, many engineering tasks need to occur in parallel with one another to complete the project on time. The output from one task often determines when another may begin. It is difficult to ensure that a team is working on the most appropriate tasks without building a detailed schedule and sticking to it. Software Project scheduling Principle: Compartmentalization: Interdependency Time allocation Effort validation Define responsibilities Defined outcomes Defined milestones *adding people to the project after it is behind schedule often causes the schedule to slip further. * Relationship between number of peoples on a project and overall productivity is not linear. * The main reason for using more than one person on a project are to get the job done more rapidly and to improve s/w quality. Scheduling: *Scheduling tools should be used to schedule any non trivial project. * PERT and CPM quantitative techniques that allow s/w planners to identify the chain of dependent task in the project work breakdown structure that determines the project duration. * Time line or GANTT chart : enables s/w planners to determine what task will be needed to conducted at a given point in the given time. *Time boxing: Practice of deciding a prior, the fixed amount of time that can be spend on each task. Earned value analysis: Error tracking: Allows comparison of current works to the past projects and provides a quantitative indication on the works so far completed. This is a quantitative measure of percent of project completed so for. The total hours to complete the entire project are estimated and each task is given an earned value based on its estimated % contribution to the total.

Relationship between people and effort:

CS2301 Software Engineering

48

The more quantitative approach to project tracking and control, the more likely problems can be anticipated and dealt.

12.Describe two metrics which are used to measure the software in detail . Discuss clearly the advantages and disadvantages of these metrics Software measurement is a challenging but essential component of a healthy and highly capable software engineering culture. In this article, I describe some basic software measurement principles and suggest some metrics that can help you understand and improve the way your organization operates. Plan your measurement activities carefully because they can take significant effort to implement and the payoff will come over time. Why Measure Software Software projects are notorious for running over schedule and budget, yet still having quality problems. Software measurement lets you quantify your schedule, work effort, product size, project status, and quality performance. If you dont measure your current performance and use the data to improve your future work estimates, those estimates will just be guesses. Because todays current data becomes tomorrows historical data, its never too late to start recording key information about your project. Table 1. Appropriate Metrics for Software Developers, Teams, and Organizations.

Group Individual Developers

Appropriate Metrics Work effort distribution Estimated vs. actual task duration and effort Code covered by unit testing Number of defects found by unit testing Code and design complexity Product size Work effort distribution Requirements status (number approved, implemented, and verified) Percentage of test cases passed Estimated vs, actual duration between major milestones Estimated vs. actual staffing levels

Project Teams

CS2301 Software Engineering

49

Development Organization

Number of defects found by integration and system testing Number of defects found by inspections Defect status Requirements stability Number of tasks planned and completed Released defect levels Product development cycle time Schedule and effort estimating accuracy Reuse effectiveness Planned and actual cost

To help your team overcome the fear, you must educate them about the metrics program. Tell them why measurement is important and how you intend to use the data. Make it clear that you will never use metrics data either to punish or reward individuals (and then make sure that you dont). A competent software manager does not need individual metrics to distinguish the effective team contributors from the slackers. Respect the privacy of the data. It is harder to abuse the data if managers dont know who the data came from, Classify each data item you collect into one of these three privacy levels: Individual: only the individual who collected the data about his or her own work knows it is his or her data, although it may be pooled with data from other individuals to provide an overall project profile Project team: data is private to the members of the project team, although it may be pooled with data from other projects to provide an overall organizational profile Organization: data can be shared among all members of the organization.

As an example, if you are collecting work effort distribution data, the number of hours each individual spends working on every development or maintenance phase activity in a week is private to that individual. The total distribution of hours from all team members is private to the project team, and the distribution across all projects is public to everyone in the organization. View and present the data items that are private to individuals only in the aggregate or as averages over the group.

CS2301 Software Engineering

50

You might also like