14
8/13/2019 Software Best Practices Team-1 http://slidepdf.com/reader/full/software-best-practices-team-1 1/14 Software Best Practices Session 1

Software Best Practices Team-1

Embed Size (px)

Citation preview

Page 1: Software Best Practices Team-1

8/13/2019 Software Best Practices Team-1

http://slidepdf.com/reader/full/software-best-practices-team-1 1/14

Software Best Practices

Session 1

Page 2: Software Best Practices Team-1

8/13/2019 Software Best Practices Team-1

http://slidepdf.com/reader/full/software-best-practices-team-1 2/14

2

Symptoms of Software

Development User needs not met

Requirements change

Modules don’t integrate 

Code hard to maintain

Late discovery of flaws

Poor quality and performance No coordinated effort

Build and release problems

Page 3: Software Best Practices Team-1

8/13/2019 Software Best Practices Team-1

http://slidepdf.com/reader/full/software-best-practices-team-1 3/14

3

Root Causes Insufficient requirements

Communication problem

Brittle architecture

Complexity of the domain

Poor testing Waterfall development

Page 4: Software Best Practices Team-1

8/13/2019 Software Best Practices Team-1

http://slidepdf.com/reader/full/software-best-practices-team-1 4/14

4

Software Best Practices Have been

harvested from

1000 of customers 1000 of projects

Industry experts

Develop SoftwareIteratively

Manage requirements  Visually model the

software(UML)

Build component

architectures Continuously verify

quality

Control changes

Page 5: Software Best Practices Team-1

8/13/2019 Software Best Practices Team-1

http://slidepdf.com/reader/full/software-best-practices-team-1 5/14

5

Waterfall Process Problems

Pushes risk forward

in time Costly to undo

mistakes fro earlierphases

Delays andaggregatesintegration andtesting

Code and unit test

Design

Subsystem integration

System test

Requirementsanalysis

Page 6: Software Best Practices Team-1

8/13/2019 Software Best Practices Team-1

http://slidepdf.com/reader/full/software-best-practices-team-1 6/14

6

Iterative Development Produces an Executable

InitialPlanning

Planning

Requirements

Analysis & Design

Implementation

Test

Deployment

Evaluation

Management

Environment

Each iterationresults in anexecutable release 

Page 7: Software Best Practices Team-1

8/13/2019 Software Best Practices Team-1

http://slidepdf.com/reader/full/software-best-practices-team-1 7/147

Requirement Management  A systematic approach to eliciting, organizing,

documenting and managing the changingrequirements of a software application

 Aspects of requirement management  Analyze the problem

Understand the user needs

Define the system Manage the scope

Refine the system definition

Build the right system

Page 8: Software Best Practices Team-1

8/13/2019 Software Best Practices Team-1

http://slidepdf.com/reader/full/software-best-practices-team-1 8/148

Build component architectures Component-based architectures enable economically

significant re-use

In contrast with re-use of individual modules,

significant design elements typically frameworks for important domain or enterprise

abstractions

can be applied to multiple related applications. 

The emergence of commercial componentinfrastructures such as Microsoft’s COM, the OMG’s CORBA, and Sun’s Enterprise Java Beans offer well-supported platforms with which to assemblecomponent-based architectures

Page 9: Software Best Practices Team-1

8/13/2019 Software Best Practices Team-1

http://slidepdf.com/reader/full/software-best-practices-team-1 9/149

Model visually  A model is a simplification of reality that provides a

complete description of a system from a particularperspective

Modeling is important because it helps thedevelopment team Visualize

Specify

Construct

and document the structure and behavior of a system’sarchitecture

Use Unified Modeling Language for communicationamong the team members and with the client

Page 10: Software Best Practices Team-1

8/13/2019 Software Best Practices Team-1

http://slidepdf.com/reader/full/software-best-practices-team-1 10/1410

Continuously verify the quality Software problems are 100 to 1000 times

more costlier to repair after deployment

While repairing software, we might looseopportunities, eventually loosing clients

 A software is qualitative if

The application does functionally what’s required 

Reliable

Software should perform under load and shouldbe delivered on time

Page 11: Software Best Practices Team-1

8/13/2019 Software Best Practices Team-1

http://slidepdf.com/reader/full/software-best-practices-team-1 11/1411

UML Modeland

Implementation

Tests

Iteration 1

Test Suite 1

Iteration 2

Test Suite 2

Iteration 4

Test Suite 4

Iteration 3

Test Suite 3

Test Each Iteration

Page 12: Software Best Practices Team-1

8/13/2019 Software Best Practices Team-1

http://slidepdf.com/reader/full/software-best-practices-team-1 12/1412

ALERTREPORT

Workspace

Management

Process

Integration

Parallel

Development

Build

Management

CM is more than just check-in andcheck-out 

What Do You Want to Control?

Control, track, and monitor changes toenable iterative development

Establish secure workspaces for eachdeveloper

 Automate integration and buildmanagement

Page 13: Software Best Practices Team-1

8/13/2019 Software Best Practices Team-1

http://slidepdf.com/reader/full/software-best-practices-team-1 13/1413

Controlling Parallel Development

• Multiple developers

• Multiple teams

• Multiple sites

Multiple iterations• Multiple releases

• Multiple projects

• Multiple platforms

Page 14: Software Best Practices Team-1

8/13/2019 Software Best Practices Team-1

http://slidepdf.com/reader/full/software-best-practices-team-1 14/14

14

Aspects of a CM System

• Change Request Management

• Configuration Status Reporting

• Configuration Management (CM)

Change Tracking• Version Selection

• Software Manufacture