1. Trang chủ
  2. » Công Nghệ Thông Tin

Introduction to Software Engineering ppt

45 352 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Introduction to Software Engineering
Định dạng
Số trang 45
Dung lượng 127 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Challenge in large projects• Developing large/complex software application is very challenging - Effort intensive - High cost - Long development time - Changing needs for users - High ri

Trang 1

Introduction to Software

Engineering

Trang 2

• Characteristics of a good process

• Waterfall model for development

• Other models

• Project planning

Trang 3

Software systems

• Ubiquitous, used in variety of applications

- Business, engineering, scientific

applications

• Simple to complex, internal to public,

single function to enterprise-wide, one

location to distributed, batch or real time, informational to mission-critical,…

Trang 4

Challenge in large projects

• Developing large/complex software application is very challenging

- Effort intensive

- High cost

- Long development time

- Changing needs for users

- High risk of failure, user acceptance,

performance, maintainability

• Quite different from one-time programs where

author and user are same!

Trang 5

Successful software system

• Software development projects have not always been successful

• When do we consider a software application

Trang 6

Reasons for failure

• Schedule Slippage

• Cost over-runs

• Does not solve user’s problem

• Poor quality of software

• Poor maintainability

Trang 7

Reasons for failure…

• Ad hoc software development results in such problems

- No planning of development work (e.g no

milestones defined)

- Deliverables to user not identified

- Poor understanding of user requirements

- No control or review

- Technical incompetence of developers

- Poor understanding of cost and effort by both developer and user

Trang 8

Engineering: other disciplines

• Large projects common and successfully

- Building bridges, dams

effectively and ensuring quality

- Using scientific principles

Trang 9

• Requires well-defined approach: repeatable,

predictable

• Large projects requires managing the project itself

- Manage people, money (cost), equipment,

schedule

- Scale makes big difference: compare building a hut, 2-storeyed house, or 50-storeyed apartment building

• Quality extremely important: relates to failures,

efficiency, usability,…

- People willing to pay for quality!

Trang 10

Large Projects

• Involve different types of people

- Large building: architect, civil engineer, electrical engineer, workers (masons,

Trang 11

Large projects…

• Many deliverables: architecture plan,

model, structure diagrams, electrical

Trang 12

Software projects

• Software is different from other products

- Cost of production concentrated in

development

- Maintenance consists of making

corrections and enhancing or adding

functions

- Progress in development is difficult to measure

Trang 13

Apply Engineering Approach

• Hence planning and control even more important in software development -> engineering approach

- Attempt to estimate cost/effort

- Plan and schedule work

- Involve users in defining requirements

- Identify stages in development

- Define clear milestones so that progress can be

Trang 14

Job of Software developer is difficult

• Dealing with users

- Ill-defined requirements

- Concern with ease-of-use and response

time

• Dealing with technical people

- Concerned with coding, databases, file

structures, etc

• Dealing with management

- Concerned with return on their investment

- Cost-benefit analysis

- Schedule

Trang 15

For success in large software

development, it is important to follow an

engineering approach, consisting of a defined process

Trang 16

• Consists of different types of process

• Process for software development:

produces software as end-result

- multiple such processes may exist

- a project follows a particular process

Trang 17

Process types

• Process for managing the project

- defines project planning and control

- effort estimations made and schedule prepared

- resources are provided

- feedback taken for quality assurance

- monitoring done

Trang 18

Process types…

• Process for change and configuration

management.

- Resolving requests for changes

- Defining versions, their compositions

- Release control

• Process for managing the above processes

themselves

- Improving the processes based on new

techniques, tools, etc.

- Standardizations and certifications (ISO, CMM)

Trang 19

Multiple processes

• A large software development company may

have multiple development processes

A For client-server based conventional

applications (sales processing, payroll)

B For enterprise-level (ERP) projects based on packages and customization

C For web-based e-commerce type

D For data-warehousing/decision-support type

• The company may have many projects in each category

Trang 20

Step in a process

• Each step has a well-defined objective

• Requires people with specific skills

• Takes specific inputs and produces defined outputs

well-• Step defines when it may begin (entry criteria) and when it ends (exit criteria)

• Uses specific techniques, tools,

guidelines, conventions

Trang 21

- E.g adding more resources

• A steps ends in a review (V&V)

- Verification: check consistency of outputs with inputs (of the step)

- Validation: check consistency with user needs

Trang 22

Process step

Project control info

Info for management

(exit criteria)

Review

V &V Inputs

Actions to

be carried

out (entry criteria)

outputs

Trang 23

Characteristics of a Good Process

• Should be precisely defined – no ambiguity

about what is to be done, when, how, etc.

• It must be predictable – can be repeated in other projects with confidence about its outcome

- Predictable with respect to effort, cost:

-> Project A: Web-based library application done

by 3 persons in 4 months

-> another project B (guest house bookings),

similar in complexity should also take about 12 persons in a month.

Trang 24

A Good Process…

• Predictable for quality, with respect to number and type of defects, performance

• Predictable process is said to be “under

statistical control’, where actual values are close

to expected values

• It supports testing and maintainability

- Maintenance by third party

- Follow standards, provide necessary

documentation

- This characteristic differentiates between

prototype and product

Trang 25

A Good Process…

• Facilitates early detection of and removal of defects

- Defects add to project cost

- Late detection/correction is costly

• It should facilitate monitoring and improvement

- Based on feedback

- Permit use of new tools, technologies

- Permit measurements

Trang 26

Summary of lecture 1

• Challenges in large software development

• Benefits of engineering approach

• Types of software processes

• A typical step

• Characteristics of a good process

Trang 27

Waterfall Model for Development

• Here, steps (phases) are arranged in

linear order

- A step takes inputs from previous step, gives outputs to next step (if any)

- Exit criteria of a step must match with

entry criteria of the succeeding step

• It follows ‘specify, design, build’ sequence that is intuitively obvious and appears

natural

Trang 28

Waterfall Model…

• Produces many intermediate deliverables, usually documents

- Standard formats defined

- Act as “baseline” used as reference (for contractual obligations, for maintenance)

- Important for quality assurance, project management, etc

Trang 29

Waterfall model

Trang 30

Deliverables in Waterfall Model

• Project plan and feasibility report

• Requirements document (SRS: Software

Requirement Specifications)

• System design document

• Detailed design document

• Test plans and test reports

• Source code

• Software manuals (user manual, installation

manual)

• Review reports

Trang 31

Shortcomings of Waterfall model

• Requirements may not be clearly known, especially for applications not having

existing (manual) counterpart

- Railway reservation: manual system

existed, so SRS can be defined

- Knowledge management for central bank -new

Trang 32

• Requirements change with time during

project life cycle itself

- Users may find solutions of little use

- Better to develop in parts in smaller

increments; this is common for packages, system software

• Considered documentation-heavy: so

much documentation may not be required for all types of projects

Trang 33

Prototyping Model

• When customer or developer is not sure

- Of requirements (inputs, outputs)

- Of algorithms, efficiency,

Trang 34

• Quick design focuses on aspects visible to user; features clearly understood need not

be implemented

• Prototype is tuned to satisfy customer needs

- Many interactions may be required to

incorporate changes and new requirements

• Final product follows usual define-design

build-test life cycle

Trang 36

Limitations of Prototyping

• Customer may want prototype itself!

• Developer may continue with

implementation choices made during

Trang 37

Interactive Development

• Useful for product development where

developers define scope, features to serve many customers

• Early version with limited feature important

to establish market and get customer

feedback

• Initial version may follow any method

• A list of features for future versions

maintained

Trang 38

3 Develop the software

4 Plan next step

Trang 39

- Do prototype for user interface risks

- Use basic waterfall model when user interface and performance issues are understood but only development risk remains

• Risk driven: allows us mix of

specification-oriented, prototype-specification-oriented, simulation based or any other approach

Trang 40

Project Management Process

• Runs in parallel to development process

• Project planning, monitoring and control are the basic goals

• Project plan indicates how project will be

executed successfully

- Without plan, there is no management

- Without measurement, not much planning

possible

- Plan allows progress to be measured

- Plan produced before development begins and constantly updated

Trang 41

Project Planning

• Prepare cost/effort estimation

- Based on project complexity, scope, productivity levels, other historical data

- Many models available

• Select development process, define milestones and

prepare schedule

- Know how effort is distributed over phases from

historical data

• Decide project staffing

• Make quality control plans: define reviews, inspections, testing strategies to detect/remove defects

Trang 42

Project Monitoring and Control

• Plan defines various activities: many ways

to represent: Gantt chart, time bar chart, PERT/CPM project activity network

- Show activities, expected durations,

resources allocated

- Critical paths can be identified

Trang 43

Project monitoring

• Each development step gives information for tracking progress for identifying delays, bottlenecks, etc

- Allows corrective action; add more

resources, reduce scope, renegotiate cost/schedule, etc

Trang 44

• What is engineering, and importance of

applying engineering approach in software development

• Types of software processes

• Stepwise process definition

• Waterfall, prototype, iterative, spiral

models

• Project management Process

• Project Planning

Trang 45

1 Lecture Series on Software Engineering

by Prof.N.L Sarda, Prof Umesh

Bellur,Prof.R.K.Joshi and Prof.Shashi

Kelkar, Department of Computer Science

& Engineering ,IIT Bombay

2 P Jalote A Concise Introduction to

Software Engineering Springer, 2008

Ngày đăng: 28/06/2014, 07:20

TỪ KHÓA LIÊN QUAN