Process Activities :
The software process activities is the set of activities that eventually end up in the production of a software product. This may involve the development of software form a scratch. There are different software processes but all must include the major four activities. They are:
- Software specification / Requirement Engineering
a. Feasibility study
b. Requirement elicitation and analysis
i. Requirement Discovery
ii. Requirement classification and organization
iii. Requirements prioritization and negotiation
iv. Requirements specification
c. Requirement specialization
d. Requirement validation
- System design and implementation
a. Architectural design
b. Interface design
c. Component design
d. Database design
- Software validation
a. Development / component testing
b. System testing
c. Acceptance testing
- Software evolution
Now let’s describe the software development processes in detail:
Software specification / Requirement Engineering:
Software specification or requirements engineering is the process of understanding and defining what services are required and identifying the constraints on these services.
- Ensures that the software will meet the user expectations and ending up with a high quality software.
- It’s a critical stage of the software process as errors at this stage will reflect later on the next stages, which definitely will cause higher costs.
There are four main activities (or sub-activities) of requirements engineering in Process Activities:
- Feasibility study: An estimate is made of whether the identified can be achieved using the current software and hardware technologies, under the current budget, etc.
- Requirements elicitation and analysis:This is the process of deriving the system requirements through observation of existing systems, discussions with stakeholders, etc.
- Requirements specification: It’s the activity of writing down the information gathered during the elicitation and analysis activity into a document that defines a set of requirements.
- Requirements validation: It’s the process of checking the requirements for realism, consistency and completeness.
Software Design and Implementation:
- The implementation phase is the process of converting a system specification into an executable system.
- A software design is a description of the structure of the software to be implemented, data models, interfaces between system components, and maybe the algorithms used.
- The software designers develop the software design iteratively; they add formality and detail and correct the design as they develop their design.
Here’s an abstract model of the design process showing the inputs, process activities , and the documents to be produced as output.
Fig: A general model of the design process
The four main activities that may be part of the design process are:
- Architectural design: It defines the overall structure of the system, the main components and their relationships.
- Interface design: It defines the interfaces between these components. The interface specification must be clear.
- Component design: Take each component and design how it will operate, with the specific design left to the programmer, or a list of changes to be made to a reusable
- Database design: The system data structures are designed and their representation in a database is defined. This depends on whether an existing database is to be reused or a new database to be created.
Software Verification and Validation:
Software validation or, more generally, verification and validation (V&V) is intended to show that a system both conforms to its specification and that it meets the expectations of the customer.
Fig: The stages of testing
Testing has three main stages:
- Development (or component) testing: The components making up the system are tested by the people developing the system.
- System testing: This process is concerned with finding errors that result from interactions between components. It is also concerned with showing that the system meets its functional and non-functional requirements.
- Acceptance testing: This is the final stage in the testing process before the system is accepted for operational use. The system is tested with data supplied by the system customer rather than using simulated test data.
- It is very costly to make changes to the hardware system.
- However, changes are often created to software package at any time throughout or after the system development.
- There has continuously been a split between the process of software system development and also the process of software evolution (software maintenance).
- It’s more realistic to think about software engineering as an evolutionary process wherever software is regularly modified over its period of time in response to ever-changing necessities and client desires.
152 total views, 1 views today
A Soon-to-be Computer Engineer by profession, he has profound devotion to add Data Scientist as a prefix to his name. He’s been to the nooks of the web (at least of the surface web) and planning to add some real figures in his pocket!