SlideShare a Scribd company logo
COMP 6710 Course Notes Slide 1-1
Auburn University
Computer Science and Software Engineering
Course Notes Set 1:
Introduction to
Software Engineering
Computer Science and Software Engineering
Auburn University
COMP 6710 Course Notes Slide 1-2
Auburn University
Computer Science and Software Engineering
Desirable Attributes of Software
• Maintainability
– It should be possible to evolve software to
meet the changing needs of customers.
• Dependability
– Software dependability includes a variety
of things such as reliability, security and
safety. Dependable software should not
cause physical or economic damage in the
event of a system failure.
COMP 6710 Course Notes Slide 1-3
Auburn University
Computer Science and Software Engineering
Desirable Attributes of Software
• Efficiency
– Software should not waste system
resources such as memory and processor
cycles.
• Usability
– Software should have an appropriate user
interface and adequate documentation.
• Etc., etc.
Achieving these qualities in software is hard to do!
COMP 6710 Course Notes Slide 1-4
Auburn University
Computer Science and Software Engineering
No Silver Bullet
But as we look to the horizon of a decade hence, we see no silver
bullet. There is no single development, either in technology or
management technique, which by itself promises even one order
of magnitude improvement in productivity, in reliability, in simplicity.
Not only are there no silver bullets in view, the very nature of software
makes it unlikely there will be any.
Frederick Brooks, The Mythical Man Month
COMP 6710 Course Notes Slide 1-5
Auburn University
Computer Science and Software Engineering
Software Characteristics
• Software is a crucial element of our society.
• Software is becoming ubiquitous and invisible.
• Software is both a product and a vehicle for delivering a
product.
• Software consists of programs, documents, and data.
• Software is developed or engineered, not
manufactured.
• Software is primarily custom-built, not assembled from
existing components.
• Software deteriorates, but doesn’t “wear out.”
• Software has a “chronic affliction” [Pressman 5th Ed].
COMP 6710 Course Notes Slide 1-6
Auburn University
Computer Science and Software Engineering
Software Death
idealized curve
change
actual curve
Failure
rate
Time
increased failure
rate due to side effects
[Adapted from Figure 1.2, Pressman5E]
COMP 6710 Course Notes Slide 1-7
Auburn University
Computer Science and Software Engineering
Software Has Changed
• Ran on single processor,
usually a mainframe
• Input was linear, sequential
• Output was alphanumeric
• System design dominated by
– Transform systems
– Transaction systems
• Delivered across a network;
distributed, multiple
processors; client-server.
• Input often from multiple
concurrent sources
• Output must meet demands
for sophisticated
visualization
• In addition to functional
requirements, must also
address:
– network control
– security
– UI issues
– data/object management
Demarco: We’ve solved the easy problems first. The ones that are left are the hard ones.
Then: Now:
COMP 6710 Course Notes Slide 1-8
Auburn University
Computer Science and Software Engineering
Major Agents of Change
• Compressed time-to-market, tight labor
market
• Hardware costs down, software costs up
• Powerful computing in small boxes
• Pervasive networking
• Ubiquity of object technology
• Expectation of sophisticated GUIs
• Inappropriateness of classic software
development process
Adapted from “Toward a Discipline of Software Engineering,” IEEE Software, Vol. 13, No. 6.
COMP 6710 Course Notes Slide 1-9
Auburn University
Computer Science and Software Engineering
Problems
• Many critical systems are controlled or influenced by
legacy software which is difficult or impossible to
maintain, not understandable, or irreplaceable.
• Little data exists on the process of developing software.
• Software quality is difficult to define and measure.
• Software doesn’t have spare parts.
• Software project managers are sometimes far removed
from software development.
• Software developers are sometimes unaware of
engineering approaches to developing software.
• Programming as an art versus programming as a
science.
• Many myths pervade the software development culture.
COMP 6710 Course Notes Slide 1-10
Auburn University
Computer Science and Software Engineering
… I would try to make some improvements in the
codes. Many codes or subroutines are more than
40 years old, and the guys who wrote them are
either in heaven or hell. Some codes are impossible
to refine because nobody knows what the original
programmer was trying to do. To figure it out, you
have to read the code in FORTRAN line by line, to
try to understand the underlying mathematics
picture – and these codes are hundreds of
thousands, even millions of line long. Once
someone found a bug in the code and removed it –
but then the code wouldn’t work. So they put the
bug back in, even though no one knew why the
program work that way.
(by a nuclear scientist)
- Page 113, My Country verse Me, Dr. Wen-ho Lee, Hyperion Pub., 2001
COMP 6710 Course Notes Slide 1-11
Auburn University
Computer Science and Software Engineering
Myths
• A general statement of objectives is enough to get
going. Fill in the details later.
• Project requirements continually change, but change can
be easily accommodated because software is flexible.
• Once a program is developed, tested, and delivered, the
developer’s job is done.
• Until a program is running, there is no way to assess its
quality.
• The only deliverable for a successful project is a working
program.
• We can always add more programmers if the project
gets behind.
• All programmers are created equal.
[Adapted from public domain SEI course notes by Carter and Conn]
COMP 6710 Course Notes Slide 1-12
Auburn University
Computer Science and Software Engineering
What is Software Engineering?
coding
testing
maintenance
design
structured analysis
dataflow diagrams
structure charts
software quality assurance
configuration management
project management
CASE
requirements
KLOC
metrics
COMP 6710 Course Notes Slide 1-13
Auburn University
Computer Science and Software Engineering
Software Engineering
• The establishment and use of sound engineering principles in
order to obtain economically software that is reliable and
works efficiently on real machines. [Bauer]
• The application of a systematic, disciplined, quantifiable
approach to the development, operation, and maintenance of
software; that is, the application of engineering to software.
[IEEE Standard 610.12-1990]
a focus on quality
process
methods
tools
[Adapted from Pressman 5th Ed]
COMP 6710 Course Notes Slide 1-14
Auburn University
Computer Science and Software Engineering
Principles of Software Engineering
• Abstraction
• Analysis and Design Methods and
Notations
• Prototyping
• Software Architecture
• Reuse
• Measurement
• Tools and Environments
• Software Process
Adapted from “Toward a Discipline of Software Engineering,” IEEE Software, Vol. 13, No. 6.
COMP 6710 Course Notes Slide 1-15
Auburn University
Computer Science and Software Engineering
Principles
• Abstraction
– Primary tool for managing complexity
– View a system in terms of layers or a
hierarchy or abstraction
COMP 6710 Course Notes Slide 1-16
Auburn University
Computer Science and Software Engineering
Principles
• Analysis and Design Methods and
Notations
– Notations
• A formal way of documenting and communicating
design decisions
• Issues: Cognitive aspects, readership skills, no
standards
– Methods
• A formal or semi-formal approach to building
models
• Allows for completeness and consistency checks
(ideally)
COMP 6710 Course Notes Slide 1-17
Auburn University
Computer Science and Software Engineering
Principles
• Prototyping
– Help identify requirements
– Explore feasibility
– Simulate functions to be implemented
in hardware
COMP 6710 Course Notes Slide 1-18
Auburn University
Computer Science and Software Engineering
Principles
• Software Architecture
– Specifies a system in terms of
architectural units and how they
relate
– Good architecture aids
implementation, testing, maintenance
– Becoming a sub-discipline (e.g.,
Garlan and Shaw)
COMP 6710 Course Notes Slide 1-19
Auburn University
Computer Science and Software Engineering
Principles
• Reuse
– Make use of commonalities among systems to
reuse requirements, designs, code, test scripts,
etc.
– Reusable components can be a business asset
– Barriers to reuse:
• Can be faster to build a small component from scratch
• May take extra time to build a reusable component
• Potential adopters may hesitate due to SQA concerns
• Liability issues in the event of failure or needed updates
• Program understanding issues
COMP 6710 Course Notes Slide 1-20
Auburn University
Computer Science and Software Engineering
Principles
• Measurement
– Quantification of attributes of product
and process
– Critical for assessment and
improvement
COMP 6710 Course Notes Slide 1-21
Auburn University
Computer Science and Software Engineering
Principles
• Tools and Environments
– Automated Software Engineering
– Vertical v. Horizontal tools
– Critical issues include
• Integration
• repositories
COMP 6710 Course Notes Slide 1-22
Auburn University
Computer Science and Software Engineering
Principles
• Software Process
– The organization and discipline of the
activities of developing software
– Process diversity needed

More Related Content

Similar to 01_Intro.ppt algorithm for preperation stu used (20)

PDF
[2015/2016] Software systems engineering PRINCIPLES
Ivano Malavolta
 
PPT
Introduction to principles of software engineeringWhy1and2
EstherBaguma
 
PPTX
Se introduction lec 1
Amir Shahzad
 
PPTX
Unit 1 OOSE
saranive23
 
PDF
An introduction to software
Bilal Maqbool ツ
 
PPTX
1-Nature of Software Software Engineering Software process project product Pr...
UjjwalAgrawal34
 
PDF
lecture 1-5.pdf
AkankshaJha53
 
PPTX
Software Engineering PPT Unit I.pptx
omgadekar25
 
PPT
Lecture1 (SE Introduction)
Education Front
 
PDF
Advance Software Engineering notes for ME students
poornank05
 
PPT
Lukito Edi Nugroho - Information System Engineering
belajarkomputer
 
PDF
Application Of Software Engineering Field
Jessica Howard
 
PDF
Application Of Software Engineering Field
Michelle Singh
 
PPTX
unit 1 SE.pptx software engineering note
vermamay7487
 
PDF
unit1-introductiontosoftwareengineering-230710065742-dc6f5a7d.pdf
hiteshshetty39
 
PPT
Unit 1 - Introduction to Software Engineering.ppt
DrTThendralCompSci
 
PPT
What is Software Engineering?
Russell Ovans
 
PPTX
What is software engineering
Jennifer Polack
 
PPTX
The Introduction to Software Engineering
ROZLINABINTIMOHAMED
 
[2015/2016] Software systems engineering PRINCIPLES
Ivano Malavolta
 
Introduction to principles of software engineeringWhy1and2
EstherBaguma
 
Se introduction lec 1
Amir Shahzad
 
Unit 1 OOSE
saranive23
 
An introduction to software
Bilal Maqbool ツ
 
1-Nature of Software Software Engineering Software process project product Pr...
UjjwalAgrawal34
 
lecture 1-5.pdf
AkankshaJha53
 
Software Engineering PPT Unit I.pptx
omgadekar25
 
Lecture1 (SE Introduction)
Education Front
 
Advance Software Engineering notes for ME students
poornank05
 
Lukito Edi Nugroho - Information System Engineering
belajarkomputer
 
Application Of Software Engineering Field
Jessica Howard
 
Application Of Software Engineering Field
Michelle Singh
 
unit 1 SE.pptx software engineering note
vermamay7487
 
unit1-introductiontosoftwareengineering-230710065742-dc6f5a7d.pdf
hiteshshetty39
 
Unit 1 - Introduction to Software Engineering.ppt
DrTThendralCompSci
 
What is Software Engineering?
Russell Ovans
 
What is software engineering
Jennifer Polack
 
The Introduction to Software Engineering
ROZLINABINTIMOHAMED
 

More from archu26 (6)

PDF
Book.pdf01_Intro.ppt algorithm for preperation stu used
archu26
 
PPTX
811109685-CS3401-Algorithms-Unit-IV.pptx
archu26
 
PPT
7.2 Cook's Theorem.ppt 01_Intro.ppt algorithm for preperation stu used
archu26
 
PPT
02-asymp.ppt01_Intro.ppt algorithm for preperation stu used
archu26
 
PPTX
algorithm cs3401 ppt unit 3 - cover all topics
archu26
 
PPTX
UNIT DAA PPT cover all topics 2021 regulation
archu26
 
Book.pdf01_Intro.ppt algorithm for preperation stu used
archu26
 
811109685-CS3401-Algorithms-Unit-IV.pptx
archu26
 
7.2 Cook's Theorem.ppt 01_Intro.ppt algorithm for preperation stu used
archu26
 
02-asymp.ppt01_Intro.ppt algorithm for preperation stu used
archu26
 
algorithm cs3401 ppt unit 3 - cover all topics
archu26
 
UNIT DAA PPT cover all topics 2021 regulation
archu26
 
Ad

Recently uploaded (20)

PPTX
Exploring Types of Rocks Educational Presentation rock forming james harold r...
jamescarllfelomino6
 
PPTX
sistem teknologi yang di desain untuk mahasiswa dan dosen agar memudahkan mer...
gamesonlya2rj
 
PDF
cs603 ppts .pdf 222222222222222222222222
RabiaNazneen1
 
PPTX
Online Shopping For Women Men Kids Fashion Style Dresses
Palak thakur
 
PPTX
Neuron Infographics by neurontronicsbv.pptx
info546593
 
PDF
respiratory-and-circulatory-system-pdf-hand-outs.pdf
galocharles28
 
PDF
placemaking 10 principles bY Berkley group
Radhika525487
 
PPTX
Mainframe Modernization Services with Vrnexgen
tejushrie
 
PPTX
Great_Discoverers_Nohzyxyxyzyzyzyzzyz_Imagptx
kevadiyahem07
 
PDF
EY-emeia-fso-assurance-viewpoint-technology (1).pdf
INKPPT
 
PPTX
Graphic_Design_Pjjjjjjjjjjjjjjjresentation.pptx
kumarsahil80682
 
PDF
ARC-101-B-4.pdfxxxxxxxxxxxxxxxxxxxxxxxxx
IzzyBaniquedBusto
 
PDF
Q1_W2.jsjsbajannananajajsjsjjsjsjsnsnsnsn.pdf
alexislian611
 
PPTX
Chapter 1-1.pptx hwhahaiaiautsfzjakaiwueysuua
hibaaqabdirisaaq331
 
PPTX
the very teaching plan extra ordinary.pptx
PamelaOdibeli1
 
PPTX
AI_Road_Safety_Project.pptx for class 10
prem001ni
 
PPT
1744066yaar kya hai ye bolo not nice 4.ppt
preethikavarsha
 
PDF
ARChitec-BUILDING-UTILITIES-2-PART-5.pdf
IzzyBaniquedBusto
 
DOCX
presente continuo luis (1).docx riklavoz
olivaresricardo141
 
PPTX
Colorful Bold Safari Animals Presentation.pptx
HNgcTrAnh
 
Exploring Types of Rocks Educational Presentation rock forming james harold r...
jamescarllfelomino6
 
sistem teknologi yang di desain untuk mahasiswa dan dosen agar memudahkan mer...
gamesonlya2rj
 
cs603 ppts .pdf 222222222222222222222222
RabiaNazneen1
 
Online Shopping For Women Men Kids Fashion Style Dresses
Palak thakur
 
Neuron Infographics by neurontronicsbv.pptx
info546593
 
respiratory-and-circulatory-system-pdf-hand-outs.pdf
galocharles28
 
placemaking 10 principles bY Berkley group
Radhika525487
 
Mainframe Modernization Services with Vrnexgen
tejushrie
 
Great_Discoverers_Nohzyxyxyzyzyzyzzyz_Imagptx
kevadiyahem07
 
EY-emeia-fso-assurance-viewpoint-technology (1).pdf
INKPPT
 
Graphic_Design_Pjjjjjjjjjjjjjjjresentation.pptx
kumarsahil80682
 
ARC-101-B-4.pdfxxxxxxxxxxxxxxxxxxxxxxxxx
IzzyBaniquedBusto
 
Q1_W2.jsjsbajannananajajsjsjjsjsjsnsnsnsn.pdf
alexislian611
 
Chapter 1-1.pptx hwhahaiaiautsfzjakaiwueysuua
hibaaqabdirisaaq331
 
the very teaching plan extra ordinary.pptx
PamelaOdibeli1
 
AI_Road_Safety_Project.pptx for class 10
prem001ni
 
1744066yaar kya hai ye bolo not nice 4.ppt
preethikavarsha
 
ARChitec-BUILDING-UTILITIES-2-PART-5.pdf
IzzyBaniquedBusto
 
presente continuo luis (1).docx riklavoz
olivaresricardo141
 
Colorful Bold Safari Animals Presentation.pptx
HNgcTrAnh
 
Ad

01_Intro.ppt algorithm for preperation stu used

  • 1. COMP 6710 Course Notes Slide 1-1 Auburn University Computer Science and Software Engineering Course Notes Set 1: Introduction to Software Engineering Computer Science and Software Engineering Auburn University
  • 2. COMP 6710 Course Notes Slide 1-2 Auburn University Computer Science and Software Engineering Desirable Attributes of Software • Maintainability – It should be possible to evolve software to meet the changing needs of customers. • Dependability – Software dependability includes a variety of things such as reliability, security and safety. Dependable software should not cause physical or economic damage in the event of a system failure.
  • 3. COMP 6710 Course Notes Slide 1-3 Auburn University Computer Science and Software Engineering Desirable Attributes of Software • Efficiency – Software should not waste system resources such as memory and processor cycles. • Usability – Software should have an appropriate user interface and adequate documentation. • Etc., etc. Achieving these qualities in software is hard to do!
  • 4. COMP 6710 Course Notes Slide 1-4 Auburn University Computer Science and Software Engineering No Silver Bullet But as we look to the horizon of a decade hence, we see no silver bullet. There is no single development, either in technology or management technique, which by itself promises even one order of magnitude improvement in productivity, in reliability, in simplicity. Not only are there no silver bullets in view, the very nature of software makes it unlikely there will be any. Frederick Brooks, The Mythical Man Month
  • 5. COMP 6710 Course Notes Slide 1-5 Auburn University Computer Science and Software Engineering Software Characteristics • Software is a crucial element of our society. • Software is becoming ubiquitous and invisible. • Software is both a product and a vehicle for delivering a product. • Software consists of programs, documents, and data. • Software is developed or engineered, not manufactured. • Software is primarily custom-built, not assembled from existing components. • Software deteriorates, but doesn’t “wear out.” • Software has a “chronic affliction” [Pressman 5th Ed].
  • 6. COMP 6710 Course Notes Slide 1-6 Auburn University Computer Science and Software Engineering Software Death idealized curve change actual curve Failure rate Time increased failure rate due to side effects [Adapted from Figure 1.2, Pressman5E]
  • 7. COMP 6710 Course Notes Slide 1-7 Auburn University Computer Science and Software Engineering Software Has Changed • Ran on single processor, usually a mainframe • Input was linear, sequential • Output was alphanumeric • System design dominated by – Transform systems – Transaction systems • Delivered across a network; distributed, multiple processors; client-server. • Input often from multiple concurrent sources • Output must meet demands for sophisticated visualization • In addition to functional requirements, must also address: – network control – security – UI issues – data/object management Demarco: We’ve solved the easy problems first. The ones that are left are the hard ones. Then: Now:
  • 8. COMP 6710 Course Notes Slide 1-8 Auburn University Computer Science and Software Engineering Major Agents of Change • Compressed time-to-market, tight labor market • Hardware costs down, software costs up • Powerful computing in small boxes • Pervasive networking • Ubiquity of object technology • Expectation of sophisticated GUIs • Inappropriateness of classic software development process Adapted from “Toward a Discipline of Software Engineering,” IEEE Software, Vol. 13, No. 6.
  • 9. COMP 6710 Course Notes Slide 1-9 Auburn University Computer Science and Software Engineering Problems • Many critical systems are controlled or influenced by legacy software which is difficult or impossible to maintain, not understandable, or irreplaceable. • Little data exists on the process of developing software. • Software quality is difficult to define and measure. • Software doesn’t have spare parts. • Software project managers are sometimes far removed from software development. • Software developers are sometimes unaware of engineering approaches to developing software. • Programming as an art versus programming as a science. • Many myths pervade the software development culture.
  • 10. COMP 6710 Course Notes Slide 1-10 Auburn University Computer Science and Software Engineering … I would try to make some improvements in the codes. Many codes or subroutines are more than 40 years old, and the guys who wrote them are either in heaven or hell. Some codes are impossible to refine because nobody knows what the original programmer was trying to do. To figure it out, you have to read the code in FORTRAN line by line, to try to understand the underlying mathematics picture – and these codes are hundreds of thousands, even millions of line long. Once someone found a bug in the code and removed it – but then the code wouldn’t work. So they put the bug back in, even though no one knew why the program work that way. (by a nuclear scientist) - Page 113, My Country verse Me, Dr. Wen-ho Lee, Hyperion Pub., 2001
  • 11. COMP 6710 Course Notes Slide 1-11 Auburn University Computer Science and Software Engineering Myths • A general statement of objectives is enough to get going. Fill in the details later. • Project requirements continually change, but change can be easily accommodated because software is flexible. • Once a program is developed, tested, and delivered, the developer’s job is done. • Until a program is running, there is no way to assess its quality. • The only deliverable for a successful project is a working program. • We can always add more programmers if the project gets behind. • All programmers are created equal. [Adapted from public domain SEI course notes by Carter and Conn]
  • 12. COMP 6710 Course Notes Slide 1-12 Auburn University Computer Science and Software Engineering What is Software Engineering? coding testing maintenance design structured analysis dataflow diagrams structure charts software quality assurance configuration management project management CASE requirements KLOC metrics
  • 13. COMP 6710 Course Notes Slide 1-13 Auburn University Computer Science and Software Engineering Software Engineering • The establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines. [Bauer] • The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. [IEEE Standard 610.12-1990] a focus on quality process methods tools [Adapted from Pressman 5th Ed]
  • 14. COMP 6710 Course Notes Slide 1-14 Auburn University Computer Science and Software Engineering Principles of Software Engineering • Abstraction • Analysis and Design Methods and Notations • Prototyping • Software Architecture • Reuse • Measurement • Tools and Environments • Software Process Adapted from “Toward a Discipline of Software Engineering,” IEEE Software, Vol. 13, No. 6.
  • 15. COMP 6710 Course Notes Slide 1-15 Auburn University Computer Science and Software Engineering Principles • Abstraction – Primary tool for managing complexity – View a system in terms of layers or a hierarchy or abstraction
  • 16. COMP 6710 Course Notes Slide 1-16 Auburn University Computer Science and Software Engineering Principles • Analysis and Design Methods and Notations – Notations • A formal way of documenting and communicating design decisions • Issues: Cognitive aspects, readership skills, no standards – Methods • A formal or semi-formal approach to building models • Allows for completeness and consistency checks (ideally)
  • 17. COMP 6710 Course Notes Slide 1-17 Auburn University Computer Science and Software Engineering Principles • Prototyping – Help identify requirements – Explore feasibility – Simulate functions to be implemented in hardware
  • 18. COMP 6710 Course Notes Slide 1-18 Auburn University Computer Science and Software Engineering Principles • Software Architecture – Specifies a system in terms of architectural units and how they relate – Good architecture aids implementation, testing, maintenance – Becoming a sub-discipline (e.g., Garlan and Shaw)
  • 19. COMP 6710 Course Notes Slide 1-19 Auburn University Computer Science and Software Engineering Principles • Reuse – Make use of commonalities among systems to reuse requirements, designs, code, test scripts, etc. – Reusable components can be a business asset – Barriers to reuse: • Can be faster to build a small component from scratch • May take extra time to build a reusable component • Potential adopters may hesitate due to SQA concerns • Liability issues in the event of failure or needed updates • Program understanding issues
  • 20. COMP 6710 Course Notes Slide 1-20 Auburn University Computer Science and Software Engineering Principles • Measurement – Quantification of attributes of product and process – Critical for assessment and improvement
  • 21. COMP 6710 Course Notes Slide 1-21 Auburn University Computer Science and Software Engineering Principles • Tools and Environments – Automated Software Engineering – Vertical v. Horizontal tools – Critical issues include • Integration • repositories
  • 22. COMP 6710 Course Notes Slide 1-22 Auburn University Computer Science and Software Engineering Principles • Software Process – The organization and discipline of the activities of developing software – Process diversity needed