0% found this document useful (0 votes)
21 views5 pages

Seunit 1

softwre engineering

Uploaded by

Rehaan Zaina
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views5 pages

Seunit 1

softwre engineering

Uploaded by

Rehaan Zaina
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 5

Software is a program or set of programs containing instructions that provide

the desired functionality. Engineering is the process of designing and building


something that serves a particular purpose and finds a cost-effective solution to
problems.

Software Engineering is the process of designing, developing, testing, and


maintaining software. It is a systematic and disciplined approach to software
development that aims to create high-quality, reliable, and maintainable
software. 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.

1. Software engineering includes a variety of techniques, tools, and


methodologies, including requirements analysis, design, testing, and
maintenance.
2. It is a rapidly evolving field, and new tools and technologies are constantly
being developed to improve the software development process.
3. By following the principles of software engineering and using the appropriate
tools and methodologies, software developers can create high-quality,
reliable, and maintainable software that meets the needs of its users.
4. Software Engineering is mainly used for large projects based on software
systems rather than single programs or applications.
5. The main goal of Software Engineering is to develop software applications for
improving quality, budget, and time efficiency.
6. Software Engineering ensures that the software that has to be built should be
consistent, correct, also on budget, on time, and within the required
requirements

Advantages of Software Engineering


There are several advantages to using a systematic and disciplined approach to
software development, such as:
1. Improved Quality: By following established software engineering principles
and techniques, the software can be developed with fewer bugs and higher
reliability.
2. Increased Productivity: Using modern tools and methodologies can
streamline the development process, allowing developers to be more
productive and complete projects faster.
3. Better Maintainability: Software that is designed and developed using
sound software engineering practices is easier to maintain and update over
time.
4. Reduced Costs: By identifying and addressing potential problems early in
the development process, software engineering can help to reduce the cost of
fixing bugs and adding new features later on.
5. Increased Customer Satisfaction: By involving customers in the
development process and developing software that meets their needs,
software engineering can help to increase customer satisfaction.
6. Better Team Collaboration: By using Agile methodologies and continuous
integration, software engineering allows for better collaboration among
development teams.
7. Better Scalability: By designing software with scalability in mind, software
engineering can help to ensure that software can handle an increasing
number of users and transactions.
8. Better Security: By following the Software Development Life Cycle
(SDLC) and performing security testing, software engineering can help to
prevent security breaches and protect sensitive data.

In summary, software engineering offers a structured and efficient approach to


software development, which can lead to higher-quality software that is easier to
maintain and adapt to changing requirements. This can help to improve
customer satisfaction and reduce costs, while also promoting better
collaboration among development teams.

Disadvantages of Software Engineering


While Software Engineering offers many advantages, there are also some
potential disadvantages to consider:
1. High upfront costs: Implementing a systematic and disciplined approach
to software development can be resource-intensive and require a significant
investment in tools and training.
2. Limited flexibility: Following established software engineering principles
and methodologies can be rigid and may limit the ability to quickly adapt to
changing requirements.
3. Bureaucratic: Software Engineering can create an environment that is
bureaucratic, with a lot of processes and paperwork, which may slow down
the development process.
4. Complexity: With the increase in the number of tools and methodologies,
software engineering can be complex and difficult to navigate.
5. Limited creativity: The focus on structure and process can stifle creativity
and innovation among developers.
6. High learning curve: The development process can be complex, and it
requires a lot of learning and training, which can be challenging for new
developers.
7. High dependence on tools: Software engineering heavily depends on the
tools, and if the tools are not properly configured or are not compatible with
the software, it can cause issues.
8. High maintenance: The software engineering process requires regular
maintenance to ensure that the software is running efficiently, which can be
costly and time-consuming.
9.
In summary, software engineering can be expensive and time-consuming, and it
may limit flexibility and creativity. However, the benefits of improved quality,
increased productivity, and better maintainability can outweigh the costs and
complexity. It’s important to weigh the pros and cons of using software
engineering and determine if it is the right approach for a particular software
project.

Ethics in Engineering
Ethics are principles followed depending upon the moral responsibility that a person feels. The
study of related questions about moral ideals, character, policies and relationships of people
and organizations involved in technological activity, can be termed as Engineering ethics.
Engineering Ethics refers to the principles and standards that guide the
behavior of engineers in their professional practice. Ethics are essential in
engineering because engineers design and build systems that affect people’s
lives, the environment, and society. Engineering ethics involves identifying and
addressing ethical issues that arise in engineering practice, such as safety,
sustainability, and social responsibility.

Engineering Code of Ethics


Fundamental canons

• Engineers shall hold


paramount the safety, health
and
1. welfare of the public in the performance of their
2. professional duties.
3 . • Engineers shall perform services only in areas of their
4. competence.
5 . • Engineers shall issue public statements only in a
6. subjective and truthful manner.
7 . • Engineers shall act in professional matters for each
8. employer or client as faithful agents or trustees, and
9. shall avoid conflicts of interest.

Software processes are the activities for designing, implementing, and testing a software
system. The software development process is complicated and involves a lot more than
technical knowledge.
That’s where software process models come in handy. A software process model is
an abstract representation of the development process.

What is a software process model?


A software process model is an abstraction of the software development process. The
models specify the stages and order of a process. So, think of this as a representation of
the order of activities of the process and the sequence in which they are performed.

A model will define the following:


 The tasks to be performed
 The input and output of each task
 The pre and post-conditions for each task
 The flow and sequence of each task

The goal of a software process model is to provide guidance for controlling and coordinating
the tasks to achieve the end product and objectives as effectively as possible.

Factors in choosing a software process


Choosing the right software process model for your project can be difficult. If you know your
requirements well, it will be easier to select a model that best matches your needs. You need
to keep the following factors in mind when selecting your software process model:

Project requirements

Before you choose a model, take some time to go through the project requirements and
clarify them alongside your organization’s or team’s expectations. Will the user need to
specify requirements in detail after each iterative session? Will the
requirements change during the development process?

Project size

Consider the size of the project you will be working on. Larger projects mean bigger teams,
so you’ll need more extensive and elaborate project management plans.

Project complexity

Complex projects may not have clear requirements. The requirements may change often, and
the cost of delay is high. Ask yourself if the project requires constant monitoring or feedback
from the client.

Cost of delay

Is the project highly time-bound with a huge cost of delay, or are the timelines flexible?

Customer involvement

Do you need to consult the customers during the process? Does the user need to participate
in all phases?
Familiarity with technology

This involves the developers’ knowledge and experience with the project domain, software
tools, language, and methods needed for development.

Project resources

This involves the amount and


availability of funds, staff, and
other resources.

You might also like