This article is going to explain you the answers of frequently asked questions regarding software engineering. People are curious about software engineering and create chaos by their own about software engineers.
When was just started learning software engineering I was very excited about the charm which I have heard and watch in movies. But reality is a far away from these imaginations.
I have learn anything in my career being a software engineer and that’s why I want to share my thoughts with the newcomers and the passionate people about software engineering.
What is software?
The term software relates with the computer program or context of coding. Indeed I prefer to elaborate the simple term into the generic realistic way. Software air engineering is not all about the development it’s about the documentation, system configuration and the right way to develop a solution.
Usually a software is a combination of different components. Such as configuration files to incorporate software within any environment, system documentation to provide a guide for end user about how to utilize the software.
In the market mostly software engineers are concerned with the development of software and new solutions which can be solved to the customer. Basically there are two fundamental software types which are represent as a product.
- Generic product
- Customise product
1 – Generic products
These are known as standalone solutions which are developed for generic purposes. The target audience of these software’s are those people who can afford it. Software companies the weather these products as their best service. Right now in the market there are many stand alone solutions which are on the top such as Microsoft Office, Photoshop, AutoCAD etc.
2 – Customize product
These are the systems which are developed upon the request of particular customer. Software engineers develop special solutions for the special requirement of the client and these software’s are not able to resold to any other client . Because this is not a generic product which is entertain every person.
The basic example of customized product is the company website. Nowadays every company have their own website which cannot be replicated to another company. Similar to this there are many ERP solutions, school systems many many more management systems.
1 – What is software?
A simple program along with its documentation which is developed for the special purpose or to entertain any problem programatically. Games and mobile application or also known as a software.
It is a sub branch of computer science which deals with the development life cycle of a software. In simple words we can say that it is the way of development any solution according to pre-define standards.
3 – Difference between software engineering & computer science?
Software engineering is drives from computer science to enhance their broader view. Computer science is dealing with the fundamentals and core theory of software, where software engineering emphasis on the practical approaches and on the commutative analysis of software delivery in mean time.
4 – Difference between software engineering & system engineering?
System engineering is all about hardware and embedded element of a computer system. Nowadays system engineering become a independent big domain and we can see its usage in face of PLC, embedded programming and Microcontroller. Where software engineering is playing a vital role regarding the methodology of development and structure of programming.
5 – What is software process?
A process in software engineering is a back to back set of activities which aims to to develop particular area of a software solution. In simple words we can say that requirement gathering is a process. Because the ultimate aim of this process is to develop the actual software.
6 – What is a software process model?
In the beginning of software era engineers have to perform back to back processes without any sorting order. Now after a lot of research software engineers introduced some process models to develop the solution in a fast-paced environment. Set of activities and multiple processes are named as a Process model such as agile, waterfall and spiral etc.
7 – Costs of software engineering?
Software engineers divide a cost of software in two slabs. According to the generic analysis around 60% of the actual budget is spend upon the core development and rest of 40% is spend upon testing and quality assurance.
Cost = Cost of Dev + Cost of QA
8 – What are software engineering methods?
There are many approaches to develop a software in a good manner. In this approaches we can conclude data notations, UML diagrams, use cases, business and functional documentation, standard development rules and process guidelines.
9 – What is CASE (Computer-Aided Software Engineering)?
Software systems which are developed to extend the functionality of main software and to automate their processes are known as CASE. These are mostly used for method support.
10 – Attributes of good software?
There are many attributes of good software according to different preferences and prospective of the software engineers. In the ideal case software should deliver for what it’s developed. It should be dependable, reusable, extendable and easy to maintain.
11 – Key challenges facing software engineering?
Due to high demand of software systems engineers have to to create reusable code and for that a lot of approaches applied which takes a lot of time to implement. In the first build software take a lot of time but in the next versions of software, engineers used already created module to extend the functionality of existing system.
There is a basic difference between generic and custom products, and that is, in the generic software development all the requirement and specification is controlled by the software development team and in the custom software development all the specifications are controlled by the client.
This basic difference is getting absolute day by day and many software houses are started developed generic product which can be easily customized according to clients. The basic example of these type systems are ERP and SAP.