BCA 2 SE Unit 2 Introduction To SE Notes
BCA 2 SE Unit 2 Introduction To SE Notes
- Software programming
1. Code: Software programmers write code to implement the
designs created by software engineers.
2. Product Owner
Product owner refers to an individual who has the knowledge of how a
terminal product or the outcome should look like. They have an
enormous idea about the project and its users. Moreover, they
understand the client’s requirements, therefore they are in the
predominant position to lead the development towards an adequate
terminal product.
3. Business Analyst
A business analyst is accountable for comprehending business needs
into requirements and making sure they are documented perfectly
before a compound is formed and implemented. They describe, analyze
and control technology and business needs throughout the cycle. They
accompany the consumer so that they don’t have any doubt about the
project. They make decisions and carry out meetings of the project’s
methodology. Some tools which are used by Business Analysts are Jira
and Confluence, Pencil, Google Doc, Trello, Balsamiq, etc.
4. Software Developers
They are responsible for utilizing the technical requirements from the
technical leads to form cost and deadline estimates. They write code
and evolve the software products. Developers are the actual members
who write code to make the software function.
The team members have to communicate the technical requirements to
the developers to reduce project risk, give ideas, and achieve great
success. Some of the tools which are used by software developers
(backend) are Eclipse, VS Code, Postman, Jenkins, Github, Stack
Overflow, Jira, Chrome DevTools, Docker, and other programming
frameworks and tools as well.
6. UI Designer
The utmost duty of the UI designer is to prepare or design the user
affiliate. They transfer content, graphics, and style affixes with a client.
They prepare templates using prototyping tools. With a UX designer
and front-end developers, they work on providing solutions to meet
expectations and needs. Some tools which are used by UI Designer are
Adobe XD, Axure, Figma, Sketch, Visual Studio Code, etc.
7. UX Designer
UX designer means user experience. It is characterized by a less
‘digital’ perspective to a user affix. They have to assure that the end-user
has the best experience while working on the application. They have to
be in contact with the continuous human-computer interaction method.
Some tools which are used by UX Designer are Sketch, InVision Studio,
Craft, Adobe XD, Axure, etc.
6. Quality Assurance (QA) Engineers/Testers:
Test the software for bugs and ensure it meets the quality standards
through manual and automated testing
A QA person is liable for making equipment that allows automating
processes that identify and verify the software quality. They shorten
stability verification time. They check if the work on new features didn’t
cause errors in the already existing and functioning system. Some tools
which are used by QA engineers are Jira, Jenkins, Selenium, Cucumber,
Postman, LambdaTest, Test Flight, Confluence, and many others. .
Testers are in-charge of ensuring the software solution meets the
demands and complies with the qualities level. They need to understand
feature requirements. Also, they form and execute test cases to detect
bugs or deficiencies. Some of the tools which are used by software
testers are Selenium, TestingWhiz, TestComplete, Katalon Studio,
Postman, Jira, Apache JMeter, etc.
7. DevOps Engineers:
Manage the software's infrastructure, deployment, and continuous
integration/continuous delivery (CI/CD) pipelines.
9. System Architect:
Designs the software system's overall structure and ensures scalability,
performance, and security.
10. Technical Writers:
Create documentation, user manuals, and help guides for the software.
11. Scrum Master (in Agile Teams):
Facilitates Agile processes, removes obstacles, and ensures the team
follows Agile practices.
2. Adding structure
Without software engineering, we have people who can code. But
software engineering methodology has a structure to everything
and makes the lifecycle and business process easy and reliable.
3. Preventing issues
The software development process has now been formalized to
prevent the software project from running over budget,
mismanagement, and poor planning. The process of quality
assurance and user testing is vital as it helps prevent future
issues at lower costs. And this is only possible due to software
engineering. For the success of projects, it becomes vitally
important.
4. Huge Programming
Huge programming is possible because of software engineering as
it becomes the extensive one that has steps to give them a scientific
process.
5. Automation & AI
Currently, Automation and AI are hot subjects in the IT industry.
Because of software development, the manufacturing industry is
overhauled by automation. The quantity of humans operating on
manufacturing unit flooring continues to decrease as automation
software improves. As this fashion continues, maximum
engineering disciplines will probably rely upon software
improvement in a few ways.
6. Research
Through research and development, only new technology arises
from the industry. It is possible today because software
engineering is at the forefront of new technology research and
development. Through each step forward, other parts of the
industry can flourish as we stand on the shoulders of giants.
1. Best Practices
It provided us with the best practices being the consent of
software engineering. To gain experience, some practices include
KISS, Testing code, Refactoring code, Version control,
readability, etc. But the best practice is that which delivers
simple code with effective work.
2. Maintainability
With the maintainability of codebases, software engineering has
become mature. The maintenance is all about corrections and
modifications to drive smoothly.
3. Scalability
Scalability is everything in the world of web development and
SaaS products. And such products are built to work under
varying loads only because software engineering has made it so.
5. Security
Software engineering has become more significant than at any
other time since individuals can get to your applications from
any device and area. It implies many moving parts and
developing a security strategy that is sufficiently strong to
confront the test as significant. Security lapses can have
devastating effects on big companies, so we need software
engineers to help us safeguard our systems.
6. Testing
Testing has become unbelievably significant as there has been a
tremendous drive in the industry for incrementing standards. And
this is the reason for the further development testing. There are
different kinds of tests. The most vigorous are end-to-end tests
that test how an application coordinates and unit tests that assess
specific functionality.
❖ Software development process models :
Software Development life cycle (SDLC) is a spiritual model used in
project management that defines the stages included in an information
system development project, from an initial feasibility study to the
maintenance of the completed application.
The classical waterfall model divides the life cycle into a set of phases.
This model considers that one phase can be started after the completion
of the previous phase. That is the output of one phase will be the input
to the next phase. Thus the development process can be considered as
a sequential flow in the waterfall. Here the phases do not overlap with
each other. The different sequential phases of the classical waterfall
model are shown in the below figure.
Let us now learn about each of these phases in detail which include
further phases.
1. Feasibility Study
3. Design
In the coding phase software design is translated into source code using
any suitable programming language. Thus each designed module is
coded. The unit testing phase aims to check whether each module is
working properly or not.
6. Maintenance
carried out to correct errors that were not discovered during the
product development phase.
● Perfective Maintenance: This type of maintenance is
carried out to enhance the functionalities of the system based
on the customer’s request.
● Adaptive Maintenance: Adaptive maintenance is usually
required for porting the software to work in a new environment
such as working on a new computer platform or with a new
operating system.
❖ Prototyping Model –
Prototyping is defined as the process of developing a working
replication of a product or system that has to be engineered. It offers a
small-scale facsimile of the end product and is used for obtaining
customer feedback. The Prototyping concept is described below:
Each phase of the Spiral Model is divided into four quadrants as shown
in the above figure. The functions of these four quadrants are discussed
below:
3. But in real life, project risk may occur after the development
work starts, in that case, we cannot use the Prototyping Model.