Pages

Monday, 13 June 2011

Module 2 : Software Processes



A software process is a collection of work activities, actions, tasks, which are performed when software is to be created.

A process model or framework is where these activities, actions, and tasks reside, and that defines their relationship with the process and with one another. Also known as an abstract representation of a software process

Framework activities
Generic activities that are applicable to all software projects, regardless of their size or complexity.
Include communication; planning; modeling, construction; and deployment.

Umbrella activities
Complementary activities applied throughout a software project and help manage and control progress, quality, change, and risk.
Include project tracking and control; risk management; software quality assurance (SQA); technical reviews; configuration management (CM); etc.



Little bit explanation about the type of process flow:

Linear process flow executes the framework activities in sequence, for example Identifying the issue -> gathering data -> studying all the options -> choosing one strategy -> implementing -> testing.


Iterative process flow repeats one or more of the activities before proceeding to the next. It can also assist with revealing design goals of a client who does not know how to define what they want.



Evolutionary process flow executes the activities in a ‘circular’ manner.



Parallel process flow executes one or more activities simultaneously with other activities.


Process Patterns

A process pattern describes a process-related problem that is encountered during software engineering work, identifies the environment in which the problem has been encountered, and suggests one or more proven solution to the problem. Process pattern can be divide into three, which is

  • Task process patterns
  • Stage process patterns
  • Phase process patterns

to read more about process pattern you can go to this link


Process Assessment and Improvement

There were several approaches that have been proposed over the past few decades ago to ensure that the software process meets a set of basic process criteria that have been shown to be a essential for a successful software engineering.






Waterfall Model – represents elements of a linear process flow


Waterfall


V-model - A variation in the representation of the Waterfall model. Illustartes how V&V actions are associated with earlier SE action. In reality, there is no fundamentals difference between the Waterfall model and the V-model.

V



Incremental Model – combines elements of linear and parallel process flows




Evolutionary Model – follows the evolutionary process flow that combines elements of linear and iterative process flows

Prototyping

Spiral


Prototyping

Spiral



Concurrent Model – combines elements of iterative and parallel process flows





How to select process model?


Task Set

Each software engineering action is represented by a number of different task sets – each a collection of software engineering work tasks, related work products, quality assurance points, and project milestones.
A task set defines the actual work to be done to accomplish the objectives of a software engineering action. For example, ” requirements gathering” is an important software engineering action that occurs during the communication activity. The goal of requirements gathering is to understand what various stakeholders want from the software that is to be built.
For a small, relatively simple project, the task set for requirements gathering might look like this :




Both of these task sets achieve requirements gathering, but they are quite different in their depth and formality. The software team chooses the task set that will allow it to achieve the goal of each process activity and software engineering action and still maintain quality and agility.


No comments:

Post a Comment