DISE - Introduction to Software Engineering

32
Diploma in Software Engineering Module I: Introduction to Software Engineering Rasan Samarasinghe ESOFT Computer Studies (pvt) Ltd. No 68/1, Main Street, Pallegama, Embilipitiya.

Transcript of DISE - Introduction to Software Engineering

Page 1: DISE - Introduction to Software Engineering

Diploma in Software Engineering

Module I: Introduction to Software Engineering

Rasan SamarasingheESOFT Computer Studies (pvt) Ltd.No 68/1, Main Street, Pallegama, Embilipitiya.

Page 2: DISE - Introduction to Software Engineering

Contents

1. What is software?2. Software classification3. Generic Software vs Custom Software4. Attributes of Software5. What is Software Engineering?6. Software Engineering Process Model7. Waterfall Model8. Waterfall Model Stages9. Extended Waterfall Model10. Prototype Model11. Throw away prototype model12. Evolutionary prototype model13. Rapid application development model (RAD)14. Stages in the RAD

Page 3: DISE - Introduction to Software Engineering

What is software?

A software is a collection of instructions that enables a user to interact with the computer or have the computer perform special task for them.

Page 4: DISE - Introduction to Software Engineering

Software classification

• System Software– Directly controlling the hardware resources and

supports the operation of application software.

• Application Software– Serves the user requirements in a particular

application domain.

Page 5: DISE - Introduction to Software Engineering

Software classification

• Generic Software (off the shelf)– Available on open market to any customer who is

able to buy it.

• Custom Software (bespoke)– Developed specially for a customer requirement.

Page 6: DISE - Introduction to Software Engineering

Generic Software vs Custom Software

Less expensiveMore reliableImmediate installationMore user friendlyUser requirements are not completely satisfiedCannot accommodate future changes

More expensiveLess reliableDelay due to high development timeLess user friendlyCompletely satisfiedCan easily accommodate future changes

Generic Software Custom Software

Page 7: DISE - Introduction to Software Engineering

Attributes of Software

• Maintainability• Dependability• Efficiency• Usability• Security• Reliability• Robustness• Customizability• Scalability• Accessibility• Extensibility

Page 8: DISE - Introduction to Software Engineering

What is Software Engineering?

Software engineering is concerned with application of theories, methods and tools to develop and maintain software systems that behave reliably and efficiently, are affordable to develop and maintain, and satisfy all the requirements that customers have defined for them.

Page 9: DISE - Introduction to Software Engineering

Software Engineering Process ModelA software process model is a set of predicted procedures or set of stages to be use to develop a fully tested software system timely.

Software Process Model

Page 10: DISE - Introduction to Software Engineering

• Waterfall model• Prototyping model• Rapid application development model• Spiral model• V-model• Join application development model• Incremental development model

Software Process Models

Page 11: DISE - Introduction to Software Engineering

Waterfall Model

Page 12: DISE - Introduction to Software Engineering

Waterfall Model

• A linear sequential development model.• Because of the cascade form one stage to

another it is known as waterfall model.• Divided project activities into isolated stages and

each stage should complete before next started.• Concurrent activities are not possible.• Need to wait until end of the life cycle to see the

outcome.• Suitable for develop systems which has stable

requirements.

Page 13: DISE - Introduction to Software Engineering

Waterfall Model Stages

Stage 1: Requirement Definition

• The system services, constraints and goals are established by consulting with the system users.

• They are define in a manner which is understandable by both users and the development staff.

Page 14: DISE - Introduction to Software Engineering

Waterfall Model Stages

Stage 2: System and Software designing

• Partitions the requirements either hardware or software.

• Involves representing the software system functions in a form the may be transformed into executable programs.

• Identifying and describing fundamental software system abstraction and there relationships.

Page 15: DISE - Introduction to Software Engineering

Waterfall Model Stages

Stage 3: Implementation and unit testing

• Implementation consists of converting the physical designing into set of actual programs and a set of database tables.

• The software is realized as a set of programs or program units.

• Unit testing involves verifying that each unit meets it’s requirements.

Page 16: DISE - Introduction to Software Engineering

Waterfall Model Stages

Stage 4: integration and system testing

• Individual program units are integrated and tested as a complete system.

• Ensure the software requirements have been met.

• After testing the software system is delivered to the customer.

Page 17: DISE - Introduction to Software Engineering

Waterfall Model Stages

Stage 5: Operation and maintenance

• The system installed and put into practical use.• Involved correcting errors which were not

discovered in earlier stages.• Improving implementation as new

requirements are discovered.• Normally this is the longest life cycle phase.

Page 18: DISE - Introduction to Software Engineering

Extended Waterfall Model

• Due to the above discussed disadvantages, the waterfall model was modified with the concept of backtracking.

• As a result, the Extended Waterfall Model introduced.

Page 19: DISE - Introduction to Software Engineering

Extended Waterfall Model

Page 20: DISE - Introduction to Software Engineering

Prototype Model

Prototype is a working model of the actual System

There are two types of prototype model.

1. Throw away prototype model2. Evolutionary prototype model

Page 21: DISE - Introduction to Software Engineering

Throw away prototype model

Page 22: DISE - Introduction to Software Engineering

Throw away prototype model

• Prototype is used to gather requirements and there after it will be thrown away.

• Further designing, construction and implementation will be done using the normal life cycle stages.

• Requirements gathering can be exactly done by using the prototype.

• Even to develop prototype consumes lot of time and effort , therefore once a prototype is thrown away it’s a waste of time and money.

Page 23: DISE - Introduction to Software Engineering

Evolutionary prototype model

System Complete

System Architecture

Identify Prototype Quick Design

Construct And Use The

System

Revise Prototype

Deliver System

Yes

No

Page 24: DISE - Introduction to Software Engineering

Evolutionary prototype model

• Prototype is used to gather requirements and it will become the final system.

• Both the prototyping process as well as the development process will be combine together.

• Prototype will not be thrown away and it is not wasting effort and cost like throw away prototype.

Page 25: DISE - Introduction to Software Engineering

Rapid Application Development (RAD)

Page 26: DISE - Introduction to Software Engineering

Rapid application development model (RAD)• This is a software process model which uses to

develop applications rather quickly.• The entire system is broken down into several

manageable stages and each stage analyzed, designed, developed, tested and implemented simultaneously

Rapid Application Development (RAD)

Page 27: DISE - Introduction to Software Engineering

Stages in the RAD

1. Business modeling• The information flow among business functions

is modeled.• Find answers for the following questions:

What information drives the business process?What information is generated?Who generate it?Where does information go?Who process it?

Page 28: DISE - Introduction to Software Engineering

Stages in the RAD

2. Data modeling• The information flows are refined into set of

data objects.• The attributes of each objects and

relationships between these objects defined.

Page 29: DISE - Introduction to Software Engineering

Stages in the RAD

3. Process modeling• The data objects are transformed to achieve

the information flow necessary to implement the business function.

• Processes are created for adding, modifying, deleting and retrieving data objects.

Page 30: DISE - Introduction to Software Engineering

Stages in the RAD

4. Application generation• Using fourth generation techniques rather

than using conventional third generation programming languages.

• In possible cases automated tools/reusable components are use to facilitate construction of the software. (Ex: DB query tools, reports, graphics manipulation, interface designs)

Page 31: DISE - Introduction to Software Engineering

Stages in the RAD

5. Testing and turnover• Since the RAD process use many reusable

components that have been tested, it reduces the overall testing time.

• How ever the new components should be tested.

Page 32: DISE - Introduction to Software Engineering

The End

http://twitter.com/rasansmn