Differences Between Software Engineers and Programmers
Verified
Added on 2023/04/08
|9
|1821
|347
AI Summary
This article discusses the differences between software engineers and programmers in terms of education, job responsibilities, and roles in software engineering. It emphasizes the importance of software engineering education and highlights the evolving nature of the industry.
Contribute Materials
Your contribution can guide someone’s learning journey. Share your
documents today.
CT610-Alan Burke Wk1 Diploma in Software Engineering Student Name:Alan Burke NUI Galway ID Number:04417461 Course:CT610- Software Engineering Workshop No:Week 01 Assignments:Question 1&2 Date of Submission:20.01.19 1
Secure Best Marks with AI Grader
Need help grading? Try our AI Grader for instant feedback on your assignments.
CT610-Alan Burke Wk1 Question 1 A software engineer is responsible for the full life cycle of a software product from the design, research, training, support and implementation. The main tasks performed by a software engineer include: Research, designing, developing and testing OS level of software Modify existing software’s to repair errors or to improve performance Designing standards for a system to follow whilst preparing and developing solutions Analyses user needs and their software requirements to match this Consulting with the customer regarding system maintenance and design Designing the software that best suits the feedback from the customer Supervising the work of programmers, other engineers, technicians and team members Software engineers and developers are often interchangeable titles in the IT industry, sometimes giving the title of engineer to a person with the duties of a developer. (Gupta, 2017) A software programmer often referred to as developer also receives specifications from an engineer and turns the program design into written instruction codes. This code is designed for a computer to be able to follow. The programmer must be an expert in coding languages such as C++, Java and Python. They need to be able to debug, expand, edit and upgrade existing code of a project and be able to identify and rectify errors. The programmer uses code libraries to simplify writing and is more often working with engineers nowadays with certain duties intertwined. These include program design and user need requirements (Raphael, 2016). The programmer cannot be defined as a developer also as the developer may have coding as just a specific part of their responsibilities. The developer may have other roles such as documenting features and conceptual analysis (Kim, 2018). Differences between software engineers and programmers Education: Software programmers and engineers can have similar levels of education. They will often both earn degrees in computer science, software engineering and programming. As part of this they will learn programming languages such as C++, Java and python. Both professions will share a lot of similarities. Sometimes the differences can lie in the extent of their education. The programming does not always need to possess a third level qualification but the engineer will be required to have 2
CT610-Alan Burke Wk1 this. The programmer may be exclusively educated in writing code and not the other parts of the software development cycle. However the engineer will need to understand the process of software engineering and how to apply it on a developmental project. (Gupta, 2017) Job responsibilities: In terms of a project the software engineer is involved In the whole process of development. Unlike the programmer the engineer will be applying the principles of engineering to the software development. Along with the coding the programmer completes there is a requirement to complete a process of software and analysis. (Gupta,2017) The programmer may build the project from the ground up whereas the engineer will keep in touch with the client and all else that’s included in the planning of the process. (Gupta, 2017) The diagram below illustrates the differences in the two roles and how they both fit in the overall project: Source:https://www.kttpro.com/2017/02/07/difference-between-a-software-engineer-an- application-developer-and-a-computer-programmer/ 3
CT610-Alan Burke Wk1 In conclusion the difference between programmers and engineers are that the engineer oversees the project and the programmer is mainly working on the creating of a functional program. Both often work alongside each other throughout the stages of a software project. 4
Paraphrase This Document
Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
CT610-Alan Burke Wk1 References Question 1 Kim, M (2018)Programmer Vs Developer VsEngineerAvailable: https://medium.com/shakuro/programmer-vs-developer-vs-engineer-91ef374e5033[accessed 20.1.19] Gupta,K (2017)What is the difference between a software engineer and a software developer Available:https://www.freelancinggig.com/blog/2017/05/02/difference-software-engineer- software-developer/[accessed 20.1.19] Raphael, M (2016)Software engineer vs computer programmer: what’s the difference?Available: https://www.electronicproducts.com/Education/Career/ Software_engineer_vs_computer_programmer_what_s_the_difference.aspx[accessed 20.1.19] https://www.computersciencedegreehub.com/faq/what-is-the-difference-between-software- engineering-and-software/[accessed 19.1.19] https://www.kttpro.com/2017/02/07/difference-between-a-software-engineer-an-application- developer-and-a-computer-programmer/ [accessed 20.1.19] 5
CT610-Alan Burke Wk1 Question 2 Software engineering is defined by Somerville (2016,p.21) as “an engineering discipline that is concerned with all the aspects of software production from the early stages of system specification through to maintaining the system after it has gone into use”. History of software engineering Software engineering has gradually evolved from its founding in the 1940’s to the present day. Applications have evolved continuously. The ongoing goal of software engineers is to improve technology/practices and productivity. By doing so the quality of application for users has been seen to be improved. From 1945- 1960 we had the origins of software engineering. The term itself first came about somewhere around the late 1950’s. (https://www.lingq.com/lesson/the-history-of- software-engineering-10892/) The NATO Science Committee funded two conferences on software engineering in 1968 and 1969 which gave the area an initial boost. Some believe this was the start of the profession. From these conferences the term software crisis was coined. Software engineering was driven on by this software crisis which identified many problems in software development. During the period of 1968- 1985 many software projects ran over deadlines and budgets. Some projects caused property damage and loss of life. When originally coined, the crisis was about productivity but this evolved into a crisis of quality also. (https://www.lingq.com/lesson/the-history-of-software-engineering- 10892/) An example of the property damage that was caused by a software defect could be seen when the expensive European Ariane rocket exploded. Software defects can also kill for example when radiotherapy machines worth embedded systems administered lethal doses of radiation to patients. It is unrealistic to think that we could remain in a crisis as it has to be accepted that engineers can only work to solve and prevent problems.https://www.lingq.com/lesson/the-history-of-software- engineering-10892/ The Silver Bullet philosophy was touted by researchers from the 1970’s to the 1990’s. New technologies in this era were being trumpeted as a solution to the software crisis. Lots of tools (structure programming, object orientated programming, Ada, standards, documentation) were suggested to be silver bullets. Some argued the crisis was as a result of lack of discipline by programmers. Attempts were made to improve professionalism by working on codes of ethics and licences for programmers. Eventually most accepted that no silver bullet would ever be found, 6
CT610-Alan Burke Wk1 however this theories still pop up nowadays. Over time it has been recognised that new technologies and practices have made improvements to professionalism, productivity and quality of software engineering. (https://www.lingq.com/lesson/the-history-of-software-engineering-10892/) In other developments the cost of hardware has changed substantially over the years. In the past software projects and mainframes in particular were extremely expensive and required large numbers of support staff. Nowadays powerful PC’s are economical and therefore making software projects cheaper. (https://www.lingq.com/lesson/the-history-of-software-engineering-10892/) Other changes have happened which will be discussed by looking at the current state of software engineering. Current State Some current trends in software engineering currently include: Internet in Software Engineering: Since 2000 the Web has evolved which meant browsers have continually developed functionality. This had led to the development of many products that deliver innovative services over the internet. Because of the web software is now highly distributed. Web based systems are continually growing so software engineering techniques are having to evolve also. (Sommerville, 2016) Artificial Intelligence: AI promises to change how organisations will conduct their business and make applications. It is transforming software design and testing. For example the Artificial Intelligence Design Assistant) AIDA is a website building platform using AI. It can make a selection from multiple combinations and design a website in under two minutes. AI when trained right can be used to test software and ensure that it is error free (Dsouza, 2018) Virtual Reality: VR enable software engineers to be surrounded by a 3D workspace rather than the limitations of a 2D work screen. VR also stimulates interaction that offers much more freedom than the generic keyboard and mouse. The interactions of VR take more advantage of the human body that has shown to increase creativity, lower learning curves and increase user satisfaction (Elliot, 2015) Roles in Software Engineering and how they have evolved 7
Secure Best Marks with AI Grader
Need help grading? Try our AI Grader for instant feedback on your assignments.
CT610-Alan Burke Wk1 Software Architect: This person is someone who makes high level decisions and dictates the technical standards of a project. They may decide on the coding standards, tools and platforms being used. The architect needs to have a broad technical knowledge with strong analytical skills. This person will often manage a project. It is probably one role that is not always very clearly defined in the profession (Ashanin, 2017). Analysts: This person is responsible for checking computer programs to ensure they meet the demands of the user. They act like a quality control specialist on the development team. An analyst goes through everything to ensure it meets the correct standards before a project is completed. The analyst needs to possess knowledge of programming languages, computer systems and hardware. This person often acts as a link between the IT and business side of a company. (http://www.businessresearchguide.com/faq/what-is-a-software-analyst/) Developers: A software developer oversees everything involved in making a piece of software functional. There are two types, system software developers and application software developers. A system developer creates the software that makes a device or computer run. An application developer designs software or programs such as spreadsheets, databases, word processors and games. It is one of the fastest growing roles in the software engineering industry. (McKay, 2019) Testers: A software tester plays an influential role in application development. They are the quality assurance specialist who ensures an application has no bugs, performance issue, errors etc before the project is completed. Testers are often brought in at the planning and design stage as their role in the ensuring its a quality product is so important to creating a successful application. Nowadays a lot of software is put through development and operations (DevOps) teams. For these teams development, testing and delivery are all completed concurrently. The software tester is the link between the development team and the customer as they ensure the product being received by the customer is looking good and working well. (Tittel et al, 2018) In conclusion it can be seen that software engineering is evolving at a rapid rate and much changes have had to be made to keep up with this. Education is key to the development of the industry going forward as technology moves forward at an accelerated rate. 8
CT610-Alan Burke Wk1 References Question 2 Ashinan, N (2017)The Path to Becoming a Software Architectavailable: https://medium.com/@nvashanin/the-path-to-becoming-a-software-architect- de53f1cb310a[accessed 19.1.19] Dsouza, M ( 2018)5 ways artificial intelligence is upgrading software engineeringavailable: https://hub.packtpub.com/5-ways-artificial-intelligence-is-upgrading-software-engineering/ [accessed 19.1.19] Elliot, A (2015)Using Virtual Reality to Create Software: A LikelyFutureavailable: https://medium.com/@anthonyE_vr/using-virtual-reality-to-create-software-a-likely-future- 9c4472108289[accessed 18.1.19] McKay, D (2019)The role of a software developeravailable: https://www.thebalancecareers.com/software-developer-526192 Sommerville, I (2016)Software Engineering(10th ed.) Harlow: Pearson Education Tittel, E and Lindros, K (2018)How to become a software testeravailable: https://www.businessnewsdaily.com/10761-how-to-become-a-software-tester.html[accessed 19.1.19] http://www.businessresearchguide.com/faq/what-is-a-software-analyst/[accessed 19.1.19] https://www.lingq.com/lesson/the-history-of-software-engineering-10892/[accessed 18.1.19] 9