Skip to main content

INF2-SEPP - top navigation

  • Learn
  • Piazza
  • DRPS

Breadcrumb

  1. Home
  2. INF2-SEPP: Informatics 2 - Software Engineering and Professional Practice

INF2-SEPP: Weekly reading

Week numberLecture number in weekReading    
All documents and books can be found in the Resource List (link in right-hand menu and on Learn)
 1 1

Recommended:

  • The Standish Group International, Inc: Standish CHAOS Report 2015
  • The Standish Group International, Inc: ENDLESS MODERNIZATION: How Infinite Flow Keeps Software Fresh
2

Essential:

  • On software engineering activities: Sommerville SE* Chapter 2 section 2.2.
  • On software projects and software products and their engineering: Sommerville ESP* Chapter 1 up to 1.1.
  • On software development processes (overview): Sommerville SE Chapter 2 until 2.2
  • On intro to agile software development processes (and comparison with plan-driven): Sommerville ESP Chapter 2 up to 2.2.
  • An excellent overview of processes by Ian Sommerville

Recommended:               

  • Stevens Chapter 1
  • The Agile Manifesto
 3
Essential:
  • Professional issues in information technology by Frank Bott  
    • Preface,  
    • Chapter 1: Law and Government,  
    • Chapter 2: The Computing Profession 

Recommended:

  • A Rulebook for Arguments by Anthony Weston -  Chapter 1: Short Arguments: Some General Rules  
  • ACM Code of Ethics -  Principles 2.1, 2.2, 2.3
 2 1

Essential:

  • SWEBOK V3, Chapter 1, Software Requirements. 
  • Sommerville SE*, Part 1 chapter on Requirements Engineering.
  • Browse for definitions of different non-functional requirements. You may want to start from Wikipedia.
 2

Essential:

  • Sommerville SE*. Use Cases discussed are both in Requirements and System Modeling chapters. Look up Use Cases in index to find the relevant sections. 
  • Stevens, Chapter 7.
 3

Essential:

  • On RE in agile vs. plan-driven: Sommerville SE* Chapter 3 up until 3.1
  • On scaling up agile (i.e. using it for large systems): Sommerville SE* Chapter 3 Section 3.4 until 3.4.3
  • On RE in software product engineering: Sommerville ESP* Chapter 3

Recommended:

  • The rest of Sommerville SE* Chapter 3 Section 3.
 31

None

 2

Essential:

  • Sommerville ESP* Chapter 4
  • Sommerville SE* 6.1, 6.3.3
 3

 Essential:

  • Professional issues in information technology by Frank Bott  
    • Chapter 3: What is an Organisation?, 
    • Chapter 4: Structure and Management

Recommended:

  • A Rulebook for Arguments by Anthony Weston, Chapter 5: Arguments about Causes 
  • ACM Code of Ethics, Principles 2.4 - 2.7
 4 1

1) For Part 1:

Essential: Stevens Chapter 1 section 1.3

Recommended: return to any mentions of cohesion, coupling, abstraction, encapsulation, separation of interface and implementation, decomposition from your Inf1B course.

Suggested: SWEBOK v3 Ch2 for an overview of the field of software design

2) For Part 2: All from Stevens:

Recommended: Ch 2: Object concepts

Essential:

  • Ch 3: Introductory case study 3, until section 3.5
  • Ch 5: Essentials of class models, until section 5.6
  •  Ch 6: More on class models sections 6.1.2, 6.1.3, 6.2, 6.6
 2

Essential:

  • Stevens Ch 9: Essentials of sequence diagrams
  • Stevens Ch 10: section 10.1, for conditional and iterative behaviour

Recommended:    
At least one of:

  • The original paper on CRC cards, a technique for designing interactions: A laboratory for teaching object oriented thinking, by Kent Beck and Ward Cunningham.
  • Stevens Chapter 5 section 5.6 on CRC cards 
 3None
 5 1

Recommended:   
Read about design patterns in general, e.g.

  • Stevens: Ch18.2
  • Sommerville: Look up design patterns in index
  • The Wikipedia entry on design patterns

Essential:    
Read more on this lecture's design patterns until they are completely clear:

  • On the MVC architectural pattern: https://www.youtube.com/watch?v=pCvZtjoRq1I
  • If you can get a copy of Gamma, E., 1995. Design patterns: elements of reusable object-oriented software. Pearson Education India: p. 263-268 "Command"
  • On the Command pattern: https://refactoring.guru/design-patterns/command, https://www.youtube.com/watch?v=9qA5kw8dcSU
 2

Read more on this lecture's design patterns until they are completely clear:

  • If you can get a copy of Gamma, E., 1995. Design patterns: elements of reusable object-oriented software. 
  • Pearson Education India: p. 326-337 "Observer", p. 144-146 ”Singleton” 
  • On the Observer pattern: https://sourcemaking.com/design_patterns/observer ,     https://en.wikipedia.org/wiki/Observer_pattern
  • On the Singleton pattern: https://refactoring.guru/design-patterns/singleton , https://en.wikipedia.org/wiki/Singleton_pattern

Read on design in different software development processes:

  • ’Big Design Up Front Versus Emergent Design’, Anthony Langsworth: https://randomactsofarchitecture.com/2013/07/08/big-design-up-front-versus-emergent-design/
  • First part (until separating line) of c2 wiki ’Do the Simplest Thing That Could Possibly Work’: http://wiki.c2.com/?DoTheSimplestThingThatCouldPossiblyWork
  • c2 wiki ’You Arent Gonna Need It’ until ’humor’ http://wiki.c2.com/?YouArentGonnaNeedIt
  • ’Is design dead?’ by Martin Fowler, until ’Patterns and XP’: https://www.martinfowler.com/articles/designDead.html

Recommended:

  • Simon Brown on 'Just Enough' Up Front Design: https://www.youtube.com/watch?v=dtVI7PvgVsQ
  • ’Adaptable Design Up Front’, Hayim Makabee: https: //effectivesoftwaredesign.com/adaptable-design-up-front/
 3

ProP - Essential:

Professional issues in information technology by Frank Bott, Chapter 11: Intellectual Property Rights, Chapter 12: Software Contracts and Licences
A Rulebook for Arguments by Anthony Weston, Chapter 3: Arguments by Analogy 

 6 1

Essential: 

Search on Google and read/watch some introductory Javadoc tutorials.

Recommended:

  • Code Complete 2nd Ed. Steve McConnell (one electronic copy available under Library Resources).
  • Something that makes you confident you understand Java packages (e.g., see ’Java/programming resources’ under Other Resources).
 2

On version control:

Essential: 

Ch 1- Version Control Basics section of the SVN book (search for 'Version Control Basics' in table of contents):  https://svnbook.red-bean.com/en/1.7/svn-book.pdf


If unfamiliar with Git and/or GitHub, Essential: 

  • The Git & GitHubTutorial by Christos Vasiladiotis provided under Other Resources
  • This article written by a former SEPP student: https://jadens.medium.com/a-beginners-guide-to-git-and-version-control-software-9f22da5dd4c7


On build tools:

  • Essential: An introduction to build tools: https://medium.com/xebia-engineering/a-general-introduction-to-build-tools-9070a47ed405
  • Essential: Gradle tutorial https://www.youtube.com/watch?v=RrVURuzcFhY&t=15s,
  • Essential: Gradle Building Java Applications Sample https://docs.gradle.org/current/samples/sample_building_java_applications.html

 

 3Same as in Week 5.
 7 1

Essential:

  • 'Tutorial: Introduction to Refactoring' produced by IntelliJ: https://www.jetbrains.com/help/idea/tutorial-introduction-to-refactoring.html
  • Browse around Fowler's page at http://refactoring.com/. Some of his book Refactoring is available on Google Books e.g., details of some of the refactorings in the catalogue.
  • Search code smells. One catalogue can be found at https://refactoring.guru/refactoring/smells
     

Recommended:

  • Browse through the Code Refactoring page and subpages of IntelliJ IDEA for full information on IntelliJ's current capabilities: https://www.jetbrains.com/help/idea/refactoring-source-code.html
  • If you are using Eclipse: Browse through the Eclipse Java development user guide for full information on Eclipse's current capabilities: https://www.linuxtopia.org/online_books/eclipse_documentation/eclipse_java_development_guide/topic/org.eclipse.jdt.doc.user/concepts/eclipse_java_concept-refactoring.htm
 2

Essential:

  • SWEBOK v3 Ch 4, on Software Testing
  • Sommerville SE Ch 8

     

Recommended: Stevens Ch 19

 3None
 8 1

Essential:

  • Prepare to be able to write tests in JUnit 5:
    • http://www.junit.org
    • JUnit Tutorial http://www.vogella.com/articles/JUnit/article.html
    • JUnit 5 Tutorial: Writing Assertions With JUnit 5 Assertion API https://www.petrikainulainen.net/programming/testing/junit-5-tutorial-writing-assertions-with-junit-5-api/
    • Writing tests in JUnit 5: https://blog.jetbrains.com/idea/2020/09/writing-tests-with-junit-5/
    • Testing in IntelliJ IDEA and sublinks: https://www.jetbrains.com/help/idea/tests-in-ide.html
  • On inline assertions in Java (focus on the Preconditions, Postconditions, and Class Invariants): https://docs.oracle.com/javase/7/docs/technotes/guides/language/assert.html
  • On statement and branch coverage: https://www.guru99.com/code-coverage.html

Recommended:

  • On unit testing and coverage in IntelliJ IDEA: https://www.youtube.com/watch?v=QDFI19lj4OM
  • JIRA bug tracking: https://www.atlassian.com/software/jira/bug-tracking
  • SpotBugs: https://spotbugs.github.io/
  • Infer: https://fbinfer.com/
 2Recommended: Sommerville SE Chapter 9: "Software maintenance"
 3None
 9 1

For part 1: 

Essential:

  • This article by Martin Fowler: https://martinfowler.com/bliki/CodeAsDocumentation.html
  • Sommervile ESP Chapter 10 apart from 10.1.1

Recommended if you can get a copy of the book: Lisa Crispin: "Agile Testing: A Practical Guide For Testers And Agile Teams" Chapter 1.

For part 2:

Essential:

  • Sommerville SE Chapter 2 only introduction and section 2.1

Recommended: Browse the web to learn more about the: 

  • Waterfall Model

  • Spiral Model ((e.g. browse its phases and invariants from
    https://ieeexplore.ieee.org/document/59, 

    https://insights.sei.cmu.edu/documents/5439/2000_003_001_13655.pdf)

 2

On XP:

Essential : Browse through this useful tutorial on Extreme Programming: http://www.extremeprogramming.org/
Recommended : Sommerville ESP Chapter 2 Section 2.2


On Scrum:

Essential : The Scrum Guide: download from https://scrumguides.org/index.html
Recommended : Sommerville ESP Chapter 2 Section 2.3


On Kanban:

Essential: This YouTube video and related videos are a great introduction to Kanban: https://youtu.be/iVaFVa7HYj4
Essential: The Kanban Guide: download from https://kanbanguides.org/
Essential: "Revisiting the Principles and General Practices of the Kanban Method" by David J Anderson: https://djaa.com/revisiting-the-principles-and-general-practices-of-the-kanban-method/
Recommended: Kanban Guide for Scrum Teams: download from https://www.scrum.org/resources/kanban-guide-scrum-teams
Recommended: This YouTube JIRA tutorial for Kanban boards: https://www.youtube.com/watch?v=mT9wIFztYeA
Recommended: This YouTube Trello tutorial for Kanban boards: https://www.youtube.com/watch?v=U_73PkR3XlI

 3None
 10 1Recommended: Sommerville SE Chapter 11 on Reliability Engineering, until section 11.3
 2

Essential:

  • Sommerville ESP Chapter 7 on Security and Privacy
  • Sommerville SE Chapter 13 on Security Engineering introduction and sections 13.1 and 13.4

Recommended: the rest of the Sommerville SE Chapter 13 on Security Engineering

 3Standards have no associated reading material - no reading necessary

*Sommerville SE = Sommerville "Software Engineering (10th Ed.)", Sommerville ESP = Sommerville "Engineering Software Products"

License
All rights reserved The University of Edinburgh

Book traversal links for INF2-SEPP: Weekly reading

  • INF2-SEPP: Schedule and Materials
  • Up
  • INF2-SEPP: Tutorials

Navigation links

  • INF2-SEPP: Schedule and Materials
  • INF2-SEPP: Weekly reading
  • INF2-SEPP: Tutorials
  • INF2-SEPP: Labs
  • INF2-SEPP: Other resources
  • INF2-SEPP: Resource List
  • INF2-SEPP: Assessment
RSS feed

Opencourse privacy & accessibility statements; contact Informatics, ILTS.