Chapter-1
Chapter-1
[ Part 1 ]
Why Software Engineering (SE)?
What is Engineering? What is Software Engineering?
the Importance of Software Engineering?
FAQs about Software Engineering:
– a Software? .. Its Good Attributes ? Software Engineering? .. Its
Activities ?
– Software Engineeringvs. System Engineeringvs. Computer Science ?
– a Domain ? .. a System’s Environment?.. a System’s Boundary?
the Important Characteristics of Software that affect its
Development
2
Software Engineering .. Why?
•The Standish Group has been publishing reports on the success of
software projects since 1994. In its 2015 report it identified that:
Only 39% of all projects were being delivered on time, on budget,
with the required features and functions.
.. 43% were late, or over budget, or not delivering all the required
• features.
.. 18% were either cancelled before delivery or delivered but never
used.
•In those reports, the major problems have been identified.
Among these problems were the following:
Poor, or lack of, user involvement.
Lack of clear business objectives.
Under and over building – building features that are never
used and
• not building all the required features.
3
Frequently Asked Questions about SE
[ a Software ? .. Its GoodAttributes ? ]
What is a Software?
Computer programs and associated documentation. Software
products may be developed for a particular customer or may be
developed for a general market. What are the Attributes of Good
Software?
Good software should deliver the required functionality and
performance to the user (useful) and should be flexible, usable,
reliable, available, affordable, and maintainable (greatly influenced by
how it is designed and written).
4
Frequently Asked Questions about SE
[ Software Engineering ? .. Its Activities ? ]
What is Software Engineering?
Software engineering is an engineering discipline that is concerned
with all aspects of software production.
What are the Fundamental Software Engineering Activities?
Software specification, software development, software validation
and software evolution.
5
Frequently Asked Questions about SE
[ Software Engineering vs. System Engineering vs.
Computer Science .. ? ]
What is the Difference between Software Engineering and Computer
Science? Computer science focuses on theory and fundamentals;
software engineering is concerned with the practicalities of developing
and delivering useful software. What is the Difference between
Software Engineering and System Engineering? System engineering
is concerned with all aspects of computer-based systems
development including hardware, software and process
engineering. Software engineering is part of this more general
process.
6
Frequently Asked Questions about SE
[ .. a Domain ? .. a System’s Environment ?
.. a System’s Boundary ? ]
What is a System’s Boundary?
A conceptual line that divides the system that we wish to study from
‘everything else’, (that is, the scope of a system).
What is a System’s Environment?
It is made up of those things which are not part of the system, but
which can either affect the system or be affected by it.
What is a Domain?
It is a particular area of interest.
7
the Important Characteristics of Software
that affect its Development
[ Reuse-OrientedSoftwareEngineering ]
Based on systematic reuse where systems are integrated from
existing components or COTS (Commercial-off-the-Shelf) systems.
Web Services that are developed according to service standards and
which are available for remote invocation.
Collections of objects that are developed as a package to be integrated
with a component framework such as .NET or J2EE.
Stand-alone Software Systems (COTS) that are configured for use in
a particular environment.