Introduction to Software Engineering IS301 – Software Engineering Lecture #2 – 2003-08-28 M. E....

25
Introduction to Software Engineering IS301 – Software Engineering Lecture #2 – 2003-08-28 M. E. Kabay, PhD, CISSP Dept of Computer Information Systems Norwich University [email protected]

Transcript of Introduction to Software Engineering IS301 – Software Engineering Lecture #2 – 2003-08-28 M. E....

Page 1: Introduction to Software Engineering IS301 – Software Engineering Lecture #2 – 2003-08-28 M. E. Kabay, PhD, CISSP Dept of Computer Information Systems.

Introduction to Software

EngineeringIS301 – Software Engineering

Lecture #2 – 2003-08-28M. E. Kabay, PhD, CISSP

Dept of Computer Information SystemsNorwich University

[email protected]

Page 2: Introduction to Software Engineering IS301 – Software Engineering Lecture #2 – 2003-08-28 M. E. Kabay, PhD, CISSP Dept of Computer Information Systems.

2 Copyright © 2003 M. E. Kabay. All rights reserved.

Topics

Fundamental ConceptsHow Should Software Be Developed Today?Quality and SecurityKey ChallengesMaking Ethical DecisionsHomeworkFor extra credit

Page 3: Introduction to Software Engineering IS301 – Software Engineering Lecture #2 – 2003-08-28 M. E. Kabay, PhD, CISSP Dept of Computer Information Systems.

3 Copyright © 2003 M. E. Kabay. All rights reserved.

Fundamental Concepts

Software includesProgram codeDocumentationInstallation and configuration

utilities and dataSoftware engineering includes

Goal of meeting business needsEverything relating to creation of

software

Page 4: Introduction to Software Engineering IS301 – Software Engineering Lecture #2 – 2003-08-28 M. E. Kabay, PhD, CISSP Dept of Computer Information Systems.

4 Copyright © 2003 M. E. Kabay. All rights reserved.

Attributes of Good Software

FunctionalDoes what it’s supposed to do

UsableLets users do what they’re supposed to do

DependableWorks properly all the timeResists damage from acts of G-d & acts of clodResists damage from deliberate attacks

Efficient: uses resources at reasonable costMaintainable: changeable to meet new needs

Page 5: Introduction to Software Engineering IS301 – Software Engineering Lecture #2 – 2003-08-28 M. E. Kabay, PhD, CISSP Dept of Computer Information Systems.

5 Copyright © 2003 M. E. Kabay. All rights reserved.

Software Costs

Universal principle: correcting errors costs more the later you catch the errorTypically in SDLC, x10 per phase

Quality assurance should be integrated throughout all phases of project

Page 6: Introduction to Software Engineering IS301 – Software Engineering Lecture #2 – 2003-08-28 M. E. Kabay, PhD, CISSP Dept of Computer Information Systems.

6 Copyright © 2003 M. E. Kabay. All rights reserved.

Software Development before 1970s

Analysis was unformalizedAll work done in batch modeEmphasis on numerical workLimited application of complex logic

Design inflexibleIn-line coding for speedLimited use of functional decomposition

Lack of standard codeNo widely-used librariesIndividual programmers wrote own code for

everythingCompanies sometimes created own module

libraries

Page 7: Introduction to Software Engineering IS301 – Software Engineering Lecture #2 – 2003-08-28 M. E. Kabay, PhD, CISSP Dept of Computer Information Systems.

7 Copyright © 2003 M. E. Kabay. All rights reserved.

Problems of Growth

Commercial computers spread rapidlyIBM 360, 370 seriesHP3000 seriesDEC PDP and VAXHoneywell DMS6600

Tools determine perception of reasonable problemsTime-sharing changed perception of

what was possibleIncreased demand for interactivity

Page 8: Introduction to Software Engineering IS301 – Software Engineering Lecture #2 – 2003-08-28 M. E. Kabay, PhD, CISSP Dept of Computer Information Systems.

8 Copyright © 2003 M. E. Kabay. All rights reserved.

1970s-1980s: 4GLs

1950s: assembler (2GL)1960s-70s: 3GL

Compilers (FORTRAN, COBOL, PASCAL, ADA, RPG, C, . . .)

Interpreters (BASIC, APL, . . .)1970s-80s: 4GL

Query languages (SQL, dBase, . . .)Increased accessibility to amateurs

Business users with limited understanding of analysis/coding

Page 9: Introduction to Software Engineering IS301 – Software Engineering Lecture #2 – 2003-08-28 M. E. Kabay, PhD, CISSP Dept of Computer Information Systems.

9 Copyright © 2003 M. E. Kabay. All rights reserved.

Amateurs

Limited analysisFocus on solving one

specific problemDon’t plan for extensibility

Use spaghetti codingIn-line code with repetition of

functionsCryptic & inconsistent variable

names

So what?

Page 10: Introduction to Software Engineering IS301 – Software Engineering Lecture #2 – 2003-08-28 M. E. Kabay, PhD, CISSP Dept of Computer Information Systems.

10 Copyright © 2003 M. E. Kabay. All rights reserved.

Amateurs (cont’d)

Almost never include security considerations

Almost never document their code

Almost never test their codeIf they do test, test manually

So what?

Page 11: Introduction to Software Engineering IS301 – Software Engineering Lecture #2 – 2003-08-28 M. E. Kabay, PhD, CISSP Dept of Computer Information Systems.

11 Copyright © 2003 M. E. Kabay. All rights reserved.

How Should Software Be Developed Today?

Specification

Development

VALIDATION

EVOLUTIONETHICS

Page 12: Introduction to Software Engineering IS301 – Software Engineering Lecture #2 – 2003-08-28 M. E. Kabay, PhD, CISSP Dept of Computer Information Systems.

12 Copyright © 2003 M. E. Kabay. All rights reserved.

Software Process Models

Conceptualizing the functionalityWorkflow model – human activitiesData-flow/activity model – data transformsRole/action model – peoples’ roles

Ways of developing softwareWaterfall (SDLC)Evolutionary (JAD/RAD)Formal transformationSystem assembly from reusable

components

Page 13: Introduction to Software Engineering IS301 – Software Engineering Lecture #2 – 2003-08-28 M. E. Kabay, PhD, CISSP Dept of Computer Information Systems.

13 Copyright © 2003 M. E. Kabay. All rights reserved.

Quality and Security

Both must be integratedFrom very startPervasively throughout project

Security/quality not a productSecurity/quality are outcomes of

processSecurity/quality not static

Environment changes constantlySo we must constantly ensure quality

and security

Page 14: Introduction to Software Engineering IS301 – Software Engineering Lecture #2 – 2003-08-28 M. E. Kabay, PhD, CISSP Dept of Computer Information Systems.

14 Copyright © 2003 M. E. Kabay. All rights reserved.

Key Challenges

Legacy systemsE.g., Y2K

HeterogeneityComplexity rises geometrically

E.g., Pairwise interactions rise as ~n2/2Delivery

Avoid 2-year backlogsLoss of control

Increasing dependency on COTS (commercial off-the-shelf) software

Page 15: Introduction to Software Engineering IS301 – Software Engineering Lecture #2 – 2003-08-28 M. E. Kabay, PhD, CISSP Dept of Computer Information Systems.

15 Copyright © 2003 M. E. Kabay. All rights reserved.

Making Ethical Decisions

Lay Out the Ethical Question Identify Who Wins and Who Loses in a

ConflictUse Formal guidelinesUse Informal guidelinesApply Fundamental PrinciplesUse your Intuition

Page 16: Introduction to Software Engineering IS301 – Software Engineering Lecture #2 – 2003-08-28 M. E. Kabay, PhD, CISSP Dept of Computer Information Systems.

16 Copyright © 2003 M. E. Kabay. All rights reserved.

Lay Out the Ethical Question

Look for a question that uses “should” or “ought” or “Would it be right/wrong to. . .”

Be specificShould we write a program that scans the

Web for e-mail addresses to add to a junk e-mail list?

Should we change our program to record the identity of visitors to our Web site without their permission?

Page 17: Introduction to Software Engineering IS301 – Software Engineering Lecture #2 – 2003-08-28 M. E. Kabay, PhD, CISSP Dept of Computer Information Systems.

17 Copyright © 2003 M. E. Kabay. All rights reserved.

Identify Who Wins and Who Loses in a Conflict

Does the proposed action hurt anyone?Does it

Violate privacy?Hurt feelings?Break a promise?Breach trust in you?

Do those who stand to lose have a say in deciding the course of action?

Page 18: Introduction to Software Engineering IS301 – Software Engineering Lecture #2 – 2003-08-28 M. E. Kabay, PhD, CISSP Dept of Computer Information Systems.

18 Copyright © 2003 M. E. Kabay. All rights reserved.

Use Formal guidelines

LawsCode of ethics

E.g., CISSP code for security expertsACM/IEEE-CS Joint Task Force

Software Engineering Code of Ethics and Professional Practice

PoliciesRulesReligious obligations

Page 19: Introduction to Software Engineering IS301 – Software Engineering Lecture #2 – 2003-08-28 M. E. Kabay, PhD, CISSP Dept of Computer Information Systems.

19 Copyright © 2003 M. E. Kabay. All rights reserved.

Use Informal guidelines

AgreementsCustomsExpectationsHabits

Page 20: Introduction to Software Engineering IS301 – Software Engineering Lecture #2 – 2003-08-28 M. E. Kabay, PhD, CISSP Dept of Computer Information Systems.

20 Copyright © 2003 M. E. Kabay. All rights reserved.

Apply Fundamental Principles

Don’t lieDon’t stealDon’t hurt people or other crittersGolden Rules

Do unto others as you would have them do unto you

Do not do unto others as you would not have them do unto you

Page 21: Introduction to Software Engineering IS301 – Software Engineering Lecture #2 – 2003-08-28 M. E. Kabay, PhD, CISSP Dept of Computer Information Systems.

21 Copyright © 2003 M. E. Kabay. All rights reserved.

Principles (cont’d)

Categorical imperativeWould it be good if everyone acted as I am

thinking of acting?Non-instrumentality

Does the proposed action treat people with respect, as individuals and not as tools or means towards an end?

Would you feel used if someone did this to you?

Page 22: Introduction to Software Engineering IS301 – Software Engineering Lecture #2 – 2003-08-28 M. E. Kabay, PhD, CISSP Dept of Computer Information Systems.

22 Copyright © 2003 M. E. Kabay. All rights reserved.

Use your Intuition

Use these as guides to where there may be ethical problemsDoes the idea feel wrong?Would you tell your parents without

hesitation?Would you prefer to keep your plan secret?

Why?Would be pleased to see your name on TV

News / Front page of newspaper with a description of what you are proposing to do?

Does your action make you feel prouder, nobler, stronger, more honest, kinder?

Page 23: Introduction to Software Engineering IS301 – Software Engineering Lecture #2 – 2003-08-28 M. E. Kabay, PhD, CISSP Dept of Computer Information Systems.

23 Copyright © 2003 M. E. Kabay. All rights reserved.

HomeworkREQUIRED: By the start of class #4 next

Thursday 4 Sep 2003:Answer questions 1.1 through 1.8 on

pp. 18-19 of Sommerville for 1 point per question

You are encouraged to collaborate in teams to work out good answers, but you must write out your own response without plagiarizing each other’s wording

Submit a printed set of responses; include the question first in italics

Page 24: Introduction to Software Engineering IS301 – Software Engineering Lecture #2 – 2003-08-28 M. E. Kabay, PhD, CISSP Dept of Computer Information Systems.

24 Copyright © 2003 M. E. Kabay. All rights reserved.

For Extra Credit

OPTIONAL: Submit one or more 500 word essay at any time before class #6 (Thursday 11 Sep) for 1 extra point each added to your total score. Use the following topics:

Review the costs of the Y2K debacleRead the RISKS FORUM DIGEST for 2003 and

provide examples of catastrophic failures of software quality assurance

Investigate “scumware” and discuss whether its programmers are complying with the ACM/IEEE-CS Code of Ethics

Page 25: Introduction to Software Engineering IS301 – Software Engineering Lecture #2 – 2003-08-28 M. E. Kabay, PhD, CISSP Dept of Computer Information Systems.

25 Copyright © 2003 M. E. Kabay. All rights reserved.

DISCUSSION