Principles Of Software Engineering Essay


Describe about the Principles of Software Engineering.


This is a well used method by the programmers and the project development team so that they can easily describe the services to the users. Extreme programming mostly being used by the programmers in software’s which are designed to do complex services to the users. These should be more understandable as common public users would interact with these systems in their day to day life. Such as ATM and Parking Machines.


There are certain advantages of the story type explanation in extreme programming where the programmers express the user requirements as stories. This is one of the best methods to express the requirements so that anyone can easily understand it.

  1. Storytelling is always considered as a most convenient way to spread the message to the masses. Extreme programming expresses the requirements in stories which can be well understandable to the users. This will help them to understand the operational situation in a more real way. As we have seen in ATM Machines where the software asks the users to insert the card or take the receipt.
  2. This way can be better express the functionality to the user. Users can easily understand the functionality.
  3. It requires less maintenance.
  4. It’s short and this makes it easy to implement.
  5. Users stories are useful in project planning as these are written in a manner which refers the difficulty level of the Project so that project team can understand the difficulty and time requirements (Sommerville, 2004).


  1. This makes it informal in nature, sometimes users failed to detect the main motto of the stories. Sometimes users got confused with the user requirements.
  2. The stories are mainly focused on the functional requirements.
  3. It's hard to make an agreement between the user and the developer as the customer may have different understand with the team, this will make the design more difficult (Cohn, 2008).

There are different requirement for a computer based system which are listed below.

  1. Functional requirements: this is the basic blueprint or the instructions for the activities and services which the computer would provide to the users.
  2. Non-Functional requirements: The non-functional requirements are the constraints which can be observed in the services and function offered by the system. These include time constraints, development constraints as well.
  3. User requirements: This mainly defines the basic user requirements which include the representation of the services which are being offered by the system for the users. These are generally shown in natural language and in the diagram.
  4. System requirements: The system requirements include the description of the system along with the constraints, properties.
  5. Logical database requirements: The logical database requirements are another kind of requirements which are needed to access and identify the files within a system so that all the functions and services must access

The requirement review is a critical and important part in the development. The requirement review consists the project team members like programmers, designers, and stockholders involved with it. At first company determine the requirement prior to development and later on the consult with different stockholders for a final approach towards the system. The system requirement review is mainly done with respect to the designers and developers who will be responsible for the developing the software and the user who will use it. The managers and employees also can attend the review meeting and can give the feedback at the time of brainstorming.

Process Model:

(Source: kotonaya, 1998)

The requirement review consists of 6 stages which are Plan review, Distribute documents

Prepare for reviews, Hold review meetings, follow up actions and Review documents.


In petrol pump where users swipe their card and specify the amount of fuel required. The fuel delivered and the amount debited from the account of the customer. To specify these activities we need to write a natural language description and user requirements. This includes,

The system must ask the users to swipe their cards for starting the process.

Once the card is perfectly swiped the system will ask the Personal Identity Number (PIN) which is linked to the card and this is required for the successful transaction.

The system will ask about the amount of fuel which is required by the user.

The systems then ask the user to insert the pump nozzle into the gas tank and a sensor will take care about the amount of fuel the tank can hold.

After successfully delivering the fuel the system will show the amount which is being debited from the user’s account.

The Cash Dispensing functions in ATM:

  • The system will ask the user to insert the debit card into the ATM Machine.
  • The system will ask the 5 digit PIN for successful login into the account.
  • The System then asks the user about the desired Withdrawal amount from the ATM.
  • The system will match the input amount with the Balance of the user’s account; if the balance is more than then the desired amount then the system will proceed.
  • The systems release a slip showing the withdrawal and remaining balance into the account.

Spell Checker in Word Processor:

  • The system will identify the miswritten words with a red
  • When the user right clicks over the miswritten words the system will provide options such as a replace word ignore option or add to dictionary option.
  • Once the user chooses one option the system will mark the word as perfect and red underline will disappear.

5. Elicit requirements mean to find out the requirement from the stockholders. This is an important thing for proceeding with any kind of design and concept. There are different ways to find the elicit requirements, some of them are; interviewing, workshop, focus group and brain storming (Liles, 2012).

Interviewing: The Business group either interviews a person or a group of stockholders to find out the requirements.

Workshops: Workshop is an important and beneficial way to find out the requirements from the user groups. These are organized by the project team to find the insight about it. The team and the stockholder will discuss each thing in detail so that they can address all the issues.

Focus Group: The project team selects a bunch of peoples who are either stockholders or experts from the required industry. The team developer, designers starts an interactive session with the peoples to find out more about the requirements.

Brainstorming: Brainstorming is basically done to quickly decide the ideas which can be useful for the project. A selected topic is being provided to the selected group on which they have to make relevant and accurate comments in a given time limit. This is also considered an important aspect in defining the requirements as people's provide different views regarding the requirements and project.


An engineer is responsible for the perfect accomplishment of all the requirements in the project. As we know he has to make sure that each of the user requirements must be addressed as well as the needs to track the relationship between the functional and non-functional requirements. One mainly recognizes the general requirements of the system. This address the main motto of the system like what a system must do and what they have to address. The nonfunctional requirements are not directly linked with the services which the software is delivering to the users. Moreover, it takes care about the performance perspective and the security of the system. These two have a relationship as for each function they need to address some non functional requirements, which are needed to be addressed for successful service delivery to the user. An engineer should make a list of the requirements which will take care of it for more user friendly services. Engineer has to address these issues perfectly so that they can perfectly address the entire requirement and deliver perfectly described service to the user (Kotonya, 1998)..


When a change has to be made in the system which needed to maintain consistency between the requirement and the system. These changes can be accomplished by making desired change in the programming code on a priority basis. The changes must be made after the complete analysis of the requirement and the problems which are being observed in the system. These are considered as an important aspect of the system as this will help the programmer to make the system more user-friendly. In emergency cases the modification on the code is done on the priority basis, after the changes the code will be submitted for the analysis and at last, the code will be restructured in the arrangement. If it has to done in other case, the first thing is to determine the requirement impacts and then made a change in the requirements. The programmer will made a change in the program code and update the code in the database.

The following model perfectly describes the changes:

(Source: kotonaya, 1998)

This model will address the changing process which could be done in emergency changes or in none –emergency cases.


Sommerville, .A, 2004, Software Engineering: Seventh Edition, Pearson Education

Cohn, .M, 2008, Advantages of User Stories for Requirements

Retrieved From

Kotonya, G. and Sommerville, I. 1998. Requirements Engineering: Processes and Techniques Chichester, UK: John Wiley and Sons.

Chemuturi, M. (2013). Requirements Engineering and Management for Software Development Projects.

Liles, .J, 2012, Methods for Eliciting - Not Gathering – Requirements

Retrieved from

How to cite this essay: