software engineering (cse3308): a quality experience chris hughes 04/06/2003

14
Software Engineering (CSE3308): A Quality Experience Software Engineering (CSE3308): A Quality Experience Chris Hughes Chris Hughes 04/06/2003 04/06/2003

Post on 22-Dec-2015

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Software Engineering (CSE3308): A Quality Experience Chris Hughes 04/06/2003

Software Engineering (CSE3308): A Quality ExperienceSoftware Engineering (CSE3308): A Quality Experience

Chris HughesChris Hughes04/06/200304/06/2003

Page 2: Software Engineering (CSE3308): A Quality Experience Chris Hughes 04/06/2003

AgendaAgenda

• Software Engineering in IndustrySoftware Engineering in Industry– Software Development ProcessSoftware Development Process

– Project DefinitionProject Definition

– Requirement AnalysisRequirement Analysis

– DesignDesign

– ImplementationImplementation

– TestingTesting

– Product QualityProduct Quality

– A Culture of QualityA Culture of Quality

• QuestionsQuestions

Page 3: Software Engineering (CSE3308): A Quality Experience Chris Hughes 04/06/2003

Software Development ProcessSoftware Development Process

• Rational Unified ProcessRational Unified Process– InceptionInception

– ElaborationElaboration

– ConstructionConstruction

– TransitionTransition

• Multiple streams of developmentMultiple streams of development– TrunkTrunk development development

– Current Product Engineering (CPE)Current Product Engineering (CPE) development development

Page 4: Software Engineering (CSE3308): A Quality Experience Chris Hughes 04/06/2003

Project DefinitionProject Definition

• What is the purpose of this software release?What is the purpose of this software release?

• Who are the stakeholders?Who are the stakeholders?

• What is the required software quality level?What is the required software quality level?

Page 5: Software Engineering (CSE3308): A Quality Experience Chris Hughes 04/06/2003

Requirement AnalysisRequirement Analysis

• Use-casesUse-cases– In its simplest form to aid in communicationIn its simplest form to aid in communication

• External interface definitionsExternal interface definitions– User interfacesUser interfaces

– External Application Programming Interfaces (APIs)External Application Programming Interfaces (APIs)

– Identified though the use-casesIdentified though the use-cases

• (Leveled) Data flow diagrams for higher level data flows(Leveled) Data flow diagrams for higher level data flows

• Non-functional requirement elicitation…Non-functional requirement elicitation…

Page 6: Software Engineering (CSE3308): A Quality Experience Chris Hughes 04/06/2003

Requirement Analysis (Cont)Requirement Analysis (Cont)

• System Requirement Categories (System Requirement Categories (FURPS+FURPS+))– FunctionalFunctional

– UsabilityUsability

– ReliabilityReliability

– PerformancePerformance

– SupportabilitySupportability

– CertificationCertification

– EnvironmentEnvironment

– InternationalisationInternationalisation

– Professional ServicesProfessional Services

– SecuritySecurity

– OtherOther

Page 7: Software Engineering (CSE3308): A Quality Experience Chris Hughes 04/06/2003

DesignDesign

• Design patternsDesign patterns• Entity-relationship diagramsEntity-relationship diagrams• Internal Interface definitionsInternal Interface definitions

– XML DTDsXML DTDs

– COM InterfacesCOM Interfaces

– Database tables (based on the E-R diagrams)Database tables (based on the E-R diagrams)

• UML class diagramsUML class diagrams• Sequence diagrams Sequence diagrams • State transition diagramsState transition diagrams• Test designsTest designs

– Equivalence class partitioning and boundary value analysisEquivalence class partitioning and boundary value analysis

Page 8: Software Engineering (CSE3308): A Quality Experience Chris Hughes 04/06/2003

ImplementationImplementation

• Source controlSource control

• Code reviewsCode reviews

• Unit testsUnit tests

• Productivity toolsProductivity tools– Rational PurifyRational Purify

– Rational QuantifyRational Quantify

– DebuggerDebugger

Page 9: Software Engineering (CSE3308): A Quality Experience Chris Hughes 04/06/2003

TestingTesting

What is a considered a defect?What is a considered a defect?• When the specified requirements are not metWhen the specified requirements are not met• The product is not fit for the purpose for which it was The product is not fit for the purpose for which it was

built!built!

• Integration testingIntegration testing• System testingSystem testing

Test with an emphasis on external interfacesTest with an emphasis on external interfaces• Every point where an actor interacts with the systemEvery point where an actor interacts with the system

Page 10: Software Engineering (CSE3308): A Quality Experience Chris Hughes 04/06/2003

Product QualityProduct Quality

• Software release metrics:Software release metrics:– Severity vs. Customer prioritySeverity vs. Customer priority

– External interface coverageExternal interface coverage

– External parameter coverageExternal parameter coverage

– Internal interface coverageInternal interface coverage

– Path flow coveragePath flow coverage

– Based on MNCSSBased on MNCSS

• Customer satisfactionCustomer satisfaction

• Developer prideDeveloper pride

Page 11: Software Engineering (CSE3308): A Quality Experience Chris Hughes 04/06/2003

A Culture of QualityA Culture of Quality

• Customers are the most important part of the processCustomers are the most important part of the process– Without them … why are doing this?Without them … why are doing this?

• A quality product stems from quality processesA quality product stems from quality processes• Encourage continual process improvementEncourage continual process improvement

– Capability maturity model is good for targeting problem areasCapability maturity model is good for targeting problem areas– Project retrospectives (or post-mortems)Project retrospectives (or post-mortems)– Implement the processes first, then put in the supporting toolsImplement the processes first, then put in the supporting tools– Push for personal and company wide improvementsPush for personal and company wide improvements

• The testing / quality team is not responsible for qualityThe testing / quality team is not responsible for quality– Everyone is responsible for qualityEveryone is responsible for quality

• Positive change in the project is goodPositive change in the project is good– Encourage it if you have the processes to handle itEncourage it if you have the processes to handle it

• Not a question of how much quality you can afford:Not a question of how much quality you can afford:– How much quality can’t you afford!How much quality can’t you afford!

Page 12: Software Engineering (CSE3308): A Quality Experience Chris Hughes 04/06/2003

I Know What You Did Last 45 I Know What You Did Last 45 Minutes…Minutes…

• Software Development ProcessSoftware Development Process• Umm … what do we do now?Umm … what do we do now?

• Project DefinitionProject Definition• Oh .. So that’s what we were trying to build!Oh .. So that’s what we were trying to build!

• Requirement AnalysisRequirement Analysis• You want me to do WHAT?!You want me to do WHAT?!

• DesignDesign• Its so crazy, it might actually work!Its so crazy, it might actually work!

• ImplementationImplementation• Isn’t this what I was hired to do?Isn’t this what I was hired to do?

• TestingTesting• Can’t someone else do this?Can’t someone else do this?

• Product QualityProduct Quality• If your software was a bridge would you drive over it?If your software was a bridge would you drive over it?

• A Culture of QualityA Culture of Quality• Software is not like a box of chocolates …Software is not like a box of chocolates …

Page 13: Software Engineering (CSE3308): A Quality Experience Chris Hughes 04/06/2003

QuestionsQuestions

• About the presentation …About the presentation …

• About the industry generally …About the industry generally …

• About ManageSoft specifically …About ManageSoft specifically …

• About life …About life …

Page 14: Software Engineering (CSE3308): A Quality Experience Chris Hughes 04/06/2003

Chris Hughes Chris Hughes

[email protected]@managesoft.com

www.managesoft.comwww.managesoft.com