What is software ? Software development phases in detail

in #software-construction6 years ago (edited)

Software

In this post i,m going to tell you about the software and the phase of the software development.
Everyone in this world is using software for different but know one want to know what is the software and how it works. why we need software and how someone develop a software so first of all i,m going to tell you about the software.

What is a software ?

Computer software, or simply software, is a part of a computer system that consists of data or computer instructions, in contrast to the physical hardware from which the system is built.

this software is of any type either this is the software we use in machines or in vehicles or in our home appliances or in our computers, but for the computer software we have a specific definition.

Source

Computer software (often called just software) is a set of instructions and associated documentation that tells a computer what to do or how to perform a task or it can mean all the software on a computer, including the applications and the operating system.

Systems software includes the programs that are dedicated to managing the computer itself such as the operating system, file management utilities, and disk operating system . The operating system controls the computer hardware resources to add information to the application and the data.

Software Construction

Software construction is a software engineering discipline. It is the detailed creation of working meaningful software through a combination of coding, verification, unit testing, integration testing, and debugging.

This is the definition of the software construction which i,ll discuss in detail.
To construct a software first we need to collect the information of the software which we are going to develop a software. This phase is known as (SRS) or Requirement Engineering

Requirement's engineering:
Requirements engineering refers to the process of defining, documenting and maintaining requirements in the engineering design process.

Functional requirements:
Any requirement which specifies what the system should do.
In other words, a functional requirement will describe a particular behavior of function of the system when certain conditions are met, for example: “Send email when a new customer signs up” or “Open a new account”.

Non-functional requirements:
Any requirement which specifies how the system performs a certain function.
In other words, a non-functional requirement will describe how a system should behave and what limits there are on its functionality.

Example of the Non functional requirements
‎Accessibility · ‎
Usability
‎Availability
Maintainability
Dependent-ability
Computer performance


Source

REQUIREMENTS ENGINEERING PHASES:

Requirements elicitation:
requirements elicitation is the practice of collecting the requirements of a system from users, customers and other stakeholders.

Software Requirement Specification
A software requirements specification (SRS) is a document that captures complete description about how the system is expected to perform.

Requirements prioritization:
Requirements are also prioritized minimize risk during development so that the most important or high-risk requirements are implemented first.

Requirements validation:
It’s a process of ensuring the specified requirements meet the customer needs.

Software Requirements Specification Document

A Software Requirements Specification (SRS) is a document that describes the nature of a project, software or application. In simple words, SRS document is a manual of a project provided.

After completing this phase we move to the next phase in which we implement the specification we have gathered by Requirement engineering phase.

Implementation

In this step you have to implement you software for real means you have to code. You have to write program.


Source

i can,t code here so i leave it here for you.

This is the tough one. you have to write code in this phase.

Testing

After complete coding of your software you have to Test software. Testing is required for an effective performance of software application or product. It's important to ensure that the application should not result into any failures because it can be very expensive in the future or in the later stages of the development

There is three type of Testing

Unit Testing
Component Testing
System Testing

Unit Testing

In computer programming, unit testing is a software testing method by which individual units of source code, sets of one or more computer program modules together with associated control data, usage procedures, and operating procedures, are tested to determine whether they are fit for use.

Component Testing

Suppose, in an application there are 5 components.Testing of each 5 components separately and efficiently is called as component testing.Component testing is also known as module and program testing. It finds the defects in the module and verifies the functioning of software. Component testing is done by the tester.

System Testing


source google image

System Testing is a level of the software testing where a complete and integrated software is tested. The purpose of this test is to evaluate the system's compliance with the specified requirements. Definition by ISTQB. system testing: The process of testing an integrated system to verify that it meets specified

After completing all the steps completely and successfully use software is now ready to use.

I hope it will help you alot in developing a software.

Be a part of our family on Steemit School discord channel https://discord.gg/qKQaeZJ . In discord channel you will be able to get knowledge about life and how to make money . so don,t be late

Sort:  

Thank you for this informative post.. i learn lot of things from it

I never knew it was so much complex, I have a lot of respect for the dedication of people who bring all the software that makes our life that much easy. Thanks for your post

yes developing a software is not an easy task my friend. it is really complected/

One thing you should research is which companies cooperate with pricing partners. If the companies are big enough and focus specifically on b2b, this would be the best option for cooperation. We work with Software Pricing Partners https://softwarepricing.com/ and together we have developed four complete applications, and all of them paid for themselves and still return a regular profit even after 3 years. All thanks to the strategies they designed for us.

seems like a nice overview, only one I have found on steemit, but there is so much more about this to learns, many good sites on the regular web. We should work to bring the content here.

You simply need to gather as much information on software cost estimation software https://fulcrum.rocks/blog/software-cost-estimation/ . The most difficult task is calculating the cost of, example, software development and other services. For this, you'll need a special calculator, but I can assist you with that, and it's not unusual. I hope I was able to help!

You got a 3.60% upvote from @upme thanks to @wajahatsardar! Send at least 3 SBD or 3 STEEM to get upvote for next round. Delegate STEEM POWER and start earning 100% daily payouts ( no commission ).

Hello! Thanks for such an interesting and detailed post. Especially I'm interested in security testing. I think it is one of the most parts of software/app development. Do you know special tools which can helo?

One of the most important phase of software or app development is security testing. It helps to prevent hacking and data leak. I have found some good tools - https://qawerk.com/blog/top-10-open-source-software-security-testing-tools/. As I understand, these tools check your software for vulnerabilities. It can make the process of software development easier and prevent consumers' complaints because of errors and bugs. It will be helpful for developers

Our software development company needs the services of partners who would develop a pricing strategy for our product. We clearly understand that already at the design stage we need to think about the pricing strategy. Please advise us who we can contact so that they have a lot of experience.

We would like to hire a consultant to help us fully think through the strategy we will use to monetize our software. But we need experienced specialists who have developed and successfully implemented different strategies before.

Coin Marketplace

STEEM 0.30
TRX 0.12
JST 0.034
BTC 64231.88
ETH 3128.59
USDT 1.00
SBD 3.95