Software Engineering
Software characteristics
To gain an understanding of software it is important
to examine the characteristics of software that make
it different from other things that human build.
Software Engineering
Some Software Characteristics
Software is engineered or developed, notmanufactured
in the traditional sense.
Software does not wear out in the same sense as
hardware.
Software Engineering
In theory, software does not wear out at all
Software Engineering
But what happens when changes are requested in the
software
Software Engineering
Most software is custom built,rather being assembled
from existing components.
Software Engineering
Software Components
As the Engineering discipline evolves, a collection of standard design
components are created
Standards screws and circuits are only two examples of thousand of
components that are used by mechanical and electrical engineers
Software Engineering
The reusable components have been created so that
engineers can concentrate on the truly innovative
elements of the design( new parts of the design).
In hardware this process is very common
In software this process has yet to be achieved on a
broad scale.
Software Engineering
Reusability is an important characteristic of a highly
software component.
A software components should be designed in such a
way that it should be reused in many different
programs
In 1960s, scientific subroutine libraries that were
reusable were built but with limited domain of
application
Software Engineering
Software components are built using a programming
language that has a limited vocabulary, well defend rule
of syntax and semantics
At the lowest level we have machine language
At the middle level we have C , Pascal etc to produce
procedural program
Software Engineering
At the highest level we have languages that use
graphical description of the program.
When we produce a well maintain documented
code its easier to understand and there will be
efficient use of memory and vice versa
Mid level languages are machine independent
After a long period of time languages like C,
COBOL are still in use
Machine, Assembly, C , Pascal etc are often
referred to as 3
rd
generation languages and are
procedural languages
Software Engineering
4
th
generation language move
software developer even further.
Non procedural language
We only specify the desired result
rather than the complete detail