Title: CS445 CS645 ECE451 Software Requirements Specification and Analysis
1CS445 / CS645 / ECE451Software Requirements
Specification and Analysis
- Lecture 01
- Introduction and admin
2Welcome!
- Its really great to be here.
- Youre a fabulous audience.
- Anyone here from out of town?
- Yada yada yada
3Course staff, web pages, etc
- Lecturer
- Prof. Mike Godfrey, DC2340, migod_at_uwaterloo.ca
- Head TA
- Davor Svetinovic, davorss_at_gmail.com
- Course web page
- http//www.student.cs.uwaterloo.ca/cs445
- Course newsgroup
- uw.cs.cs445
4Course details
- This is the first course in a sequence of three
project courses in Software Engineering - CS 445 / 645 / ECE 451
- Software requirements specification and analysis
- CS 446 / 646 / ECE 452
- Software design and architecture
- CS 447 / 647 / ECE 453
- Software testing, quality assurance, and
maintenance
5Expectations
- Attend lectures
- Read course notes as per schedule
- Attend all tutorials
- Work effectively in groups of 3-4
- Understand how the tools work
- Understand all of the project you hand in (you
will be tested)
6Course format
- Two official lecture slots
- 830 to 950 am Tues/Thurs MC4021
- One two hour tutorial slot
- 230 to 420 pm Thurs CPH 3388
- You MUST attend all of the tutorials
- Early in the term, extra lectures will be given
in these slots to allow you to ramp up on the
project details. - We will have some slack lecture/tutorial spots at
the end of term details TBA but some of it
wont be on the exam. - It will make you a wiser, better human being
7Texts
- Available at the bookstore
- Applying UML and Patterns An Introduction to
OOA/D and Iterative Development, 3rd edition,
Craig Larman, Prentice-Hall. - Its very good, but well only use the first 1/3
of it. - CSC445 course notes
- a collection of papers last terms version is
the same - DC library
- IEEE Recommended Practice for SRSs, 1993.
- It used to be in the course notes, but cost went
way up so it was nuked.
8Course Textbooks Optional
- Available in Bookstore and also on reserve in the
DC Library - Books on UML
- Rumbaugh, Jacobson, Booch, The Unified Modeling
Language Reference Manual (2nd ed. preferred),
Addison-Wesley, 1999/2004. - Fowler, UML Distilled (3rd ed. preferred),
Addison-Wesley, 2004. - Maciaszek, Requirements Analysis and System
Design, Addison-Wesley, 2001. - Books on SDL
- Braek and Haugen, Engineering Real Time Systems
An OO approach using SDL, 1993. The better SDL
book, but may be out-of-print - Ellsberger, Hogrefe, Sarma, SDL, Prentice-Hall,
1997.
9Course Textbooks Optional
- Available in Bookstore and also on reserve in the
DC Library - General requirements engineering, emphasis on
reasonable processes - Robertson and Robertson, Mastering the
Requirements Process, Addison-Wesley, 1999. - Leffingwell and Widrig, Managing Software
Requirements, Addison-Wesley, 2000. - Beautifully written classics, easy to read,
containing much wisdom - Jackson, Software Requirements Specifications,
Addison-Wesley, 1995. - Gause and Weinberg, Exploring Requirements,
Dorset House Publishing, 1989.
10Course project
- You will write a Software Requirements
Specification (SRS) for a small telephone
exchange and its associated information system. - Doing so will allow you to apply the software
engineering principles and techniques discussed
in lecture to the problems of eliciting,
documenting, and validating the specification of
a nontrivial software system. - To give better coverage of various specification
techniques and notations, we have designed the
course project to incorporate techniques used to
develop real-time software for embedded systems
and object-oriented techniques used to develop
information systems.
11Course project
- An SRS (to be discussed in detail) is basically a
big semi-formal document that details what the
proposed system is supposed to do. - It includes structured text plus diagrams (in our
case, using SDL and UML) - You will not write any code, per se, in CS445!
- But you will implement this system in CS446 and
test it in CS447
12Project Documents
- The following documents are available on the
projects course web page - Introduction to the Course Project
- The Interface Description
- The Course Project Deliverables
13Project
14Project
- At the highest level, your system must consist of
a Server and several Phone Subsystems. - The Server consists of one or more processes and
possibly a database. - Each Phone Subsystem amounts to a process that
uses the API described in the Hardware Interface
Description document to interface with a single
phone. - You are free to distribute or centralize the
responsibilities of your system over your Server
processes and the Phone Subsystems as you see
fit. - However, communication between your Server and
each Phone must occur over sockets. - The reason for this restriction is that,
conceptually, the Phone Subsystem is connected to
your system via an IP network. Thus, sockets are
the default form of inter-process communication.
15Project Requirements Overview
- Basic Call Processing
- A call from one phone to another using 4-digit
phone numbers. - Dialed Number Translation
- Convert the 4-digit phone number to an IP address
to locate the destination phone. - System Console
- Graphical interface to your system used by an
Administrator. - User Accounts
- For someone to use a phone, that phone must be
assigned to a user. This user will need a phone
number which must be published in someway to
allow dialed number translation to occur.
16Project Requirements Overview
- Maintenance
- Run system tests periodically and display
failures to the Administrator. - Allow the Administrator to limit the number of
calls allowed in your system. - Display hardware status to the Administrator.
- Billing
- Each user is sent a bill showing all charges
incurred during a defined billing period. To
facilitate this, your system needs to keep a
record of every established call. - An Administrator can change the amounts charged
for a call by adding new billing plans or editing
existing ones.
17Project Specification Notations
- Call Processing
- SDL
- Data Management
- UML
- System Console
- Any drawing tool/language, e.g.,Visio, xfig, dia,
Visual C, tcl/tk - Maintenance
- UML
- Billing
- UML
18Project Format
- You will work in groups of 3-4 (4 is preferable).
- Each group will work with a single dedicated TA,
who will act as the customer. - TAs Davor Svetinovic, Troy Gonsalves, Irwin
Kwan, Naghmeh Ghafari - Your TA will be well versed in the project
details. - You have to ask him/her questions to figure out
the details of what is wanted in the system you
are specifying. The web documents are
deliberately vague. - Typically, your TA will not volunteer
information you have to learn how to ask the
right questions. - You should meet regularly with the TA, preferably
once per week. - You will use modelling / CASE tools to produce
the diagrams used in your SRS.
19Project Deliverables
- Deliverable Worth Week Due
- First Partial SRS 10 5
- Second Partial SRS 5 8
- Fix problems walkthru w. TA 3 9
- Critique of another group 2 9
- Final SRS 20 12
- In total, the project is worth 40 of your final
grade. - Details on what belongs in each deliverable and
the exact due - dates are available on the course web page.
- The TA who is your customer, will also grade your
deliverables
20Project Lateness Penalties
- Deliverables are to be handed in to the
Instructor or the Head Project TA (Davor). - Lateness Penalty
- on time none
- 15 mins. 15
- 1 hour 25
- 2 hours 50
- 1 day 75
- 2 days 95
- After 2 hours, your deliverable will receive no
marks but will be graded in order to give you
feedback.
21How to Choose a Team
- groups of size 3 to 4 (4 is better)
- similar work habits
- similar goals and expectations
- similar or balanced abilities
- one member with good English and communication
skills - similar workloads and resources
- GOALs
- maximize equitable distribution of the workload
- minimize resentment
- You will likely be working with the same group
for three courses!
22Meetings with Your Customer (TA)
- The purpose of these meetings is to find out the
requirements of the telephone exchange system. - You, the team members, should take minutes of
your meetings with the TA so you have documented
what was agreed to. - These minutes should typed up and sent by e-mail
to the TA. You and the TA should iterate on the
text of these minutes until you agree on the
contents. - After that, both you and the TA will keep a copy
of the minutes with the words Agreed to by group
and TA added. - Meetings with your TA later in the term will
involve presentations of your requirements and
inspections.
23Course software
- Two modelling tools
- MagicDraw for UML diagrams
- SDT for SDL diagrams
- These tools are pretty sophisticated and take
some time to learn. - You can dump the desired diagrams into an image
file for importing into your SRS document. - Some kind of document processing tool
- LaTeX, OpenOffice, MS-Word, etc.
- Some kind of drawing tool / UI tool
- MS-Visio, xfig, tcl-tk, etc.
24Grading Scheme
- -age Item Week Due
- 40 Course Project
- 10 First Partial SRS 5
- 5 Second Partial SRS 8
- 3 Fix Problems Walkthrough 9
- 2 Critique 9
- 20 Final SRS 12
- 10 Midterm Exam 7
- 50 Final Exam ??
- 10 Graduate tutorial (oral written)
1012 - You must pass the final exam to pass the course.
- The midterm will be in-class Tues Feb 15th.
25Graduate Students
- Yes, graduate students must do 10 more!
- They must give a lecture near the end of term and
write a report that is due the last day of class. - Graduate students should send me e-mail about
selecting a topic. - Good places to start looking for a topic are in
the Dorfman paper. - All students must attend the grad lectures. The
content will be on the exam.
26Course web page, newsgroup, email
- Web page
- Will change over time, keep checking back.
- May contain some legacy info ask if you see
something that seems strange or our of date. - http//www.student.cs.uwaterloo.ca/cs445
- Newsgroup
- Mainly for announcements and lecture discussion,
not project discussion (ask your TA instead). - uw.cs.cs445
- Email contact
- Please send mail here, rather than to
instructor/head TA - cs445_at_student.cs.uwaterloo.ca
27CS445 is brought to you by
- these profs
- Jo Atlee original course designer
- Dan Berry
- Nancy Day
- Mike Godfrey
- and several others (esp. Davor)
- The letters S, R, and S ?
28Questions and Complaints ??
- If you have a lecture-related question, ask the
lecturer. - Probably its best to ask in class, so that
others can benefit from the answer - The TAs should be up on all of the lecture
material, tho, so you can also ask them. - If you have a project-related complaint or
question, ask your project TA. - If that doesnt work, ask the head TA.
- If that doesnt work, ask the lecturer.
29First Assignment
- Due Tuesday, 13 Jan 2003 230pm
- Form a team.
- Send plain text email (no html, doc, etc files)
to cs445_at_student.cs.uwaterloo.ca with the
following for each team member - name (family, private),
- student ID,
- UW userid (just one word and no _at_site), and
- preferred e-mail address
- in that order on one line with a space (and no
other punctuation) between each pair of items.
30Example
- Bauer, Bobby 123456777 rbauer bobby_at_kitchenerkids.
org - Dumart, Woody 123456666 wdumart
woody_at_kitchenerkids.org - Schmidt, Milt 123456555 mschmidt
milt_at_kitchenerkids.org
31Topics covered in CS445
- Software engineering, software lifecycle
processes, and requirements engineering - Domains, requirements, and specifications What
vs. how - Requirements elicitation
- Requirements specification notations
- SDL
- UML
- Algebraic specifications
- Temporal logic
- Non-functional requirements
- Software requirements specification documents
(SRSs) - User interfaces
- Validation (inspections, formal analysis)
- Cost estimation
- plus other topics TBA depending on time and
interest
32CS445 / CS645 / ECE451Software Requirements
Specification and Analysis
- Lecture 01
- Introduction and admin