1Design ConstraintsSoftware Engineering DesignLecture 92Design GoalsBefore leaping from Requirements Analysis into System Design, you should ensure that you have identified the design goals for your systemMany design goals can be inferred from the non-functional requirements or the application domain. Others should be checked with the client.Design Goals need to be stated explicitly so that future design criteria can be made consistently, following the same set of criteria3Types of Design GoalThere are many desirable qualities which may be design goals for your system:performancedependabilitycostmaintenanceend user criteriaMeeting some of these goals may conflict with meeting others - can you think of an example of conflicting goals ?4Design Goal ExampleClassify each design goal below according to performance, dependability, cost, maintenance, end user criteriaUsers must be given feedback within 1 sec of issuing a commandThe TicketDistributor must be able to issue train tickets even in the event of a network failureThe housing of the TicketDistributor must allow fornew buttons to be installed if the number of different fares increasesThe AutomatedTellerMachine must withstand dictionary attacks (ie. ID numbers discovered by systematic trial)The user interfaces of the system should prevent users from issuing commands in the wrong order5Design Goals come from RequirementsA functional requirement describes a system service or function. A non-functional requirement is a constraint placed on the system or on the development process Note: we shall classify B&Ds pseudo requirements as a special class of non-functional requirementsCheck lists are useful for identifying non-functional requirements6Type of Non-functional Requirements 3.3.1 User interface and human factors 3.3.2 Documentation 3.3.3 Hardware considerations 3.3.4 Performance characteristics 3.3.5 Error handling and extreme conditions 3.3.6 System interfacing 3.3.7 Quality issues 3.3.8 System modifications 3.3.9 Physical environment3.3.10 Security issues3.3.11 Resources and management issues
7NFR Trigger Questions (1)3.3.1 User interface and human factorsWhat type of user will be using the system?Will more than one type of user be using the system?What sort of training will be required for each type of user?Is it particularly important that the system be easy to learn?Is it particularly important that users be protected from making errors?What sort of input/output devices for the human interface are available, and what are their characteristics?8NFR Trigger Questions (2)3.3.2 DocumentationWhat kind of documentation is required?What audience is to be addressed by each document?3.3.3 Hardware considerationsWhat hardware is the proposed system to be used on?What are the characteristics of the target hardware, including memory size and auxiliary storage space?9NFR Trigger Questions (3)3.3.4 Performance characteristicsAre there any speed, throughput, or response time constraints on the system?Are there size or capacity constraints on the data to be processed by the system?3.3.5 Error handling and extreme conditionsHow should the system respond to input errors?How should the system respond to extreme conditions?10NFR Trigger Questions (4)3.3.6 System interfacingIs input coming from systems outside the proposed system?Is output going to systems outside the proposed system?Are there restrictions on the format or medium that must be used for input or output?11NFR Trigger Questions (5)3.3.7 Quality issuesWhat are the requirements for reliability?Must the system trap faults?Is there a maximum acceptable time for restarting the system after a failure?What is the acceptable system downtime per 24-hour period?Is it important that the system be portable (able to move to different hardware or operating system environments)?12NFR Trigger Questions (6)3.3.8 System ModificationsWhat parts of the system are likely candidates for later modification?What sorts of modifications are expected?3.3.9 Physical EnvironmentWhere will the target equipment operate?Will the target equipment be in one or several locations?Will the environmental conditions in any way be outof the ordinary (for example, unusual temperatures,vibrations, magnetic fields, ...)?