Monday, February 22, 2010

2. Software Processes

Now that we have a better understanding of the problem domain that software engineering deals with, let us orient our discussion to software engineering itself. Software engineering is defined as the systematic approach to the development, operation, maintenance, and retirement of software [52].

We have seen that besides delivering software, high quality, low cost, and low cycle time are also goals which software engineering must achieve. In other words, the systematic approach must help achieve a high quality and productivity (Q&P). In software, the three main factors that influence Q&P are people, processes, and technology. That is, the final quality delivered and productivity achieved depends on the skills of the people involved in the software project, the processes people use to perform the different tasks in the project, and the tools they use.

As it is people who ultimately develop and deliver (and productivity is measured with respect to people’s effort as the basic input), the main job of processes is to help people achieve higher Q&P by specifying what tasks to do and how to do them. Tools are aids that help people perform some of the tasks more efficiently and with fewer errors. It should therefore be clear that to satisfy the objective of delivering software with high Q&P, processes form the core. Consequently, in software engineering, the focus is primarily on processes, which are referred to as the systematic approach in the definition given above. It is this focus on process that distinguishes software engineering from most other computing disciplines. Many other computing disciplines focus on some type of product—operating systems, databases, etc.—while software engineering focuses on the process for producing the products.

As processes form the heart of software engineering, with tools and technology providing support to efficiently execute the processes, this book focuses primarily on processes. In this chapter we will discuss:
  • Role of a process and a process model in a project.
  • Various component processes in the software process and the key role of the development process and the project management process.
  • Various models for the development process—waterfall, prototyping, iterative, RUP, timeboxing, and XP.
  • The overall structure of the project management process and its key phases.

2 comments:

  1. This blog is really interesting and it's really nice to read its contents. Hope you would like to learn about Software Engineer as they design, develop, modify, document, test, implement, install and support software applications and systems. You can also review Samples for Software Engineer or visit here for further knowledge.

    ReplyDelete
  2. THANK YOU FOR THE INFORMATION .HI GUYS IF YOU SEARCHING FOR software application development services

    PLEASE VISIT US
    software application development services



    ReplyDelete

Pages