80 likes | 265 Views
Software Engineering (CSE-3513) Lecture-3. Instructor: Sazid Zaman Khan Lecturer, Department of Computer Science and Engineering, IIUC. Software Development Lifecycle. Software Requirements.
E N D
Software Engineering (CSE-3513)Lecture-3 Instructor: SazidZaman Khan Lecturer, Department of Computer Science and Engineering, IIUC
Software Requirements • The requirements for a system are the descriptions of the services provided by the system and it’s operational constraints. • The process of finding out, analyzing, documenting, checking this services and constraints is called requirement engineering. • If a company wishes to let a contract for a large software development project, it must define it’s needs in a abstract way first, so that the contractors can bid. Then when the contract is awarded, the contractor must write a system definition for the client in more detail so that the client can understand and validate what the software will do.
Software Requirements • There are two levels of specifying the requirements: • User Requirement: These are statements in natural language plus diagrams of what services is expected from the software and which are the constraints under which it must operate. For example, it is used during tender call for a software project. • System Requirement: Set’s out the system functions, services and operations in detail. The system requirement document should be precise. It should define exactly what is to be implemented. For example, it is used once your company wins the tender, you can go the drawing board and sketch detail of requirements.
Software Requirements • Example of User and System Requirements: Figure-6-1 (Sommerville-8th edition- 143 P). • Functional Requirements: These are statements of services the system should provide, how the system should react to particular inputs and situations. Example: For a university library system called LIBSYS, used by faculty and students to order books, following are functional requirements: • The time and order for a book should be logged. • Every order shall have a unique order ID. • If there are abnormally high number of orders from a user, it should check out fro spam.
Software Requirements • Non-functional requirements: This are requirements that are not directly concerned with specific functions of the system, rather relate to emergent system properties such as reliability, response time, etc. It may also define constraints such as abilities of I/O devices (for example, the software should work on Ubuntu 12.04).
Software requirements • There are three types of non-functional requirements: • Product requirement: How fast the system executes, how much memory it requires, or portability for example an app should work on Android 2.2 and 2.3. • Organizational requirement: These are derived from policies and procedures of client and developer's organization. For example, the language to be used, delivery requirements, etc. • External requirement: These include factors external to the system. It defines how the system interacts with other software, for example, how Gooogle API (Application Programming Interface) is used in the software.