Software Enginnering
Software Enginnering
ENGINNERING
What is Software Engineering?
The term software engineering is the product of two words, software, and engineering.
Current Time 0:41
/
The software is a collection of integrated programs.
Duration 18:10 Loaded: 9.54%
Software subsists of carefully-organized instructions and code written by developers on any of various particular
computer languages.
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 more effective. So Software becomes more
effective in the act with the help of software engineering.
• 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.
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.
There are several various general models or paradigms of software development:
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.