role of documentation in (oo) software development
TRANSCRIPT
![Page 1: Role of Documentation in (OO) Software Development](https://reader031.vdocument.in/reader031/viewer/2022012020/61688c65d394e9041f707968/html5/thumbnails/1.jpg)
Role of Documentation in
(OO) Software Development
Dr. Ugur Dogrusoz Computer Eng Dept, Bilkent Univ, Ankara, Turkey
Computer Eng Dept, Bilkent Univ
![Page 2: Role of Documentation in (OO) Software Development](https://reader031.vdocument.in/reader031/viewer/2022012020/61688c65d394e9041f707968/html5/thumbnails/2.jpg)
2
Outline
Documenting software
Motivation
Types and purpose of documentation
Documentation needed for CS 491-2
Object-oriented software engineering
Why building software is real engineering
Various software methodologies
Importance of modeling
Ugur Dogrusoz Computer Eng Dept, Bilkent Univ
![Page 3: Role of Documentation in (OO) Software Development](https://reader031.vdocument.in/reader031/viewer/2022012020/61688c65d394e9041f707968/html5/thumbnails/3.jpg)
3
Software Engineering
Appreciating Software Engineering
Build complex software systems within time and
budget in the context of frequent change
SE is an engineering discipline: analyze, design, and
then implement
Technical vs managerial knowledge
(hard vs soft skills)
Ugur Dogrusoz Computer Eng Dept, Bilkent Univ
![Page 4: Role of Documentation in (OO) Software Development](https://reader031.vdocument.in/reader031/viewer/2022012020/61688c65d394e9041f707968/html5/thumbnails/4.jpg)
4
SE Methodologies
Every software needs
Analysis (what to do)
Design (how to do)
Implementation & Testing
Process/algorithm used for development
Waterfall
Prototyping
Iterative
Incremental
XP (eXtreme Programming)
... Ugur Dogrusoz Computer Eng Dept, Bilkent Univ
![Page 5: Role of Documentation in (OO) Software Development](https://reader031.vdocument.in/reader031/viewer/2022012020/61688c65d394e9041f707968/html5/thumbnails/5.jpg)
5
Motivation Behind Documentation
Effective use of software
Communication medium among developers
Working in teams unavoidable! Need to express ideas
well both verbally and written
Soft skills (e.g. communicational skills) just as
important as technical skills
Written ideas are more concrete and avoid ambiguities
and incompleteness
Flow of information
across teams of different responsibilities
as team members change
Ugur Dogrusoz Computer Eng Dept, Bilkent Univ
![Page 6: Role of Documentation in (OO) Software Development](https://reader031.vdocument.in/reader031/viewer/2022012020/61688c65d394e9041f707968/html5/thumbnails/6.jpg)
6
Types of Documentation
Process documentation
Records process of development and maintenance
Plans, estimates, schedules, process quality docs,
project standards
Product documentation (focus of this talk!)
Describes a particular product being developed
User/exposed documentation
End-user documentation, administrator documentation, etc.
System/internal documentation (most CS491-2 docs)
From viewpoint of developers and maintainers
Ugur Dogrusoz Computer Eng Dept, Bilkent Univ
![Page 7: Role of Documentation in (OO) Software Development](https://reader031.vdocument.in/reader031/viewer/2022012020/61688c65d394e9041f707968/html5/thumbnails/7.jpg)
7
Problem Statement: report organization cs491
Introduction
Description
Constraints (e.g. economical)
Professional and ethical Issues
Requirements
References
Ugur Dogrusoz Computer Eng Dept, Bilkent Univ
Typically written by
the client
![Page 8: Role of Documentation in (OO) Software Development](https://reader031.vdocument.in/reader031/viewer/2022012020/61688c65d394e9041f707968/html5/thumbnails/8.jpg)
8
Modeling
To understand
real-life system to be automated (model it “as is”)
software system to be built (model it “as you want it to
be”)
Same idea as
blueprints for building bridges, houses, etc.
layouts for manufacturing VLSI chips
Ugur Dogrusoz Computer Eng Dept, Bilkent Univ
![Page 9: Role of Documentation in (OO) Software Development](https://reader031.vdocument.in/reader031/viewer/2022012020/61688c65d394e9041f707968/html5/thumbnails/9.jpg)
9
Modeling
Textual (e.g. long textual descriptions or
X3D) or visual/graphical (e.g. sketches or
flowchart)
UML (Unified Modeling Language) is a visual
modeling language to specify, visualize, modify,
construct and document the artifacts of an
object-oriented software-intensive system under
development
Helps you model both application and software domains!
Ugur Dogrusoz Computer Eng Dept, Bilkent Univ
![Page 10: Role of Documentation in (OO) Software Development](https://reader031.vdocument.in/reader031/viewer/2022012020/61688c65d394e9041f707968/html5/thumbnails/10.jpg)
10
OO Analysis w/ UML
Ugur Dogrusoz Computer Eng Dept, Bilkent Univ
Problem Statement
Requirements
Elicitation
Functional Model Non-functional Req.
Analysis
Analysis Object Model Dynamic Model
Use Case
Diagrams
System
Design
State
Diagrams
Sequence
Diagrams
Class
Diagrams
Activity
Diagrams
![Page 11: Role of Documentation in (OO) Software Development](https://reader031.vdocument.in/reader031/viewer/2022012020/61688c65d394e9041f707968/html5/thumbnails/11.jpg)
11
Analysis: UML use case diagrams
Summary of use case model: relationships
between actors and use cases
Ugur Dogrusoz Computer Eng Dept, Bilkent Univ
![Page 12: Role of Documentation in (OO) Software Development](https://reader031.vdocument.in/reader031/viewer/2022012020/61688c65d394e9041f707968/html5/thumbnails/12.jpg)
12
OO Analysis w/ UML
Ugur Dogrusoz Computer Eng Dept, Bilkent Univ
Problem Statement
Requirements
Elicitation
Functional Model Non-functional Req.
Analysis
Analysis Object Model Dynamic Model
Use Case
Diagrams
System
Design
State
Diagrams
Sequence
Diagrams
Class
Diagrams
Activity
Diagrams
![Page 13: Role of Documentation in (OO) Software Development](https://reader031.vdocument.in/reader031/viewer/2022012020/61688c65d394e9041f707968/html5/thumbnails/13.jpg)
13
Analysis: object model
Ugur Dogrusoz Computer Eng Dept, Bilkent Univ
![Page 14: Role of Documentation in (OO) Software Development](https://reader031.vdocument.in/reader031/viewer/2022012020/61688c65d394e9041f707968/html5/thumbnails/14.jpg)
14
Analysis: UML sequence diagrams
Ugur Dogrusoz Computer Eng Dept, Bilkent Univ
![Page 15: Role of Documentation in (OO) Software Development](https://reader031.vdocument.in/reader031/viewer/2022012020/61688c65d394e9041f707968/html5/thumbnails/15.jpg)
15
Analysis: UML activity diagrams
Ugur Dogrusoz Computer Eng Dept, Bilkent Univ
![Page 16: Role of Documentation in (OO) Software Development](https://reader031.vdocument.in/reader031/viewer/2022012020/61688c65d394e9041f707968/html5/thumbnails/16.jpg)
16
Analysis: user interface
User Interface
Menus and screens/forms/dialogs/windows
Navigational paths between menus and screens
Mock-ups
Ugur Dogrusoz Computer Eng Dept, Bilkent Univ
![Page 17: Role of Documentation in (OO) Software Development](https://reader031.vdocument.in/reader031/viewer/2022012020/61688c65d394e9041f707968/html5/thumbnails/17.jpg)
17
Analysis: report organization CS491
Introduction
Current system (if any)
Proposed system
Overview
Functional requirements
Nonfunctional requirements
Constraints (“Pseudo requirements”)
System models
...
Glossary & References
Ugur Dogrusoz Computer Eng Dept, Bilkent Univ
Share w/
customer; forms a
basis for a contract
w/ customer!
![Page 18: Role of Documentation in (OO) Software Development](https://reader031.vdocument.in/reader031/viewer/2022012020/61688c65d394e9041f707968/html5/thumbnails/18.jpg)
18
Analysis: report organization CS491
...
System models
Scenarios
Use case model
Object model
Dynamic models
User interface
Glossary
References
Ugur Dogrusoz Computer Eng Dept, Bilkent Univ
Use Case Diagrams
Class Diagrams
Sequence, State & Activity Diagrams
For the sake of
developers
![Page 19: Role of Documentation in (OO) Software Development](https://reader031.vdocument.in/reader031/viewer/2022012020/61688c65d394e9041f707968/html5/thumbnails/19.jpg)
19
Analysis: summary
Ugur Dogrusoz Computer Eng Dept, Bilkent Univ
Application domain is modeled to fully
understand the real-life system
“as is” (vs. “as you want it to be”)
Resulting model
specifies exactly what the system is going to do
is a contract between developer and customer
is input to design phase
![Page 20: Role of Documentation in (OO) Software Development](https://reader031.vdocument.in/reader031/viewer/2022012020/61688c65d394e9041f707968/html5/thumbnails/20.jpg)
20
OO Design w/ UML
Analysis: focuses on the application domain
Design: focuses on the solution domain
The solution domain is changing very rapidly
Design knowledge is a moving target
what vs. how
Ugur Dogrusoz Computer Eng Dept, Bilkent Univ
![Page 21: Role of Documentation in (OO) Software Development](https://reader031.vdocument.in/reader031/viewer/2022012020/61688c65d394e9041f707968/html5/thumbnails/21.jpg)
21
OO Design w/ UML
Ugur Dogrusoz Computer Eng Dept, Bilkent Univ
System
Design
System Design
Object Model
Subsystem
Decomposition
Object
Design
Analysis Object Model Dynamic Model
Class
Diagrams
Design Goals
Implementation & Testing
Object Design Model
Software
Deployment Diagrams
Component Diagrams
![Page 22: Role of Documentation in (OO) Software Development](https://reader031.vdocument.in/reader031/viewer/2022012020/61688c65d394e9041f707968/html5/thumbnails/22.jpg)
22
Design goals: typical tradeoffs
Functionality v. Usability
Cost v. Robustness
Efficiency v. Portability
Rapid development v. Functionality
Cost v. Reusability
Backward Compatibility v. Readability
Space v. Speed
Ugur Dogrusoz Computer Eng Dept, Bilkent Univ
A low cost system does not do much
error checking (e.g. 5.00 or 5,00 Euros). It’d be very difficult to build a real-
time game that is portable.
![Page 23: Role of Documentation in (OO) Software Development](https://reader031.vdocument.in/reader031/viewer/2022012020/61688c65d394e9041f707968/html5/thumbnails/23.jpg)
23
Design: subsystem decomposition
Subsystem
Collection of classes, associations, operations, events
and constraints that are closely interrelated with each
other
Great way to handle complexity
Ugur Dogrusoz Computer Eng Dept, Bilkent Univ
![Page 24: Role of Documentation in (OO) Software Development](https://reader031.vdocument.in/reader031/viewer/2022012020/61688c65d394e9041f707968/html5/thumbnails/24.jpg)
24
Design: subsystem decomposition
From objects to subsystems, taking into
account the non-functional requirements
No single/fixed algorithm
High coherence & low coupling
Initial decomposition usually derived from
functional requirements; constantly revised as
new issues addressed
The objects and classes from the object model
could be the “seeds” for the subsystems
Ugur Dogrusoz Computer Eng Dept, Bilkent Univ
![Page 25: Role of Documentation in (OO) Software Development](https://reader031.vdocument.in/reader031/viewer/2022012020/61688c65d394e9041f707968/html5/thumbnails/25.jpg)
25
Design: UML component diagrams
Component Diagram:
Illustrates dependencies between components at
design time, compilation time and runtime.
Ugur Dogrusoz Computer Eng Dept, Bilkent Univ
![Page 26: Role of Documentation in (OO) Software Development](https://reader031.vdocument.in/reader031/viewer/2022012020/61688c65d394e9041f707968/html5/thumbnails/26.jpg)
26
Design: UML component diagrams
Ugur Dogrusoz Computer Eng Dept, Bilkent Univ
![Page 27: Role of Documentation in (OO) Software Development](https://reader031.vdocument.in/reader031/viewer/2022012020/61688c65d394e9041f707968/html5/thumbnails/27.jpg)
27
Design: UML deployment diagrams
Deployment Diagram:
Once we have done
Subsystem decomposition
Concurrency
Hardware/Software Mapping
Illustrates the distribution of components at run-time.
Deployment diagrams use nodes and connections to
depict the physical resources in the system.
Ugur Dogrusoz Computer Eng Dept, Bilkent Univ
![Page 28: Role of Documentation in (OO) Software Development](https://reader031.vdocument.in/reader031/viewer/2022012020/61688c65d394e9041f707968/html5/thumbnails/28.jpg)
28
Design: UML deployment diagrams
Ugur Dogrusoz Computer Eng Dept, Bilkent Univ
![Page 29: Role of Documentation in (OO) Software Development](https://reader031.vdocument.in/reader031/viewer/2022012020/61688c65d394e9041f707968/html5/thumbnails/29.jpg)
29
High-level design: report organization CS491
Introduction
Purpose of the system
Design goals
Definitions, acronyms, and abbreviations
Overview
Current software architecture (if any)
…
Ugur Dogrusoz Computer Eng Dept, Bilkent Univ
![Page 30: Role of Documentation in (OO) Software Development](https://reader031.vdocument.in/reader031/viewer/2022012020/61688c65d394e9041f707968/html5/thumbnails/30.jpg)
30
High-level design: report organization CS491
…
Proposed software architecture Overview
Subsystem decomposition
Hardware/software mapping
Persistent data management
Access control and security
Global software control
Boundary conditions
Subsystem services
Glossary & References
Ugur Dogrusoz Computer Eng Dept, Bilkent Univ
![Page 31: Role of Documentation in (OO) Software Development](https://reader031.vdocument.in/reader031/viewer/2022012020/61688c65d394e9041f707968/html5/thumbnails/31.jpg)
31
OO Design w/ UML
Ugur Dogrusoz Computer Eng Dept, Bilkent Univ
System
Design
System Design
Object Model
Subsystem
Decomposition
Object
Design
Analysis Object Model Dynamic Model
Class
Diagrams
Design Goals
Implementation & Testing
Object Design Model
Software
Deployment Diagrams
Component Diagrams
![Page 32: Role of Documentation in (OO) Software Development](https://reader031.vdocument.in/reader031/viewer/2022012020/61688c65d394e9041f707968/html5/thumbnails/32.jpg)
32
Design: UML class diagrams
Ugur Dogrusoz Computer Eng Dept, Bilkent Univ
![Page 33: Role of Documentation in (OO) Software Development](https://reader031.vdocument.in/reader031/viewer/2022012020/61688c65d394e9041f707968/html5/thumbnails/33.jpg)
33
Low-level design: report organization CS492
Introduction
Object design trade-offs
Interface documentation guidelines Collections have an iterator() method returning an Iterator
Engineering standards (e.g., UML and IEEE)
Definitions, acronyms, and abbreviations
Packages
Class Interfaces
Glossary & References
Ugur Dogrusoz Computer Eng Dept, Bilkent Univ
![Page 34: Role of Documentation in (OO) Software Development](https://reader031.vdocument.in/reader031/viewer/2022012020/61688c65d394e9041f707968/html5/thumbnails/34.jpg)
34
Final report organization CS492
Final software architecture
Status
User’s manual
Misc.
Impact
New tools and technologies
Library and Internet resources used
Ugur Dogrusoz Computer Eng Dept, Bilkent Univ
![Page 35: Role of Documentation in (OO) Software Development](https://reader031.vdocument.in/reader031/viewer/2022012020/61688c65d394e9041f707968/html5/thumbnails/35.jpg)
35
References
Software Documentation, Ian Sommerville, 2011
OO Software Engineering, Using UML, Patterns, and
Java, Bernd Bruegge and Allen H. Dutoit, 2010
Ugur Dogrusoz Computer Eng Dept, Bilkent Univ
![Page 36: Role of Documentation in (OO) Software Development](https://reader031.vdocument.in/reader031/viewer/2022012020/61688c65d394e9041f707968/html5/thumbnails/36.jpg)
36
Questions?
Thanks for your attention!
Ugur Dogrusoz Computer Eng Dept, Bilkent Univ
![Page 37: Role of Documentation in (OO) Software Development](https://reader031.vdocument.in/reader031/viewer/2022012020/61688c65d394e9041f707968/html5/thumbnails/37.jpg)
37
Quiz
Name and briefly explain two distinct types of
documentation for software
Ugur Dogrusoz Computer Eng Dept, Bilkent Univ