22
1 © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Software Design Software Design Processes and Processes and Management Management

Software Design Processes and Management

Embed Size (px)

DESCRIPTION

Software Design Processes and Management. Objectives. To understand how design consists of analysis and resolution activities To illustrate and explain generic processes for software product and engineering design To explain the five main tasks of project management - PowerPoint PPT Presentation

Citation preview

Page 1: Software Design Processes and Management

1© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Software Design Software Design Processes and Processes and ManagementManagement

Page 2: Software Design Processes and Management

2© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

ObjectivesObjectives

To understand how design consists of analysis and resolution activities

To illustrate and explain generic processes for software product and engineering design

To explain the five main tasks of project management

To understand iterative planning and tracking

To see how to apply project management principles to software design projects

Page 3: Software Design Processes and Management

3© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

TopicsTopics

Analysis and resolution Generic problem-solving and design

processes Generic software product and

engineering design processes Project management Iterative planning and tracking Applying project management to

software design projects

Page 4: Software Design Processes and Management

4© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Analysis and ResolutionAnalysis and Resolution

Confusion arises around the term design.

This confusion is removed by adopting the following terminology.

Analysis is breaking down a design problem to understand it.

Resolution is solving a design problem.

Analysis is breaking down a design problem to understand it.

Resolution is solving a design problem.

Page 5: Software Design Processes and Management

5© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Analysis and Resolution Analysis and Resolution in Software Designin Software Design

Product Design Analysis

Product Design Resolution

Software DesignProduct Idea : ProblemDesign Document : Solution

Engineering Design Analysis

Engineering Design Resolution

ProductIdea

SRS

DesignDocument

Page 6: Software Design Processes and Management

6© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

A Problem-Solving A Problem-Solving ProcessProcess

1. Understand the problem2. Generate candidate solutions3. Evaluate candidate solutions4. Select the best solution(s)5. Iterate if no solution is adequate6. Ensure the solution is complete and

well-documented, and deliver it

Page 7: Software Design Processes and Management

7© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

A Generic Design A Generic Design ProcessProcess

Analyze theProblem

Generic Designneed : Problemdesign : Solution

Resolve theProblem

need

ProblemStatement

design

[else]

[problemmisunderstood]

Page 8: Software Design Processes and Management

8© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

A Design Resolution A Design Resolution ProcessProcess

Generate/ImproveCandidate Solutions

Generic Design Resolutionproblem : Problem Statementdesign : Solution

problem

design

[else]

[adequate solution]

Solutions[candidate]

Evaluate CandidateSolutions

Solutions[evaluated]

SelectSolutions

Solutions[selected]

FinalizeDesign

This diagram shows details of the resolution activity from the previous diagram.

Page 9: Software Design Processes and Management

9© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Design Process Design Process CharacteristicsCharacteristics

The best solutions are rarely the first solutions designers think of.

• Designers should generate many candidate solutions.

The design process is highly iterative.

• Designers must frequently reanalyze the problem and must generate and improve solutions many times.

Page 10: Software Design Processes and Management

10© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

A Generic Software A Generic Software Product Design ProcessProduct Design Process

Generic Software Product DesignProject Mission Statement : ProblemSRS : Solution

Project Mission Statement

SRS

[adequate]

[else]

[complete]

[else]

Analyze Product Design Problem

Elicit/Analyze Detailed Needs

Generate/Improve Candidate Requirements

Evaluate Candidate Requirements

Select Requirements

Finalize Requirements

Analysis

Resolution

Page 11: Software Design Processes and Management

11© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

A Generic A Generic Software Software EngineerinEngineering Design g Design ProcessProcess

Generic Software Engineering DesignSRS : ProblemDesign Document : Solution

Analysis

ArchitecturalDesign

DesignDocument

SRS

[adequate architecture]

[else]

[adequate detailed design]

[adequate architecture]

Analyze SRS

Generate/ImproveCandidate Architectures

Evaluate CandidateArchitectures

Select Architecture

Finalize Architecture

Generate/Improve DetailedDesign Alternatives

Evaluate DetailedDesign Alternatives

[else]

Select DetailedDesign

Finalize Design

[else]

DetailedDesign

Page 12: Software Design Processes and Management

12© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Architectural and Detailed Architectural and Detailed DesignDesign

Later discussions will consider architectural and detailed design, the latter being further divided into mid-level and low-level detailed design.

Architectural design is high-level software engineering design

resolution.

Detailed design is low-level software engineering design resolution.

Architectural design is high-level software engineering design

resolution.

Detailed design is low-level software engineering design resolution.

Page 13: Software Design Processes and Management

13© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Operations versus Operations versus ProjectsProjects

Operations are standardized activities that occur continuously or at regular intervals.

• Payroll• Hiring and performance evaluation• Shipping and receiving

Projects are one-time efforts to achieve a particular current goal.

• Process improvement• Business restructuring• New product introduction (including design)

Page 14: Software Design Processes and Management

14© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Project Management Project Management ActivitiesActivities

Planning—Formulating a scheme for doing a project.

Organizing—Structuring the organizational entities involved in a project and assigning them authority and responsibilities.

Staffing—Filling the positions in an organizational structure and keeping them filled.

Tracking—Observing the progress of work and adjusting work and plans accordingly.

Leading—Directing and supporting people doing project work.

Page 15: Software Design Processes and Management

15© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Project PlanningProject Planning

Estimation is calculation of the approximate cost, effort, time or resources required to achieve some end.

A schedule specifies the start and duration of work tasks.

Tasks are allocated resources based on the schedule and estimates.

Risk analysis is an orderly process of identifying, understanding, and assessing risks (any occurrence with negative consequences).

Policies, procedures, tools, and techniques are specified to govern work.

Page 16: Software Design Processes and Management

16© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Project Organization and Project Organization and StaffingStaffing

Organizational structures• Project organization• Functional organization• Matrix organization

Team structures• Hierarchical teams• Democratic teams

Staffing• Often the single most

important factor in success is having good people to do the work.

Page 17: Software Design Processes and Management

17© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Project TrackingProject Tracking

Projects may not go as planned for many reasons.

• Resource consumption is not as expected.• Tasks do not take as long as expected.• Policies, procedures, tools, or techniques

cause problems.• Something bad occurs (illness, budget cuts,

equipment failures, etc. When plans fail they must be adjusted.

Page 18: Software Design Processes and Management

18© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Leading a ProjectLeading a Project

Direction is needed to follow plans, use resources efficiently, etc.

Directing people is not enough—people need inspiration, help, a congenial work environment, emotional support, etc.

Page 19: Software Design Processes and Management

19© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Iterative Planning and Iterative Planning and TrackingTracking

Good planning requires knowledge of tasks and their costs, risks, and other details not known until the project is under way—but this is not known when plans are made.

Iterative planning and tracking is making a rough base or initial project plan, and refining it at fixed periods during a project in light of tracking data and completed work products.

Page 20: Software Design Processes and Management

20© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Design Project Design Project ManagementManagement

All five project a management activities are needed to manage a design project.

Iterative planning and tracking is the best approach to planning and tracking.

The design project decomposition on the next slide is useful for planning, organization, staffing, and tracking.

Design constitutes the largest activity in software development, so design can drive an entire development project.

Page 21: Software Design Processes and Management

21© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Design Project Design Project DecompositionDecomposition

Work Phase Typical Work Products

Product Design

Analysis:Design Problem

Statement of interested parties, product concept, project scope, markets, business goalsModels (of the problem)Prototypes (exploring the problem)

Analysis:Detailed Needs

Client surveys, questionnaires, interview transcripts, etc.Problem domain descriptionLists of needs, stakeholdersModels (of the problem)Prototypes (exploring needs)

Resolution:Product Specification

Requirements specificationsModels (of the product)Prototypes (demonstrating the product)

Engineering Design

AnalysisModels (of the engineering problem)Prototypes (exploring the problem)

Resolution: Architectural Design

Architectural design modelsArchitectural design specificationsArchitectural prototypes

Resolution:Detailed Design

Detailed design modelsDetailed design specificationsDetailed design prototypes

Page 22: Software Design Processes and Management

22© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

SummarySummary

Analysis is breaking a design problem down to understand it; resolution is solving a design problem.

Design processes begin with analysis and have a highly iterative resolution phase.

Designers should generate many candidate solutions and expect to reanalyze and resolve the problem repeatedly.

Design management is project management and hence requires planning, organization, staffing, tracking, and leadership.

Iterative planning and tracking is the best way to make and revise plans during a project.