SlideShare ist ein Scribd-Unternehmen logo
1 von 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

Weitere ähnliche Inhalte

Was ist angesagt?

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 ModelsAhmed Alageed
 
Ch2-Software Engineering 9
Ch2-Software Engineering 9Ch2-Software Engineering 9
Ch2-Software Engineering 9Ian Sommerville
 
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 ManagementRajesh 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 EngineeringZahoor 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 EngineerinMuhammadSufianJani
 
Lect2 quality factor
Lect2 quality factorLect2 quality factor
Lect2 quality factorbabak sh
 
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 characteristicsPriyanka Pradhan
 
Ch24-Software Engineering 9
Ch24-Software Engineering 9Ch24-Software Engineering 9
Ch24-Software Engineering 9Ian Sommerville
 

Was ist angesagt? (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
 

Ähnlich wie Sofware engineering

Software Engineering Overview
Software Engineering OverviewSoftware Engineering Overview
Software Engineering OverviewPrachi Sasankar
 
CS8494 SOFTWARE ENGINEERING Unit-1
CS8494 SOFTWARE ENGINEERING Unit-1CS8494 SOFTWARE ENGINEERING Unit-1
CS8494 SOFTWARE ENGINEERING Unit-1SIMONTHOMAS S
 
Elementary Probability theory Chapter 2.pptx
Elementary Probability theory Chapter 2.pptxElementary Probability theory Chapter 2.pptx
Elementary Probability theory Chapter 2.pptxethiouniverse
 
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 study materials
Software engineering study materialsSoftware engineering study materials
Software engineering study materialssmruti sarangi
 
Understanding the Software Development Life Cycle
Understanding the Software Development Life CycleUnderstanding the Software Development Life Cycle
Understanding the Software Development Life CycleTyrion Lannister
 
ccs356-software-engineering-notes.pdf
ccs356-software-engineering-notes.pdfccs356-software-engineering-notes.pdf
ccs356-software-engineering-notes.pdfVijayakumarKadumbadi
 
Software Specifications with details exp
Software Specifications with details expSoftware Specifications with details exp
Software Specifications with details expAkhileshPansare
 
Softweare Engieering
Softweare Engieering Softweare Engieering
Softweare Engieering Huda Alameen
 
Fundamentals of software development
Fundamentals of software developmentFundamentals of software development
Fundamentals of software developmentPratik Devmurari
 
Software engineering (Unit-1 Introduction)
Software engineering (Unit-1 Introduction)Software engineering (Unit-1 Introduction)
Software engineering (Unit-1 Introduction)YamunaP6
 
Mod5-SCM.ppt
Mod5-SCM.pptMod5-SCM.ppt
Mod5-SCM.pptdivyammo
 

Ähnlich wie 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)
 
Mod5-SCM.ppt
Mod5-SCM.pptMod5-SCM.ppt
Mod5-SCM.ppt
 

Kürzlich hochgeladen

Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 

Kürzlich hochgeladen (20)

Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 

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.