![Page 1: IS 556 Fall 20031 IS 556 Project Management Week 9 HOW TO HANDLE LARGE PROJECTS: Divide and Conquer Readings: On Time Within Budget - Ch.6 No presnter](https://reader030.vdocuments.us/reader030/viewer/2022032801/56649d535503460f94a2f8bc/html5/thumbnails/1.jpg)
IS 556 Fall 2003 1
IS 556 Project Management
Week 9 HOW TO HANDLE LARGE PROJECTS: Divide and Conquer Readings: On Time Within Budget - Ch.6No presnter groupDL Group [Group 9 DL -BankIreland (DL)]
Medisys Health Group - Group [Group 8 (DL) Medisys (DL) ]DL Group 8 - local Group [group 13 DL Only - Medisys]
Presenter Group [Group 10 - Eclectic - Medisys]
David Lash
![Page 2: IS 556 Fall 20031 IS 556 Project Management Week 9 HOW TO HANDLE LARGE PROJECTS: Divide and Conquer Readings: On Time Within Budget - Ch.6 No presnter](https://reader030.vdocuments.us/reader030/viewer/2022032801/56649d535503460f94a2f8bc/html5/thumbnails/2.jpg)
2David LashCS 556 - Winter
Objectives
Requirements/Design Issues Stepwise refinement Functional Decomposition Design Decomposition
Task DecompositionComponent based development
![Page 3: IS 556 Fall 20031 IS 556 Project Management Week 9 HOW TO HANDLE LARGE PROJECTS: Divide and Conquer Readings: On Time Within Budget - Ch.6 No presnter](https://reader030.vdocuments.us/reader030/viewer/2022032801/56649d535503460f94a2f8bc/html5/thumbnails/3.jpg)
3David LashCS 556 - Winter
Large Software Projects
Large Software Projects have extra challenges. Many tasks to coordinate and track How do you break apart the overall project
into smaller pieces? Are their pieces that can be reused?
![Page 4: IS 556 Fall 20031 IS 556 Project Management Week 9 HOW TO HANDLE LARGE PROJECTS: Divide and Conquer Readings: On Time Within Budget - Ch.6 No presnter](https://reader030.vdocuments.us/reader030/viewer/2022032801/56649d535503460f94a2f8bc/html5/thumbnails/4.jpg)
4David LashCS 556 - Winter
Stepwise RefinementNot possible to figure out all task at once
Use and iterative method to refine each iteration Increasing level of detail
Not hierarchical components Not hierarchical calling relationship between higher and lower level modules Grouping items by logical order Coding modules exist at lowest level of detail
System
Comp 1 Comp 2 Comp 2
Continuously refine components
This is called stepwise refinement.
![Page 5: IS 556 Fall 20031 IS 556 Project Management Week 9 HOW TO HANDLE LARGE PROJECTS: Divide and Conquer Readings: On Time Within Budget - Ch.6 No presnter](https://reader030.vdocuments.us/reader030/viewer/2022032801/56649d535503460f94a2f8bc/html5/thumbnails/5.jpg)
5David LashCS 556 - Winter
More on Hierarchy Charts
System
Comp 1 Comp 2 Comp 3
2.1 2.2 2.3
2.1.1 2.1.2 2.1.3
2.2.1 2.2.2
Overall subsystem name
Each item is logically part of sub-system. However, when builtindividual modules might be grouped differently.
![Page 6: IS 556 Fall 20031 IS 556 Project Management Week 9 HOW TO HANDLE LARGE PROJECTS: Divide and Conquer Readings: On Time Within Budget - Ch.6 No presnter](https://reader030.vdocuments.us/reader030/viewer/2022032801/56649d535503460f94a2f8bc/html5/thumbnails/6.jpg)
6David LashCS 556 - Winter
System decomposition and hierarchal chart
Stepwise refinement diagram - Logical decomposition of high level into low level components.
Hierarchical decomposition each component corresponds to a “real” system component. (Shows real calling hierarchy.)
For example item logically here but might be physically implemented here
![Page 7: IS 556 Fall 20031 IS 556 Project Management Week 9 HOW TO HANDLE LARGE PROJECTS: Divide and Conquer Readings: On Time Within Budget - Ch.6 No presnter](https://reader030.vdocuments.us/reader030/viewer/2022032801/56649d535503460f94a2f8bc/html5/thumbnails/7.jpg)
7David LashCS 556 - Winter
Functional DecompositionDecomposition into operational component as
seen by user Part of requirements phase Objective is to define system’s functional
characteristics as seen by user. Describe major functional operations of black
box but nothing inside black box. E.g., A function diagram for a bank ATM system
Might include • ability to update account information from central computer to
ATM Would not include
• communication method and/or protocol– (this is an internal
![Page 8: IS 556 Fall 20031 IS 556 Project Management Week 9 HOW TO HANDLE LARGE PROJECTS: Divide and Conquer Readings: On Time Within Budget - Ch.6 No presnter](https://reader030.vdocuments.us/reader030/viewer/2022032801/56649d535503460f94a2f8bc/html5/thumbnails/8.jpg)
8David LashCS 556 - Winter
Automatic Teller System:Functional Decomposition Diagram
Even though this component is on the “grey” edge of being design info, it is included here
![Page 9: IS 556 Fall 20031 IS 556 Project Management Week 9 HOW TO HANDLE LARGE PROJECTS: Divide and Conquer Readings: On Time Within Budget - Ch.6 No presnter](https://reader030.vdocuments.us/reader030/viewer/2022032801/56649d535503460f94a2f8bc/html5/thumbnails/9.jpg)
9David LashCS 556 - Winter
Functional decomposition of large systems
Sometimes functional decomposition is not clear A large inventory system might functionally include
human interface, database, report generator, Update logicMight not functionally include human interface as high level
• Since above leaves out important functions such as fail-over & backup
Functional decomposition should create foundation for design decomposition A functional decomposition team may meet to define and
select alternatives A good functional decomposition is selected based upon:
Reason (logical to divide a certain way)Ease of implementation (lead to a good design)
• Should mirror structured program (modules, independence, etc.)Comprehensiveness (everything covered)
![Page 10: IS 556 Fall 20031 IS 556 Project Management Week 9 HOW TO HANDLE LARGE PROJECTS: Divide and Conquer Readings: On Time Within Budget - Ch.6 No presnter](https://reader030.vdocuments.us/reader030/viewer/2022032801/56649d535503460f94a2f8bc/html5/thumbnails/10.jpg)
10David LashCS 556 - Winter
Design Decomposition
Division into lower level components that coincide with software modules is usually done after functional decomposition
Done in a stepwise fashion Best used as a method for providing increasing
detail For example, might decide main functional
components of ATM system are The automatic teller terminal The main computer The computer network
![Page 11: IS 556 Fall 20031 IS 556 Project Management Week 9 HOW TO HANDLE LARGE PROJECTS: Divide and Conquer Readings: On Time Within Budget - Ch.6 No presnter](https://reader030.vdocuments.us/reader030/viewer/2022032801/56649d535503460f94a2f8bc/html5/thumbnails/11.jpg)
11David LashCS 556 - Winter
A Design Decomposition of ATM
These may correspond to actual software modules
These are category names (may become susbsystem names). There is not one module that represents each of these but a set developed at the lower levels.
![Page 12: IS 556 Fall 20031 IS 556 Project Management Week 9 HOW TO HANDLE LARGE PROJECTS: Divide and Conquer Readings: On Time Within Budget - Ch.6 No presnter](https://reader030.vdocuments.us/reader030/viewer/2022032801/56649d535503460f94a2f8bc/html5/thumbnails/12.jpg)
12David LashCS 556 - Winter
A fully decomposed design diagram
There can be huge sets of modules at lowest levels. If had to review design using only the lowest level modules could be very difficult to understand and grasp system
Might be the high level design. Might review this separately
![Page 13: IS 556 Fall 20031 IS 556 Project Management Week 9 HOW TO HANDLE LARGE PROJECTS: Divide and Conquer Readings: On Time Within Budget - Ch.6 No presnter](https://reader030.vdocuments.us/reader030/viewer/2022032801/56649d535503460f94a2f8bc/html5/thumbnails/13.jpg)
13David LashCS 556 - Winter
Design Decomposition
Good design is basis for software structure
Software Engineering has lots to say about design decomposition Independent software components Simple interfaces (minimize coupling) Information hiding
Produce modules that hide their design and data structures (enable simple changes to data structure)
![Page 14: IS 556 Fall 20031 IS 556 Project Management Week 9 HOW TO HANDLE LARGE PROJECTS: Divide and Conquer Readings: On Time Within Budget - Ch.6 No presnter](https://reader030.vdocuments.us/reader030/viewer/2022032801/56649d535503460f94a2f8bc/html5/thumbnails/14.jpg)
14David LashCS 556 - Winter
Determination of Project Tasks
Design decomposition => determine software design and modules
How determine the project tasks? Use WBS => A method of decomposing tasks Uses stepwise refinement Derived from statement of work Used to track status and assignment data
![Page 15: IS 556 Fall 20031 IS 556 Project Management Week 9 HOW TO HANDLE LARGE PROJECTS: Divide and Conquer Readings: On Time Within Budget - Ch.6 No presnter](https://reader030.vdocuments.us/reader030/viewer/2022032801/56649d535503460f94a2f8bc/html5/thumbnails/15.jpg)
15David LashCS 556 - Winter
WBS and Decomposition. WBS and Design decomposition are general divide and
conquer approaches To understand and work with something so large need to divide up
pieces to understand it. Ishikawa (~1970s): “Categorization is the first part of
understanding”. Categories or subsystems provide method to understand and see
the big picture Details are developed one step at a time. Lowest levels represent module or in WBS case specific work tasks.
WBS Represents all work tasks (not software components) ALL work must be part of a task in this document
Over time the WBS is refined (tasks added) Use WBS to assign resources to tasks Many different tools exist to create project plans (e.g., Microsoft
Project) from WBS
![Page 16: IS 556 Fall 20031 IS 556 Project Management Week 9 HOW TO HANDLE LARGE PROJECTS: Divide and Conquer Readings: On Time Within Budget - Ch.6 No presnter](https://reader030.vdocuments.us/reader030/viewer/2022032801/56649d535503460f94a2f8bc/html5/thumbnails/16.jpg)
16David LashCS 556 - Winter
WBS and Decomposition.Each low level design decomposition module
has 3 tasks: Design Coding Unit testing
We would also include non-development tasks Acquire development machines Install test machines Set up change control systemTraining
Staffing
![Page 17: IS 556 Fall 20031 IS 556 Project Management Week 9 HOW TO HANDLE LARGE PROJECTS: Divide and Conquer Readings: On Time Within Budget - Ch.6 No presnter](https://reader030.vdocuments.us/reader030/viewer/2022032801/56649d535503460f94a2f8bc/html5/thumbnails/17.jpg)
17David LashCS 556 - Winter
Work Breakdown Structure: Task Designation
At lowest level, includes all project tasks.
![Page 18: IS 556 Fall 20031 IS 556 Project Management Week 9 HOW TO HANDLE LARGE PROJECTS: Divide and Conquer Readings: On Time Within Budget - Ch.6 No presnter](https://reader030.vdocuments.us/reader030/viewer/2022032801/56649d535503460f94a2f8bc/html5/thumbnails/18.jpg)
18David LashCS 556 - Winter
Individual Task Assignment
![Page 19: IS 556 Fall 20031 IS 556 Project Management Week 9 HOW TO HANDLE LARGE PROJECTS: Divide and Conquer Readings: On Time Within Budget - Ch.6 No presnter](https://reader030.vdocuments.us/reader030/viewer/2022032801/56649d535503460f94a2f8bc/html5/thumbnails/19.jpg)
19David LashCS 556 - Winter
Large Projects and Subsystems
Subsystem contains most characteristics of main system For example, ATM might have
Main computer subsystemAutomatic teller subsystem
But … a subsystem is not intended to work on its own
Massive projects require division into subsystems (each make be looked at as separate systems)
Often separate or sometime deputy PM is assigned to each subsystem Might have several PM that each manage separate
subsystem and overall release manager.
![Page 20: IS 556 Fall 20031 IS 556 Project Management Week 9 HOW TO HANDLE LARGE PROJECTS: Divide and Conquer Readings: On Time Within Budget - Ch.6 No presnter](https://reader030.vdocuments.us/reader030/viewer/2022032801/56649d535503460f94a2f8bc/html5/thumbnails/20.jpg)
20David LashCS 556 - Winter
Component Based DevelopmentCBD- Reuse of previously built components
Particularly useful for large system development CBD are software building blocks Can be developed internal (inheirted) or purchase
(acquired) Might be :
Algorithm implementation (like a sort). Drivers (like hardware interface driver)Communication stacks
For example, Suppose develop graphical interfaces on wide variety of
hardwareTeams develop modules with standard API to hardware Hardware team develop drivers as components.
![Page 21: IS 556 Fall 20031 IS 556 Project Management Week 9 HOW TO HANDLE LARGE PROJECTS: Divide and Conquer Readings: On Time Within Budget - Ch.6 No presnter](https://reader030.vdocuments.us/reader030/viewer/2022032801/56649d535503460f94a2f8bc/html5/thumbnails/21.jpg)
21David LashCS 556 - Winter
From On-time
![Page 22: IS 556 Fall 20031 IS 556 Project Management Week 9 HOW TO HANDLE LARGE PROJECTS: Divide and Conquer Readings: On Time Within Budget - Ch.6 No presnter](https://reader030.vdocuments.us/reader030/viewer/2022032801/56649d535503460f94a2f8bc/html5/thumbnails/22.jpg)
22David LashCS 556 - Winter
Component Based Development
Standard 1420 (IEEE 1999) -> defines minimal set of information that items need to exchange Container => refers to the shared context of
interactions between components. Components advantages
Known commodity Refined over time Reuse saves time and money Effective on large projects Equivalent to “parts on a shelf” Example: Microsoft Windows plug and play
Application interfaces
![Page 23: IS 556 Fall 20031 IS 556 Project Management Week 9 HOW TO HANDLE LARGE PROJECTS: Divide and Conquer Readings: On Time Within Budget - Ch.6 No presnter](https://reader030.vdocuments.us/reader030/viewer/2022032801/56649d535503460f94a2f8bc/html5/thumbnails/23.jpg)
23David LashCS 556 - Winter
In Conclusions Project Management is a leadership position We’ve spent a fair amount of time
Analyzing situations Figuring out what the real problem is
Project management wise. Need to know How to work with developers How to develop How to work with management
What do they expect? How to ask non-offending questions How to say no When to make consensus decisions The tools of your trade (scheduling, status reports) Communication skills (present, write, talk, think) Business issues (how to select projects, contracts) Estimation methods