You are on page 1of 3

UNIT 3 - Fundamentals of problem

solving
Mahesh Lohith K.S, AIeMS

1 Creating and Running programs


1.1 Linux Environment
In Linux operating system environment the instructions are coded using an
editor vi in the commandline or gedit in GUI mode. The coded program is
saved giving a ¡filename¿ with .c extention. The compiler available in linux
presently is Gnu C Compiler (gcc). The c program can be compiled using the
command gcc filename. Once the program is compiled the machine codes
are written to a file by default with name a.out. Even the machine codes can
be written into a file defined by the user using the compilation command gcc
cfilename -o objectfilename. The compiled file can be executed with the
commands ./a.out or ./objectfilename.

1.2 DOS Environment


In DOS environment the TurboC has an inbuilt editor which can be opened
by issueing a command tc in the command prompt C:\>. Once the editor is
open the c program can be keyed in and to compile the key F9 is pressed. The
program is compiled. The errors are displayed if any. Otherwise the it gives a
message that the compilation is success and the program is executed by pressing
the keys ALT+F9. Both compilation and excecution can be done by pressing keys
CTRL+F9.

1.3 Windows Environment


In windows the same instructions can be followed by going to command prompt
as explained for dos environment or IDE’s (Integrated Development Environ-
ment) like eclipse, cbuilder and Boorland can be used to code, compile and
execute the program.

2 System Development LIfe Cycle (SDLC)


The Systems Development Life Cycle (SDLC) is a conceptual model used in
project management that describes the stages involved in an information sys-
tem development project from an initial feasibility study through maintenance
of the completed application. Various SDLC methodologies have been devel-
oped to guide the processes involved including the waterfall model (the original

1
SDLC method), rapid application development (RAD), joint application devel-
opment (JAD), the fountain model and the spiral model. Mostly, several models
are combined into some sort of hybrid methodology. Documentation is crucial
regardless of the type of model chosen or devised for any application, and is usu-
ally done in parallel with the development process. Some methods work better
for specific types of projects, but in the final analysis, the most important factor
for the success of a project may be how closely particular plan was followed.

Figure 1: System Developemtn Life Cycle(SDLC)

The image in figure.1 is the classic Waterfall model methodology, which is the
first SDLC method and it describes the various phases involved in development.
• Project planning, feasibility study: Establishes a high-level view of the
intended project and determines its goals.
• Systems analysis, requirements definition: Refines project goals into de-
fined functions and operation of the intended application. Analyzes end-
user information needs.
• Systems design: Describes desired features and operations in detail, in-
cluding screen layouts, business rules, process diagrams, pseudocode and
other documentation.
• Implementation: The real code is written here.
• Integration and testing: Brings all the pieces together into a special testing
environment, then checks for errors, bugs and interoperability.
• Acceptance, installation, deployment: The final stage of initial develop-
ment, where the software is put into production and runs actual business.
• Maintenance: What happens during the rest of the software’s life: changes,
correction, additions, moves to a different computing platform and more.
This, the least glamorous and perhaps most important step of all, goes on
seemingly forever.

2
3 Software Engineering
“Software engineering is the extablishment and use of sound engineering princi-
ples in order to obtain economically software that is reliable and works efficiently
on real machines”

• it is the application of systematic, deciplined, quantifiable approach to the


development, operation and maintenance of software which is nothing but
the application of engineering to software
• it is the study of approaches

The software engineering is a layered technology. Thus it encompasses a Quality


Focus, a Process, Management and Technical methods, and Tools.
A Quality Focus Any Engineering approach must commit to optimum qual-
ity. There must be a continuous process in imporoving the quality of the
software. Several metrics are available to support the quality focus in
software engineering.
Process Process is the base of the software engineering. It defines a framework
for a set of key process areas (KPA’s)that must be established for effective
delivery of software engineering.
Methods The building of software is achieved through methods of software en-
gineering. The Method encompasses different stages like feasibility, anal-
ysis, design, coding, testing and support.
Tools The software engineering tools provide automated or semi-automated
support for the process and the methods. To support software develop-
ment the tools are integrated so that one tool supports the other. This is
called Computer aided software engineering (CASE). This combines both
hardware and software.
Continue UNIT 1-C Programming,Introduction C , Background,
C programs, Identifiers, Types, Variables, Constants, Inupt/Output
examples, tips and common programming errors. for the tips and com-
mon programming errors refer to the lab proceedings and the chapter ”chasing
the bugs ”in the reference book “let us c witten by Yashwant Kanitkar ”