Professional Documents
Culture Documents
ECNG-3023 Introduction To Software Engineering
ECNG-3023 Introduction To Software Engineering
Software Engineering
(September 2009)
Problem
1
4
4
2
3
4
Solution
Invisibility
No physical presence
Flexibility
After all it's software
Complexity
no physical constraints, yet many possible paths
of solution flow depending on the logic for
decision making.
Specifications
Simulators Data Definitions
Plans
Development Systems Databases
Standards & Procedures
Automatic test Equipment
Manuals
Compilers, Operating Systems, Utilities
DBMS
Configuration Management
CASE
What is CASE???
Computer Aided Software Engineering
Find out different CASE Tools!!!
Unfulfilled demand
Increasing complexity
Greater customer expectations
Rapid obsolescence
Increasing competition
Shorter product cycle times
Producing more with less
Evolving methods and tools
Price
Mature market
Lack of essential capabilities
Difficult to use
Unreliable
Poor developer reputations
Poor product support
Terminology Bugs
A fault occurs when a human makes a mistake,
called an error in performing some software
activity.
A failure is a departure from the systems
required behaviour It can be discovered before
or after system delivery or during operation and
maintenance. Since requirements documents
can contain faults, failures can exist even
though the system is performing as specified!
Quality of SW Product
Correctness
extent to which program
fulfils its specification
Reliability
systems ability not to
fail
Efficiency
use of resources, e.g.
processor time, storage
Integrity
protection of program
from unauthorised
access
Usability
ease of software
Quality of SW Product
Correctness
Reliability
Efficiency
Integrity
Usability
Maintainability
Testability
Flexibility
Portability
Reusability
Interoperability
Quality of SW Product
Maintainability
effort required to locate
and fix a fault in
program within its
operating environment
Testability
ease of testing program,
to ensure it is error-free
and meets its
specification
Flexibility
Ease of making
changing required by
changes in the operating
environment
Quality of SW Process
many activities can affect ultimate product quality
By modelling a process, we can examine it and look
for improvements
Where and when are we likely to find a particular kind of
fault?
How can we find faults earlier in the development
process?
How can we build in fault tolerance so that we can
minimize the likelihood that a fault will become a
failure?
Are there alternative activities that can make our process
more effective or efficient at assuring quality?
Portability
Effort required to transfer a program
from one environment to another
Reusability
Ease of reusing software in a
different context
Interoperability
Effort required to couple system to
another system
Customer
Sponsors system
development
Elements of a system:
Activities and Objects
Contractual
obligation
User
Uses
system
Systems Approach
Developer
Builds
system
Nested systems
It is possible for one system to exist within
another system, e.g. sensor system
One can have various functions of the sensors nested
within each other.
An analogy of software
engineering
Determining and
Requirements analysis
analysing
and definition
requirements
Producing and
System design
documenting the
design
Detailed
specifications
Identifying and
Program design
designing components
Making final
modifications
Continuing
maintenance
System testing
System delivery
Maintenance
Discipline of SWE
Abstraction
Abstraction
Analysis and Design methods and Notations
User Interface Prototyping
Software Architecture
Software Process
Reuse
Measurement
Tools and Integrated Environments
Build prototype
Evaluate it with user and customer feedback
Consider how changes might improve product or design
Build another prototype OR iteration ends when
developer and customer are satisfied with solution
Software process
Reuse
We take advantage of commonalities across
applications by reusing items from previous
development.
Reuse pertains not only to code but to design, test
data, requirements etc.
Measurement
Measurement is a driving force in software
engineering research:
improving our processes, resources and methods so that
we produce and maintain better products.
But sometimes we express measurements generally, with
no quantitative description.
Therac-25 (A SW Disaster)
Computers are increasingly being introduced into safetycritical systems and as a consequence, have been involved
in accidents.
End of Lesson I
Thank you