Formality, Agility, Security, and Evolution in Software Development Cody Ronning 2/16/2015.

Slides:



Advertisements
Similar presentations
Jeremy S. Bradbury, James R. Cordy, Juergen Dingel, Michel Wermelinger
Advertisements

SDL in an Agile World MSSD-3 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной темы – минимизация уязвимостей программного.
AGILE DEVELOPMENT Outlines : Quick Look of agile development Agility
PROC-1 3. Software Process. PROC-2 What’s a process? Set of activities in creating software It involves creativity –hard to automate –Requires human judgment.
CS487 Software Engineering Omar Aldawud
Interoperability. What is testing? Where have we come from? Where are we now? Why is nFocus at MSAIC? Overview.
Software Processes Coherent sets of activities for specifying, designing, implementing and testing software systems.
Agenda −Scrum with TFS 2010 using MSF for Agile 5.0 −Planning the Project −How do you plan the project? −Project planning in TFS 2010 −Planning a Sprint.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Alternative Software Life Cycle Models By Edward R. Corner vol. 2, chapter 8, pp Presented by: Gleyner Garden EEL6883 Software Engineering II.
Alternate Software Development Methodologies
Clinton Keith CTO, High Moon Studios Agile Methodology in Game Development: Year 3.
Agile Project Management with Scrum
Agile development By Sam Chamberlain. First a bit of history..
Review: Agile Software Testing in Large-Scale Project Talha Majeed COMP 587 Spring 2011.
Chapter 6 The Process of Interaction Design Presented by: Kinnis Gosha, Michael McGill, Jamey White, and Chiao Huang.
©Ian Sommerville 2000 Software Engineering, 6th edition Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Fundamentals of Information Systems, Second Edition
SCRUM Software Development Process. Background “Scrum” A rugby term “describes a play in rugby in which the two sets of forwards mass together around.
Managing a Project Using an Agile Approach and the PMBOK® Guide
An Agile View of Process
Chapter 3 Software Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
1 CMPT 275 Software Engineering Software life cycle.
IT Systems Analysis & Design
Software Engineering Modern Approaches
Agile Software Development Brian Link
Agile Adoption GMAS Product / Practice Teams PMO Meeting – May 2014.
Current Trends in Systems Develpment
Alcatel-Lucent CDC Workshop, Coaching & Knowledge Transfer Project Management.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Agile Methodologies: Comparative Study and Future Direction 林佳蓁 資工 4B.
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
IS Methodologies. Systems Development Life Cycle - SDLC Planning Planning define the system to be developed define the system to be developed Set the.
Chapter 3 Agile Software Development (1/2) Yonsei University 2 nd Semester, 2015 Sanghyun Park.
Chapter 2 Software processes. Topics covered Software process models Process activities Coping with change.
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
Theories of Agile, Fails of Security Daniel Liber CyberArk.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Appendix B Agile Methodologies B.1.
Extreme Programming. Extreme Programming (XP) Formulated in 1999 by Kent Beck, Ward Cunningham and Ron Jeffries Agile software development methodology.
Lectures 2 & 3: Software Process Models Neelam Gupta.
Introduction Requirements and the Software Lifecycle (3)
Safety methods within Agile and RUP methods TORGRIM LAURITSEN BUCS project.
By Ramesh Mannava.  Overview  Introduction  10 secure software engineering topics  Agile development with security development activities  Conclusion.
Choosing a Formal Method Mike Weissert COSC 481. Outline Introduction Reasons For Choosing Formality Application Characteristics Criteria For A Successful.
Copyright 2015, Robert W. Hasker. Classic Model Gathering Requirements Specification Scenarios Sequences Design Architecture Class, state models Implementation.
Industrial Software Development Process Bashar Ahmad RISC Software GmbH.
Agile Center of Excellence. Richard K Cheng Agile is just a high level concept.
Software Engineering cosc 4359 Spring 2017.
AGILE METHODS Curtis Cook CS 569 Spring 2003.
Appendix B Agile Methodologies
Software & Software Engineering Pertemuan-4 Dosen :Kundang K Juman
Integrate Agile Testing into the Process
Agile Software Development
Copy rights  Exam Eligibility  Exam Pattern  Pre requisites  Content Distribution  Tools and Techniques  Domains and Tasks for.
Chapter 2 Software Processes
Introduction If you have got a call for an Agile testing interview, then congratulations are in order. You may be feeling nervous, but it sure to be felt.
Introduction to Agile Blue Ocean Workshops.
Chapter 3: Agile Software Processes
Department of Computer Science Abdul Wali Khan University Mardan
Agile Development – a new way of software development?
Appendix B Agile Methodologies
Agile software development
Adapting Agile in Pharmaceutical Industries
Are you measuring what really counts?
Presentation transcript:

Formality, Agility, Security, and Evolution in Software Development Cody Ronning 2/16/2015

Outline Introduction Challenges of software development Formal methods Agile methods Formal agility Security Evolution Conclusions 2

Introduction KU MSIT student Software engineer at Garmin Father of 3 (4) 3

Outline Introduction Challenges of software development Formal methods Agile methods Formal agility Security Evolution Conclusions 4

Challenges of software development Easy or hard? Easy when small, working alone When the project, code base, number of contributors increase -> HARD 5

Challenges of software development Complex systems Requirement changes Deadlines Task switching Changing priorities External dependencies 6

Preparing for complexity & change Experienced software engineer Software engineering approaches – Modularization – Abstraction – Object orientation Most important – Need Structure 7

Structure Formal methods Agile methodology FM & AM combined 8

Outline Introduction Challenges of software development Formal methods Agile methods Formal agility Security Evolution Conclusions 9

Formal methods Mathematical approach to software development from the requirements specification onward Important when safety and security are important Can be used to derive a proof (great cost) 10

Aspects of formal methods Create models before coding Use modeling language with fixed grammar – Analogous to converting a word problem into algebraic notation Framework for rigorous testing 11

Teaching formal methods Learning to read formal specification easier than writing them Reading is necessary for entire team Writing formal requirements require highly trained people 12

Outline Introduction Challenges of software development Formal methods Agile methods Formal agility Security Evolution Conclusions 13

Agile methodology True agile – Many teams claiming to do agile software development are only adopting Scrum for project management – True agile is formally defined TDD Refactoring Pair programming Simple design 14

Agile development Individuals and interactions over process and tools Rapid response to change Requirements and solution evolve together over time 15

Agile development Individuals and interactions over process and tools – The most important resource is the people Produce better work More committed to the project 16

Agile development Rapid response to change – Quick (next sprint) changes based on customer feedback 17

Agile development Requirements and solution evolve together over time – Documentation comes from story planning and development 18

Outline Introduction Challenges of software development Formal methods Agile methods Formal agility Security Evolution Conclusions 19

Formal agility Contrasting model? Use modern tools for re-proof when system is changed – RODIN – Alloy Analyzer Agile developers can benefit from training in formal methods 20

Friends not foes Formal methods can’t be avoided – Programming languages have formal semantics – Coding standards are language subsets Tools within IDEs have analysis tools that run in the background Add value to agile as a sanity check and safety net 21

Formal agile development Individuals and interactions over process and tools – Once you have the right people tools and processes are still important – Most will benefit from tools and processes that embody wisdom gained by previous projects 22

Formal agile development Rapid response to change – Formal methods help form better basis for predicting consequences of major change – When models are adjusted the associated verification also needs to be redone 23

Formal agile development Requirements and solution evolve together over time – Ok for smaller shorter projects, especially internal ones – Multi-year, multi-team, large scale projects benefit from well defined models to avoid renegotiations 24

Formality adds value to agile Testing Requirements Refactoring Documentation 25

Outline Introduction Challenges of software development Formal methods Agile methods Formal agility Security Evolution Conclusions 26

Security Agile development focuses on user stories – Provide “happy path” for testing Security preparation is generally not part of the backlog – Stories are to satisfy the customer – Prioritize primary business value first 27

Adding security to agile Evil stories – Describe functionality that an attacker would be able to exploit – Development becomes two dimensional Implement user stories Avoid implementing evil stories Protection poker – Security risks are quantified by the agile team 28

Adding security to agile Agile principles to propagate security knowledge – Pair programming – Certification – Mandating security review in each sprints retrospective 29

Adding security to agile Microsoft Secure Development Lifecycle (SDL) Agile categories – Every sprint Running automated security-analysis tools Updating threat model – Bucket requirements Response planning – One-time requirements Base-line threat model 30

Outline Introduction Challenges of software development Formal methods Agile methods Formal agility Security Evolution Conclusions 31

Software evolution Real software systems continually evolve (or die) – New requirements – New functionalities 32

Software evolution Start with formal specification Iterate with new ideas 33

Formal software evolution Project made from formal definition evolve better – New/different people working on maintenance project – Questions of design or regressions 34

Outline Introduction Challenges of software development Formal methods Agile methods Formal agility Security Evolution Conclusions 35

Conclusions Agile and formal methods can be friends Project types dictate what part of any methodology is chosen 36

References Bowen, J., Hinchey, M., Janicke, H., Ward, M., & Zedan, H. (2014, Oct). Formality, Agility, Security, and Evolution in Software Development. Computer, IEEE, 47(10), Black, S.; Boca, P.P.; Bowen, J.P.; Gorman, J.; Hinchey, M., "Formal Versus Agile: Survival of the Fittest," Computer, vol.42, no.9, pp.37,45, Sept P.G. Larsen, J. Fitzgerald, and S. Wolff, “Are Formal Methods Ready for Agility? A Reality Check,” Proc. 2nd Int’l Workshop Formal Methods and Agile Methods (FM+AM 10), vol. P-179, 2010, pp. 13–25. 37

Formality, Agility, Security, and Evolution in Software Development Thank you for your time Questions and feedback are welcome 38