Software Engineering Ii: Welcome To Cs 4311
Software Engineering Ii: Welcome To Cs 4311
WELCOME TO CS 4311
SOFTWARE ENGINEERING II
Spring 2018
CS 4311
Course Staff
2
1
Course Material
3
IBM SmartCloud
Resources available
Course info (syllabus, contact info, etc.)
Lecture notes
Project information
2
Topics
5
Configuration management
Software design analysis techniques
High-level software design
Software design specification
Software implementation
Software validation and verification
Software process improvement
Today’s Quote
6
Rick Cook
3
Learning Outcomes
7
4
Learning Outcomes (Cont.)
9
Textbook
10
Recommended:
R. Wirfs-Brock, R. Wilkerson, and L. Wiener, Designing
Object-Oriented Software, Prentice Hall, 1990
Other resources:
Shari Lawrence Pfleeger, Joanne Atlee, Software Engineering:
Theory and Practice, 4th Edition, Prentice Hall, 2009.
Scott W. Amber, The Elements of UML 2.0 Style, Cambridge
University Press, 2005.
Allan Vermeulen, et al., The Elements of Java Style, Cambridge
University Press, 2000.
5
Course Structure
11
Cooperative teamwork
Reading assignments
To prepare for lecture and in-class work
Project assignments
To apply the techniques learned to the project
Policy
Late submissions will be accepted only with previous agreement
(not after the fact)
6
Course Policy - Exams
13
Final exam
7
Course Policy - Grading
15
8
Preview of CS 4311 Topics
17
18
9
Preview of CS 4311 Topics
19
3 minutes
Architecture
Design
Implementation
Testing
10
What CS4311 is about
21
Architecture
Design
Implementation
Testing
What are these?
(3 minutes)
Outline of CS4311
22
Architecture
High-level design
Detailed design
Implementation
Integration
V&V and testing
11
Software Documentation
23
Why?
12
Why Documenting a Software Architecture? - 1
25
Architecture is the blueprint for the system and the project that develops it
It defines the work assignments.
It is the primary carrier of quality attributes.
It is the best artifact for early analysis.
It is the key to post-deployment maintenance and mining.
Documentation speaks for the architect, today, tomorrow, and 20 years from
now.
13
Why Documenting a Software Architecture? - 3
27
14
Uses and Audience
29
15
Principles of Sound Documentation
31
I have made this letter rather long only because I have not
had time to make it shorter.
Blaise Pascal
16
Write from the reader’s point of view
33
Your readers will appreciate your effort and be more likely to read
your document
(Which will make the business case for architecture documentation)
Each kind of information should be recorded in only one place. This makes
documents easier to use and change.
Repetition often confuses the reader, especially when information is
repeated in slightly different ways.
The reader wonders
“Was the difference intentional?”
“If so, why?”
“If not, which way is correct?”
17
Avoid Ambiguity -1
35
C1 C1
Even “simple” concepts can confuse. For example, what does the
arrow above mean?
C1 calls C2?
Data flows from C1 to C2?
C1 instantiates C2?
C1 sends a message to C2?
C1 is a subtype of C2?
C2 is a data repository and C1 is writing data to C2?
C1 is a repository and C2 is reading data from C1?
Avoid Ambiguity -2
36
Be sure to make the key meaningful: don't just say “element” and
“relation.”
Different element and relation types should have different symbols.
18
Avoid Ambiguity -3
37
Example of Keys
A standard organization
helps the reader navigate and find information
tells the writer what to document, where it belongs
helps plan the work and measure the work left to be done
lets the writer record information as soon as it is known, in whatever order it
is discovered
embodies completeness rules and helps with validation.
19
Use a Standard Organization - 2
39
Corollary #2: Don’t leave incomplete sections blank; instead, mark them
“to be determined.”
Better: “TBD by Revision 2.6”
Better still: “TBD by 14 November 2011”
Why?
Corollary #3: If a section doesn’t apply, don't leave it blank or delete it;
mark it “not applicable.”
Better: “not applicable because…
Why?
20
Record Your Rationale
41
Next week or next year, how will you remember? How will the next
architect know?
Recording your rationale requires discipline but can save enormous time in
the long run.
This rule applies throughout the entire life cycle of the system
Documentation that is incomplete or out of date
does not reflect the truth
disobeys its own rules about form and internal consistency
is not likely to be used
21
Keep Documentation Current, But Not Too Current. - 2
43
Contrast that to the architect who happily answers questions every time
the phone rings.
22
Review Documentation
45
Summary
46
23