SOFTWARE ENGINEERING
Intro in favour of Android Application Development Context
Purvik Rana
Symptomof softwarecrisis
 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
MoreStatistics – aboutcrisis
 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 softwareengineering?
 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

Software Engineering - Basics

  • 1.
    SOFTWARE ENGINEERING Intro infavour of Android Application Development Context Purvik Rana
  • 2.
    Symptomof softwarecrisis  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
  • 3.
    MoreStatistics – aboutcrisis 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.
  • 4.
    Why?  Misconception insoftware 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
  • 5.
    Software Programming≠ SoftwareEngineering  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
  • 6.
    Software Programming≠ SoftwareEngineering  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
  • 7.
    What is softwareengineering? 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)
  • 8.
    SDLC  A softwarelife 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.
  • 9.
    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
  • 10.
    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
  • 11.
    SOFTWARE PROFESSIONALS LACK ENGINEERINGTRAINING • 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.
  • 12.