Page 28 - DCAP405_SOFTWARE_ENGINEERING
P. 28
Unit 2: A Generic View of Process
2. Deciding a plan for a solution Notes
3. Coding for implementing the planned solution, and
4. Testing for verifying the programs.
These activities may not be done explicitly in small size projects. The start and finish boundaries
of these activities may not be clearly defined, and no written record of the activities may be kept.
However, for large systems, where the problem-solving activity may last a couple of years and
where many people are involved in development, performing these activities implicitly without
proper documentation and representation will clearly not work, and each of these four problem
solving activities has to be done formally.
!
Caution In fact, for large systems, each activity can itself be extremely complex, and
methodologies and procedures are needed to perform it efficiently and correctly. Each of
these activities is a major task for large software projects.
2.1 Software Engineering – A Layered Technology
Software Engineering can be viewed as a layered technology. The main layers are:
Process layer: It is an adhesive that enables rational and timely development of computer
software. It defines an outline for a set of key process areas that must be acclaimed for
effective delivery of software engineering technology.
Method layer: It provides technical knowledge for developing software. This layer covers
a broad array of tasks that include requirements, analysis, design, program construction,
testing and support phases of the software development.
Tools layer: It provides computerized or semi-computerized support for the process and
method layer. Sometimes, tools are integrated in such a way that other tools can use the
information created by one tool. This multi-usage is commonly referred to as computer-
aided software engineering or CASE. CASE combines software, hardware and software
engineering database to create software engineering analogous to computer-aided design
or CAD for hardware. CASE helps in application development including analysis, design,
code generation, and debugging and testing etc. This is possible by using CASE tools
which provides automated methods for designing and documenting traditional structured
programming techniques. The two prominent delivered technologies using case tools are
application generators and PC-based workstations that provide graphics-oriented
automation of the development process.
The main goal of software engineering is to help developers obtain high-quality software at
low cost and with a small time. Therefore, like all other engineering disciplines, software
engineering is also driven by three main parameters, namely cost, schedule and quality.
Notes Among these, cost and quality are considered as the primary driving factors in
software engineering because the schedule value is more or less fixed for a given cost.
LOVELY PROFESSIONAL UNIVERSITY 21