Software Engineering-Chapter 1

Global Description to use this Tutorial  
Main subject of Engineering Software in general, describe the basics of Software Engineering, and solving problems, and methods of software development. The discussion about the sub-field of Operating System contains a computer system, the system operating and working in the computer network. The scope of the material basic algorithms include algorithms and advance algorithms. Sub field Programming Languages take a big portion, including GUI programming with VB & VB.Net, Java programming, C + + programming, Programming of object-oriented and web-based. Sub-sector which is the last part of this tutorial is a data base with the scope of the system databases, conceptual modeling, relational database, Microsoft Access and SQL.

This tutorial is structured in such a way so that for general readers can independently learn and encourage to try. Therefore, in this book, many will be found either in the form of illustration image, the scheme and program listings.


Picture1Let us see Picture 1,1. For most users, the above picture is fairly familiar. In the picture, the desktop of Microsoft Windows operating system is shown. Several icons is shown in the picture. Double clicking on the icon will open a certain software application that can be used to do a certain task.
These days almost all aspects of life were touched by the use of software. Some software may already been used or seen by us, such as, music
player, cashier application software, document editor, etc. These softwares were the results of a series of process or the activity that was known as the Software Engineering. What is Software Engineering? This chapter
will try to answer such question.


This chapter should enable you to:

  • Able to explain on software, program, software engineering and procedures.
  • Understand the objectives of software engineering.
  • Understand the scope of software engineering.
  • Understand the position of the software engineering field in the discipline of computer science and its connection with the other fields. Knows the development in software engineering.
  • Known the profession and certification in the software engineering field.
  • Explained solution principles to the problems in the software engineering. Directorate Technical Vocational Education


The Software Engineering term began to be popularized in 1968 at Software Engineering Conference that was held by NATO. Some people interpret Software Engineering to be limited on how to made a computer program. In fact, there are basic differences between software and computer program.
Software is all the command that can be used to process information. Software could take the form of the program or the procedure. The program was the collection ordered that was understood by the computer whereas the procedure was the order that was needed by the user in processing information (OfBrien, 1999).
A body of knowledge that discussed all the aspects of the production of software, starting from the early stage that is the analysis of the requirement for the user, determined the specification from the requirement for the user, the design, coding, the testing to the maintenance of the system after being used.
It is clear that Software Engineering is not only related to the production method of the computer program. The statement gall aspects of productionh in the above definition, has the meaning of all the matters that are connected with the process of the production like project management, the determination of the personnel, the budget of the cost, the method, the schedule, the quality up to the training of the user was a part of Software Engineering.


Picture2In general, software engineering objectives are fairly similar to other engineering fields. Let us examine Figure 1.2.

Figure 1.2 shows that an engineering field will always try to produce the highest performance output at the lowest possible cost at exact time. The software engineering aims for,

  • Lower software production cost.
  • High performance and reliable software in time.
  • Multi platform software.
  • Low maintenance cost.



As defined above, the scope of software engineering is as follows,

  • Software requirements related to the requirement specifications of the software.
  • Software design includes software architecture determination, software components, interface, as well as other software characteristics.
  • Software construction relates to the software development, including the algorithm, coding, testing, and debugging.
  • Software testing covers software behavior evaluation and testing.
  • Software maintenance Includes maintenance efforts as software is operated.
  • Software configuration management is related to the configuration of software
    to satisfy a certain requirement.
  • Software engineering management related to the management and the grating
    software engineering, including planning of the software project.
  • Software engineering tools and methods include the theoretical study on aids
    and the software engineering method.
  • Software engineering process is concerned with the definition, the implementation, the grating, the management, the change and the improvement of the process software engineering.
  • Software quality is stressed on the quality and the software life-cycle.


Picture4Computer Science was born at the beginning of the 1940 's that was the integration from the theory of the algorithm, mathematical logic and the discovery of the storage method of the program electronically to the computer. Since then computer science had experienced continuous development and broadening.

The scope of knowledge in computer science often described as a
systematic study in processes of the algorithm that explained and
transformed information (Denning, 2000). It includes the theory, the
analysis, the design, efficiency, the application and it application.

Picture5There are several branch of knowledge in the computer science discipline as seen in the Figure 1.4, 1.5 and 1.6.

Picture6Based on Denning's (2000) and Wikipedia's
(2007), software engineering was the subsector of computer science that was equal to the other subsector. Whereas according to ACM (Association for Computing Machinery), software engineering is part of Section D (Software). Although being seen separated, in its application, the subsector software engineering always needed the support from the other subsector, especially algorithm and data structure, programming language, database, operating  system and network, and information system.


Picture7Since the scope of software engineering is quite wide, it relies heavily to other fields.

Not only with other sub sector in computer science but also other fields outside computer science. Software engineering relations with other fields
can be seen in Figure 1,7.

  • Management field covers accounting, financial, marketing, operation management, economics, quantitative analysis, human resources management, policy and business strategy.
  • mathematical field covers linear algebra, calculus, probabilistic, statistics, numerical analysis and discreet mathematics.
  • Project management field covers project related matters, such as, project scope, budgeting, human resource, quality control, risk management, and project scheduling.
  • Quality management field covers quality system development, risk and reliability management, quality improvement, and quantitative methods.
  • Ergonomics field covers man and machine interaction.
  • System engineering covers system theory, cost analysis, modeling, simulation, business process and operation.


Software Engineer profession is fairly new for Indonesians. Most Indonesians possibly more familiar with the term Information Technology expert, Information System Analyst, Operator or the other term. It is due to the confusion on the term software engineer as described in the early of the chapter. However in countries with mature information technology, Software Engineer term is more often used.
Software engineer certification is still debatable among expert and software vendor. Most certification in software industry is usually product specific. For example, the software company like Redhat Linux Inc., Adobe Inc., Oracle, or Microsoft, give certification to those who master their product.
ACM (Association for Computing Machinery) had run Software Engineer certification program in the 1980. Unfortunately, they have to discontinue due to lack of interest.
IEEE (Institute of Electrical and Electronics Engineers) has Issued more than 500 certificates of software profession. Canada has issued a legal certificate for software engineer that was known as ISP (Information Systems Professional).
At this time, there is no software engineer certification in Indonesia. However, the National Competence for Computer Programmer has been defined. Although, it has not fully covered computer programmer field, it can be used for early approach to software engineer certification.

Software engineering had conceptually close to problem solving principles. Understanding on the problems, the strategy and the process as well as the system approach in the solution to the problem will help the software engineering processes.

  • 1.7.1 The Problem and The Symptom, A problem can be seen as the difference between the condition that happened and the condition that it was hoped. It might also be interpreted as the difference between the condition now and the aimed condition. For example, a student hoped to receive 80 in a C++ Programming exam, but in fact he only received 60. The existence of this difference showed the existence of a problem.
    Often it is difficulty to distinguish between the symptom and the problem. The symptom is a sign of the occurrence of a problem.
  • 1.7.2. Type of Problem 
    Problem in standard fulfillment. The problem in this group is related to the achievement of the standard that was determined in an organization. It usually relates to the long term objectives of the organization. 
    Problem in alternative selection. The problem in this group is in choosing the best solution from various alternatives based on certain criteria. This problem is often encountered in daily life, such as, choose the exact school, choose the residence location, choose field of work. The alternative and the criterion had the weight that was agreed to.
    Problem in customer's satisfaction fulfillment. In profit oriented organizations, problem in customer's satisfaction fulfillment is often emerged. The customers may have many wishes and one may be highly different than others. Fulfill all customer's wishes may not possible and very incriminating an organization. One must look for the solution that benefit both the customer and the organization.
    The problem in goal achievement. This type of problem resembles the first type of problem, problem in standard fulfillment. The difference, this type of problem is in achieving short term goals that might not be fixed can be altered in a short time.
  • 1.7.3. Problem Solving
    Problem solving is a process where a situation was observed and after the problem found, a solution is made by determining the problem, reducing or eliminating the problem or preventing the problem from happening.

to be continued to : Software Engineering-Chapter 2