SlideShare a Scribd company logo
1 of 28
Chapter 1:
Software and Software
Engineering
2
1.1 The Nature of Software...
Software is intangible
 Hard to understand development effort
Software is easy to reproduce
 Cost is in its development
 in other engineering products, manufacturing is
the costly stage
The industry is labor-intensive
 Hard to automate
3
The Nature of Software ...
Untrained people can hack something
together
 Quality problems are hard to notice
Software is easy to modify
 People make changes without fully
understanding it
Software does not ‘wear out’
 It deteriorates by having its design changed:
 erroneously, or
 in ways that were not anticipated, thus making it
complex
4
The Nature of Software
Conclusions
 Much software has poor design and is getting
worse
 Demand for software is high and rising
 We are in a perpetual ‘software crisis’
 We have to learn to ‘engineer’ software
5
Types of Software...
Custom
 For a specific customer
Generic
 Sold on open market
 Often called
 COTS (Commercial Off The Shelf)
 Shrink-wrapped
Embedded
 Built into hardware
 Hard to change
6
Types of Software
Differences among custom, generic and
embedded software
Custom Generic Embedded
Number ofcopies in use low medium high
Total processing power
devoted to running this type
of software
low high medium
Worldwide annual
development effort
high medium low
7
Types of Software
Real time software
 E.g. control and monitoring systems
 Must react immediately
 Safety often a concern
Data processing software
 Used to run businesses
 Accuracy and security of data are key
Some software has both aspects
8
1.2 What is Software Engineering?...
The process of solving customers’ problems by the
systematic development and evolution of large,
high-quality software systems within cost, time and
other constraints
Other definitions:
 IEEE: (1) the application of a systematic, disciplined, quantifiable
approach to the development, operation, maintenance of
software; that is, the application of engineering to software. (2)
The study of approaches as in (1).
 The Canadian Standards Association: The systematic activities
involved in the design, implementation and testing of software to
optimize its production and support.
9
What is Software Engineering?…
Solving customers’ problems
 This is the goal of software engineering
 Sometimes the solution is to buy, not build
 Adding unnecessary features does not help
solve the problem
 Software engineers must communicate
effectively to identify and understand the
problem
10
What is Software Engineering?…
Systematic development and evolution
 An engineering process involves applying well
understood techniques in a organized and
disciplined way
 Many well-accepted practices have been
formally standardized
 e.g. by the IEEE or ISO
 Most development work is evolution
11
What is Software Engineering?…
Large, high quality software systems
 Software engineering techniques are needed
because large systems cannot be completely
understood by one person
 Teamwork and co-ordination are required
 Key challenge: Dividing up the work and
ensuring that the parts of the system work
properly together
 The end-product must be of sufficient quality
12
What is Software Engineering?
Cost, time and other constraints
 Finite resources
 The benefit must outweigh the cost
 Others are competing to do the job cheaper
and faster
 Inaccurate estimates of cost and time have
caused many project failures
13
1.3 Software Engineering and the
Engineering Profession
The term Software Engineering was coined
in 1968
 People began to realize that the principles of
engineering should be applied to software
development
Engineering is a licensed profession
 In order to protect the public
 Engineers design artifacts following well
accepted practices which involve the
application of science, mathematics and
economics
 Ethical practice is also a key tenet of the
profession
14
Software Engineering and the
Engineering Profession
Ethics in Software Engineering:
Software engineers shall
 Act consistently with public interest
 Act in the best interests of their clients
 Develop and maintain with the highest
standards possible
 Maintain integrity and independence
 Promote an ethical approach in management
 Advance the integrity and reputation of the
profession
 Be fair and supportive to colleagues
15
1.4 Stakeholders in Software Engineering
1. Users
 Those who use the software
2. Customers
 Those who pay for the software
3. Software developers
4. Development Managers
All four roles can be fulfilled by the same
person
16
1.5 Software Quality...
Usability
 Users can learn it and fast and get their job
done easily
Efficiency
 It doesn’t waste resources such as CPU time
and memory
Reliability
 It does what it is required to do without failing
Maintainability
 It can be easily changed
Reusability
 Its parts can be used in other projects, so
17
Software Quality and the Stakeholders
QUALITY
SOFTWARE
Developer:
easy to design;
easy to maintain;
easy to reuse its parts
User:
easy to learn;
efficient to use;
helps get work done
Customer:
solves problems at
an acceptable cost in
terms of money paid and
resources used
Development manager:
sells more and
pleases customers
while costing less
to develop and maintain
18
Software Quality: Conflicts and Objectives
The different qualities can conflict
 Increasing efficiency can reduce
maintainability or reusability
 Increasing usability can reduce efficiency
Setting objectives for quality is a key
engineering activity
 You then design to meet the objectives
 Avoids ‘over-engineering’ which wastes
money
Optimizing is also sometimes necessary
 E.g. obtain the highest possible reliability
using a fixed budget
19
Internal Quality Criteria
These:
 Characterize aspects of the design of the
software
 Have an effect on the external quality
attributes
 E.g.
 The amount of commenting of the code
 The complexity of the code
20
Short Term Vs. Long Term Quality
Short term:
 Does the software meet the customer’s
immediate needs?
 Is it sufficiently efficient for the volume of data
we have today?
Long term:
 Maintainability
 Customer’s future needs
 Scalability: Can the software handle larger
volumes of data?
21
1.6 Software Engineering Projects
Most projects are evolutionary or
maintenance projects, involving work on
legacy systems
 Corrective projects: fixing defects
 Adaptive projects: changing the system in
response to changes in
 Operating system
 Database
 Rules and regulations
 Enhancement projects: adding new features
for users
 Reengineering or perfective projects:
22
Software Engineering Projects
‘Green field’ projects
 New development
 The minority of projects
23
Software Engineering Projects
Projects that involve building on a
framework or a set of existing
components.
 A framework is an application that is missing
some important details.
 E.g. Specific rules of this organization.
 Such projects:
 Involve plugging together components that are:
 Already developed.
 Provide significant functionality.
 Benefit from reusing reliable software.
 Provide much of the same freedom to innovate
found in green field development.
24
1.7 Activities Common to Software
Projects...
Requirements and specification
 Includes
 Domain analysis
 Defining the problem
 Requirements gathering
 Obtaining input from as many sources as possible
 Requirements analysis
 Organizing the information
 Requirements specification
 Writing detailed instructions about how the software
should behave
25
Activities Common to Software Projects...
Design
 Deciding how the requirements should be
implemented, using the available technology
 Includes:
 Systems engineering: Deciding what should be
in hardware and what in software
 Software architecture: Dividing the system into
subsystems and deciding how the subsystems
will interact
 Detailed design of the internals of a subsystem
 User interface design
 Design of databases
26
Activities Common to Software Projects
Modeling
 Creating representations of the domain or the
software
 Use case modeling
 Structural modeling
 Dynamic and behavioural modeling
Programming
Quality assurance
 Reviews and inspections
 Testing
Deployment
Managing the process
27
1.8 The Nine Themes of the Book
1. Understanding the customer and the user
2. Basing development on solid principles
and reusable technology
3. Object orientation
4. Visual modeling using UML
5. Evaluation of alternatives
6. Incorporating quantitative and logical
thinking
7. Iterative and agile development
8. Communicating effectively using
documentation
28
1.9 Difficulties and Risks in Software
Engineering
• Complexity and large numbers of details
• Uncertainty about technology
• Uncertainty about requirements
• Uncertainty about software engineering
skills
• Constant change
• Deterioration of software design
• Political risks

More Related Content

Similar to Software Engineering Chapter 1 Introduction

Similar to Software Engineering Chapter 1 Introduction (20)

SE chp1 update and learning management .pptx
SE chp1 update and learning management .pptxSE chp1 update and learning management .pptx
SE chp1 update and learning management .pptx
 
Lecture 1 SE.pptx
Lecture 1 SE.pptxLecture 1 SE.pptx
Lecture 1 SE.pptx
 
lecture 1.pdf
lecture 1.pdflecture 1.pdf
lecture 1.pdf
 
Ian Sommerville, Software Engineering, 9th Edition Ch1
Ian Sommerville,  Software Engineering, 9th Edition Ch1Ian Sommerville,  Software Engineering, 9th Edition Ch1
Ian Sommerville, Software Engineering, 9th Edition Ch1
 
Software Engineering and Introduction, Activities and ProcessModels
Software Engineering and Introduction, Activities and ProcessModels Software Engineering and Introduction, Activities and ProcessModels
Software Engineering and Introduction, Activities and ProcessModels
 
Software Engineering Basics.pdf
Software Engineering Basics.pdfSoftware Engineering Basics.pdf
Software Engineering Basics.pdf
 
Week1.pptx
Week1.pptxWeek1.pptx
Week1.pptx
 
3
33
3
 
Software engineering study materials
Software engineering study materialsSoftware engineering study materials
Software engineering study materials
 
Software Engineering Unit-1
Software Engineering Unit-1Software Engineering Unit-1
Software Engineering Unit-1
 
Lecture-1,2-Introduction to SE.pptx
Lecture-1,2-Introduction to SE.pptxLecture-1,2-Introduction to SE.pptx
Lecture-1,2-Introduction to SE.pptx
 
Lecture1422914635
Lecture1422914635Lecture1422914635
Lecture1422914635
 
The Product and Process(1).pdf
The Product and Process(1).pdfThe Product and Process(1).pdf
The Product and Process(1).pdf
 
Cnpm bkdn
Cnpm bkdnCnpm bkdn
Cnpm bkdn
 
HCI Chapter_2.ppt
HCI Chapter_2.pptHCI Chapter_2.ppt
HCI Chapter_2.ppt
 
se01.ppt
se01.pptse01.ppt
se01.ppt
 
Basics of software engineering
Basics of software engineeringBasics of software engineering
Basics of software engineering
 
e-Business - SE trends
e-Business - SE trendse-Business - SE trends
e-Business - SE trends
 
Unit 1 OOSE
Unit 1 OOSEUnit 1 OOSE
Unit 1 OOSE
 
Chapter 1 1 - intro ppt
Chapter 1   1 - intro pptChapter 1   1 - intro ppt
Chapter 1 1 - intro ppt
 

Recently uploaded

What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxwendy cai
 
complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...asadnawaz62
 
Arduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptArduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptSAURABHKUMAR892774
 
Introduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHIntroduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHC Sai Kiran
 
Introduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxIntroduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxk795866
 
pipeline in computer architecture design
pipeline in computer architecture  designpipeline in computer architecture  design
pipeline in computer architecture designssuser87fa0c1
 
Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxBiology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxDeepakSakkari2
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidNikhilNagaraju
 
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfCCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfAsst.prof M.Gokilavani
 
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfCCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfAsst.prof M.Gokilavani
 
Effects of rheological properties on mixing
Effects of rheological properties on mixingEffects of rheological properties on mixing
Effects of rheological properties on mixingviprabot1
 
Risk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfRisk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfROCENODodongVILLACER
 
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEINFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEroselinkalist12
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxJoão Esperancinha
 

Recently uploaded (20)

young call girls in Green Park🔝 9953056974 🔝 escort Service
young call girls in Green Park🔝 9953056974 🔝 escort Serviceyoung call girls in Green Park🔝 9953056974 🔝 escort Service
young call girls in Green Park🔝 9953056974 🔝 escort Service
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptx
 
complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...
 
Arduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptArduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.ppt
 
Introduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHIntroduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECH
 
Introduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxIntroduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptx
 
Design and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdfDesign and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdf
 
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
 
pipeline in computer architecture design
pipeline in computer architecture  designpipeline in computer architecture  design
pipeline in computer architecture design
 
Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxBiology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptx
 
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
 
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCRCall Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfid
 
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfCCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
 
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfCCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
 
Effects of rheological properties on mixing
Effects of rheological properties on mixingEffects of rheological properties on mixing
Effects of rheological properties on mixing
 
Risk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfRisk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdf
 
POWER SYSTEMS-1 Complete notes examples
POWER SYSTEMS-1 Complete notes  examplesPOWER SYSTEMS-1 Complete notes  examples
POWER SYSTEMS-1 Complete notes examples
 
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEINFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
 

Software Engineering Chapter 1 Introduction

  • 1. Chapter 1: Software and Software Engineering
  • 2. 2 1.1 The Nature of Software... Software is intangible  Hard to understand development effort Software is easy to reproduce  Cost is in its development  in other engineering products, manufacturing is the costly stage The industry is labor-intensive  Hard to automate
  • 3. 3 The Nature of Software ... Untrained people can hack something together  Quality problems are hard to notice Software is easy to modify  People make changes without fully understanding it Software does not ‘wear out’  It deteriorates by having its design changed:  erroneously, or  in ways that were not anticipated, thus making it complex
  • 4. 4 The Nature of Software Conclusions  Much software has poor design and is getting worse  Demand for software is high and rising  We are in a perpetual ‘software crisis’  We have to learn to ‘engineer’ software
  • 5. 5 Types of Software... Custom  For a specific customer Generic  Sold on open market  Often called  COTS (Commercial Off The Shelf)  Shrink-wrapped Embedded  Built into hardware  Hard to change
  • 6. 6 Types of Software Differences among custom, generic and embedded software Custom Generic Embedded Number ofcopies in use low medium high Total processing power devoted to running this type of software low high medium Worldwide annual development effort high medium low
  • 7. 7 Types of Software Real time software  E.g. control and monitoring systems  Must react immediately  Safety often a concern Data processing software  Used to run businesses  Accuracy and security of data are key Some software has both aspects
  • 8. 8 1.2 What is Software Engineering?... The process of solving customers’ problems by the systematic development and evolution of large, high-quality software systems within cost, time and other constraints Other definitions:  IEEE: (1) the application of a systematic, disciplined, quantifiable approach to the development, operation, maintenance of software; that is, the application of engineering to software. (2) The study of approaches as in (1).  The Canadian Standards Association: The systematic activities involved in the design, implementation and testing of software to optimize its production and support.
  • 9. 9 What is Software Engineering?… Solving customers’ problems  This is the goal of software engineering  Sometimes the solution is to buy, not build  Adding unnecessary features does not help solve the problem  Software engineers must communicate effectively to identify and understand the problem
  • 10. 10 What is Software Engineering?… Systematic development and evolution  An engineering process involves applying well understood techniques in a organized and disciplined way  Many well-accepted practices have been formally standardized  e.g. by the IEEE or ISO  Most development work is evolution
  • 11. 11 What is Software Engineering?… Large, high quality software systems  Software engineering techniques are needed because large systems cannot be completely understood by one person  Teamwork and co-ordination are required  Key challenge: Dividing up the work and ensuring that the parts of the system work properly together  The end-product must be of sufficient quality
  • 12. 12 What is Software Engineering? Cost, time and other constraints  Finite resources  The benefit must outweigh the cost  Others are competing to do the job cheaper and faster  Inaccurate estimates of cost and time have caused many project failures
  • 13. 13 1.3 Software Engineering and the Engineering Profession The term Software Engineering was coined in 1968  People began to realize that the principles of engineering should be applied to software development Engineering is a licensed profession  In order to protect the public  Engineers design artifacts following well accepted practices which involve the application of science, mathematics and economics  Ethical practice is also a key tenet of the profession
  • 14. 14 Software Engineering and the Engineering Profession Ethics in Software Engineering: Software engineers shall  Act consistently with public interest  Act in the best interests of their clients  Develop and maintain with the highest standards possible  Maintain integrity and independence  Promote an ethical approach in management  Advance the integrity and reputation of the profession  Be fair and supportive to colleagues
  • 15. 15 1.4 Stakeholders in Software Engineering 1. Users  Those who use the software 2. Customers  Those who pay for the software 3. Software developers 4. Development Managers All four roles can be fulfilled by the same person
  • 16. 16 1.5 Software Quality... Usability  Users can learn it and fast and get their job done easily Efficiency  It doesn’t waste resources such as CPU time and memory Reliability  It does what it is required to do without failing Maintainability  It can be easily changed Reusability  Its parts can be used in other projects, so
  • 17. 17 Software Quality and the Stakeholders QUALITY SOFTWARE Developer: easy to design; easy to maintain; easy to reuse its parts User: easy to learn; efficient to use; helps get work done Customer: solves problems at an acceptable cost in terms of money paid and resources used Development manager: sells more and pleases customers while costing less to develop and maintain
  • 18. 18 Software Quality: Conflicts and Objectives The different qualities can conflict  Increasing efficiency can reduce maintainability or reusability  Increasing usability can reduce efficiency Setting objectives for quality is a key engineering activity  You then design to meet the objectives  Avoids ‘over-engineering’ which wastes money Optimizing is also sometimes necessary  E.g. obtain the highest possible reliability using a fixed budget
  • 19. 19 Internal Quality Criteria These:  Characterize aspects of the design of the software  Have an effect on the external quality attributes  E.g.  The amount of commenting of the code  The complexity of the code
  • 20. 20 Short Term Vs. Long Term Quality Short term:  Does the software meet the customer’s immediate needs?  Is it sufficiently efficient for the volume of data we have today? Long term:  Maintainability  Customer’s future needs  Scalability: Can the software handle larger volumes of data?
  • 21. 21 1.6 Software Engineering Projects Most projects are evolutionary or maintenance projects, involving work on legacy systems  Corrective projects: fixing defects  Adaptive projects: changing the system in response to changes in  Operating system  Database  Rules and regulations  Enhancement projects: adding new features for users  Reengineering or perfective projects:
  • 22. 22 Software Engineering Projects ‘Green field’ projects  New development  The minority of projects
  • 23. 23 Software Engineering Projects Projects that involve building on a framework or a set of existing components.  A framework is an application that is missing some important details.  E.g. Specific rules of this organization.  Such projects:  Involve plugging together components that are:  Already developed.  Provide significant functionality.  Benefit from reusing reliable software.  Provide much of the same freedom to innovate found in green field development.
  • 24. 24 1.7 Activities Common to Software Projects... Requirements and specification  Includes  Domain analysis  Defining the problem  Requirements gathering  Obtaining input from as many sources as possible  Requirements analysis  Organizing the information  Requirements specification  Writing detailed instructions about how the software should behave
  • 25. 25 Activities Common to Software Projects... Design  Deciding how the requirements should be implemented, using the available technology  Includes:  Systems engineering: Deciding what should be in hardware and what in software  Software architecture: Dividing the system into subsystems and deciding how the subsystems will interact  Detailed design of the internals of a subsystem  User interface design  Design of databases
  • 26. 26 Activities Common to Software Projects Modeling  Creating representations of the domain or the software  Use case modeling  Structural modeling  Dynamic and behavioural modeling Programming Quality assurance  Reviews and inspections  Testing Deployment Managing the process
  • 27. 27 1.8 The Nine Themes of the Book 1. Understanding the customer and the user 2. Basing development on solid principles and reusable technology 3. Object orientation 4. Visual modeling using UML 5. Evaluation of alternatives 6. Incorporating quantitative and logical thinking 7. Iterative and agile development 8. Communicating effectively using documentation
  • 28. 28 1.9 Difficulties and Risks in Software Engineering • Complexity and large numbers of details • Uncertainty about technology • Uncertainty about requirements • Uncertainty about software engineering skills • Constant change • Deterioration of software design • Political risks