Welcome back to my blog, most times software engineering and software development tends to be difficult to understand the disparity between them but which I will be writing on in this blog.
Before diving into distinguishing software engineering from software development. There is need to define some terms so that the differences will be clearly understood.
WHAT THEN IS SOFTWARE ENGINEERING?
Software engineering is the process of analysing user requirement and then designing, building and testing software application which will satisfy those requirement. Software component comprises of functions, sub-routine, class libraries, methods, data structure and configuration documents.
Sometimes Software engineering is not "engineering" as viewed in other engineering fields because
- Software engineering are interested in economical viable techniques.
- Software is developed the way engineer turn processes to products although not engineering of manufacturing process, both activities require the construction of a product using different approaches.
- Software is not affected by environmental sorches that causes hardware to wear out ( hardware are made of metals which sometimes get rusted)
- Software products components do not have spare parts as to hardware components.
Members found in software Engineering team
Software Engineering team:
They are a small number of people with complementary skills who are committed to a common purpose, performs goals and approach for which they hold themselves mutually accountable.Software engineer:
Software engineer is responsible for the whole software. However, software engineer is a person who applies the principle of software engineering to design, develop, maintain, and test the computer software
He also, performs the functions of research and writing new software programs.Quality Assurance manager:
Quality assurance manager is the "right-hand" for the project manager and his/her representative. Also, the quality assurance manager is a responsible for achieving necessary levels of quality by ensuring that project task are been conducted according to the official development methods.Analysis and design team:
Analyst and design team consist of senior developers, analysis specialist and design specialists.They are responsible for the technical aspect of the software which will be used by the development team to develop the software.Development team:
It is responsible for the software implementation ( coding) according to the requirement and technical design from the analysis and design team. Software development team are responsible for integrating all developed components into a functional entity. They are also responsible for internal, highly technical documentation such as interface specification, developers manuals band documents.Documentation Team:
It is responsible for the creation of all necessary documents that must be delivered together with the final product(software).Test team:
They are responsible for the creation of test specification ( writing out what should be tested and checking how robust the software or project is ), execution of all necessary test cases and, incase of detected errors, report to the development team with appropriate error description.Configuration Management team:
This team is responsible for maintaining configuration.
WHAT THEN IS SOFTWARE DEVELOPMENT
Software development is the process of analysing user requirement, designing, programming, documenting, testing, and debugging, maintaining and creating robust software components.
Software development involves creating the entire development process for a software program this begins by
- Asking the user requirement for the software.
- Identify the function point that users need from software programs.
- Using the user requirement to estimate the lines of codes required for the software.
- Determine user requirements that are unrelated to the functions of the software, such as the level of security and performance needs.
- Design the program and then give instructions to programmers, who uses the Function point and the estimated lines of code to write computer code and test it.
Members found in the Software Development team
Software owner:
The owner states the requirements and identify the goals for the team. The requirement are clearly stated and are documented to be used by the Software architect and developersSoftware architect:
He/she is a highly-skilled software developer that has to think through all the aspects of the software. He/she uses the requirement to estimate the lines of code and calculate the function points required for the software.Developers:
This team involves the front-end developer and back-end developer.
Front-end developer:A front end developer is responsible for easy interaction between the user and the software. This is achieved through the combination of design, technology and programming to code a software's appearance, as well as taking care of debugging.
Back-end developer: A backend developer uses backend Programming Languages, knowledge of popular framework and
data structures and algorithms to develop a software.
Experience designers:
This team ensure that the software follows design principles that is easy to learn, the user interface is easy to memorize, that the software is effective to use, the software is efficient, and lastly, that the software is utilized by the user.
Quality assurance:
This team ensures quality in parallel on all the software development team.
Business Analysts:
Software must be developed to have an additional requirement or improvement ( evolving or new version of the software)
The Analysts here plays the role is to uncover the ways to improve the software.
The above is just to clearly define some terms in software engineering and software development.
NOW, DISTINGUISHING SOFTWARE ENGINEERING FROM SOFTWARE DEVELOPMENT
Software engineering | software development |
---|---|
Software engineering refers to the application of engineering principle to create software | Software Development are responsible for the entire development process. |
Software engineering only connects the user requirement with applicable technology solutions | software development uses the user requirement to create the theoretical design |
software engineers may be involved with software development | few software developer are engineers |
Software engineering are interested in only economical workable techniques. | software developer are the driving creative forces behind programs |
Conclusion
The difference between software engineering and software development is software engineer uses principles of software engineering to create software that is they are based on the Technology solutions while Developers gives the theoretical design by using user requirement to implement that is coding in the Development phase.