SlideShare a Scribd company logo
1 of 33
Dr. Syed Ali Raza
Assistant Professor
Department of Computer Science
GC University Lahore
Lecture 2
Introduction to SE
Slide Set to accompany
Software Engineering: A Practitioner’s Approach, 7/e
by Roger S. Pressman
Used w. extensive rework,
but later abandoned
20%
Used as delivered
2%
Usable w. rework
3%
Delivered, but never
successfully used
45%
Paid for, but
not delivered
30%
Take a look at the Standish Report (The “Chaos” Report)
 Software is:
 (1) instructions (computer programs) that when
executed provide desired features, function, and
performance;
 (2) data structures that enable the programs to
adequately manipulate information and
 (3) documentation that describes the operation and
use of the programs.
 Software is developed or engineered, it is not
manufactured in the classical sense.
 Software doesn't "wear out."
 Although the industry is moving toward
component-based construction, most software
continues to be custom-built.
 system software
 application software
 engineering/scientific software
 embedded software
 product-line software
 WebApps (Web applications)
 AI software
 Open world computing—pervasive, distributed computing
 Ubiquitous computing—wireless networks
 Netsourcing—the Web as a computing engine
 Open source—”free” source code open to the computing community (a
blessing, but also a potential curse!)
 Also … (see Chapter 31)
 Data mining
 Grid computing
 Cognitive machines
 Software for nanotechnologies
 Why must it change
 software must be adapted to meet the needs of new
computing environments or technology.
 software must be enhanced to implement new business
requirements.
 software must be extended to make it interoperable with
other more modern systems or databases.
 software must be re-architected to make it viable within
a network environment.
 Some realities:
 a concerted effort should be made to understand the
problem before a software solution is developed
 design becomes a pivotal activity
 software should exhibit high quality
 software should be maintainable
 The seminal definition:
 [Software engineering is] the establishment and use of
sound engineering principles in order to obtain
economically software that is reliable and works
efficiently on real machines.
 The IEEE definition:
 Software Engineering: (1) The application of a
systematic, disciplined, quantifiable approach to the
development, operation, and maintenance of software;
that is, the application of engineering to software. (2)
The study of approaches as in (1).
Software Engineering
a “quality” focus
process model
methods
tools
 Analysis: Understand the nature of the problem and break
the problem into pieces
 Synthesis: Put the pieces together into a large structure
For problem solving we use
 Techniques (methods):
 Formal procedures for producing results using some well-
defined notation
 Methodologies:
 Collection of techniques applied across software development
and unified by a philosophical approach
 Tools:
 Instrument or automated systems to accomplish a technique
 Process framework
 Framework activities
 work tasks
 work products
 milestones & deliverables
 QA checkpoints
 Umbrella Activities
 Communication
 Planning
 Modeling
 Analysis of requirements
 Design
 Construction
 Code generation
 Testing
 Deployment
• A generic process framework
for software engineering
defines five framework activities
• Communication
• Planning
• Modeling
• Construction
• Deployment
• In addition, a set of umbrella
activities are applied throughout
the process
• Project tracking and control
• Risk management
• Quality assurance
• Configuration management
• Technical reviews
How the framework activities and the actions and tasks that occur
within each activity are organized with respect to sequence and time?
 the overall flow of activities, actions, and tasks and the
interdependencies among them
 the degree to which actions and tasks are defined within each
framework activity
 the degree to which work products are identified and required
 the manner which quality assurance activities are applied
 the manner in which project tracking and control activities are applied
 the overall degree of detail and rigor with which the process is
described
 the degree to which the customer and other stakeholders are
involved with the project
 the level of autonomy given to the software team
 the degree to which team organization and roles are prescribed
 Polya suggests:
1.Understand the problem (communication and analysis).
2.Plan a solution (modeling and software design).
3.Carry out the plan (code generation).
4.Examine the result for accuracy (testing and quality
assurance).
22
 Who has a stake in the solution to the problem?
 That is, who are the stakeholders?
 What are the unknowns?
 What data, functions, and features are required to
properly solve the problem?
 Can the problem be compartmentalized?
 Is it possible to represent smaller problems that may
be easier to understand?
 Can the problem be represented graphically?
 Can an analysis model be created?
 Have you seen similar problems before?
 Are there patterns that are recognizable in a potential solution? Is there
existing software that implements the data, functions, and features that
are required?
 Has a similar problem been solved?
 If so, are elements of the solution reusable?
 Can sub-problems be defined?
 If so, are solutions readily apparent for the sub-problems?
 Can you represent a solution in a manner that leads to effective
implementation?
 Can a design model be created?
 Does the solution conform to the plan?
 Is source code traceable to the design model?
 Is each component part of the solution provably
correct?
 Has the design and code been reviewed, or better,
have correctness proofs been applied to algorithm?
 Is it possible to test each component part of the
solution?
 Has a reasonable testing strategy been implemented?
 Does the solution produce results that conform to the
data, functions, and features that are required?
 Has the software been validated against all
stakeholder requirements?
 1: The Reason It All Exists
 2: KISS (Keep It Simple, Stupid!)
 3: Maintain the Vision
 4: What You Produce, Others Will Consume
 5: Be Open to the Future
 6: Plan Ahead for Reuse
 7: Think!
27
 SafeHome:
 Every software project is precipitated by some
business need—
 the need to correct a defect in an existing application;
 the need to the need to adapt a ‘legacy system’ to a
changing business environment;
 the need to extend the functions and features of an existing
application, or
 the need to create a new product, service, or system.
 Heterogeneity
 Increasingly, systems are required to operate as
distributed systems across networks that include
different types of computer and mobile devices.
 Business and social change
 Business and society are changing incredibly quickly as
emerging economies develop and new technologies
become available. They need to be able to change their
existing software and to rapidly develop new software.
 Security and trust
 As software is intertwined with all aspects of our lives, it
is essential that we can trust that software.
 Management myths
 Standards and procedures for building software
 Add more programmers if behind the schedule
 Customer myths
 A general description of objectives enough to start coding
 Requirements may change as the software is flexible
 Practitioner myths
 Task accomplished when the program works
 Quality assessment when the program is running
 Working program the only project deliverable
 Software engineering involves wider responsibilities
than simply the application of technical skills.
 Software engineers must behave in an honest and
ethically responsible way if they are to be respected as
professionals.
 Ethical behaviour is more than simply upholding the
law but involves following a set of principles that are
morally correct.
 Confidentiality
 Engineers should normally respect the confidentiality of
their employers or clients irrespective of whether or not
a formal confidentiality agreement has been signed.
 Competence
 Engineers should not misrepresent their level of
competence. They should not knowingly accept work
which is outwith their competence.
 Intellectual property rights
 Engineers should be aware of local laws governing the use of
intellectual property such as patents, copyright, etc. They should be
careful to ensure that the intellectual property of employers and
clients is protected.
 Computer misuse
 Software engineers should not use their technical skills to misuse
other people’s computers. Computer misuse ranges from relatively
trivial (game playing on an employer’s machine, say) to extremely
serious (dissemination of viruses).
 Pressman Slides
 Sommerville Slides
 Whitten-Bentley Slides

More Related Content

Similar to Lecture 1 SE.pptx

Chapter_01.ppt
Chapter_01.pptChapter_01.ppt
Chapter_01.pptMSahibKhan
 
Software Engineering Basics.pdf
Software Engineering Basics.pdfSoftware Engineering Basics.pdf
Software Engineering Basics.pdfPriyajit Sen
 
Software Engineering Unit-1
Software Engineering Unit-1Software Engineering Unit-1
Software Engineering Unit-1Samura Daniel
 
Introduction of Software Engineering
Introduction of Software EngineeringIntroduction of Software Engineering
Introduction of Software EngineeringMuhammadTalha436
 
Soft Eng - Introduction
Soft Eng - IntroductionSoft Eng - Introduction
Soft Eng - IntroductionJomel Penalba
 
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 .pptxssuserdee5bb1
 
ccs356-software-engineering-notes.pdf
ccs356-software-engineering-notes.pdfccs356-software-engineering-notes.pdf
ccs356-software-engineering-notes.pdfVijayakumarKadumbadi
 
Introduction To Software Concepts Unit 1 & 2
Introduction To Software Concepts Unit 1 & 2Introduction To Software Concepts Unit 1 & 2
Introduction To Software Concepts Unit 1 & 2Raj vardhan
 
Managing Software Project
Managing Software ProjectManaging Software Project
Managing Software ProjectAnas Bilal
 
Notes of Software engineering and Project Management
Notes of Software engineering and Project ManagementNotes of Software engineering and Project Management
Notes of Software engineering and Project ManagementNANDINI SHARMA
 
Software engineering introduction
Software engineering introductionSoftware engineering introduction
Software engineering introductionVishal Singh
 
Software engineering study materials
Software engineering study materialsSoftware engineering study materials
Software engineering study materialssmruti sarangi
 
Introduction to software engineering
Introduction to software engineeringIntroduction to software engineering
Introduction to software engineeringHitesh Mohapatra
 

Similar to Lecture 1 SE.pptx (20)

Chapter_01.ppt
Chapter_01.pptChapter_01.ppt
Chapter_01.ppt
 
Software Engineering Basics.pdf
Software Engineering Basics.pdfSoftware Engineering Basics.pdf
Software Engineering Basics.pdf
 
se
sese
se
 
Software Engineering Unit-1
Software Engineering Unit-1Software Engineering Unit-1
Software Engineering Unit-1
 
3.pptx
3.pptx3.pptx
3.pptx
 
Introduction of Software Engineering
Introduction of Software EngineeringIntroduction of Software Engineering
Introduction of Software Engineering
 
Soft Eng - Introduction
Soft Eng - IntroductionSoft Eng - Introduction
Soft Eng - Introduction
 
Ch1
Ch1Ch1
Ch1
 
Ch1
Ch1Ch1
Ch1
 
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
 
ccs356-software-engineering-notes.pdf
ccs356-software-engineering-notes.pdfccs356-software-engineering-notes.pdf
ccs356-software-engineering-notes.pdf
 
Introduction To Software Concepts Unit 1 & 2
Introduction To Software Concepts Unit 1 & 2Introduction To Software Concepts Unit 1 & 2
Introduction To Software Concepts Unit 1 & 2
 
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
Software engineeringSoftware engineering
Software engineering
 
Lecture 1.pptx
Lecture 1.pptxLecture 1.pptx
Lecture 1.pptx
 
Managing Software Project
Managing Software ProjectManaging Software Project
Managing Software Project
 
Notes of Software engineering and Project Management
Notes of Software engineering and Project ManagementNotes of Software engineering and Project Management
Notes of Software engineering and Project Management
 
Software engineering introduction
Software engineering introductionSoftware engineering introduction
Software engineering introduction
 
Software engineering study materials
Software engineering study materialsSoftware engineering study materials
Software engineering study materials
 
Introduction to software engineering
Introduction to software engineeringIntroduction to software engineering
Introduction to software engineering
 

Recently uploaded

Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 

Recently uploaded (20)

Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 

Lecture 1 SE.pptx

  • 1. Dr. Syed Ali Raza Assistant Professor Department of Computer Science GC University Lahore
  • 2. Lecture 2 Introduction to SE Slide Set to accompany Software Engineering: A Practitioner’s Approach, 7/e by Roger S. Pressman
  • 3.
  • 4. Used w. extensive rework, but later abandoned 20% Used as delivered 2% Usable w. rework 3% Delivered, but never successfully used 45% Paid for, but not delivered 30% Take a look at the Standish Report (The “Chaos” Report)
  • 5.
  • 6.  Software is:  (1) instructions (computer programs) that when executed provide desired features, function, and performance;  (2) data structures that enable the programs to adequately manipulate information and  (3) documentation that describes the operation and use of the programs.
  • 7.  Software is developed or engineered, it is not manufactured in the classical sense.  Software doesn't "wear out."  Although the industry is moving toward component-based construction, most software continues to be custom-built.
  • 8.
  • 9.  system software  application software  engineering/scientific software  embedded software  product-line software  WebApps (Web applications)  AI software
  • 10.  Open world computing—pervasive, distributed computing  Ubiquitous computing—wireless networks  Netsourcing—the Web as a computing engine  Open source—”free” source code open to the computing community (a blessing, but also a potential curse!)  Also … (see Chapter 31)  Data mining  Grid computing  Cognitive machines  Software for nanotechnologies
  • 11.  Why must it change  software must be adapted to meet the needs of new computing environments or technology.  software must be enhanced to implement new business requirements.  software must be extended to make it interoperable with other more modern systems or databases.  software must be re-architected to make it viable within a network environment.
  • 12.  Some realities:  a concerted effort should be made to understand the problem before a software solution is developed  design becomes a pivotal activity  software should exhibit high quality  software should be maintainable  The seminal definition:  [Software engineering is] the establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines.
  • 13.  The IEEE definition:  Software Engineering: (1) The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. (2) The study of approaches as in (1).
  • 14. Software Engineering a “quality” focus process model methods tools
  • 15.  Analysis: Understand the nature of the problem and break the problem into pieces  Synthesis: Put the pieces together into a large structure For problem solving we use  Techniques (methods):  Formal procedures for producing results using some well- defined notation  Methodologies:  Collection of techniques applied across software development and unified by a philosophical approach  Tools:  Instrument or automated systems to accomplish a technique
  • 16.  Process framework  Framework activities  work tasks  work products  milestones & deliverables  QA checkpoints  Umbrella Activities
  • 17.  Communication  Planning  Modeling  Analysis of requirements  Design  Construction  Code generation  Testing  Deployment
  • 18.
  • 19. • A generic process framework for software engineering defines five framework activities • Communication • Planning • Modeling • Construction • Deployment • In addition, a set of umbrella activities are applied throughout the process • Project tracking and control • Risk management • Quality assurance • Configuration management • Technical reviews How the framework activities and the actions and tasks that occur within each activity are organized with respect to sequence and time?
  • 20.  the overall flow of activities, actions, and tasks and the interdependencies among them  the degree to which actions and tasks are defined within each framework activity  the degree to which work products are identified and required  the manner which quality assurance activities are applied  the manner in which project tracking and control activities are applied  the overall degree of detail and rigor with which the process is described  the degree to which the customer and other stakeholders are involved with the project  the level of autonomy given to the software team  the degree to which team organization and roles are prescribed
  • 21.  Polya suggests: 1.Understand the problem (communication and analysis). 2.Plan a solution (modeling and software design). 3.Carry out the plan (code generation). 4.Examine the result for accuracy (testing and quality assurance).
  • 22. 22  Who has a stake in the solution to the problem?  That is, who are the stakeholders?  What are the unknowns?  What data, functions, and features are required to properly solve the problem?  Can the problem be compartmentalized?  Is it possible to represent smaller problems that may be easier to understand?  Can the problem be represented graphically?  Can an analysis model be created?
  • 23.  Have you seen similar problems before?  Are there patterns that are recognizable in a potential solution? Is there existing software that implements the data, functions, and features that are required?  Has a similar problem been solved?  If so, are elements of the solution reusable?  Can sub-problems be defined?  If so, are solutions readily apparent for the sub-problems?  Can you represent a solution in a manner that leads to effective implementation?  Can a design model be created?
  • 24.  Does the solution conform to the plan?  Is source code traceable to the design model?  Is each component part of the solution provably correct?  Has the design and code been reviewed, or better, have correctness proofs been applied to algorithm?
  • 25.  Is it possible to test each component part of the solution?  Has a reasonable testing strategy been implemented?  Does the solution produce results that conform to the data, functions, and features that are required?  Has the software been validated against all stakeholder requirements?
  • 26.  1: The Reason It All Exists  2: KISS (Keep It Simple, Stupid!)  3: Maintain the Vision  4: What You Produce, Others Will Consume  5: Be Open to the Future  6: Plan Ahead for Reuse  7: Think!
  • 27. 27  SafeHome:  Every software project is precipitated by some business need—  the need to correct a defect in an existing application;  the need to the need to adapt a ‘legacy system’ to a changing business environment;  the need to extend the functions and features of an existing application, or  the need to create a new product, service, or system.
  • 28.  Heterogeneity  Increasingly, systems are required to operate as distributed systems across networks that include different types of computer and mobile devices.  Business and social change  Business and society are changing incredibly quickly as emerging economies develop and new technologies become available. They need to be able to change their existing software and to rapidly develop new software.  Security and trust  As software is intertwined with all aspects of our lives, it is essential that we can trust that software.
  • 29.  Management myths  Standards and procedures for building software  Add more programmers if behind the schedule  Customer myths  A general description of objectives enough to start coding  Requirements may change as the software is flexible  Practitioner myths  Task accomplished when the program works  Quality assessment when the program is running  Working program the only project deliverable
  • 30.  Software engineering involves wider responsibilities than simply the application of technical skills.  Software engineers must behave in an honest and ethically responsible way if they are to be respected as professionals.  Ethical behaviour is more than simply upholding the law but involves following a set of principles that are morally correct.
  • 31.  Confidentiality  Engineers should normally respect the confidentiality of their employers or clients irrespective of whether or not a formal confidentiality agreement has been signed.  Competence  Engineers should not misrepresent their level of competence. They should not knowingly accept work which is outwith their competence.
  • 32.  Intellectual property rights  Engineers should be aware of local laws governing the use of intellectual property such as patents, copyright, etc. They should be careful to ensure that the intellectual property of employers and clients is protected.  Computer misuse  Software engineers should not use their technical skills to misuse other people’s computers. Computer misuse ranges from relatively trivial (game playing on an employer’s machine, say) to extremely serious (dissemination of viruses).
  • 33.  Pressman Slides  Sommerville Slides  Whitten-Bentley Slides