Software Enginnering
Software Enginnering
Computer programs and related documentation such as requirements, design models and user manuals.
Engineering is the application of scientific and practical knowledge to invent, design, build,
maintain, and improve frameworks, processes, etc.
1.To minimize software cost: Software needs a lot of hardwork and software
engineers are highly paid experts. A lot of manpower is required to
develop software with a large number of codes. But in software
engineering, programmers project everything and decrease all those things
that are not needed. In turn, the cost for software productions becomes
less as compared to any software that does not use software engineering
method.
2.To decrease time: Anything that is not made according to the project
always wastes time. And if you are making great software, then you may
need to run many codes to get the definitive running code. This is a very
time-consuming procedure, and if it is not well handled, then this can
take a lot of time. So if you are making your software according to the
software engineering method, then it will decrease a lot of time.
3.Handling big projects: Big projects are not done in a couple of days, and
they need lots of patience, planning, and management. And to invest six
and seven months of any company, it requires heaps of planning, direction,
testing, and maintenance. No one can say that he has given four months of
a company to the task, and the project is still in its first stage.
Because the company has provided many resources to the plan and it should
be completed. So to handle a big project without any problem, the company
has to go for a software engineering method.
4.Reliable software: Software should be secure, means if you have delivered
the software, then it should work for at least its given time or
subscription. And if any bugs come in the software, the company is
responsible for solving all these bugs. Because in software engineering,
testing and maintenance are given, so there is no worry of its
reliability.
5.Effectiveness: Effectiveness comes if anything has made according to the
standards. Software standards are the big target of companies to make it
• Main Attributes of Software Engineering
• Software Engineering is a systematic, disciplined, quantifiable study and approach to the design,
development, operation, and maintenance of a software system. There are four main Attributes of
Software Engineering.
1. Efficiency: It provides a measure of the resource requirement of a software product efficiently.
2. Reliability: It assures that the product will deliver the same results when used in similar working
environment.
3. Reusability: This attribute makes sure that the module can be used in multiple applications.
4. Maintainability: It is the ability of the software to be modified, repaired, or enhanced easily with
changing requirements.
Nature of Software
• Dual Role of Software
• There is a dual role of software in the industry. The first one is as a product and the other
one is as a vehicle for delivering the product.
• 1. As a Product
• It enables the Hardware to deliver the expected functionality.
A software process is the set of activities and associated outcome that produce a
software product.
Software engineers mostly carry out these activities. These are four key process
activities,
which are common to all software processes. These activities are:
1.Software specifications: The functionality of the software and constraints on its
operation
must be defined.
2.Software development: The software to meet the requirement must be produced.
3.Software validation: The software must be validated to ensure that it does what the
customer wants.
4.Software evolution: The software must evolve to meet changing client needs.
The Software Process Model
A software process model is a specified definition of a software
process, which is presented from a particular perspective.
Models, by their nature, are a simplification, so a software
process model is an abstraction of the actual process, which is
being described. Process models may contain activities, which are
part of the software process, software product,
and the roles of people involved in software engineering.
Some examples of the types of software process models that may be
produced are:
1.A workflow model: This shows the series of activities in the
process along with their inputs, outputs and dependencies. The
activities in this model perform human actions.
2.A dataflow or activity model: This represents the process as a
set of activities, each of which carries out some data
transformations. It shows how the input to the process, such as a
specification is converted to an output such as a design. The
activities here may be at a ower level than activities in a
workflow model. They may perform transformations carried out by
people or by computers.
3.3. A role/action model: This means the roles of the people
involved in the software process and the activities for which they
are responsible.
1.The waterfall approach: This takes the above activities and produces them as
separate process phases such as requirements specification, software design,
implementation, testing, and so on.
After each stage is defined, it is "signed off" and development goes onto the
following stage.
2.Evolutionary development: This method interleaves the activities of
specification,
development, and validation. An initial system is rapidly developed from a very
abstract specification.
3.Formal transformation: This method is based on producing a formal mathematical
system specification and transforming this specification, using mathematical methods
to a program.
These transformations are 'correctness preserving.’ This means that you can be sure
that the developed programs meet its specification.
4.System assembly from reusable components: This method assumes the parts of the
system already exist. The system development process target on integrating these
parts rather
than developing them from scratch.