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
   23   24   25   26   27   28   29   30   31   32   33