Software Engineering is not really engineering
Page 1 of 114 Replies - 1463 Views - Last Post: 13 November 2011 - 12:57 AM
#1
Software Engineering is not really engineering
Posted 12 November 2011 - 02:04 AM
Now a days i am studyng software engineering as a subject in Bachelors of Computers Science. What i found after studying it and doing some research on it which is obvioulsy very little and basic , I found that software engineering is not rally engineering and it is just a coined term which was useful in older days. Now we cannot engineer a software as there is not particular theory behind it. I would like to hear your comments on it. What do you say about it? Or Am i alone having such a feeling? what do you feel about it.
For more information on my view point check if you want Software Engineering is not really engineering
Muhammad Kashif Shabbir
Replies To: Software Engineering is not really engineering
#2
Re: Software Engineering is not really engineering
Posted 12 November 2011 - 07:48 AM
Software engineering includes many things such as requirements acquisition, domain modeling, use-case modeling, architectural designs, class modeling, coding, debugging, refactoring, testing, implementation, maintenance and many other aspects.
#3
Re: Software Engineering is not really engineering
Posted 12 November 2011 - 09:08 AM
If you just want to talk about the "science" and "theory" behind software engineering, it does exist - it's just mathematics rather than physics. There are mathematical methods to model a system, prove properties about it, refine that model into code that can be mathematically verified. They're usually lumped together under the umbrella term "formal methods" and researchers have been developing them since the 1960's.
People have said for years that this stuff should be the basis for a making programming a "science" or engineering discipline. The problem with these methods is that they've never penetrated into the mainstream. Outside of certain niches like critical systems development, hardly anybody uses them. And, in fact, most professional software developers aren't even aware that they exist.
That said, you are correct that the way software development is practiced in many (if not most) companies is in no way "engineering". Much of the software industry is either grossly disorganized or driven by fads rather than evidence. There are still lots of companies that don't have a defined development process, organized QA, or even basic things like source control and defect tracking. And in many cases, even if they do have some defined process, it gets thrown out the window at the first sign of schedule pressure.
The way I look at it, we really have two different fields: "software development" and "software engineering". They get lumped together because they're both about "creating software", but the methods by which they do it are different enough that they should be considered separately. Software engineering is what the people at Altran Praxis do. Software development is what happens in the company IT department that "does Scrum" but without the daily meetings and keeps their source code on the network share rather than setting up a proper SCM system.
#4
Re: Software Engineering is not really engineering
Posted 12 November 2011 - 10:28 AM
stackoverflow, on 12 November 2011 - 07:48 AM, said:
Software engineering includes many things such as requirements acquisition, domain modeling, use-case modeling, architectural designs, class modeling, coding, debugging, refactoring, testing, implementation, maintenance and many other aspects.
requirements acquisition is a task which even a program do. Collecting requirements in a nice way needs experience and little of skill. It cant be termed into engineering as it is not that much of a task. Requirements acquisition is done in every project, be it software or not. But requirement engineering is not given special attention in other things. It is more or less equal to QA. All the good programmers are able to do class modeling coding debugging of really complex systems trivially. Making it sound like Engineering task is not an OK.
#5
Re: Software Engineering is not really engineering
Posted 12 November 2011 - 10:38 AM
AdaHacker, on 12 November 2011 - 09:08 AM, said:
If you just want to talk about the "science" and "theory" behind software engineering, it does exist - it's just mathematics rather than physics. There are mathematical methods to model a system, prove properties about it, refine that model into code that can be mathematically verified. They're usually lumped together under the umbrella term "formal methods" and researchers have been developing them since the 1960's.
People have said for years that this stuff should be the basis for a making programming a "science" or engineering discipline. The problem with these methods is that they've never penetrated into the mainstream. Outside of certain niches like critical systems development, hardly anybody uses them. And, in fact, most professional software developers aren't even aware that they exist.
That said, you are correct that the way software development is practiced in many (if not most) companies is in no way "engineering". Much of the software industry is either grossly disorganized or driven by fads rather than evidence. There are still lots of companies that don't have a defined development process, organized QA, or even basic things like source control and defect tracking. And in many cases, even if they do have some defined process, it gets thrown out the window at the first sign of schedule pressure.
The way I look at it, we really have two different fields: "software development" and "software engineering". They get lumped together because they're both about "creating software", but the methods by which they do it are different enough that they should be considered separately. Software engineering is what the people at Altran Praxis do. Software development is what happens in the company IT department that "does Scrum" but without the daily meetings and keeps their source code on the network share rather than setting up a proper SCM system.
Yeah i totally agree that if softwares are developed using formal methods then it is really software engineering. But its not the problem with Software Developers it is problem with formal methods. Formal methods are not capable enough to produce innovative and good softwares which are requirement of today. The type of softwares Altran Praxis develop may be developed using formal methods or mathematically driven approach however many of the softwares cant be made using formal methods. Now a days softwares are attractive, dynamic, intelligent and commercial. Such softwares like commercial games, social networking sites, netbeans, chatbot cant be engineered because yet computers are not capable enough to be creative. Software engineering approach most of the times kill creativity.
Do you think that if people start following software engineering approach or formal method then the quality and innovation of software produced will be better than softwares created today?
The theory what you stated is theory of computation or typical known as automata. It is branch of mathematics and formal languages. It hardly can be called as theory behind programming or coding. But i dont think so that it is theory of software engineering.
#6
Re: Software Engineering is not really engineering
Posted 12 November 2011 - 04:41 PM
Quote
Obviously you lack the research skills to see, that even the basic research (that I have done) reveals that it met your basic premise of Engineering.
Quote
Software Engineering is the practical application of Computer Science, to commerce and industry.
Wikipedia:
Quote
Computer Science being the science of computation
theory of computation isn't the same sa automata -> an automata being a self operating machine (aka robot).
There is Automata Theory which is about abstract machines and the computation that they can do. Practical Example: Regular Expressions
Computability theory covers wether some can or not be computed
Computational complexity theory
Software Development is the more general term used to describe the creation of software (of any type). It's bit like saying your a painter when you do paint-by-numbers, yes it involve paint but you can say your an Old Master
Software Engineer is a recognised certified profession (like a doctor) and has Institution that govern the profession. The IEEE Computer Society even has a "Software Engineering Code of Ethics".[
#7
Re: Software Engineering is not really engineering
Posted 12 November 2011 - 04:45 PM
#8
Re: Software Engineering is not really engineering
Posted 12 November 2011 - 07:00 PM
yaKashif, on 12 November 2011 - 01:38 PM, said:
No - you can certainly engineer all of those things. You're misunderstanding where engineering fits in to the software development process. The kind of creativity you're talking about comes earlier in the process, when determining what to build - the features the software should have, what it should look like, etc. Engineering is about how things are built - making them reliable and bug-free. You can be as creative as you want in designing what kind of software you want to build, but still apply engineering to actually implementing that design. The two are not mutually exclusive.
Quote
Innovation? You don't apply engineering principles in order to be more innovative. You apply them to ensure what you build is correct and reliable. Innovation has nothing to do with it.
Quote
You must be confused - I didn't say anything about computability theory. I was talking about this sort of thing.
#9
Re: Software Engineering is not really engineering
Posted 12 November 2011 - 11:21 PM
You cleared things in right way that engineering is not related to innovation and creativity. Thats nice explanation. Then Engineering role is minimized to deadly extent.
Quote
There are links to two more posts in my post Software Engineering is not really engineering on my blog. If you have got time check them as well.
@AdamSpeight2008 you didnt answered my question even. If IEEE recognizes some profession then its not the final word. Tom DeMarco's article on Software Engineering was also published in IEEE. Yes i understand it is Tom's thinking and not of IEEE.
#10
Re: Software Engineering is not really engineering
Posted 13 November 2011 - 12:11 AM
The component parts maybe have been built. Like Bricks and Wooden Planks in the construction industry. You can have a load of coppers on the floor, doesn't make it a heating system for your house. It still needs to be plumbed in. That requires some form of heating engineer, (some country require this done by a certified professional.)
Unless the work is yours from conception to completion, it's not up to you to decide the "creativity of the software" (What does that means? Define it.). All you can do is suggest to custom (ie the person who commission/pays for the work.)
Your blog entry is full of unsubstantiated claims and assertions .
Quote
Have you asked any of the people mention in the above extract quote from your blog entry. I seriously doubt it.
If all the programmer in the world did follow sound engineering principles then why is the internet for full (in my opinion) work that don't follow them, (for example have a look at some the code in the Dream In Code help sections) As for creativity all I see is a lot derivative works and apps. How many music players, "Angry Birds", Fart App and Tower Defense programs does one need?
From what seen of the online applicationm stores and maarketplaces. There's a lot of software that has been written (out there) that doesn't have a market / customer for.
#11
Re: Software Engineering is not really engineering
Posted 13 November 2011 - 12:28 AM
Obviuosly your doubt is right that I didnt asked any of the three tech giants i mentined oin the blog entry.
Well! i didnt really get you maybe because what i told is prety confused in itself. so i cant say any thing more. Its alright, I just wanted to know opinions of people on what I think. Thanks for reply and your time.
#12
Re: Software Engineering is not really engineering
Posted 13 November 2011 - 12:32 AM
Define what you mean by "Creativity of Software".
#13
Re: Software Engineering is not really engineering
Posted 13 November 2011 - 12:42 AM
By creativity of software I mean that the software is capable of evolution and flexible enough that it can mould to new things easily. Basically i mean Innovation by creativity.
#14
Re: Software Engineering is not really engineering
Posted 13 November 2011 - 12:52 AM
#15
Re: Software Engineering is not really engineering
Posted 13 November 2011 - 12:57 AM
|
|

New Topic/Question
Reply



MultiQuote




|