Hello my dear friends! Hope you all are doing well. Today we are going to discuss about software engineering. There are so much things to learn in software engineering. Today we are going to learn about computer software. Software engineering is not just knowing a language and you are developing. Yes you can do like so but it will be something a empty pot. You have to do the practices with the knowledge then only you can be professionalism and have ethics and also idea about this field. A man who knows the things.
In this informational world you can learn one language easily and start developing software and become a company owner. But is it really professionalism? Always keep this thing in mind educating yourself about theories never goes waste. Most of people thinks these are theories they are just for the books. But the real thing is they are not just for the books that is the place where you learn things for the actual. So never under estimate learning these theories. Let’s come to the today’s topic.
What is a software?
Software is a set of instructions that execute on a computer hardware. Software are made with programming languages. By using programming languages we write the instructions. So software are always doing what you told it’s to do. What you have write in your instructions. To run a software we need set of hardware. Without hardware we cannot run a software.
Who is the first programmer?
First programmer is a lady. She is Ada Lovelace. She was the first programmer.
Classification of software
In software engineering we have several types of software classifications. They are one is we can divide software as system software and application software. That is the basic major classification we have. Application software are the software which do a particular task. System software provide a platform to run application software. And also we have
- business software
- real time software
- embedded software
- Custom software and generic software.
What is software engineering?
Software engineering is the systematic application of engineering approaches to the development of software.
Features in software
Software is intangible – Hardware is tangible. That means we can touch, see, feel but software we can’t touch and see. We see the interface of software not the software. We can’t show a physical component as this is the software.
Software is easy to reproduce – Software is a set of instructions. We have software reusability. We can use the previous components for development. Creating a software again compared to other engineering disciplines it’s easy. Reproduce a damage car and reproduce a software is easier.
What is software crisis?
is a term used in computer science for the difficulty of writing useful and efficient computer programs in the required time.
Who are stakeholders?
Stakeholders are party that has an interest in a company and can either affected or be affected by the business.
Who are the stakeholders in software engineering?
What is software quality?
The software quality is by using the software users can able to do the tasks. That means the software is fulfilling its functional requirements. A quality software means in other words simply a usable software. To ensure the software quality there are two approaches. One is defect management other one is quality attributes.
In the defect management we are identifying the software defects. Defects happens due to coding errors, validation issues, gaps in the requirements or requirements misunderstanding.
Software quality attributes
Software quality attributes are set of attributes which defined according to quality standards from quality maintaining organizations like ISO. Let’s look at few quality attributes.
Now we are going to learn about cyclomatic complexity. A software is a combination of thousand lines of codes. Therefore we can measure software quality by the code complexity. When it became more complex it’s not easy to either test or understand.
Cyclomatic complexity is a software matrix which gives quantitative measure of logical complexity of program. There are three methods of computing Cyclomatic complexities.
Method 1: Total number of regions in the flow graph is a Cyclomatic complexity
Method 2: V (G) = E – N + 2
E is total number of edges in the flow graph. N is the total number of nodes in the flow graph
Method 3: V (G) = P + 1
P is the total number of predicate nodes contained in the flow G.
What is software over-engineering?
As you know software goes through numerous changes after it’s deployed. Therefore the software architecture should be compatible to bear the modifications. If you have idea to build two floor building the foundation should strong enough to bear two floors. If it’s not capable of having two floors then you have to break the whole building and start to build it with a new foundation.
Now think you have idea to build two floor building but your engineer build it like to have 10 floors which you don’t need. It is waste of time and money. This we known as software over engineering.
What is software framework?
A framework is a software system designed to be reused in different projects or in the various products of product line.
Hope you have understood many concepts related to software. We will discuss another interesting theories about software engineering in future. Until then goodbye all.