SlideShare a Scribd company logo
Software Engineering A Greasemonkey introduction Nikola Stjelja, Senior Software Engineer
Engineering
Engineering Engineering is the discipline, art and profession of acquiring and applying technical, scientific, and mathematical knowledge to design and implement materials, structures, machines, devices, systems, and processes that safely realize a desired objective or invention. Wikipedia - http://en.wikipedia.org/wiki/Engineering
Software Engineering
Software Engineering Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software. Wikipedia - http://en.wikipedia.org/wiki/Software_engineering
Software Engineer
Software Engineer A practicant of systematic, disciplined and quantifiable approaches to the development and maintenance of software.  A skilled craftsman practicing and training on the tools an techniques used to development and maintenance of software. A teacher of less skilled and experienced engineers in practices of software engineering.
Software Development is just not craft
Software Development is just not craft Every day software developers practice in the tools and techniques needed to develop software. Every day their experience and skill increases. Many software systems are developed through sheer developer skill and experience.  Mays such systems sooner or later come to problems which can be solved by applying systematic, disciplined and controlled practices to their development.
Software Engineering Key Elements Repeatability – everything must be repeatable by everyone. Accountability – at any time it must be possible to se who has done what and why. Planning – every key element of the development and maintenance of a software product must be planned. Tracking – every element of a software product must be tracked through its life – cycle. Building– a software product must be built as optimally as possible.
Software development process
Software development process Software development process is the agreed and by all involved parties understood process of planning, implementing, testing and deploying of a software product. Software development process is the tangible embodiment of all the software engineering key elements: repeatability, accountability, planning, trackingand building.
Software development process families Software development processes are organized into phases. Each phase is dominated by one or several key activities performed during its course. There are two major software development families : sequential and iterative. A software development process can have a higher or lower degree of formality.
Iterative development process SCRUM ,[object Object]
Each iteration is covers all software development activities : requirements, design, coding , testing and deployment.
  The software development process is done in time boxed iterations where requirements are fixed.
  The product owner – client can change requirements between iterations.
  SCRUM encourages self organizing cross functional teams.,[object Object]
Requirements
Requirements A requirement is a statement of the scope, behavior and limits a of specific software system characteristic or function. There are two types of requirements : functional that deal with the functionality expected from the system by the clients non-functional that deal with all the other characterizes a software product must have Requirements are written in the System Requirements Specification document
Software Architecture
Software Architecture Software architecture is the process of defining a structured solution that meets all technical and operational requirements while optimizing common quality attributes as performance, security and manageability. Software architecture is the highest level breakdown of system into parts and processes.  Software architecture is the bridge between requirements and the technical design and solution of a product.
Detailed Design
Detailed Design Detailed design of a software product is the blueprint definition of its smallest components. There are two ways of blueprinting a module: Public interface specificationon which defines only the functions or objects which may be used by components integrating with the module being designed. Comprehensive structure definitionwhich defines in detail all the nuts and bolts (e.g. public and private functions and objects) of the module being designed). After completion the detailed design is passed to the development team to be implemented.
Software Construction
Software Construction Software construction is the process of writing, linking and compiling of a software product. Software  construction is the meeting ground between engineering and crafting. There a two key characteristics of properly constructed software product: The product is constructed by following the appropriate  patterns  associated with the product type being build. The product does what is supposed to do with a reasonable level of quality, security and performance.
Software Testing
Software Testing Software testing is the process of proving that the implemented software product meets its requirements within the assigned quality parameters. A software product can be tested in multiple ways: Unit-testing. Functional testing. Integration testing. Security testing. Performance testing. Acceptance testing. Software testing must be automated and carried out as soon as possible and as often as possible for the greatest results.
Software Deployment
Software Deployment Software deployment is a process covering a set of activities related to: Releasing of a software product version. Installation and activation of a product at a client site. Deactivation of a product at a client site. Updating of a product at the client site. Uninstallation of a product at the client site. Software deployment activities must be automated and streamlined as much as possible.
Software Maintenance
Software Maintenance Software maintenance is the process of tracking and applying controlled changes to a released software product with the goal of fixing defects, improving product quality attributes and adapting the product to a changed environment. Software maintenance deals with issues arisen from the development on a production system and the conflicting needs of functional and operational stability against entropy and user needs.
Software configuration management Software configuration management (SCM) is the discipline of evaluating, tracking, controlling, naming and versioning of changes made to Configuration Items (CI) through the life-cycle of a software product. A Configuration Item is an artifact (document, image, source code, third-party library, tool) which is placed under configuration management control.  Configuration Control Board (CCB) is the body assigned with the authority of enforcing the configuration control policies set in the Software Configuration Management plan.
SCM Plan The Software Configuration Management Plan (SCM Plan) is an document that prescribes the policies and rules which must be followed when implementing configuration management on a software product. The SCM Plan covers the following sections: Scope of the configuration control. Project team organization and roles. Tools and policies use for product development and configuration control. Configuration Item scope and definition. Baseline definition and naming. Release definition and naming. Configuration Item and Configuration Item change request auditing. It is important to : tailor the SCM Plan to the type of product developed and the software organization culture, dissimenate the document to all involved parties as the baseline for each configuration managmentactivites.
Issue tracker
Issue tracker AnIssue Tracker is tool used to automated and help with the tediousness of Software Configuration Change management. An Issue Tracker tracks generally the three following types of issues (tickets etc.) : Task Defect Change Request An Issue Tracker can also link up with a SCM Repository to better track associations with Issues and changes made to Configuration Items. Examples of issue trackers : Bugzilla, Mantis, Fogbugz, TFS etc.
SCM Repository

More Related Content

What's hot

Ch 1 the software quality assurance challange
Ch 1 the software quality assurance challangeCh 1 the software quality assurance challange
Ch 1 the software quality assurance challangeKittitouch Suteeca
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
Ahmed Alageed
 
Ch2-Software Engineering 9
Ch2-Software Engineering 9Ch2-Software Engineering 9
Ch2-Software Engineering 9Ian Sommerville
 
Lecture 4
Lecture 4Lecture 4
Lecture 4
Ahmed Alageed
 
Ch 9 traceability and verification
Ch 9 traceability and verificationCh 9 traceability and verification
Ch 9 traceability and verificationKittitouch Suteeca
 
Introduction To Software Configuration Management
Introduction To Software Configuration ManagementIntroduction To Software Configuration Management
Introduction To Software Configuration Management
Rajesh Kumar
 
Ch25-Software Engineering 9
Ch25-Software Engineering 9Ch25-Software Engineering 9
Ch25-Software Engineering 9Ian Sommerville
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
Zahoor Khan
 
Process in Software Engineering/4'ps in Software Engineerin
Process in Software Engineering/4'ps in Software EngineerinProcess in Software Engineering/4'ps in Software Engineerin
Process in Software Engineering/4'ps in Software Engineerin
MuhammadSufianJani
 
2. Software process
2. Software process2. Software process
2. Software process
Ashis Kumar Chanda
 
Lect2 quality factor
Lect2 quality factorLect2 quality factor
Lect2 quality factor
babak sh
 
Software Configuration Management
Software Configuration ManagementSoftware Configuration Management
Software Development Life Cycle Testingtypes
Software Development Life Cycle TestingtypesSoftware Development Life Cycle Testingtypes
Software Development Life Cycle Testingtypesvladimir zaremba
 
Ch 7 integrating quality activities in the projectlife cycle
Ch 7 integrating quality activities in the projectlife cycleCh 7 integrating quality activities in the projectlife cycle
Ch 7 integrating quality activities in the projectlife cycleKittitouch Suteeca
 
software product and its characteristics
software product and its characteristicssoftware product and its characteristics
software product and its characteristics
Priyanka Pradhan
 
Ch24-Software Engineering 9
Ch24-Software Engineering 9Ch24-Software Engineering 9
Ch24-Software Engineering 9Ian Sommerville
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
UMA PARAMESWARI
 

What's hot (19)

Ch 1 the software quality assurance challange
Ch 1 the software quality assurance challangeCh 1 the software quality assurance challange
Ch 1 the software quality assurance challange
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
 
Ch2-Software Engineering 9
Ch2-Software Engineering 9Ch2-Software Engineering 9
Ch2-Software Engineering 9
 
Ch 2 what is software quality
Ch 2 what is software qualityCh 2 what is software quality
Ch 2 what is software quality
 
Ch 3 software quality factor
Ch 3 software quality factorCh 3 software quality factor
Ch 3 software quality factor
 
Lecture 4
Lecture 4Lecture 4
Lecture 4
 
Ch 9 traceability and verification
Ch 9 traceability and verificationCh 9 traceability and verification
Ch 9 traceability and verification
 
Introduction To Software Configuration Management
Introduction To Software Configuration ManagementIntroduction To Software Configuration Management
Introduction To Software Configuration Management
 
Ch25-Software Engineering 9
Ch25-Software Engineering 9Ch25-Software Engineering 9
Ch25-Software Engineering 9
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Process in Software Engineering/4'ps in Software Engineerin
Process in Software Engineering/4'ps in Software EngineerinProcess in Software Engineering/4'ps in Software Engineerin
Process in Software Engineering/4'ps in Software Engineerin
 
2. Software process
2. Software process2. Software process
2. Software process
 
Lect2 quality factor
Lect2 quality factorLect2 quality factor
Lect2 quality factor
 
Software Configuration Management
Software Configuration ManagementSoftware Configuration Management
Software Configuration Management
 
Software Development Life Cycle Testingtypes
Software Development Life Cycle TestingtypesSoftware Development Life Cycle Testingtypes
Software Development Life Cycle Testingtypes
 
Ch 7 integrating quality activities in the projectlife cycle
Ch 7 integrating quality activities in the projectlife cycleCh 7 integrating quality activities in the projectlife cycle
Ch 7 integrating quality activities in the projectlife cycle
 
software product and its characteristics
software product and its characteristicssoftware product and its characteristics
software product and its characteristics
 
Ch24-Software Engineering 9
Ch24-Software Engineering 9Ch24-Software Engineering 9
Ch24-Software Engineering 9
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 

Similar to Sofware engineering

SE-Unit I.pptx
SE-Unit I.pptxSE-Unit I.pptx
SE-Unit I.pptx
AMITKUMARSINGH756828
 
Software Engineering Overview
Software Engineering OverviewSoftware Engineering Overview
Software Engineering Overview
Prachi Sasankar
 
CS8494 SOFTWARE ENGINEERING Unit-1
CS8494 SOFTWARE ENGINEERING Unit-1CS8494 SOFTWARE ENGINEERING Unit-1
CS8494 SOFTWARE ENGINEERING Unit-1
SIMONTHOMAS S
 
software engineering
 software engineering software engineering
software engineering
Ahmed Elshahat Mohamed
 
Elementary Probability theory Chapter 2.pptx
Elementary Probability theory Chapter 2.pptxElementary Probability theory Chapter 2.pptx
Elementary Probability theory Chapter 2.pptx
ethiouniverse
 
16346915.ppt
16346915.ppt16346915.ppt
16346915.ppt
PunitGupta71
 
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
NANDINI SHARMA
 
Unit_I.pptx
Unit_I.pptxUnit_I.pptx
Unit_I.pptx
Baskarkncet
 
Software engineering study materials
Software engineering study materialsSoftware engineering study materials
Software engineering study materials
smruti sarangi
 
SE notes by k. adisesha
SE notes by k. adiseshaSE notes by k. adisesha
SE notes by k. adisesha
Prof. Dr. K. Adisesha
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
UMA PARAMESWARI
 
Understanding the Software Development Life Cycle
Understanding the Software Development Life CycleUnderstanding the Software Development Life Cycle
Understanding the Software Development Life Cycle
Tyrion Lannister
 
ccs356-software-engineering-notes.pdf
ccs356-software-engineering-notes.pdfccs356-software-engineering-notes.pdf
ccs356-software-engineering-notes.pdf
VijayakumarKadumbadi
 
Qa analyst training
Qa analyst training Qa analyst training
Qa analyst training
Dinesh Pokhrel
 
Software Specifications with details exp
Software Specifications with details expSoftware Specifications with details exp
Software Specifications with details exp
AkhileshPansare
 
Se lec 3
Se lec 3Se lec 3
Se lec 3
Huda Alameen
 
Softweare Engieering
Softweare Engieering Softweare Engieering
Softweare Engieering
Huda Alameen
 
Fundamentals of software development
Fundamentals of software developmentFundamentals of software development
Fundamentals of software development
Pratik Devmurari
 
Software engineering (Unit-1 Introduction)
Software engineering (Unit-1 Introduction)Software engineering (Unit-1 Introduction)
Software engineering (Unit-1 Introduction)
YamunaP6
 
Slide set 1 (Traditional Software Development) (1).pptx
Slide set 1 (Traditional Software Development) (1).pptxSlide set 1 (Traditional Software Development) (1).pptx
Slide set 1 (Traditional Software Development) (1).pptx
UTKARSHBHARDWAJ71
 

Similar to Sofware engineering (20)

SE-Unit I.pptx
SE-Unit I.pptxSE-Unit I.pptx
SE-Unit I.pptx
 
Software Engineering Overview
Software Engineering OverviewSoftware Engineering Overview
Software Engineering Overview
 
CS8494 SOFTWARE ENGINEERING Unit-1
CS8494 SOFTWARE ENGINEERING Unit-1CS8494 SOFTWARE ENGINEERING Unit-1
CS8494 SOFTWARE ENGINEERING Unit-1
 
software engineering
 software engineering software engineering
software engineering
 
Elementary Probability theory Chapter 2.pptx
Elementary Probability theory Chapter 2.pptxElementary Probability theory Chapter 2.pptx
Elementary Probability theory Chapter 2.pptx
 
16346915.ppt
16346915.ppt16346915.ppt
16346915.ppt
 
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
 
Unit_I.pptx
Unit_I.pptxUnit_I.pptx
Unit_I.pptx
 
Software engineering study materials
Software engineering study materialsSoftware engineering study materials
Software engineering study materials
 
SE notes by k. adisesha
SE notes by k. adiseshaSE notes by k. adisesha
SE notes by k. adisesha
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
Understanding the Software Development Life Cycle
Understanding the Software Development Life CycleUnderstanding the Software Development Life Cycle
Understanding the Software Development Life Cycle
 
ccs356-software-engineering-notes.pdf
ccs356-software-engineering-notes.pdfccs356-software-engineering-notes.pdf
ccs356-software-engineering-notes.pdf
 
Qa analyst training
Qa analyst training Qa analyst training
Qa analyst training
 
Software Specifications with details exp
Software Specifications with details expSoftware Specifications with details exp
Software Specifications with details exp
 
Se lec 3
Se lec 3Se lec 3
Se lec 3
 
Softweare Engieering
Softweare Engieering Softweare Engieering
Softweare Engieering
 
Fundamentals of software development
Fundamentals of software developmentFundamentals of software development
Fundamentals of software development
 
Software engineering (Unit-1 Introduction)
Software engineering (Unit-1 Introduction)Software engineering (Unit-1 Introduction)
Software engineering (Unit-1 Introduction)
 
Slide set 1 (Traditional Software Development) (1).pptx
Slide set 1 (Traditional Software Development) (1).pptxSlide set 1 (Traditional Software Development) (1).pptx
Slide set 1 (Traditional Software Development) (1).pptx
 

Recently uploaded

Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
Vlad Stirbu
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 

Recently uploaded (20)

Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 

Sofware engineering

  • 1. Software Engineering A Greasemonkey introduction Nikola Stjelja, Senior Software Engineer
  • 3. Engineering Engineering is the discipline, art and profession of acquiring and applying technical, scientific, and mathematical knowledge to design and implement materials, structures, machines, devices, systems, and processes that safely realize a desired objective or invention. Wikipedia - http://en.wikipedia.org/wiki/Engineering
  • 5. Software Engineering Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software. Wikipedia - http://en.wikipedia.org/wiki/Software_engineering
  • 7. Software Engineer A practicant of systematic, disciplined and quantifiable approaches to the development and maintenance of software. A skilled craftsman practicing and training on the tools an techniques used to development and maintenance of software. A teacher of less skilled and experienced engineers in practices of software engineering.
  • 8. Software Development is just not craft
  • 9. Software Development is just not craft Every day software developers practice in the tools and techniques needed to develop software. Every day their experience and skill increases. Many software systems are developed through sheer developer skill and experience. Mays such systems sooner or later come to problems which can be solved by applying systematic, disciplined and controlled practices to their development.
  • 10. Software Engineering Key Elements Repeatability – everything must be repeatable by everyone. Accountability – at any time it must be possible to se who has done what and why. Planning – every key element of the development and maintenance of a software product must be planned. Tracking – every element of a software product must be tracked through its life – cycle. Building– a software product must be built as optimally as possible.
  • 12. Software development process Software development process is the agreed and by all involved parties understood process of planning, implementing, testing and deploying of a software product. Software development process is the tangible embodiment of all the software engineering key elements: repeatability, accountability, planning, trackingand building.
  • 13. Software development process families Software development processes are organized into phases. Each phase is dominated by one or several key activities performed during its course. There are two major software development families : sequential and iterative. A software development process can have a higher or lower degree of formality.
  • 14.
  • 15. Each iteration is covers all software development activities : requirements, design, coding , testing and deployment.
  • 16. The software development process is done in time boxed iterations where requirements are fixed.
  • 17. The product owner – client can change requirements between iterations.
  • 18.
  • 20. Requirements A requirement is a statement of the scope, behavior and limits a of specific software system characteristic or function. There are two types of requirements : functional that deal with the functionality expected from the system by the clients non-functional that deal with all the other characterizes a software product must have Requirements are written in the System Requirements Specification document
  • 22. Software Architecture Software architecture is the process of defining a structured solution that meets all technical and operational requirements while optimizing common quality attributes as performance, security and manageability. Software architecture is the highest level breakdown of system into parts and processes. Software architecture is the bridge between requirements and the technical design and solution of a product.
  • 24. Detailed Design Detailed design of a software product is the blueprint definition of its smallest components. There are two ways of blueprinting a module: Public interface specificationon which defines only the functions or objects which may be used by components integrating with the module being designed. Comprehensive structure definitionwhich defines in detail all the nuts and bolts (e.g. public and private functions and objects) of the module being designed). After completion the detailed design is passed to the development team to be implemented.
  • 26. Software Construction Software construction is the process of writing, linking and compiling of a software product. Software construction is the meeting ground between engineering and crafting. There a two key characteristics of properly constructed software product: The product is constructed by following the appropriate patterns associated with the product type being build. The product does what is supposed to do with a reasonable level of quality, security and performance.
  • 28. Software Testing Software testing is the process of proving that the implemented software product meets its requirements within the assigned quality parameters. A software product can be tested in multiple ways: Unit-testing. Functional testing. Integration testing. Security testing. Performance testing. Acceptance testing. Software testing must be automated and carried out as soon as possible and as often as possible for the greatest results.
  • 30. Software Deployment Software deployment is a process covering a set of activities related to: Releasing of a software product version. Installation and activation of a product at a client site. Deactivation of a product at a client site. Updating of a product at the client site. Uninstallation of a product at the client site. Software deployment activities must be automated and streamlined as much as possible.
  • 32. Software Maintenance Software maintenance is the process of tracking and applying controlled changes to a released software product with the goal of fixing defects, improving product quality attributes and adapting the product to a changed environment. Software maintenance deals with issues arisen from the development on a production system and the conflicting needs of functional and operational stability against entropy and user needs.
  • 33. Software configuration management Software configuration management (SCM) is the discipline of evaluating, tracking, controlling, naming and versioning of changes made to Configuration Items (CI) through the life-cycle of a software product. A Configuration Item is an artifact (document, image, source code, third-party library, tool) which is placed under configuration management control. Configuration Control Board (CCB) is the body assigned with the authority of enforcing the configuration control policies set in the Software Configuration Management plan.
  • 34. SCM Plan The Software Configuration Management Plan (SCM Plan) is an document that prescribes the policies and rules which must be followed when implementing configuration management on a software product. The SCM Plan covers the following sections: Scope of the configuration control. Project team organization and roles. Tools and policies use for product development and configuration control. Configuration Item scope and definition. Baseline definition and naming. Release definition and naming. Configuration Item and Configuration Item change request auditing. It is important to : tailor the SCM Plan to the type of product developed and the software organization culture, dissimenate the document to all involved parties as the baseline for each configuration managmentactivites.
  • 36. Issue tracker AnIssue Tracker is tool used to automated and help with the tediousness of Software Configuration Change management. An Issue Tracker tracks generally the three following types of issues (tickets etc.) : Task Defect Change Request An Issue Tracker can also link up with a SCM Repository to better track associations with Issues and changes made to Configuration Items. Examples of issue trackers : Bugzilla, Mantis, Fogbugz, TFS etc.
  • 38. SCM Repository A SCM Repository is a tool used to manage and track changes to the official Configuration Item library of a software product. Benefits offered by a SCM Repository tool: Multiple people can work on a same CI without risk of conflicting changes. Centralized place where the software product and associated items can be found. Historical tracking of every change made to CI and easy reverting to a previous change (revision) . Multiple development spikes can be carried at the same time and merged at will with ease. Two general types of SCM Repositories: centralized and distributed. SCM Repository examples: Subversion, CVS, Bazaar, Git, Mercurial, TFS.
  • 40. Software Engineering Team Software engineers work in teams, without teams there would not be software. Three key characteristics a team member must have: Communication – to better express ideas and issues. Responsibility – to deliver what is promised or rise and issue if not. Time management – to know when and how long to do a task. Secondary characteristic a team member ought to have: Presentation – to sell in a formal manner key ideas and issues. Self – learning – to continuously learn new technologies and techniques. Leadership – to mediate and lead a team to deliver on time and on budget.