SlideShare uma empresa Scribd logo
1 de 37
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

Mais conteúdo relacionado

Mais procurados

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
Kittitouch Suteeca
 
Ch2-Software Engineering 9
Ch2-Software Engineering 9Ch2-Software Engineering 9
Ch2-Software Engineering 9
Ian Sommerville
 
Ch 9 traceability and verification
Ch 9 traceability and verificationCh 9 traceability and verification
Ch 9 traceability and verification
Kittitouch Suteeca
 
Ch25-Software Engineering 9
Ch25-Software Engineering 9Ch25-Software Engineering 9
Ch25-Software Engineering 9
Ian Sommerville
 
Software Development Life Cycle Testingtypes
Software Development Life Cycle TestingtypesSoftware Development Life Cycle Testingtypes
Software Development Life Cycle Testingtypes
vladimir 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 cycle
Kittitouch Suteeca
 
Ch24-Software Engineering 9
Ch24-Software Engineering 9Ch24-Software Engineering 9
Ch24-Software Engineering 9
Ian Sommerville
 

Mais procurados (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
 

Semelhante a Sofware engineering

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
 

Semelhante a 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
 
Softweare Engieering
Softweare Engieering Softweare Engieering
Softweare Engieering
 
Se lec 3
Se lec 3Se lec 3
Se lec 3
 
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
 

Último

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Último (20)

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 

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.