Software Engineering Models

13
Assigned by Miss Sanjida Software Process Models Software Engineering and Product Quality Zahoor Soomro

description

Software Engineering, Models for software development process.

Transcript of Software Engineering Models

Page 2: Software Engineering Models

Zahoor Soomro A Short Work/ Software Engineering

Table of Contents Question one ................................................................................................................................. 2

a) There are a number of general software Process Models which all incorporate the four

fundamental activities of software specification, development, validation and evolution. Explain

the purpose of each of these four activities. .................................................................................. 2

Software Development process ..................................................................................................... 2

Four Fundamental Activities .......................................................................................................... 2

General Process ............................................................................................................................. 3

B) The Spiral Model ....................................................................................................................... 3

Waterfall Model ............................................................................................................................ 4

C .................................................................................................................................................... 6

A distinctive feature of spiral model is its explicit consideration of risk. Explain what is meant by

the term ‘Risk’ in this context and identify three risks associated with a real world software

development project with which you are familiar. Also indicate the strategies that could be

employed to reduce each identified risk. ....................................................................................... 6

Question 2 ..................................................................................................................................... 7

Structured software development methods often include data flow diagram (DFDs) state

transition diagram (STDs) and entity relationship diagram (ERDs) to model different aspects of

systems. ........................................................................................................................................ 7

Data Flow Diagram ........................................................................................................................ 7

State Transition Diagram (STDs) ..................................................................................................... 7

Entity Relationship Model (ERD) .................................................................................................... 9

B. ................................................................................................................................................. 10

CASE tool ..................................................................................................................................... 10

Question 3 ................................................................................................................................... 11

Discuss the relationship between software engineering process and product quality, using diagram

for illustration. Based on your understanding and experience, you should include key activities in a

typical process for quality checks of design documents................................................................ 11

Q: Assume that you are a manager of software development team and would like to introduce the

concept of software process metrics to your team. Write a short report that could be used to

introduce the team to the concept of software process metrics. Your report should explain the

different classes of process metric that can be collected and should indicate how you will decide

what measurements to take and how to use the results. ............................................................. 12

Page 3: Software Engineering Models

2 | P a g e

Question one

a) There are a number of general software Process Models

which all incorporate the four fundamental activities of

software specification, development, validation and evolution.

Explain the purpose of each of these four activities.

Software Development process

Software development process is the process of specifying, designing, implementing and

testing software systems.

Four Fundamental Activities

1. Software Specification

Software specification is precisely written description of the software. The software

requires to be specified prior to the application development. The specifications are

essential for the external user and the interested parties. The analyst role is to

specify everything in black and white before the real development of any software.

2. Development

the software development is the collection of activities that may occur during the

process the research, new development, modification and research.

The development requires combination of different departments including

Marketing, Engineering, research and development.

3. Validation

The validation is the process of matching the requirements with the results. In this

process the acquired results are matched with requirements. This process depicts

the actual result and expected results. In other words it’s a testing phase. This is to

ensure the software should meet the requirements.

4. Evolution

The stage includes the process of practically implementing the developed software.

The evolution phase includes all the complexity and its usability. The evolution stage

is the main cause that will boost the cost at initial stage. This requires continuous

maintenance. This will include bug fix and software enhancements and adaption.

Finally the feedback is acquired from the users which will lead to the software

corrections if required.

Page 4: Software Engineering Models

3 | P a g e

General Process

Market Research

Gathering Requirements for the proposed business solution

Analysing the problem

Devising plan or design for the software-based solution

Implementation (coding) of software

Testing the software

Deployment

Maintenance and bug fixing

(1. source: Wikipedia)

B) The Spiral Model

(www.designingprojectmanagement.com)

Page 5: Software Engineering Models

4 | P a g e

1. Determine objectives

The main emphases are to determine and specify the objectives of the software

development and what other factors will be important to the software development.

2. Identify and resolve risk

The major emphases are placed to find out the expected cost that is going to incur in

terms of the risk involved in the project. The main importance here is to analyse the risk

that is involved in the software development and the success or failure of project.

3. Development and Test

The software development requires the specific requirements, facts and figures about

the project. The software development phase should be carefully handled because the

software requirements should be inculcated in the software so that the user

requirements can be specified in the software

4. Plan the next Iteration

To specify the test plan and development plan. In the end the software can be released.

Waterfall Model

(source: http://alicomputerservices.com/ComputerTech/wp-content/uploads/2008/10/waterfall_model.png)

Page 6: Software Engineering Models

5 | P a g e

The waterfall model is sequential software process. This model is called water fall

because it flows from top steady down like water.

1. Requirement

This stage is to collect the information regarding the requirements of the user.

2. Design

This phase is the phase of software design in which all the user requirements will be

considered as it.

3. Implementation

It is a systematic process of effectively integrating developed software in to the

organisation.

4. Verification

In this phase the software is tested and verified according to the requirement. The

requirement is measured on the software requirement.

5. Maintenance

The maintenance is the process of keeping software on the track to contentious

performance. If there is any error or any bug they need to be removed.

The chances of carrying forward with any bug in the software are very rare. This is

because of its strict process. If any error or bug found in the software that is removed

immediately then it can proceed to the next phase.

Page 7: Software Engineering Models

6 | P a g e

C

A distinctive feature of spiral model is its explicit

consideration of risk. Explain what is meant by the term

‘Risk’ in this context and identify three risks associated with a

real world software development project with which you are

familiar. Also indicate the strategies that could be employed

to reduce each identified risk.

The spiral model strongly relies on the early risk assessment. It helps early identification of

risk. There may be several ideas of software development. Those all ideas could have

distinct features.

The software may provide impacts on the developer and clients. The risk analysis should be

made to find out that how the software will leave impacts on users.

How does each step in the project will affect its overall development?

The development of software should be based on the realistic ground. The proper feasibility

should be developed before the software development. The risk can be minimized if the

proper budget is settled sown for the software development.

The proper evaluation of software is strongly required. If it is not properly evaluated it will

result to inexperienced software developer.

Page 8: Software Engineering Models

7 | P a g e

Question 2

Structured software development methods often include data

flow diagram (DFDs) state transition diagram (STDs) and

entity relationship diagram (ERDs) to model different aspects

of systems.

Data Flow Diagram

Data flow Diagram is a modelling technique which analyse the data process. The data starts

from input, process and finally goes to the output. The major importance of DFD model is

that it shows step by step process of data. This is a structure of data modelling which

depicts graphical representation of data.

(Source: Edward flow chart)

State Transition Diagram (STDs)

State diagram is a diagram which shows the behaviour of systems. The basic idea is to define a

machine that has a number of states. (www.cs.unc.edu)

The machine receives events from the outside world, and each event can cause the machine to

transition from one state to another.

Page 9: Software Engineering Models

8 | P a g e

Here the machine is a bottle in a bottling plant. It begins in the empty state. In that state it can

receive squirt events. If the squirt event causes the bottle to become full, then it transitions to the

full state, otherwise it stays in the empty state (indicated by the transition back to its own state).

When in the full state the cap event will cause it to transition to the sealed state. The diagram

indicates that a full bottle does not receive squirt events, and that an empty bottle does not receive

cap events. Thus you can get a good sense of what events should occur, and what effect they can

have on the object. (www.cs.unc.edu)

The State Transition Diagrams (STDs) are used to define the functional detail for a system.

Example:

Source: www.cs.unc.edu

Page 10: Software Engineering Models

9 | P a g e

Entity Relationship Model (ERD)

An ERD is a model that identifies the concepts or entities that exist in a system and the relationships

between those entities. Source: Report of DFL Electronics)

Entity-Relationship Model (ERM) is a conceptual representation of data. The diagram

defines the relationship of entities. The relationship of entities is defined through graphical

representation.

The ERD model tries to capture most of the tables used in data base system. But it will not

capture all o them.

(www.edrawsoft.com/images/software/chenerd-full.png)

Page 11: Software Engineering Models

10 | P a g e

B.

CASE tool

Computer Assisted Software Engineering Tools are set of programs and aids that assist

analysts, software engineers, and programmers during all phases of system development

life cycle.(www.educ.queensu.ca/~compsci/units/casetools.html)

The implementation of new system requires a lot of tasks to be completed first. The

required tasks need to be accomplished efficiently.

The tools help to provide software development defects free, high quality and maintainable.

Risk

Inadequate standardization

Linking CASE tools from different vendors may be difficult if the products do not use

standardized methods. The file formats can be converted but usually not considered

economical.

Unrealistic Expectations:

Organisations adapt CASE tools to reduce development costs. The cost varies from one

project to another. The expectations related to cost some time lead to the wrong

unexpected budgeting issues.

Quick Implementation:

The implementation of CASE technologies can involve significant change to the

development environment. The tools must not be adapted for the first time if the project is

of significant importance and the deadline is short. In short the CASE tools can be adapted if

the proposed project is less complex.

Page 12: Software Engineering Models

11 | P a g e

Question 3

Discuss the relationship between software engineering process and product

quality, using diagram for illustration. Based on your understanding and

experience, you should include key activities in a typical process for quality

checks of design documents.

The software engineering is the systematic, quantifiable, disciplined approach to the

maintenance of software and its development (executive editors, Alain Abran, James W. Moore;

editors, Pierre Bourque, Robert Dupuis. (2004). the field of software engineering is you as compared to other

field of engineering. Software engineering requires maintaining quality, easy to maintain and should be

affordable.

Software engineering and product quality are both important and vital issues in the world of Information

Technology. If the software does not meet the specified requirements of user it will not be treated as product

with quality.

The following illustration indicates the relationship of important phases during the software development

process.

If the quality is not maintained during the software development then it will lead to the undesirable results

and improper deployment of software resultant to the less sustaining outcomes.

The relationship between software engineering and product

Illustration 1

Page 13: Software Engineering Models

12 | P a g e

Q: Assume that you are a manager of software development team and would

like to introduce the concept of software process metrics to your team. Write a

short report that could be used to introduce the team to the concept of software

process metrics. Your report should explain the different classes of process

metric that can be collected and should indicate how you will decide what

measurements to take and how to use the results.

The software development is a serious and tricky activity for any organisation.

As a manager of IT organisation /department the personal preferences will be to deliver the

metrics system during software development phases. The effective manager should follow

the metrics system to ensure the consistency of software development. Although there may

be several limitations related to the software development the continuous development

through metric system will get the desired results.

(Note: this work was assigned in the class, therefore proper referencing could not be

followed. However all efforts are made to make sure there should be due referencing for

the work)

Illustration 2