The words “design” and “implementation” have been used widely. But I am not sure that I understand them.
- What do design and implementation of a computer-related system (e.g.
a computer system, an OS, a programming language, a DBMS, a software
program) mean? -
Think “design of a system” as a process, is its input the
requirements of the users of the system, and is its output the user
interface?Think “implementation of a system” as a process, is its input a
design of the system, and is its output the system? -
What are common in the design for a computer system, an OS, a
programming language, and a DBMS?What are common in the implementation for a computer system, an OS,
a programming language, and a DBMS?
Thanks!
4
I wouldn’t get too hung up on the terminology. Google has some good definitions:
Design: (search for ‘definition of design’)
noun:
a plan or drawing produced to show the look and function or workings of a building, garment, or other object before it is built or made.
verb:
decide upon the look and functioning of (a building, garment, or other object), typically by making a detailed drawing of it.
Actual drawings sometimes exist (think flowcharts), but most designs I’m familiar with are typically written descriptions.
Implementation:
the process of putting a decision or plan into effect; execution.
As for your specific questions:
- They mean pretty much what the dictionary says they mean. “Designing a thing” means figuring out how it’s going to work, possibly what it looks like, etc. “The design” is the output of the process of “Designing a thing”. “Implementing a design” means actually doing the work to convert the idea (the design) into something real.
- Short answer, “yes”. I would substitute “designing a system” for “design of a system” and “implementing a system” for “implementation of a system”, but you have the right idea.
- If you asked this question by itself, it would be closed as ‘too broad’ within minutes. The process of designing anything will have common steps including collecting requirements, identifying possible solutions, analyzing those solutions, etc. Likewise, the process of implementing anything will also have certain steps in common including the actual construction, verification that the construction is correct, etc.
In the context you are making this questions, ‘design’ is the process that is followed in the beginning of a project, where the requirements are defined, the technologies that will be used, the resources that are needed and the organization of the component that will be constructed. The ‘implementation’ is the next stage, when all the info from the ‘design’ step is used to begin constructing the component.
However, especially in Web applications, the difference between design and implementation slightly changes. The ‘implementation’ refers to the functionality of the application and how each function is being executed “backstage”. The ‘design’ refers to aesthetic decisions about the Web app (such as styling, fonts, images etc.)
The difference between “design” and “implementation” stem from a foolish idea people perpetuate that the approach to building software should be like building a bridge, where you “design” the bridge, then a bunch of construction workers “implement” it.
In reality, all software development is design.
2), Generally, kinda-sorta, yeah, that is what they are understood to be by the people who belong to the group above. Some people will consider requirements gathering to be part of design, others will not. The user interface is not necessarily the exclusive output of a design phase, even subscribing to the foolish concepts above. Many software platforms don’t have UIs per-se, e.g. libraries.
3) The common elements of a “computer system” is that they use do math and move information around. That’s really the only thing common. Not all projects use databases, not all have operating systems (e.g. embedded software), and some are programmed in assembly (which I would not lump in with programming languages considering the OPs understanding of the subject) as they are run on platforms that don’t have C or other compilers available. Some computer systems even run on analog systems for very obscure and specialized purposes. Not all use microprocessors, as there are systems out there such as older elevator controllers, that are built out of relays but are very much a simple computer system.
6