20
Software Engineering (INFS-334) Question Bank for Final Exam Preparation Fall Term 2014-15 (1435-36) Q1: What is the purpose of Software Development Life Cycle (SDLC) in Software Engineering? Explain the phases of SDLC with the help of Diagram. A sample waterfall life cycle model comprises the fallowing phases : *Requirement analysis and specification : Requirement analysis is usually the first phase of large- scale software development project. It is undertaken after a feasibility study has been performed to define the precise costs and benefits of software system. *System design and specification : Once the requirements for a system have been documented , software engineers design a software system to meet them . This phase is sometime split into two subphases : architectural or high-level design and detailed design . Architectural design entails defining the overall organization of the system in the terns of high-level components and interactions among them. *Coding and module testing : in this phase, the engineer produce the actual code that will be delivered to the customer as the running system. *Integration and system testing : All the modules that have been developed before and tested individually are put together –integrated- in this phase and are tested as a whole system. *Delivery and maintenance : 1

cscbank.info  · Web viewQuestion Bank for Final Exam Preparation. Fall Term 2014-15 (1435-36) Q1: What is the purpose of Software Development Life Cycle (SDLC) ... *Coding and module

  • Upload
    donhu

  • View
    214

  • Download
    0

Embed Size (px)

Citation preview

Software Engineering (INFS-334)Question Bank for Final Exam Preparation

Fall Term 2014-15 (1435-36)

Q1: What is the purpose of Software Development Life Cycle (SDLC) in Software Engineering? Explain the phases of SDLC with the help of Diagram.

A sample waterfall life cycle model comprises the fallowing phases :*Requirement analysis and specification :

Requirement analysis is usually the first phase of large-scale software development project. It is undertaken after a feasibility study has been performed to define the precise costs and benefits of software system.

*System design and specification : Once the requirements for a system have been documented , software engineers design a software system to meet them .This phase is sometime split into two subphases : architectural or high-level design and detailed design . Architectural design entails defining the overall organization of the system in the terns of high-level components and interactions among them.

*Coding and module testing : in this phase, the engineer produce the actual code that will be delivered to the customer as the running system.

*Integration and system testing : All the modules that have been developed before and tested individually are put together –integrated- in this phase and are tested as a whole system.

*Delivery and maintenance : once the system passes all the tests , it is delivered to the customer and enters the maintenance phase. Any modification made to the system after the initial delivery are usually attributed this phase.

1

Q2: Describe the activities that Software Team performs in each phase of SDLC.* A software Engineer must, of course, be a good programmer , be well versed in data structures and algorithms , and be fluent in one or more programing language . These are requirements for “programming-in-the-small” roughly defined as building programs that can be written in their entirety by a single individual .* The software Engineer must be familiar with serval design approaches, be able to translate vague requirements and desires into precise specifications, and be able to converse with user of a system in terms of the application rather than in “computers”

Q3: Describe the Role / Relation of Software Engineering with other fields like: Programming Languages

The influence of software engineering on programming language is evident : Programming language are the central tools used in software development ..

Operating SystemsThe influence of operating systems on software engineering is quite strong primarily because operating system were the first really large software systems built , and therefore, they were first instances of software that needed to be engineered ..

DatabasesDatabase Represent another class of large software systems whose development has influenced software engineering through the discovery of new design techniques ..

Management SciencesMuch Of software engineering is involved with the management issues . As in any kind of large, multiperson endeavor, we need to do project estimation, project scheduling, human resource planning, task decomposition and assignment, and project tracking ..

Q4: Classify the Software Qualities according to (internal /external) concern and (process / product) based domain classification. External versus Internal Qualities

External qualities are visible to the users of the system; internal qualities concern the developers of system. In general , users of software care only about external qualities, but it is the internal qualities—which deal largely with

2

the structure of the software—the help developer achieve the external qualities ..

Product and process Qualities

We use a process to produce the software product. We can attribute some qualities the process, although process qualities often are closely related to product qualities.The word product usually refers to what is delivered to the customer ..

Q5: List down the functionality and behavior of software qualities mentioned in chapter 2.

Correctness, Reliability , and Robustness Robustness Performance Usability Maintainability Reparability Evolvability Reusability

Q6: What is a Software Process Model? What are the fundamental activities that are common in all process models?software process model is a simplified representation of a software process. Each process model represents a process from a particular perspective, and thus provides only partial information about that process.

fundamental activities that are common in all process models :

1. Software specification The functionality of the software and constraints on its operation must be defined.

2. Software design and implementation The software to meet the specification must be produced.

3

3. Software validation The software must be validated to ensure that it does what the customer wants.

4. Software evolution The software must evolve to meet changing customer needs.

Q7: List down the phases of waterfall process model and associated activities in each phase.The principal stages of the model map onto fundamental development activities:

1. Requirements analysis and definition The system’s services, constraints, and goals are established by consultation with system users. They are then defined in detail and serve as a system specification.

2. System and software design The systems design process allocates the requirements to either hardware or software systems by establishing an overall system architecture. Software design involves identifying and describing the fundamental software system abstractions and their relationships.

3. Implementation and unit testing During this stage, the software design is realized as a set of programs or program units. Unit testing involves verifying that each unit meets its specification.

4. Integration and system testing The individual program units or programs are integrated and tested as a complete system to ensure that the software requirements have been met. After testing, the software system is delivered to the customer.

5. Operation and maintenance Normally (although not necessarily), this is the longest life cycle phase. The system is installed and put into practical use. Maintenance involves correcting errors which were not discovered in earlier stages of the life cycle, improving the implementation of system units and enhancing the system’s services as new requirements are discovered.

Q8: Compare the two fundamentals types of evolutionary development process model ?Evolutionary development :

1-Exploratory development where the objective of the process is to work with the customer to explore their requirements and deliver final system. The development starts with the parts of the system that are understood. The system evolves by adding new features by the customer.

4

2-throwaway prototyping where the objective of the evolutionary development process is to understand the customer's requirements and hence develop a better requirements definition for the system. The prototype concentrates on experimenting with the customer requirements that are poorly understood.

Q9: What does an Increment mean in software process? Interpret the advantages of Incremental Delivery for target user ?While the initial requirements specification stage and the validation stage are comparable with other software processes, the intermediate stages in a reuse oriented process are different. These stages are:

1. Component analysis Given the requirements specification, a search is made for components to implement that specification. Usually, there is no exact match and the components that may be used only provide some of the functionality required.

2. Requirements modification During this stage, the requirements are analyzed using information about the components that have been discovered. They are then modified to reflect the available components. Where modifications are impossible, the component analysis activity may be re-entered to search for alternative solutions.

3. System design with reuse During this phase, the framework of the system is designed or an existing framework is reused. The designers take into account the components that are reused and organize the framework to cater for this. Some new software may have to be designed if reusable components are not available.

4. Development and integration Software that cannot be externally procured is developed, and the components and COTS systems are integrated to create the new system. System integration, in this model, may be part of the development process rather than a separate activity

Q10: Draw the diagram of Spiral Process Model to explain its iterative nature. What is the major activity involved in spiral model that is not available in other process models.

Spiral development the development of the system spirals outwards from an initial outline through to the final developed system.

1. Objective setting Specific objectives for that phase of the project are defined. Constraints on the process and the product are identified and a detailed management plan is drawn up. Project risks are identified. Alternative strategies,

5

depending on these risks, may be planned. 2. Risk assessment and reduction For each of the identified project risks, a detailed analysis is carried out. Steps are taken to reduce the risk. For example, if there is a risk that the requirements are inappropriate, a prototype system may be developed.

3. Development and validation After risk evaluation, a development model for the system is chosen. For example, throwaway prototyping may be the best development approach if user interface risks are dominant. If safety risks are the main consideration, development based on formal transformations may be the most appropriate process, and so on. If the main identified risk is sub-system integration.

4. Planning The project is reviewed and a decision made whether to continue with a further loop of the spiral. If it is decided to continue, plans are drawn up for the next phase of the project.

6

The main difference between the spiral model and other software process models is its explicit recognition of risk in the spiral model.

Q11: Software Design and Implementation are the two major phases in software development draw a block diagram to show associated design activities and design products ?The specific design process activates are :

1-architectural design the sub-system making up the system and their relationships are identified and documented

2- abstract specification for each sub-system, an abstract specification of its services and the constraints under which it must operate is produced.

3-interface design for each sub-system , its interface with other sub-systems is designed and documented. this interface specification must be unambiguous as it allows the sub-system to be used without knowledge of the sub-system operation.

4-component design service are allocated to components and the interfaces of these components are designed.

7

5- data structure design the data structures used in the system implementation are designed in detail and specified.

6- algorithm design the algorithms used to provide services are designed in detail and specified.

Q12: Why Software Project Management (SPM) is difficult than engineering project management. List down some of differences that make software management difficult.1. The product is intangible the manager of a shipbuilding or a civil engineering project can see the product being developed. If a schedule slips, the effect on the product is visible—parts of the structure are obviously unfinished. Software is intangible. It cannot be seen or touched. Software project managers cannot see progress. , they rely on others to produce the documentation needed to review progress .

2. Large software projects are often ‘one-off’ projects Large software projects are usually different in some ways from previous projects. Therefore, even managers who have a large body of previous experience may find it difficult to anticipate problems. Furthermore, rapid technological changes in computers and communications can make a manager’s experience obsolete. Lessons learned from previous projects may not be transferable to new projects.

8

3.there are no standard Software processes in engineering disciplines with a long history, the process is tried and tested. The engineering process for some types of system ,such as bridges and buildings is well understood. However, software processes vary dramatically from one organization to another. Although our understanding of these processes has developed significantly in the past few years , we still cannot reliably predict when a particular software process is likely to lead to development problems. This is especially true when the software project is part of a wider systems engineering project.

Q13: Software project planning comprised on different plans, list down some types of plan along with their description.

DescriptionPlanDescribes the quality procedures and standards that will be used in a project.

Quality plan

Describes the approach, resources, and schedule used for system validation

Validation plan

Describes the configuration management procedures and structures to be used.

Configuration management plan

Predicts the maintenance requirements of the system, maintenance costs and effort required.

Maintenance plan

Describes how the skills and experience of the project team members will be developed.

Staff development plan

Q14: What is importance of milestones in software deliverables? Explain with the help of a block Diagram.Managers need information to do their job .Because software is intangible this information can only be provided as reports and documents that describe the state of the software being developed. Without this information , it is impossible to assess how well the work is progressing, and cost estimates and schedules cannot be updated.

9

Milestone reports need not be large documents. They may simply be a short report of what has been completed . Milestones should represent the end of a distinct , logical stage in the project. A deliverable is a project result that is delivered to the customer. It is usually deliverable at the end of some major project phase such as specification or design. Deliverables are usually milestones, but milestones need not be deliverables.Q15: Draw Activity Network and Activity Bar Chart for the below table of

task along with dependencies.

Activities : Duration (Days): Dependencies:T1 10 -T2 15 T1T3 10 T1,T2(M1)T4 20 -T5 10 -T6 15 T3,T4 (M2)T7 20 T3T8 35 T7T9 15 T6T10 5 T5,T9 (M3)

10

70

0 10 20 30 40 50 60 70 80 90 100

T10

T4

T5T6

T7

T8

T9

T10

T3

T2

T1

T10

T10T10

T10

T10T1

Q16: Distinguish between Software-Inspection and Software-Testing as two complementary approaches of system checking and analysis.

1- software inspections or peer reviews analyses and check system representations such as the requirements document , design diagrams and the program source code. You can use inspections at all stages of the process. Inspections may be supplemented by some automatic analysis of the source text of a system or associated documents. Software inspections and automated analyses are static V&V techniques, as you don't need to run the software on a computer.

2- software testing involves running an implementation of the software with test data. You examine the outputs of the software and its operational behavior to check that it is performing as required. Testing is a dynamic technique of verification and validation.

11

10

2035

25

10

55

50

9065

Q17: How User-Expectations and Marketing-Environment force the software company to perform verification and validation.

1. Software function the level of confidence required depends on how critical the software is to an organization. For example, the level of confidence required for software that is used to control a safety-critical system is very much higher than that required for a prototype software system that has been developed to demonstrate some new ideas.

2. User expectations it is a sad reflection on the software industry that many users have low expectations of their software and are not surprised when it fails during use . They are willing to accept these system failures when the surprised when failures because the benefits of use outweigh the disadvantages. However ,user tolerance of system failures has been decreasing since the 1990s.it is now less acceptable to deliver unreliable systems, so software companies must devote more effort to verification and validation.

3. Marketing environment When a system is marketed, the sellers of the system must take into account competing programs, the price that customers are willing to pay for a system and the required schedule for delivering that system. Where a company has few competitors ,it may decide to release a program before it has been fully tested and debugged because they want to be the first into the market. Where customer are not willing to pay high prices for software ,they may be willing to tolerate more software faults. All of these factors must be considered when deciding how much effort should be spent on the V&V process.

Q18: Who are the Role / Member in Software Inspection Process? What is their Responsibility / Description of work.

DescriptionRole

The programmer or designer responsible for producing the program or document. Responsible for fixing defects discovered during the inspection process.

Author or owner

Find errors, omissions and inconsistencies in programs and documents. May also identify broader issues that are outside the scope of the inspection team.

Inspector

Presents the code or document at an inspection meeting.

Reader

12

Records the results of the inspection meetingScribe

Manages the process and facilitates the inspection. Reports process results to the chief moderator.

Chairman or moderator

Responsible for inspection process improvement, checklist updating, standards development .

Chief moderator

Q19: List Down the classification of Faults and Checks during Software InspectionInspection checkFault class

Are all program variable initialised before their values are used?Have all constants been named?Should the upper bound of arrays be equal to the size of the array or size-1?If character string are used, is a delimiter explicitly assigned?Is there any possibility of buffer overflow?

Data faults

For each conditional statement, is the condition correct?Are compound statement correctly bracketed?In case statement, are all possible cases accounted for?If a break is required after each case in case statement, has it been included?

Control faults

Are all input variables used?Are all output variables assigned a value before they are output?Can unexpected input cause corruption?

Input/ output faults

Do all function and method calls have the correct number of parameters?Do formal and actual parameter types match?Are the parameter in the right order?If components access shared memory, do they have the same model of the shared memory structure?

Interface faults

If a linked structure modified, have all links been correctly resigned?If dynamic storage is used, has space been allocated correctly?Is space explicitly de-allocated after it is no longer required?

Storage management

faults

Have all possible error condition been taken into count?Exception management

faults

13

Q20: Relate some of the Programming errors with Software Inspection checks as examples.

Q21: What are the two major goals of Software Testing?1. To demonstrate to the developer and the customer that the software meets its requirements. For custom software, this means that there should be at least one test for every requirement in the user and system requirements document. For generic software products, it means that there should be tests for all of the system features, that will be incorporated in the product release. As discussed in chapter4, some system may have an explicit acceptance testing phase where the customer formally checks that the delivered system conforms to its specification.

2. To discover faults or defect in the software where the behavior of the software is incorrect, undesirable, or does not conform to its specification. Defect testing is concerned with rooting out all kinds undesirable system behavior such as system crashes, unwanted interactions with other systems, incorrect computations, and data corruption.

Q22: Explain Integration testing as verification technique and Release Testing as validation technique.

1- Integration testing, where the test team have access to the source code of the system. When a problem is discovered, the integration team tries to find the source of the problem and identify the component that have to be debugged. Integration testing is mostly concerning with findings defects in the system.

2- Release testing, where a version of the system that could be released to users is tested. Here, the test team is concerned with validating that the system meets its requirement and with insuring that the system is dependable.

Q23: Why Release Testing is known as Black-Box Testing.Release Testing is usually Black-Box Testing process where the test are derived from the system specification . The system is treated as a black box whose behavior can only determined by studding it’s input and its related output .

Another name for this is function testing because the tester is only concerned with the functionality and not the implementation of the software.

Q24: Why performance testing is done after system integration?

14

Once a system has been completely integrated, it is possible to test the system for emergent  properties(see chapter2)such as performance and reliability. performance  tests have to be designed to ensure that the system can process its increased until the system performance becomes unacceptable.

Q25: What features do we test in Interface testing and how it is important?

1. Parameter interfaces These are interfaces where data or sometimes function references are passed from one component to another.

2. Shared memory interfaces These are interfaces where a block of memory is shared between components. Data is placed in the memory by one subsystem and retrieved from there by other sub-systems.

3. Procedural interfaces These are interfaces where one component encapsulates a set of procedures that can be called by other components. Objects and reusable components have this form of interface.

4. Message passing interfaces These are interfaces where one component requests a service from another component by passing a message to it. A return message includes the results of executing the service. Some object-oriented systems have this form of interface, as do client–server systems.

Q26: What are the critical factors in people management?

1) Consistency people in a project team should all be treated in a comparable way, while no one expects all rewards to be identical, people should not feel that their contribution to the organization is undervalued.

2) Respect Different people have different skills and managers should respect these differences. All members of the team should be given an opportunity to make a contribution . in some cases , of course, you will find that people simply do not fit into a team and cannot continue, but it is important not to jump to conclusions about this.

3) Inclusion people contribute effectively when they feel that others listen to them and take account of their proposals . it is important to develop a working environment where all views, even those of the most junior staff , are considered.

4) Honesty As a manager , you should always be honest about what is going well and what is going badly in the team . you should also be honest about your level

15

of technical knowledge and be willing to defer to staff with more knowledge when necessary . if you are less than honest , you will eventually be found out and will lose the respect of the group.

16