Introduction to Software Engineering IS301 – Software Engineering Lecture #2 – 2003-08-28 M. E....
Transcript of Introduction to Software Engineering IS301 – Software Engineering Lecture #2 – 2003-08-28 M. E....
Introduction to Software
EngineeringIS301 – Software Engineering
Lecture #2 – 2003-08-28M. E. Kabay, PhD, CISSP
Dept of Computer Information SystemsNorwich University
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
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
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
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
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
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
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
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?
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?
11 Copyright © 2003 M. E. Kabay. All rights reserved.
How Should Software Be Developed Today?
Specification
Development
VALIDATION
EVOLUTIONETHICS
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
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
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
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
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?
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?
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
19 Copyright © 2003 M. E. Kabay. All rights reserved.
Use Informal guidelines
AgreementsCustomsExpectationsHabits
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
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?
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?
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
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
25 Copyright © 2003 M. E. Kabay. All rights reserved.
DISCUSSION