Unit 1 3 Software Processes in Software Engineering
Unit 1 3 Software Processes in Software Engineering
Software Development:
In this process:
designing,
programming,
documenting,
testing, and
bug fixing is done.
Components of Software:
There are three components of the software:
These are:
Program, Documentation, and Operating Procedures.
1. Program –
A computer program is a list of instructions that tell a computer
what to do.
2. Documentation –
Source information about the product contained in design
documents, detailed code comments, etc.
3. Operating Procedures –
Set of step-by-step instructions compiled by an organization to help
workers carry out complex routine operations.
4. Code: the instructions that a computer executes in order to perform
a specific task or set of tasks.
5. Data: the information that the software uses or manipulates.
6. User interface: the means by which the user interacts with the
software, such as buttons, menus, and text fields.
7. Libraries: pre-written code that can be reused by the software to
perform common tasks.
8. Documentation: information that explains how to use and maintain
the software, such as user manuals and technical guides.
9. Test cases: a set of inputs, execution conditions, and expected
outputs that are used to test the software for correctness and
reliability.
10. Configuration files: files that contain settings and parameters
that are used to configure the software to run in a specific
environment.
11. Build and deployment scripts: scripts or tools that are used to
build, package, and deploy the software to different environments.
12. Metadata: information about the software, such as version
numbers, authors, and copyright information.
All these components are important for software development, testing and
deployment.
There are four basic key process activities:
1. Software Specifications –
In this process, detailed description of a software system to be
developed with its functional and non-functional requirements.
2. Software Development –
In this process, designing, programming, documenting, testing, and
bug fixing is done.
3. Software Validation –
In this process, evaluation software product is done to ensure that
the software meets the business requirements as well as the end
users needs.
4. Software Evolution –
It is a process of developing software initially, then timely updating
it for various reasons.
Software Crisis:
1. Size and Cost –
Day to day growing complexity and expectation out of software.
Software is more expensive and more complex.
2. Quality –
Software products must have good quality.
3. Delayed Delivery –
Software takes longer than the estimated time to develop, which in
turn leads to cost shooting up.
4. The term “software crisis” refers to a set of problems that were
faced by the software industry in the 1960s and 1970s, such as:
5. High costs and long development times: software projects were
taking much longer and costing much more than expected.
6. Low quality: software was often delivered late, with bugs and other
defects that made it difficult to use.
7. Lack of standardization: there were no established best practices
or standards for software development, making it difficult to
compare and improve different approaches.
8. Lack of tools and methodologies: there were few tools and
methodologies available to help with software development, making
it a difficult and time-consuming process.
9. These problems led to a growing realization that the traditional
approaches to software development were not effective and
needed to be improved. This led to the development of new
software development methodologies, such as the Waterfall and
Agile methodologies, as well as the creation of new tools and
technologies to support software development.
However, even today, software crisis could be seen in some form or the
other, like for example software projects going over budget, schedule and
not meeting the requirement.
3. Dataflow Model –
It is diagrammatic representation of the flow and exchange of
information within a system.
Advantages or Disadvantages:
Agile:
Advantages:
Disadvantages:
Scrum:
Advantages:
Disadvantages:
Disadvantages: