Software Engineering Process
  • Software Engineering Process

About the Product

Software Engineering Process

Summary:

This Software Engineering Process note provides a comprehensive overview of software processes, including different types of processes and models. It covers software specification, design and implementation, validation, and evolution. Design activities such as architectural design, database design, interface design, and component selection and design are discussed. System implementation can involve developing programs or configuring an application system. Software validation is done through verification and validation processes, checking and review processes, and system testing. Software evolution involves changing existing software systems to meet new requirements, and processes should include activities like prototyping and incremental delivery to cope with change. The SEI process maturity framework is also explained.

Excerpt:

Software Engineering Process

The software process:

– A structured set of activities required to develop a software system. Many different software processes, but all involve:
• Specification – defining what the system should do;
• Design and implementation – defining the organization of the system and implementing the system
• Validation – checking that it does what the customer wants;
• Evolution – changing the system in response to changing customer needs.

– A software process model is an abstract representation of a process. It presents a description of a process from some particular perspective.

Software process descriptions:

– When we describe and discuss processes, we usually talk about the activities in these processes, such as specifying a data model, designing a user interface, etc. and the ordering of these activities. –

Process descriptions may also include the following:
• Products, which are the outcomes of a processing activity;
• Roles, which reflect the responsibilities of the people involved in the process;
• Pre and postconditions, which are statements that are true before and after a processing activity has been enacted or a product produced.

Plan-driven and agile processes:
▫ Plan-driven processes are processes where all of the process activities are planned in advance, and progress is measured against this plan.
▫ In agile processes, planning is incremental, and it is easier to change the process to reflect changing customer requirements.
▫ In practice, most practical processes include elements of both plan-driven and agile approaches.
▫ There are no right or wrong software processes.