Professional Documents
Culture Documents
Software - Engg Chap 02 3
Software - Engg Chap 02 3
Marks-16
⚫ Software engineering practice is a collection of
concepts, principals, methods and tools that
a software engineer calls upon on daily basis.
⚫ Practice allows managers to manage software
projects and software engineers to build
computer programs.
Essence of practice
1.Understand the problem.(communication and
analysis)
2.Plan a solution.(modeling and software
design)
3.Carry out the plan.( code generation)
4.Examine the result for accuracy(testing and
quality assurance)
Understand the problem
⚫ Who are the stakeholder?
⚫ What data, functions, features and behavior
are required to properly solve the problem?
⚫ Is it possible to represent smaller problems
that may be easier to understand?
⚫ Can the problem be represented graphically?
Problem: Write a function which takes two numbers and returns their sum.
Plan a solution
⚫ Have you seen similar problems before?
⚫ Has a similar problem been solved?
⚫ Can sub-problems be defined?
⚫ Can you represent a solution in a manner that
leads to effective implementation?
⚫ Can a design model be created?
Carry out the plan.
⚫ Does the solution conform to the plan?
⚫ Is each component part of the solution
provably correct?
⚫ Has the design and code been reviewed?
Examine the result
⚫ Is it possible to test each component part of the
solution?
⚫ Has a reasonable testing strategy been
implemented?
⚫ Has the software been validated against all
stakeholder requirements?
Core principles of Software
Engineering
1. The Reason It All Exists.
2.Keep It Simple, Stupid!
3.Maintain The Vision.
4.What you produce ,Others will Consume.
5.Be Open To The Future.
6.Plan Ahead For Reuse
7.Think!
The First Principle: The Reason It All
Exists
⚫ The software exists for one reason: to provide
value to its users.
⚫ Before specifying system requirement,
functionality, hardware platform, development
process ask question such as:
“Dose this add real value to the system?”
⚫ If answer is no, don't do it.
The Second Principle: Keep It
Simple,Stupid!
⚫ All design should be as simple as possible,
but no simpler.
⚫ This facilitates having a more easily understood
and easily maintained system.
⚫ Simple does not mean that features should be
discarded in the name of simplicity.
⚫ Indeed, the more elegant designs are usually the
more simple ones.
The Third Principle: Maintain The Vision