Bca C104 SM01
Bca C104 SM01
Bca C104 SM01
The process of designing, creating, testing, and maintaining software is known as software
engineering. It is a methodical, disciplined method of developing software with the end
goal of producing high-quality, dependable, and maintainable software. Requirements
analysis, design, testing, and maintenance are only a few of the techniques, tools, and
approaches that make up software engineering.
Stage-2: Defining Requirements: All of the target software's requirements are laid out at
this point. Customers, market analysts, and other stakeholders give their assent to these
needs. SRS (Software Requirement Specification) is used to satisfy this.
Stage-3: Designing Architecture: Software architects can use SRS as a guide to create the
optimal software architecture. As a result, the Design Document Specification (DDS)
contains various designs for the product architecture based on the SRS criteria. Market
analysts and stakeholders evaluate this DDS. The development's design is decided after
considering all of the potential aspects in detail.
Stage-4: Developing Product: At this point, the product's core development begins.
Developers implement this using a particular programming language in accordance with the
DDS design. Therefore, it is crucial that the coders adhere to the guidelines established by
the association. At this point, traditional programming tools like compilers, interpreters,
debuggers, etc. are also used. Several well-known languages, including C/C++, Python,
Java, etc., are used in accordance with software regulations.
Stage-5: Product Testing and Integration- Software must be tested after product
development in order to assure smooth operation. Even yet, just a little testing is done at
each stage of the SDLC. Therefore, all potential issues are currently being identified,
rectified,andretested.
Types of Software
The software is widely utilised in a variety of industries, including healthcare, banking,
education, the military, and the financial and stock markets. It can be divided into various
sorts:
Based on Application
Based on Copyright
Based on Application
The application of the software allows for classification. These are to be completed based
on this.
1. System Software
To manage computer resources and facilitate the execution of application programmes,
system software is required. This category includes programmes like operating systems,
compilers, editors, and drivers, among others. Without these, a computer is unable to
operate. Operating systems are required to connect a program's machine-specific
requirements with the capabilities of the computer on which it runs. Programmes are
converted from high-level language to machine language via compilers.
2. Application Software
Application software is created to interact with users in order to meet their needs. Generic
or customised are the two main categories that it could fall into. Generic software is
available to all users and behaves consistently for them. Its functionality is constrained and
not adjusted to the user's shifting needs. Customised software, on the other hand, refers to
software products created specifically for a client's needs and is not accessible to everyone
3. Networking and Web Applications Software
The necessary assistance for computers to communicate with one another and with data
storage facilities is provided by networking software. Software that runs on a network of
computers, such as the World Wide Web, also uses networking software. All server
software, security and encryption tools, and software to create web-based applications like
HTML, PHP, XML, etc. are included.
4. Embedded Software
This kind of software is used to support specific functionality under control settings and is
typically integrated within the hardware in the Read-Only Memory (ROM) of a large
system. Software used in instrumentation and control applications, such as those for
microwaves, satellites, and washing machines, are some examples.
Based on Copyright
Software can be categorised depending on copyright. The following is a list of these:
1. Commercial Software
It is an example of the vast majority of software that we buy from commercial computer
stores, software vendors, etc. In this instance, a user gets a licence key to use the software
when they purchase it. The software cannot be duplicated by users. The program's
copyright is owned by the firm.
2. Shareware Software
Shareware software is similarly protected by copyright, but buyers are permitted to produce
and distribute copies with the caveat that if they decide to use the software after testing it,
they must pay for it. Changes to the software are prohibited in the two categories of
software mentioned above.
3. Freeware Software
Generally speaking, copies of freeware software can be generated for both archival and
distribution reasons, although in this case, distribution cannot be done for financial gain.
The use of derivative works and software changes is permitted and encouraged. The
programme code may also be decompiled without the copyright holder's express consent.
4. Public Domain Software
In the case of software that is in the public domain, the original copyright holder expressly
waives all claims to the software. Therefore, software copies can be created without any
distribution limitations for both archive and dissemination purposes. Reverse engineering
and software modifications are also permitted.
Software Crisis
In computer science, the inability to create meaningful and effective computer programmes
in the allotted time is referred to as a "software crisis." The software crisis resulted from
using the same workforce, methodologies, and tools despite the fact that software demand,
complexity, and problems were all fast rising. Because old solutions were insufficient,
various software issues have emerged as programme complexity has increased. After the
rapid rise in software demand, complexity, and challenges, if we continue to use the same
workforce, methods, and tools, then issues such as software budget issues, software
efficiency issues, software quality issues, software managing and delivering issues, etc. will
arise. A software crisis is the name given to this situation.
The price of maintaining and owning software was comparable to the cost of creating it.
Projects were running late at the time.
Software at the time was incredibly ineffective.
The quality of the software was average.
Software frequently fell short of user expectations.
The typical software project runs half an hour behind schedule.
No software was ever given at that time.
Suboptimal use of resources.
Hard to change, debug, and improve.
It is more difficult to adjust software complexity.
Software Engineering Problems:
You must adjust several aspects that lead to unsolved difficulties in software engineering
programming if you want to solve them or find answers to them. The difficulties that the
problems and solutions often address are complicated and challenging. Making a change can
lead to solutions, which will have the intended consequences on the problems. Larger
structures may contain the effects. The actions conducted result in the desired outcomes and
necessary impacts on the issues that require fixing. In the early stages of its development
process, freshly created software frequently has some issues. Programme engineers
frequently embrace and employ "Agile" approaches to help the programme run correctly and
quickly due to time limitations. When the testing teams conduct integration tests, the ultimate
objective is to get the fastest response times.
Components of Software:
The software is made up of three parts: a programme, documentation, and operating
instructions.
1. Program
A computer programme is a set of directives that specify what to do for a machine.
2. Documentation
A list of directives that tell a computer what to do is referred to as a computer
programme.
3. Operating Procedures: Set of detailed instructions created by a company to assist staff
in doing difficult everyday tasks.
4. Code: The commands that a computer follows to carry out a certain task or collection
of tasks.
5. Data: information that the software manipulates or uses.
6. User interface: Button, menu, and text field interactions that the user has with the
software.
7. Libraries: pre-written code that the software can utilise repeatedly to carry out routine
operations.
8. Documentation: User manuals and technical guides are examples of materials that
provide instructions on how to operate and maintain the software.
9. Test cases: a collection of inputs, conditions for execution, and anticipated results used
to check the software's accuracy and dependability.
10. Configuration files: files that include configuration information necessary to set up
software to operate in a certain environment.
11. Build and deployment scripts: tools or programmes used to create, package, and
distribute software across several environments..
12. Metadata: information about the software, including its developers, version numbers,
and copyright details.
Interface Design: Interface design describes how a system will interact with its
surroundings. With regard to the internal operations of the system, this phase is highly
abstract; specifically, during interface design, the internal operations of the system are
completely disregarded, and the system is treated as a "black box." The dialogue between
the target system and the people, things, and other systems it interacts with are the main
focus. The humans, other systems, and devices—collectively referred to as agents—should
be identified in the design problem statement created during the problem analysis process.
The following information should be included in interface design:
Precise description of events in the environment, or messages from agents to which the
system must respond.
Precise description of the events or messages that the system must produce.
Specification of the data, and the formats of the data coming into and going out of the
system.
Specification of the ordering and timing relationships between incoming events or
messages, and outgoing events or outputs.
Detailed Design: Design is the specification of all internal elements, attributes, relationships,
processes, and frequently algorithms and data structures of all significant system components.
The intricate design might have:
Decomposition of major system components into program units.
Allocation of functional responsibilities to units.
User interfaces
Unit states and state changes
Data and control interaction between units
Data packaging and implementation, including issues of scope and visibility of program
elements
Algorithms and data structures