OOSD--fall'04 Copyright © by [email protected] 51
Object-Oriented Software Development
What is Object-Oriented Development
Object-Oriented vs. Traditional Development
An Object-Oriented Development Framework
Phases, Activities, and Work Products
OOSD--fall'04 Copyright © by [email protected] 52
A work product is a “concrete result of a planned project-related activity such as analysis or project management. Work products include items delivered to the customer and items used purely internally within a project.”
Phases, Activities, and Work Products
[OOTC 97]
“A development phase is a state of product development that focuses on making progress on a particular aspect or facet.”
OOSD--fall'04 Copyright © by [email protected] 53
Project Management
Project Management
After initial project planning, define development activities and allocate resources to the activities. Allocate requirements to releases and manage project schedule and issues.
An organized list of work products that are expected to comprise the project workbook.
Project Workbook Outline Resource Plan
Schedule Risk/Option Management Plan Test Plan Issues
Analysis of the resources required for the successful completion of the project.
A task time line showing dates, milestones, critical path, etc.
Lists development options and describes the plan for minimizing project risks.
Outlines the project’s plan for testing the application.
A list of outstanding issues, questions, and concerns that are reviewed on a regular basis.
Phases Activities Work Products
Metrics The planned and actual measurements, and statistics.
OOSD--fall'04 Copyright © by [email protected] 54
Requirements Gathering
Phases Activities Work Products Requirements
Gathering
Group functional requirements (into use cases) and prioritize them.
Description of the problem to be solved in non-technical terms.
Problem Statement Use Cases (functional requirements)
An OO formalization of functional requirements describing the usage of the system by external agents.
Requirements that do not belong to user function, such as performance, platform, quality.
Nonfunctional Requirements
Prioritized Requirements
Defines the relative priorities of functional and non- functional system requirements.
OOSD--fall'04 Copyright © by [email protected] 55
UI Design
Phases Activities Work Products UI Design Document how users will
interact with the application.
Describes the user interface guidelines and standards.
Guidelines
Screen Flows Documents user navigation through the application’s user interface.
Screen Layouts
Documents details of all screens.
UI Prototype A prototype built to show users the ”look and feel.”
OOSD--fall'04 Copyright © by [email protected] 56
OOA&D
Phases Activities Work Products Object-
Oriented Analysis &
Design
Analysis:
Identify objects, their attributes, behaviors, and interrelationships.
Develop solutions to system usage scenarios in terms of active objects that group related tasks and communicate with other objects in order to complete them.
Records the details of the analysis and design approach being followed.
Guidelines
Description of the high-level components/
structures of the system and the design principles guiding the implementation.
System Architecture
Object Model A consolidated model describing the classes of a system together with their responsibilities and static interrelationships.
Scenarios Descriptions of required systems behaviour.
Scenarios refine use cases and are formalized in OIDs.
A working out of a scenario, showing the interactions between objects to accomplish (the implementation of) a task.
OIDs (Object Interaction Diagrams) Design:
Plan a solution to the problem examined during analysis in terms of interacting objects, within the constraints specified by the non- functional requirements.
Show the life cycle of an object, i.e. its possible states and state transitions.
State Models
Classes Detailed descriptions of all classes.
File Structure The files and their structure as required by the system.
Traceability Matrix
A cross-reference table that relates design elements to requirements.
Implementation & Testing
Phases Activities Work Products Implemen-
tation
Systematically code the classes as specified in the class descriptions so that they can be built and installed on the target platforms.
A description of the coding guidelines and standards.
Coding Guidelines
The actual implementation of the product.
Source Code User Support Materials
Documentation, delivered in various forms, which support the customer’s use of the product.
Testing Insure that the application meets the requirements set forth in the problem statement and requirements gathering work products.
The testing and quality assurance work products.
Test Cases
Prototypes Intermediate products.
Miscellaneous Work Products
Phases Activities Work Products
Meeting Minutes
The minutes of all project meetings.
Miscellaneous Glossary Definitions and terminology.
Back-level work products.
Historical Work Products Document miscellaneous
activities in appendices and add them to the project workbook.
... ...
The time logs of the people allocated to the project.
Time Logs
OOSD--fall'04 Copyright © by [email protected] 59 Presentations Materials from the team
presentations.
Course Related Work Products
Phases Activities Work Products
Subcontract A contract with an external team to deliver a specified piece of software.
Course organization
A presentation of your team and the members of the team.
Team Description Document course specific
aspects and support course organization.
Prototype Evaluation
An evaluation of another team’s prototype.
Weekly Reports
Progress reports with up-to- date project information.
Final Report A complete document set.
OOSD--fall'04 Copyright © by [email protected] 60
Work Product Definition
Description
Purpose
Participants
Timing
Techniques
Strengths
Weaknesses
Notation
Traceability
Advice & Guidance
Verification
Examples
References
Importance
Defined in detail in [OOTC 97]:
Seehttp://<course homepage>/Deliverables.html for a detailed description of the course’s deliverables and
http://forc.darkeye.net
for an example from a previous course.
OOSD--fall'04 Copyright © by [email protected] 61
Contents
Introduction
Object-Oriented Software Development
Project Management
Requirements Gathering
(G)UI Design
Object-Oriented Analysis and Design
Advanced Topics in OOA&D
Implementation and Testing
References
OOSD--fall'04 Copyright © by [email protected] 62
Project Management
produce
Activity Result
“Just do it.”
to produce
Activity Result
Planning
Evaluation
input to to improve
Think first and look what you did.
OOSD--fall'04 Copyright © by [email protected] 63
Project acquisition
Initial project planning
Resources assessment
Risk and option analysis
Cost estimation
Project scheduling
Project tracking and control
Reporting
Not required in this course
Project Management Activities
OOSD--fall'04 Copyright © by [email protected] 64
Define work breakdown structure
ÎBreak down the project into manageable tasks
ÎIdentify all activities/ tasks that a project must undertake
Distribute effort
ÎDefine duration and start/ end dates for all activities/ tasks ÎIdentify parallelism
Assign tasks
ÎAssign resources to tasks
0Do not forget the project functions, lectures, meetings, etc.
Project Scheduling
Example Effort Distribution
0 50 100 150 200 250 300 350 400
Lectures Meetings
Planning uirements
GUI design Analysis
Design Testing Coding
sentations Subcontract
Code subc.
of prototypeManual Final report
ing minutes Other 0
50 100 150 200 250
week35 week36 week37 week38 week39 week40 week41 week42 week43 week44
total time in h actual plan
Another Group
0 50 100 150 200 250 300 350
Lectures
Administration
Study assignments Documentation
Implementation Integration
Testing
OOSD--fall'04 Copyright © by [email protected] 67
Another Group (10 cr version)
OOSD--fall'04 Copyright © by [email protected] 68
Another Group (10 cr version)
OOSD--fall'04 Copyright © by [email protected] 69
A Project Schedule
OOSD--fall'04 Copyright © by [email protected] 70
Time vs budget vs quality
higher costs
reduce control/
documentation
decreasing quality
fix a problem
moretime overtimework
OOSD--fall'04 Copyright © by [email protected] 71
Task management
Risk management
Issue management
Quality management
Don’t forget to schedule time
for these activities
Project Tracking and Control
OOSD--fall'04 Copyright © by [email protected] 72
Risk Management
Investigate potential risk factors
Risk
Likelihood of occurrence
Impact
Define mitigation strategies (i.e. be prepared)
What can be done to avoid the problem(s)
What can be done to solve the problem(s)
Monitor risks
Determine if predicted risk occurs
Properly apply risk aversion steps
Collect info for future risk analysis
Example
Assume
Risk = High staff turnover
Likelihood of occurrence = 70%
Impact = Increase project time by 15%, project cost by 12%
Mitigation strategy
Identify high turnover causes
Reduce causes before project starts
Develop techniques to assure work continuity in light of turnover
For example ...
or ...
Top Ten Project Risks
Staff deficiencies
Unrealistic schedules and budgets
Developing the wrong functions
Developing the wrong interface
Over-engineering
Requirements volatility
Externally developed items
Externally performed tasks
Performance problems
Assumptions on technology
OOSD--fall'04 Copyright © by [email protected] 75
Software’s Ten Essentials
A product specification
A detailed user interface prototype
A realistic schedule
Explicit priorities
Active risk management
A quality assurance plan
Detailed activity lists
Software configuration management
Software architecture
An integration plan
See IEEE Software 14(2), Mar/Apr 1997, 143-144.
OOSD--fall'04 Copyright © by [email protected] 76
Significant Student Project Risks
Personnel schortfalls
Lack of Commitment
Interpersonal incompatibility
Lack of critical project skills (technical and management)
Communication problems
Unrealistic schedule, budget, and process
External (COTS) components
Requirements mismatch
UI mismatch
See Proceedings CSEE&T 2004, 132-137.
OOSD--fall'04 Copyright © by [email protected] 77
16 Critical Software Practices TM
OOSD--fall'04 Copyright © by [email protected] 78
Weekly Reports
Will help you and us to track project progress
Provides information/ data to access project status
Major events and/or decisions
Major changes to schedule (and resources)
Top-10 risk list
Major changes to issues list
Statistics/ data
Is project on schedule?
Resources spent (per person, per category, last week, accumulated)
Productivity (LOC, LOD, ...; last week, accumulated)
Summary of issues change log (new issues, closed issues, ... ; last week, accumulated)
(QA?)
(...)
OOSD--fall'04 Copyright © by [email protected] 79
An Example Top-10 Risk List
... ...
...
...
...
Two members are not available for this week. Other team members will put extra effort this week.
4 4
2 Personal
shortfalls
Performed multilingual NLP COTS survey. Applied for academic discount.
5 1
1 COTS
availability
# Weeks Previous
CurrentWeekly Ranking Risk Resolution Progress Risk Items