1 CS 501 Spring 2006 CS 501: Software Engineering Lecture 10 Requirements 4.

Slides:



Advertisements
Similar presentations
1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 11 Designing for Usability I.
Advertisements

CS 501: Software Engineering Fall 2000 Lecture 10 Formal Specification.
ISBN Chapter 3 Describing Syntax and Semantics.
1 CS 501 Spring 2008 CS 501: Software Engineering Lecture 10 Requirements 3.
UI Standards & Tools Khushroo Shaikh.
CS CS 5150 Software Engineering Lecture 11 Usability 1.
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 12 Requirements IV.
CS CS 5150 Software Engineering Lecture 12 Usability 2.
1 CS 501 Spring 2005 CS 501: Software Engineering Lecture 8 Requirements II.
1 CS 501 Spring 2005 CS 501: Software Engineering Lecture 10 Requirements 4.
Copyright © 2012 Pearson Education, Inc. Chapter 1: Introduction to Computers and Programming.
CS CS 5150 Software Engineering Lecture 12 Usability 2.
1 CS 501 Spring 2007 CS 501: Software Engineering Lecture 10 Requirements 4.
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
CS /29/2004 (Recitation Objectives) and Computer Science and Objects and Algorithms.
CS CS 5150 Software Engineering Lecture 11 Usability 1.
1 CS 501 Spring 2005 CS 501: Software Engineering Lecture 11 Usability 1.
Describing Syntax and Semantics
Programming Logic and Design, Introductory, Fourth Edition1 Understanding Computer Components and Operations (continued) A program must be free of syntax.
1 CS 501 Spring 2005 CS 501: Software Engineering Lecture 26 Delivering the System.
CS 501: Software Engineering Fall 2000 Lecture 17 Design for Usability I.
CS CS 5150 Software Engineering Lecture 10 Requirements 3.
CS CS 5150 Software Engineering Lecture 10 Requirements 3.
CSCI 639 Topics in Software Engineering Assignment #4 Fall 2006.
1 CS 501 Spring 2006 CS 501: Software Engineering Lecture 9 Requirements 3.
Starting Out with C++: Early Objects 5/e © 2006 Pearson Education. All Rights Reserved Starting Out with C++: Early Objects 5 th Edition Chapter 1 Introduction.
Programming Logic and Design Fourth Edition, Introductory
CSC230 Software Design (Engineering)
CHAPTER 1 GC 101 Introduction to computers and programs.
CS102 Introduction to Computer Programming
Copyright © 2012 Pearson Education, Inc. Chapter 1: Introduction to Computers and Programming.
Chapter Introduction to Computers and Programming 1.
CSC 125 Introduction to C++ Programming Chapter 1 Introduction to Computers and Programming.
CSE 1340 Introduction to Computing Concepts Class 2.
Requirements-definition User analysis
These slides are designed to accompany Web Engineering: A Practitioner’s Approach (The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright.
1 SWE 513: Software Engineering Usability II. 2 Usability and Cost Good usability may be expensive in hardware or special software development User interface.
Chapter 1: Introduction to Computers and Programming.
Course: Software Engineering © Alessandra RussoUnit 1 - Introduction, slide Number 1 Unit 1: Introduction Course: C525 Software Engineering Lecturer: Alessandra.
1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 10 Techniques for Requirements Definition and Specification II.
1 The Software Development Process  Systems analysis  Systems design  Implementation  Testing  Documentation  Evaluation  Maintenance.
CS CS 5150 Software Engineering Lecture 11 Usability 1.
CS CS 5150 Software Engineering Lecture 10 Requirements 3.
Chapter 1 Introduction to Computers and C++ Programming Goals: To introduce the fundamental hardware and software components of a computer system To introduce.
1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 12 Designing for Usability II.
1 CS430: Information Discovery Lecture 18 Usability 3.
© Bennett, McRobb and Farmer Avoiding the Problems Based on Chapter 3 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and Design.
1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 24 Delivering the System.
CS 5150 Software Engineering Lecture 9 Usability 1.
The Software Development Process
1 CS 501 Spring 2008 CS 501: Software Engineering Lectures 11 & 12 Usability.
CS CS 5150 Software Engineering Lecture 12 Usability 2.
CS 360 Lecture 13.  Human Computer Interaction (HCI) is the academic discipline that studies how people interact with computers.  More HCI details during.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Copyright 2003 Scott/Jones Publishing Standard Version of Starting Out with C++, 4th Edition Chapter 1 Introduction to Computers and Programming.
1 CS 501 Spring 2004 CS 501: Software Engineering Lecture 9 Requirements 3.
© Bennett, McRobb and Farmer 2005
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 13 Usability 1.
Programming KOSSA Review --Justin Smith--. EMPLOYABILITY us/lesson/wesint1/2 us/lesson/wesint1/2.
1 CS 501 Spring 2005 CS 501: Software Engineering Lecture 12 Usability 2.
CS 5150 Software Engineering Lecture 9 Requirements 3.
5. 2Object-Oriented Analysis and Design with the Unified Process Objectives  Describe the activities of the requirements discipline  Describe the difference.
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 11 Requirements III.
Software Design and Development Development Methodoligies Computing Science.
CS 501: Software Engineering Fall 1999 Lecture 23 Design for Usability I.
Usability and user Interfaces
CS 501: Software Engineering
CS 501: Software Engineering Fall 1999
Presentation transcript:

1 CS 501 Spring 2006 CS 501: Software Engineering Lecture 10 Requirements 4

2 CS 501 Spring 2006 Course Administration Presentations, March 7-9 Read the instructions on the Assignments Web page. Reserve a time slot by sending to Time slots are listed on the home page of the Web site. First-come-first- served. Quiz 3 This quiz may be moved to March 16.

3 CS 501 Spring 2006 Planning for the Presentation How will you use the time? This is a presentation to the client, with the Instructor as a secondary audience. Possible topics: Overview of project and progress against plan Presentation of assumptions, decisions Summary of requirements in moderate detail What has been learned since feasibility study. Changes in plans Allow 15 minutes for questions. Expect interruptions. "This is our understanding of your requirements."

4 CS 501 Spring 2006 Planning for the Presentation Logistics Have a rehearsal, check visual aids and demonstrations. Then change nothing. Check out the equipment in the meeting room. What network will you use (if any). How will you connect a computer (if you do)? What about firewalls? Will one person act as chair and call on other members of the team? Never interrupt your colleagues. Not everybody is a great presenter, but everybody can be well-prepared.

5 CS 501 Spring 2006 Formal Specification Why? Precise standard to define and validate software. Why not? May be time consuming Methods are not suitable for all applications

6 CS 501 Spring 2006 Remember Formal specification does not prescribe the implementation With formal specification it is possible, at least theoretically, to generate code automatically from the specification, but this may not be the most effective way: Writing the generator may be a very large programming task. The resulting code may perform badly. Formal specification does not guarantee correctness If the specification is wrong, the system will be wrong.

7 CS 501 Spring 2006 Formal Specification using Mathematical Notation Mathematical requirements can be specified formally. Example: requirements from a mathematical package: B 1, B 2,... B k is a sequence of m x m matrices  1,  2,...  k is a sequence of m x m elementary matrices B 1 -1 =  1 B 2 -1 =  2  1 B k -1 =  k...  2  1 The numerical accuracy must be such that, for all k, B k B k -1 - I < 

8 CS 501 Spring 2006 Formal Specification Using Diagrams digit unsigned integer digit. E + - unsigned integer unsigned number Example: Pascal number syntax

9 CS 501 Spring 2006 Formal Specification of Programming Languages ::= | ::= { } ::=. { } |. { } E | E ::= | ::= + | - Example: Pascal number syntax

10 CS 501 Spring 2006 Formal Specification using Z ("Zed") Z is a specification language developed by the Programming Research Group at Oxford University around Z is used for describing and modeling computing systems. It is based on axiomatic set theory and first order predicate logic. Ben Potter, Jane Sinclair, David Till, An Introduction to Formal Specification and Z (Prentice Hall) 1991 Jonathan Jacky The Way of Z (Cambridge University Press) 1997

11 CS 501 Spring 2006 Informal: The function intrt(a) returns the largest integer whose square is less than or equal to a. Formal (Z): intrt: N N a : N intrt(a) * intrt(a) < a < (intrt(a) + 1) * (intrt(a) + 1) Example: Specification using Z

12 CS 501 Spring 2006 Example: Implementation of intrt (2n - 1) = n 2 Static specification does not describe the design of the system. A possible algorithm uses the mathematical identity:

13 CS 501 Spring 2006 Example: Program for intrt int intrt (int a) /* Calculate integer square root */ { int i, term, sum; term = 1; sum = 1; for (i = 0; sum <= a; i++) { term = term + 2; sum = sum + term; } return i; }

14 CS 501 Spring 2006 Formal Specification of Finite State Machine Using Z A finite state machine is a broadly used method of formal specification: Event driven systems (e.g., games) User interfaces Protocol specification etc., etc.,...

15 CS 501 Spring 2006 State Transition Diagram Patients Fields SetupReady Beam on Enter Start Stop Select field Select patient (lock on) (lock off)

16 CS 501 Spring 2006 State Transition Table Select Patient Select Field Enter lock off StartStop lock on Patients Fields Setup Ready Beam on Fields Patients Setup Ready Beam on Ready

17 CS 501 Spring 2006 Z Specification STATE ::= patients | fields | setup | ready | beam_on EVENT ::= select_patient | select_field | enter | start | stop | lock_off | lock_on FSM == (STATE X EVENT) STATE no_change, transitions, control : FSM Continued on next slide

18 CS 501 Spring 2006 Z Specification (continued) control = no_change transitions no_change = { s : STATE; e : EVENT (s, e) s } transitions = { (patients, enter) fields, (fields, select_patient) patients, (fields, enter) setup, (setup, select_patient) patients, (setup, select_field) fields, (setup, lock_off) ready, (ready, select_patient) patients, (ready, select_field) fields, (ready, start) beam_on, (ready, lock_on) setup, (beam_on, stop) ready, (beam_on, lock_on) setup }

19 CS 501 Spring 2006 Schemas Schema: The basic unit of formal specification. Enables complex system to be specified as subsystems Describes admissible states and operations of a system.

20 CS 501 Spring 2006 Z in Practice In carefully monitored industrial use, Z has been shown to improve the timeliness and accuracy of software development, yet it is not widely used in practice.  Complexity of notation makes communication with client difficult.  Few software developers are comfortable with the underlying axiomatic approach.  Heavy notation is awkward to manipulate with conventional tools, such as word processors.

21 CS 501 Spring 2006 User Interface Design: Requirements and Refinement It is very difficult to specify and comprehend an interactive interface in a textual documents Requirement documents benefit from sketches, comparison with existing systems, etc. Design documents should definitely include graphical elements and often benefit from a mock-up or other form of prototype. Implementation plans should include evaluation of user factors and time to make changes. User interfaces must be tested with users

22 CS 501 Spring 2006 The Design/Evaluate Loop Evaluate ? Design Build Analyze requirements

23 CS 501 Spring 2006 Requirements: Mock-up

24 CS 501 Spring 2006 Methods for Specifying Usability Requirements and Evaluation of Usability Initial Mock-upPrototypeProduction Client's opinions    Competitive analysis  Expert opinion   Focus groups   Observing users    Measurements  

25 CS 501 Spring 2006 Focus Group A focus group is a group interview Interviewer Potential users Typically 5 to 12 Similar characteristics (e.g., same viewpoint) Structured set of questions May show mock-ups Group discussions Repeated with contrasting user groups

26 CS 501 Spring 2006 Special Considerations: Disabilities What if the user: is visually impaired or color blind? does not speak English? is a poor typist? There is a tradition of blind programmers Navigation of web sites need not be only visual You may have a legal requirement to support people with disabilities

27 CS 501 Spring 2006 Special Considerations: Computer Systems and Networks The performance, reliability and predictability of computer systems and networks is crucial to usability Response time instantaneous for mouse tracking and echo of key stroke 5 seconds for simple transactions Example: Pipelined algorithm for the Mercury page turner Quality of Service for real time information

28 CS 501 Spring 2006 Special Considerations: Design Tensions in Networked Systems Client computers and network connections vary greatly in capacity Client software may run on various operating systems; it may be current or an earlier version System designers wish to control clients; users wish to configure their own environments

29 CS 501 Spring 2006 Special Considerations: Device-Aware User Interfaces Examples of devices: desk-top computer, fast network connection laptop computer, intermittent connectivity PalmPilot, synchronization smart telephone digital camera, camcorder Device-aware user interfaces are aware of: => performance of device => limited form factor (display, keyboard) => connectivity

30 CS 501 Spring 2006 Special Considerations: Usability and Cost Good usability may be expensive in hardware or special software development User interface development may be a major part of a software development project Programming environments provide powerful user interface toolkits Costs are multiplied if a user interface has to be used on different computers or migrate to different versions of systems Web browsers provide a general purpose user interface where others maintain the user interface software