12
SOFTWARE ENGINEERING Intro in favour of Android Application Development Context Purvik Rana

Software Engineering - Basics

Embed Size (px)

Citation preview

SOFTWARE ENGINEERING Intro in favour of Android Application Development Context

Purvik Rana

Symptom of software crisis About

• US $250 billions spent per year in the US on application development

Out of this,

• About US $140 billions wasted due to the Projects getting abandoned or reworked.

• This in turn because of not following best practices and standards.

Ref: Standish Group

More Statistics – about crisis 10% of client/server apps are abandoned or restarted from scratch

20% of apps are significantly altered to avoid disaster

40% of apps are delivered significantly late

Source (Compuware) : 3 year study of 70 large c/s apps 30 European firms.

Why? Misconception in software development

• False assumptions

• Not distinguishing the coding of a computer program from the development of a software product

Programs Software Product

Usually small in size Large

Author himself is a sole user Large number of Users

Single Developer Team of Developers

Lacks proper User interface Well-designed UI

Lacks proper Documentation Well-documented & User-manual prepared

Ad Hoc development Systematic Development

Software Programming ≠ Software Engineering Software programming • The process of translating a problem from its physical environment into

a language that a computer can understand and obey. o Single developer

o “Toy” applications

o Short lifespan

o Single or few stakeholders • Architect = Developer = Manager = Tester = Customer = User

o One-of-a-kind systems

o Built from scratch

o Minimal maintenance

Software Programming ≠ Software Engineering Software engineering • Teams of developers with multiple roles

• Complex systems

• Indefinite lifespan

• Numerous stakeholders

o Architect ≠ Developer ≠ Manager ≠ Tester ≠ Customer ≠ User

• Reuse to amortize costs

• Maintenance accounts for over 60% of overall development Costs

What is software engineering? The application of a systematic, disciplined, quantifiable approach to development,

operation, and maintenance of software that is, the application of engineering to software. (IEEE Standard Computer Dictionary, 610.12, ISBN 1-55937-079-3, 1990)

Multi-person construction of multi-version software. (Parnas, 1987)

A discipline that deals with the building of software systems which are so large that they are built by a team or teams of engineers. (Ghezzi, Jazayeri, Mandrioli)

SDLC A software life cycle is the series of identifiable stages that a software product

undergoes during its lifetime.

The first stage is called Scope.

The subsequent stages are: Requirement mgmt: Analysis and Specification, Design, Coding, Testing & Maintenance.

Each of these stages is called a Life Cycle Phase.

1. Project Start-up - Concept, Proposal, Scope.

2. Requirements and Analysis.

3. High level Design.

4. Low level Design.

5. Construction - Unit test, Code inspection.

6. Integration and System tests.

7. Replication, delivery, installation.

8. Acceptance Testing (Requirements mapped).

9. Training, Documentation.

10. Project windup - Checklist, Report, Lessons

learnt.

11. Maintenance (may involve all the above).

SDLC Phases - Detailed

benefits Increasing Quality

• Achieve conformance to requirements

• Reduce the number of software defects

• Mitigate risks associated with the software

Reducing Project Cost and Schedule

• Provides a framework for systematic, incremental software process improvements

• Reduces the cost and schedule of the testing, installation, and maintenance phases

Improving Manageability

• Enhanced accuracy of project planning

• Detailed means of tracking projects

• Early measures of software quality

• Improved repeatability of success stories

SOFTWARE PROFESSIONALS LACK

ENGINEERING TRAINING • Programmers have skills for programming but without the engineering mind-set about

a process discipline

• Internal complexities

That is what all in Software Engineering Introduction.

SQL QUERIES NEXT SESSION