King Saud University College of Computer & Info Sciences Department of Software

King Saud University

College of Computer & Info Sciences

Department of Software Engineering




In this phase of the software life cycle you will play the role of a system architect. After interviewing the project sponsor/client you will clearly define the problem to be solved by the software system to be developed. In this phase, you describe “what” the system will do, not “how” it will do it. However, design consideration should take place during requirement analysis at the macro level (system architecture), so the software architect should make his role by identifying the current/existing solution/experience in the domain problem, because the new solutions come from the observation of existing solution and their limitations. Also, the Non-Functional Properties should be raised in this phase. In this phase, the system architect involves with an interaction with the client/user to determine their needs. It also describes the system functions and these descriptions allow test team members to begin to design the final acceptance tests based on these functions that insure the customer’s needs are met. The software engineering team must prepare for this phase by developing a list of questions designed to uncover the functional and qualitative requirements of the proposed software. They must arrange for an interview(s) with the client/user to get answers to these questions.

Questions revolve around finding out some of the following:

How the proposed system currently solves the problem?

What the client expects the system to do (its functions)?

What are the performance requirements?

What is the problem domain vocabulary?

In what type of environment will the system run?

Will it interact with other software or hardware systems, etc.?

When all these questions are answered and the team produces a document, the result will be a model of the system at a very high level of abstraction. The resulting document must then be presented to the client/user and evaluated by them. In order to prepare you for developing this document as a smoothly running team, the following activities are assigned. A description of items you need to include in the document appears in the next page.


Prepare a list of questions for the client/user to determine functional requirements, as well as the non-functional properties.

Set up an interview(s) with the client and ask the questions.

Develop the problem definition.

Develop the document.


(1st Deliverable)

Due Date ??

The problem definition document for your project may be organized as follows:

Cover page: The cover page should contain the title of the project, a list of the author names (indicate the leader of the team), and (optionally) the contribution of each member of the team in the preparation of the document. Group # and Section #.

Frontal matter

Table of contents.

Revision Control History

Version Number


Description of change and the reason for change

Introduction: Provide a short description of the project and its purpose, and why it is useful and

Interesting to the team members.

Problem Domain Analysis: describe the domain and the problem(s) to be solved and how the

problems will be addressed. You may identify the concepts and vocabulary relevant to the problem

domain under consideration.

The System Context View: Provide two user scenarios to describe how a user would interact with your system and what the benefit to them would be. These should include a scenario title and a description of the scenario including the inputs expected of the user and the outputs the system will provide to the user.

4 Functions & 3 NFP of the System: The functional and non-functional properties of your system.

Challenges: A discussion of any problems or challenges you expect to encounter.

Projection: There is a time limit for completion of this term project that is a reflection of real-world demands. In view of the time limit, and the expected performance, as well as the expected skill to be gained. Describe what you will accomplish by the end of the semester. This is done by creating an outline of functions and tasks of the system that you will finish within the period specified as well as the skills/knowledge you think you will gain. Use any automated tools to describe this section.