software engineering

14
ASSIGNMENT DRIVE FALL 2013 PROGRAM MBA IT SUBJECT CODE & NAME MI0033- SOFTWARE ENGINEERING SEMESTER 3 BK ID B1483 CREDITS 4 MARKS 60 Q. 1 Highlight the reasons for measuring a software product. Also discuss the classification of process metrics measurement. Ans : Reasons for measuring a software product : The very nature of software engineering makes measurement a necessity, because more rigorous methods for production planning, monitoring, and control are needed, otherwise the amount of risk of software projects may become excessive, and software production may easily get out of industrial control. This would produce obvious damages to both software producers (e.g., higher costs, schedule slippage) and users (e.g., poor quality products, late product delivery, high prices). To be effective and make good use of the resources devoted to it, software measurement should address important development issues, i.e., it should be carried out within a precise goal of industrial interest. In this context, software measurement may serve several purposes, depending on the level of knowledge about a process of product. When the requirements are provided, a clear set of objectives are set and the managers must decide the best model to be followed keeping in mind the deadlines, budget, availability of people and the technicalities required for the project. Without a defined requirement, it is impossible to estimate the cost and time required for the completion of a project. Functionality: Functionality is the ability of a software product to meet the expected needs of the end-user. It has been observed that although, software is developed almost close to the requirements of the customer needs, it may not function properly. In that case, the software product is of no use.

Upload: guru-vashist

Post on 24-Oct-2015

26 views

Category:

Documents


1 download

DESCRIPTION

assignments

TRANSCRIPT

Page 1: Software engineering

ASSIGNMENT

DRIVE FALL 2013PROGRAM MBA ITSUBJECT CODE & NAME

MI0033- SOFTWARE ENGINEERING

SEMESTER 3BK ID B1483CREDITS 4MARKS 60

Q. 1 Highlight the reasons for measuring a software product. Also discuss the classification of process metrics measurement.

Ans : Reasons for measuring a software product :

The very nature of software engineering makes measurement a necessity, because more rigorous methods for production planning, monitoring, and control are needed, otherwise the amount of risk of software projects may become excessive, and software production may easily get out of industrial control. This would produce obvious damages to both software producers (e.g., higher costs, schedule slippage) and users (e.g., poor quality products, late product delivery, high prices). To be effective and make good use of the resources devoted to it, software measurement should address important development issues, i.e., it should be carried out within a precise goal of industrial interest. In this context, software measurement may serve several purposes, depending on the level of knowledge about a process of product. When the requirements are provided, a clear set of objectives are set and the managers must decide the best model to be followed keeping in mind the deadlines, budget, availability of people and the technicalities required for the project. Without a defined requirement, it is impossible to estimate the cost and time required for the completion of a project.

Functionality: Functionality is the ability of a software product to meet the expected needs of the end-user. It has been observed that although, software is developed almost close to the requirements of the customer needs, it may not function properly. In that case, the software product is of no use.

Efficiency: Efficiency is the ability of a software product to perform accurate operations as defined. It is to ensure that the software product which is used in the system, performs its best. The response time of the product has to be, as expected.

Usability: A software product must be utilised to its maximum level, for the purpose, for which it is chosen. You also need to check whether the software developed, is serving the purpose and has tolerance to errors. Thus, documentation must be provided about the product with a better understanding of the user interface.

Reliability: Reliability of a software product is the performance level of software under specified usage conditions.

Maintainability: A software product is analysed on usage, changed and tested for correctness, for maintainability. Maintainability is to make sure that the corrected product does not affect the performance of the other modules. It is the ease with which a software product can be moved

Page 2: Software engineering

from one computing platform to another platform. Portability of software can be found in high performance computing platforms.

b. Listing the two categories of measuring a process metrices and listing the sub categories of them.

Direct measure: The cost and efforts of software engineering process come under the direct measures. The direct measures of the product are lines of code (LOC) produced, execution speed, memory size and defects reported over a set period of time. It is easy to collect data related to cost, effort days and the lines of code only when the correct measuring conventions are established.

Indirect measures: These include the functionality aspects of a product like quality, complexity, efficiency, reliability and maintainability. The maintainability and efficiency is difficult to assess.

Q.2 The Elite info systems has gone through three phases of application change management. They are informal, production promotion and software configuration management. In earlier informal phase the software engineer who developed the code has to place it into production. Due to poor documentation, there was difficulty in understanding and differentiating between the new code and existing code. Then elite info systems adopted change management process. The first ERP was implemented in the company. The company also segregated the duties of the software professional in the company based on the area of specialization and domain knowledge. According to this phase the developer who develops the code could not be held responsible for placing into production. Rather if the developer who wants to change the code has to submit the request through web based application where the changes are tracked and updated simultaneously. Automated workflow was established so that requests could be routed to the right channel for approval. The SCM was introduced into their development life cycle and this brought about a change in the software production life cycle. The SCM process gave segregation of duties which diminished the damage that could be caused by incompetence. Therefore in software configuration management phase, segregation of duties ensured security and reduced the risk. The various responsibilities of configuration migration, enhancement of quality control and analysis and coordination with the

Page 3: Software engineering

change management group. The tools used in the systems is application- change tracking and development tool. They used this software to govern and archive the various software versions. It stores all the code in the archiving version manager, which enhance quality and simplifies troubleshooting. The process adopted helps to improve the quality by managing change and predicting its effect. Consistent governing rules were enforced throughout the deployment process. It provide clear accountability which automated audits trails identified the required approvals at each phase. Early intervention results in more repeatable, faster deployments with fewer errors. Due to the deployment of this process, the three main goals of change management were achieved which are; development of quality, reduction by risk by helping ensure that processes are repeatable and predictable, and reduction of development costs. The following are the benefits of the process Increased developer productivity Improved IT service to internal clients Enhanced scalability Employee acceptance Therefore Elite Info Systems concludes that SCM is to be made as an integral part of their production process. The company regarded SCM not as a luxury, but as necessity.

a. Which process did Elite Info Systems deployed to improve the quality of change? Why?

Ans : Elite info system deployed Software configuration management process (SCM). This system was deployed because due to the deployment of this process, the three main goals of change management were achieved which are; 1. development of quality, 2. reduction by risk by helping ensure that processes are repeatable and predictable, 3. reduction of development costs.

In software engineering, software configuration management (SCM) is the task of tracking and controlling changes in the software, part of the larger cross-discipline field of configuration management." SCM practices include revision control and the establishment of baselines. If something goes wrong, SCM can determine what was changed and who changed it.

We can define software configuration management as an art of identifying, organising and controlling the changes that occur during the programming phase of a software product. The main aim of software configuration management is to enhance productivity and reduce the errors that could occur in the developmental phase of software. We can classify the activities that occur in a software process into four activities, which are:

Identify change.

Control change.

Implementation of change made in a proper way.

Report changes to others who have an interest.

Apart from identifying the work products that might change, SCM also manages the different versions of work products, auditing and reporting the details pertaining to the work products associated with the software development phase. The individuals involved in a software project are generally associated with the SCM process, and companies sometimes allot specialised personnel to manage the SCM process. We can say that the most essential part of project management is good maintenance of the SCM process. In order to ensure good quality software products, SCM also conducts audits to keep the individuals informed about the changes associated with the project.Each time when the SCM is invoked, the change control process provides details of the software change requests along with the reports pertaining to those changes. Every change request is noted, controlled and

Page 4: Software engineering

can be traced in the SCM, which will help us to analyse the changes that have occurred during the process of software engineering.

b. What is predictive reliability? How SCM will help in prediction?

Ans : Predictive reliability :

Software Reliability is the probability of failure-free software operation for a specified period of time in a specified environment. Software Reliability is also an important factor affecting system reliability. It differs from hardware reliability in that it reflects the design perfection, rather than manufacturing perfection. The high complexity of software is the major contributing factor of Software Reliability problems. Software Reliability is not a function of time - although researchers have come up with models relating the two. The modelling technique for Software Reliability is reaching its prosperity, but before using the technique, we must carefully select the appropriate model that can best suit our case. Measurement in software is still in its infancy.

Predictive reliability is another software reliability technique, which predicts or anticipates the possibilities of operational profile of a software system, and it is more appropriate for hardware.

The SCM process identifies the functional and physical attributes of software at various points in time. In order to maintain traceability throughout the software development life cycle the attributes of change control are identified. Software configuration management plays an important role in the process of software engineering, and also acts as a key element in bringing out quality in both the software product and the software process. SCM emphasises on the changes that occur during the course of the project life cycle.

Q. 3 With the program module diagram explain bottom-up integration. Give example

Ans : Integration testing is the phase in software testing in which individual software modules are combined and tested as a group. It occurs after unit testing phase and before system 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.Bottom Up is an approach to Integration Testing where bottom level units are tested first and upper level units step by step after that. This approach is taken when bottom up development approach is followed. At the atomic module level, the bottom-up integration test begins. The lowest levels in the program structure are atomic modules. In this approach, stubs are not needed as modules are integrated from bottom-up, and processing needed for modules which are subordinate to a given level is always present. These are the steps followed in bottom-up integration:

1. Combine low level modules forming clusters which execute particular software sub function. Clusters are also called builds.

2. Write control program to co-ordinate test case input and output.

3. Test the build.

4. Remove drivers, and combine the clusters moving upward in the program structure.

Page 5: Software engineering

Q.4 Mr. Shyam Kumar is the Assistant project manager in a software company. The company has bagged a contract for developing software for the credit card division of a private bank. Mr. Shyam Kumar and his team have decided to take up the requirement analysis phase of software engineering. What are the tasks or operations that Mr. Shyam Kumar and his team have to take up in order to complete the software requirement analysis phase ?

Ans : The 4 analysis tasks of software requirement analysis are:

Feasibility study: This task or operation includes an elaborated study of all the needs for determining the possibility to meet all these needs or requirements. This process may involve a visit of the development team to the client place for their system study. The team examines the requirement for possible software automation inside the bounds of the given system.

Broad planning: This task involves the creation of an outline document depicting proper planning of available resources and time.

Technology selection: It comprises identifying, analysing, and compiling different tools and technologies, which would be required for the successful accomplishment of the project.

Requirement analysis: This task includes the identification and compilation of different needs of human resources, hardware and software, which would be required for successful accomplishment of the project.

Page 6: Software engineering

Domains of software requirement analysis are:

Problem identification: This is one of the main tasks performed during the analysis phase. In this task, we study the system specification and the software project plan. It is necessary to understand software in a system environment and to review the range of software that is used to produce estimations of planning. After we identify the problem, communication takes place. Communication for analysis is vital to recognise the problem and to assure it. Our main aim is to identify the basic issues as observed by the client/users.

Evaluation and synthesis: Then, we evaluate the issue and synthesis a solution, which is a great area of effort for analysis. We must describe all visually observable data objects, validate the flow and content of information, describe and explain in detail all software functions, understand software behaviour in the framework of events that affect the system, develop characteristics of system interface, and clearly explain the design constraints. All these tasks aid to explain the problem, so that we can synthesise an entire approach or solution.

Modeling: Throughout the valuation and solution synthesis activity, we must develop models of the system to understand better the data and control flow, functional processing, operational behaviour, and information content. The model assists as a base for software design and as the source for creation of specifications for the software.

Q.5 Consider your friend has opened a small IT hub or internet café in your city. List the steps that you implement the key practices that explain the infrastructure and performances of his hub.

Ans : In CMM, the key process areas determine a collection of relevant actions that, when executed collectively, accomplish a set of goals acknowledged as important for promoting the capability of the process. It contains goals that must be achieved in order to improve software key practises.

Page 7: Software engineering

Steps explaining the infrastructure and performances of cafe / hub :

1. Formulate an idea of how you want to run your Internet café and write it down, the different amenities and services you want to offer and the audience you wish to cater to.

2. Research the feasibility of your plan in the area you wish to open your Internet café. Look specifically at the demand for an Internet café and competitors in the area and estimate how much money you will require as an initial investment.

3. Check your budget, and make a proper location of café so that it is easily faund and become very popular in a small time.

4. Check the location of other hub in this locality so that there should be minimum competition.

5. Make it sure that the components and the requirements used in hub can be fulfilled easily.

6. Verification of implementation of hub.

7. follow all these process again and again to optimize output.

Page 8: Software engineering

Q.6 Write Short notes on

Ans : a. Prototyping System prototyping as a rapid software development for validating the requirements. We can use the system prototypes for helping the customers and developers to know the requirements of the system.

Under software prototyping several activities are carried out. These activities are:

Requirement elicitation – In this activity, we can perform various experiments with the prototype to check the support system.

Requirement validation – In this activity, prototype can show errors and omissions in requirement.

Benefits of Software prototyping Let us have a quick overview of the benefits of software prototyping.

It facilitates the improvement in software, because of which user and developer gets improved.

If any service is missing or confusing, then that can be recognised.

Prototype can act as a foundation for inheriting the system specification.

Working system becomes available as there is a closer match of prototype with the actual system. Design quality can be improved.

System can be maintained easily.

Development efforts may get reduced.

System usability can be improved.

Prototyping in software process Prototyping in software involves two approaches, which are:

Evolutionary Prototyping: In this approach of software prototyping, first and foremost the initial prototype is prepared, and it is then refined through a number of stages to final stage.

Throw-away Prototyping: In this approach of software prototyping, a rough practical implementation of the system is being produced. The requirement problem can be recognised from this implementation. Later, it is discarded. The system is then developed, using some different engineering paradigm.

b. Quality Control (QC)

Ans : Quality Control:

"Variation control may be equated to quality control. But how do we achieve quality control Quality control involves the series of inspections, reviews, and tests used throughout the software process to ensure each work product meets the requirements placed upon it. Quality control includes a feedback loop to the process that created the work product. The combination of measurement and feedback allows us to tune the process when the work products created fail to meet their specifications. This approach views quality control as part of the manufacturing process.

In other words, it is defined as whether the product or service which is being developed is meeting the requirements of the customer or not. QA plan must be prepared beforehand. We know that quality assurance covers all the aspects influencing the product or service quality, either individually or collectively.

Page 9: Software engineering

Cost of Quality We can define this concept of quality as the total costs incurred in maintaining the quality of a product that meets the customer’s requirements. Cost of quality includes three types of costs:

Costs of prevention: We can define these costs as the total costs of activities that are particularly for preventing goods’ and services’ bad quality. For example, costs of surveys for analysing supplier capabilities, costs incurred in making quality plans, and so on.

Costs of appraisal: We can define these costs as the sum of costs that are related to the measurement, evaluation, or audition of products or services, for assuring conformance to the standards of quality and the requirements for good performance. For example, costs of in-process or final testing, costs incurred in the audits of product or service audits, and so on.

Costs of failure: We can define such costs as the aggregate costs that results from those products or services that do not conform to the needs of the customer. These costs may occur before the delivery of the product or service, or after the delivery of product or service. For example, costs of re-work, costs of warranty claims, and so on.