by Dinesh Thakur Category: Software Engineering

Once a system has been deployed, new requirements inevitably emerge. It is difficult for the users to anticipate the effect of these new requirements (if a new system is developed for these requirements) on the organization. Thus, to understand and control changes to system requirements, requirements management is performed.

 
by Dinesh Thakur Category: Software Engineering

The development of software begins once the requirements document is 'ready'. One of the objectives of this document is to check whether the delivered software system is acceptable. For this, it is necessary to ensure that the requirements specification contains no errors and that it specifies the user's requirements correctly. Also, errors present in the SRS will adversely affect the cost if they are detected later in the development process or when the software is delivered to the user. Hence, it is desirable to detect errors in the requirements before the design and development of the software begins. To check all the issues related to requirements, requirements validation is performed.

 
by Dinesh Thakur Category: Software Engineering

The output of the requirements phase of the software development process is Software Requirements Specification (SRS) (also known as requirements document). This document lays a foundation for software engineering activities and is created when entire requirements are elicited and analyzed. SRS is a formal document, which acts as a representation of software that enables the users to review whether it (SRS) is according to their requirements. In addition, it includes user requirements for a system as well as detailed specifications of the system requirements.

 
by Dinesh Thakur Category: Software Engineering

It has been observed that the software engineer 'reuses' certain functions, classes, and/ or behavior across all the projects, which mayor may not form a part of the specific application domain. For example, features and functions described by a user interface are almost common, regardless of the application domain chosen. Analysis patterns refer to classes, functions, and other features that can be reused when developing applications within a specific application domain. The objectives of analysis patterns are listed below.

 
by Dinesh Thakur Category: Software Engineering

IEEE defines requirements analysis as (1) the process of studying user needs to arrive at a definition of a system, hardware or software requirements. (2) The process of studying and refining system, hardware or software requirements.' Requirements analysis helps to understand, interpret, classify, and organize the software requirements in order to assess the feasibility, completeness, and consistency of the requirements. Various other tasks performed using requirements analysis are listed below.

 
by Dinesh Thakur Category: Software Engineering

Requirements elicitation (also known as requirements capture and requirements acquisition) is a process of collecting information about software requirementsfrom different individuals such as users and other stakeholders. Stakeholders areindividuals who are affected by the system, directly or indirectly. They includeproject mangers, marketing personnel, consultants, software engineers,maintenance engineers, and the user.



 
by Dinesh Thakur Category: Software Engineering

Feasibility is defined as the practical extent to which a project can be performed successfully. To evaluate feasibility, a feasibility study is performed, which determines whether the solution considered to accomplish the requirements is practical and workable in the software. Information such as resource availability, cost estimation for software development, benefits of the software to the organization after it is developed and cost to be incurred on its maintenance are considered during the feasibility study. The objective of the feasibility study is to establish the reasons for developing the software that is acceptable to users, adaptable to change and conformable to established standards. Various other objectives of feasibility study are listed below.

 
by Dinesh Thakur Category: Software Engineering

In the software development process, requirement phase is the first software engineering activity. This phase is a user-dominated phase and translates the ideas or views into a requirements document. Note that defining and documenting the user requirements in a concise and unambiguous manner is the first major step to achieve a high-quality product.

 
by Dinesh Thakur Category: Software Engineering

Quantitative Process Management (QPM) aims to control the process performance (the actual output accomplished by following the software process) of the software project quantitatively. The quantitative process management establishes goals for the performance of the project's software process. It involves measuring the performance of software process, analyzing these measurements, and making adjustments in maintaining the performance of the process. After the performance of the process is stable and within acceptable limits, the software process of the project and the associated measurements are established as a baseline. This results in controlling the performance of the software process quantitatively. The goals of quantitative process management are listed below.

 
by Dinesh Thakur Category: Software Engineering

Changes in the process are unavoidable and should be made to improve the productivity and quality of the process. These changes can be applied by using Process Change Management (PCM), which is a technique to improve the software processes in the organization. Thus, this technique helps in increasing productivity and quality by improving software processes for the developing software.

 
by Dinesh Thakur Category: Software Engineering

The Organization Process Focus (OPF) is responsible for establishing software process activities and improving these activities with process capability specified by the organization. This involves understanding software processes of projects and coordinating activities to assess, develop, maintain, and improve those processes. The organization provides resources for coordinating and maintaining software processes for existing and future projects. The activities for such purposes are carried out by SEPG. This group is responsible for developing and maintaining standard software processes and process assets in the organization. SEPG also coordinates process activities with the software projects. The goals of the organization process focus are listed below.

 
by Dinesh Thakur Category: Software Engineering

Organization Process Definition (OPD) is responsible for developing and maintaining a usable set of software process assets. The objective is to develop and maintain a standard software process for the organization. The organization process assets improve process performance across different projects and provide a basis for long term benefits to the organization. Various assets of the organization software process are listed below.

 
by Dinesh Thakur Category: Software Engineering

The software process model framework is specific to the project. Thus, it is essential to select the software process model according to the software which is to be developed. The software project is considered efficient if the process model is selected according to the requirements. It is also essential to consider time and cost while choosing a process model as cost and/ or time constraints play an important role in software development. The basic characteristics required to select the process model are project type and associated risks, requirements of the project, and the users.

 
by Dinesh Thakur Category: Software Engineering

The formal methods model is concerned with the application of a mathematical technique to design and implement the software. This model lays the foundation for developing a complex system and supporting the program development. The formal methods used during the development process provide a mechanism for eliminating problems, which are difficult to overcome using other software process models. The software engineer creates formal specifications for this model. These methods minimize specification errors and this result in fewer errors when the user begins using the system.

 
by Dinesh Thakur Category: Software Engineering

In the build and fix model (also referred to as an ad hoc model), the software is developed without any specification or design. An initial product is built, which is then repeatedly modified until it (software) satisfies the user. That is, the software is developed and delivered to the user. The user checks whether the desired functions 'are present. If not, then the software is changed according to the needs by adding, modifying or deleting functions. This process goes on until the user feels that the software can be used productively. However, the lack of design requirements and repeated modifications result in loss of acceptability of software. Thus, software engineers are strongly discouraged from using this development approach.

 
by Dinesh Thakur Category: Software Engineering

In time boxing model, development is done iteratively as in the iterative enhancement model. However, in time boxing model, each iteration is done in a timebox of fixed duration. The functionality to be developed is adjusted to fit the duration of the timebox. Moreover, each timebox is divided into a sequence of fixed stages where each stage performs a clearly defined task (analysis, implementation, and deploy) that can be done independently. This model also requires that the time duration of each stage is approximately equal so that pipelining concept is employed to have the reduction in development time and product releases.

 
by Dinesh Thakur Category: Software Engineering

The V model is useful in every phase of the software development life cycle. This model determines the complex relationship between each phase of the software development and ensures that each phase of software development is associated with testing. Various functions performed by V model are listed below.

 
by Dinesh Thakur Category: Software Engineering

The rapid application development model emphasizes on delivering projects in small pieces. If the project is large, it is divided into a series of smaller projects. Each of these smaller projects is planned and delivered individually. Thus, with a series of smaller projects, the final project is delivered quickly and in a less structured manner. The major characteristic of the RAD model is that it focuses on the reuse of code, processes, templates, and tools.

 
by Dinesh Thakur Category: Software Engineering

The incremental model (also known as iterative enhancement model) comprises the features of waterfall model in an iterative manner. The waterfall model performs each phase for developing complete software whereas the incremental model has phases similar to the linear sequential model arid has an iterative nature of prototyping. During the implementation phase, the project is divided into small subsets known as increments that are implemented individually. This model comprises several phases where each phase produces an increment. These increments are identified in the beginning of the development process and the entire process from requirements gathering to delivery of the product is carried out for each increment.

 
by Dinesh Thakur Category: Software Engineering

A process model can be defined as a strategy (also known as software engineering paradigm), comprising process, methods, and tools layers as well as the generalphases for developing the software. It provides a basisfor controlling various activities required to develop and maintain the software. Inaddition, it helps the software development team in facilitating and understandingthe activities involved in the project.

 

Page 3 of 7



About Dinesh Thakur

Dinesh ThakurDinesh Thakur holds an B.SC (Computer Science), MCSE, MCDBA, CCNA, CCNP, A+, SCJP certifications. Dinesh authors the hugely popular blog. Where he writes how-to guides around Computer fundamental , computer software, Computer programming, and web apps. For any type of query or something that you think is missing, please feel free to Contact us.