SEF9 - 04 About "software" and about "SWEBOK"

WHAT IS SOFTWARE REALLY? AND WHAT THE HECK IS SWEBOK?
===========================================================
The answer: Software is ... Read (1) below.

The answer: SWEBOK is Software Engineering Body of Knowledge.

How can you engineer "software" when it is something intangible? Is it or is it not?

THE QUESTIONS ARE:

(a) What is software?
(b) What is engineering?
(c) What is Software Engineering (SE)?
(d) What is fundamentals?
(e) What is Software Engineering Fundamentals (SEF)?
(f) Continuing the question following item(5) SEF Description 4 above, what are the knowledge areas in software engineering? Ha ha ha.
(g) Who says software engineering (SE) is all technical?


(1) What is software?
===========================================================

From its name, software is something that is "soft" not hard. Kah kah kah.

From its name, software is also some kind of 'ware' or 'utensil' like kitchenware for 'utensils in the kitchen'. So can software be the "utensils or utilities for the soft of what"?.

Description 1 - Software is short for computer software, a type of computer program. It means the applications and operating systems used with computers. A computer program consists of many instructions that tell a computer what to do. Everything done on a computer is done by using a computer program.

Description 2 - Software are "sort of the things" we called programs used to direct the operation of a computer, as well as documentation giving instructions on how to use them. Software is "the thing" because it is intangible (we cannot touch, feel, or smell software) and do not wear out (do not degrade). Software, once written will always be the way it is. It is the physical media that "holds the software" that degrades, not the software itself because software is not physical.

Description 3 - Software are also "the so-called things" that comprise ideas, instructions and algorithms put into some language codes, stored on some media, then parsed, read, compiled or interpreted and executed by another software, that for example, direct actions ranging from controlling the lives of people in hospitals on life-support machines on one end, to the navigation and control of humans going to the moon and returning back successfully on the other extreme. In the middle, we have our handphones that allow us to communicate using text, audio and video with our loved ones at anyplace and anytime, of course with the help of software.

Software is intangible. We cannot touch and feel "software", but we can touch the CD or USB stick "holding" the software. So how do we engineer something we cannot touch, feel, or smell unlike civil, mechanical or chemical engineering? How about financial engineering or sanitary engineering?

Software does not wear out. Software is permenant and perfect. It is the "hardware" that holds the software that wears out. Our car tyres wear out. If we have software system failures, for example, it is the physical CD that got scratched, or the hard drive that had mechanical problems, or USB fell into the water, but it is never the "software" itseff on them that have worn out. Why? Remember: Software is "ideas, concepts" and is "not tangible".

It is ideas about "algorithms converted into programs" written on some physical media. The media can be plastic (CD), magnetic (Harddisk, USB) or solid state devices (new solid state memory). In the old days, the media are punched paper cards, magnetic tapes, or punched paper tape. He he he. These media all "store some software and data". Ha ha ha. So what is software? Software is therefore not physical.

For software to work to be useful ==> it must be placed some where on some hardware. e.g BIOS software ==> permanently stored on the ROM chip. HAL = Hardware Abstraction Layer (Device Drivers)

System requirement first, because software is "always part of a system". Software cannot be functioning alone, i.e. without some hardware.

Software programs and OSes nowadays can be on CD, DVD or USB. When you need to boot you use "Live CD" or "Live USB". Try them, install to hard disk if you want, otherwise reboot, you get back to your old OS.

Software programs and OSes nowadays can be on CD, DVD or USB. When you need to boot you use "Live CD" or "Live USB". Try them, install to hard disk if you want, otherwise reboot, you get back to your old OS.

WHAT? WHY - because this is where everything begins. System Requirements (SyRS) first. then followed by Software Requirements (SRS).

Some systems do not require software. Control Systems Engineering, Mechanical Systems, Electrical and Electronic systems - all exist before software exists, have been running perfectly before software comes into the picture.

Ha ha ha. With software, we should do provide more functions in those systems. e.g. Uncle operating a sundry shop, accounting system - paper based. No need for software accounting system. Has been making profits even before computers get invented.

(2) What is engineering?
===========================================================

Description 1 - Engineering is the profession of applying scientific principles to the design, construction, and maintenance of artifacts in many different disciplines. It is essentially the use of science and mathematics to design or make things. People who do engineering are called engineers.

Description 2 - Engineering has many sub disciplines: For engines, cars, machines, etc (mechanical engineering), buildings, bridges, roads, etc (civil engineering), electrical machines and communication systems (electrical engineering), chemical plant and machinery ( chemical engineering ), or aircraft (aeronautical engineering), sanitary (sanitary engineering), environment (environmental engineering), software (software engineering) and many many more.

Description 3 - Engineering is also described as the art or science of making practical application of the knowledge of pure sciences, as physics or chemistry, and mathematics in the construction of anything .... engines, bridges, buildings, mines, ships, and chemical plants.

(3) What is Software Engineering (SE)?
===========================================================

My simple answer: It is the sum of item(1) and item(2) above. It is the concatenation of (software + engineering) right? Ha ha ha.

SE Description 1 - Software engineering (SE) is a profession dedicated to designing, implementing, and modifying software so that it is of higher quality, more affordable, maintainable, and faster to build.

SE Description 2 - According to the definition of IEEE, SE is a "systematic approach to the analysis, design, assessment, implementation, test, maintenance and reengineering of software, that is, the application of engineering to software."

SE Description 3 - SE is the application of engineering to software because it integrates significant mathematics, computer science and practices whose origins are in engineering.

SE Description 4 - SE is a field of Computer science, concerned with designing and writing programs for computers. A software engineer tries to change software so that it is of a better quality. Better quality software is easier to understand, to maintain, or to extend. Becoming a software engineer is a higher education, done at the university level, usually. Software engineering can be very difficult work.

(4) What is fundamentals?
===========================================================

According to the dictionary, fundamentals means the foundations or basics, or serving as being an essential part of the foundations of any subject. They say a building without a strong foundation will certainly crumble. Ha ha ha.

(5) What is Software Engineering Fundamentals (SEF)?
===========================================================

My simple answer: It is the sum of item(1), item(2) and item(4) above, or the sum of item(3) and item(4) only, whichever way you like. He he he.

SEF Description 1 - It means we are concerned only with the basic foundations of software engineering.

SEF Description 2 - It means we must know the overall picture of software engineering in basic terms and not detailed terms.

SEF Description 3 - It means we must know all the issues in software engineering and comprehend them as basic ideas and general principles.

SEF Description 4 - It means we will not be covering technical details of each aspect of the knowledge areas in software engineering.

(6) What is not Software Engineering Fundamentals (SEF)?
===========================================================

Simple answer: Everything that is opposite of item(5) above. Ho ho ho.

Meaning in SEF, being fundamental of SE, we are not going to study into the depths of the various software technologies, the software architectures, the software and component models, the communication technologies, the software development methods, the software languages and programming techniques, the software tools, the software quality methods, the software maintenance methods, etc.

(7) Continuing the question following item(5) SEF Description 4 above, what are the knowledge areas in software engineering? Ha ha ha.

The answer is SWEBOK or Software Engineering Body of Knowledge.
===============================================================
The Software Engineering Body of Knowledge (SWEBOK) is a product of the Software Engineering Coordinating Committee sponsored by the IEEE Computer Society. The software engineering body of knowledge is an all-inclusive term that describes the sum of knowledge within the profession of software engineering. Since it is usually not possible to put the full body of knowledge of even an emerging discipline, such as software engineering, into a single document, there is a need for a Guide to the Software Engineering Body of Knowledge. This Guide will seek to identify and describe that subset of the body of knowledge that is generally accepted, even though software engineers must be knowledgeable not only in software engineering, but also, of course, in other related disciplines.

As of the 2004 edition, the SWEBOK guide define ten(10) Knowledge Areas (KAs) within the field of software engineering:

TECHNICAL AREAS (5 KAs) OF SOFTWARE ENGINEERING

* Software requirements
* Software design
* Software construction
* Software testing
* Software maintenance

MANAGEMENT AREAS (5 KAs) OF SOFTWARE ENGINEERING

* Software configuration management
* Software engineering management
* Software engineering process
* Software engineering tools and methods
* Software quality

Who says software engineering (SE) is all technical? Ha ha ha. Look at the above KAs in SWEBOK. In this SEF course, we will learn the foundations about all of them.



--
WASSALAM
wruslan.hahaha

Microsoft Word Version
Return to Software Engineering Fundamentals (SEF9MMUWRY)
Previous Topic: 03 IMPT On Receiving/Reading information on SEF9 Google Group
Next Topic: 05 Why Software Engineering is (a) systematic, (b) disciplined, (c) quantifiable, etc?

0 comments:

Post a Comment