Skip to content

CO3008 Honours Degree Project
CO3008 Lecture 7 - Introduction, SoA & Methodology


Lecture DocumentsΒΆ

CO3008 Lecture 8.pdf


Written NotesΒΆ

CO3008 L8 - N1.png
CO3008 L8 - N2.png
CO3008 L8 - N3.png


Lecture AimsΒΆ

  • Finish the last few points from the previous week for methodology.
  • Explore prototyping and the varying approaches to prototyping and the differences as to why
  • Review the concept of objective setting, and how this differs from requirements.
  • Review the difference between iterations and increments in artefact development.

The TemplateΒΆ

  • Using the template will give a professional and academic focus to the report.
  • Make sure to cite all references in the body of the report.
  • The list of references is in the references section at the end
  • There are guidelines in the template for how to manage citations in word.
  • Make use of the provided styles (i.e. Heading 1, 2 or 3 etc)
  • This is used to auto generate the table of contents (TOC)
  • Make sure to insert the table and figure captions using the template guidelines
  • This is used to auto generate the list of figures/tables.
  • If the TOC or figure/table listing doesn't look as expected
  • Try right clicking on the citation and choosing update field
  • Try reviewing how the headings/styles were added for captions

MethodologyΒΆ

Research MethodologyΒΆ

  • Approach the methodology section with a research focused mindset
  • All development projects are experiments.
  • Investigating how well the artefact solves the problem
  • Not just discussing the development methodology but also how each object is going to be met and evaluated.
  • How will project be validated as a 'success'.

Development MethodologyΒΆ

  • The development methodology forms part of the complete methodology by defining the process from requirements to an implemented and tested solution.
  • Research methodologies have a wider scope than developmental methodologies.
  • They cover the whole context and resolution of the problem.
  • Many development methodologies that are already known are not suitable for this project i.e. Scrum (Team-based methodology).
  • Can use features from agile approaches e.g. Kanban, Sprints, Iterative development.

Before ChristmasΒΆ

  • D2 set before Christmas Break.
  • The final weeks should focus on getting started on implementation
  • Confirm ethics sign off
  • An opportunity to identify technical problems before going into christmas break
  • Should aim to have at least one meeting with supervisor in the final 2 weeks.
  • Also have something tangible to show them.
  • Does not need to be an MVP at this point but should be demonstrating clear progress towards that goal.

Explore and Break ThingsΒΆ

  • Spend the final two weeks exploring practical solutions to the problem.
  • NOW is the time to try and break things.
  • Should be able to demonstrate something to the supervisor before the christmas break.
  • WILL be incomplete.
  • Does not need to be passable at this point.

IterateΒΆ

  • Iteration maybe useful.
  • Provides early validation.
  • Allows for introduction and testing new ideas.
  • Useful if requirements are not fully known
  • Helps arrives at an MVP.

PrototypingΒΆ

A prototype is a model or early version of a product.
- Its purpose is to test or demonstrate an idea.

Types of PrototypesΒΆ

  • Exploratory Prototypes
  • High or Low fidelity
  • Refine user needs
  • Experimental Prototype
  • Evaluate a potential solution
  • Evolutionary Prototype
  • Incremental development

Exploratory and Experimental prototypes are usually throwaway and are discarded after lessons are learnt. Code not part of final system.

Low Fidelity PrototypingΒΆ

A prototype can be anything from a sketch of a screen through to a complex piece of software
Low fidelity prototypes are used early in the design stage. Some protentional methods include:
- A sketch of a screen layout
- Storyboards to depict interaction scenarios
- Paper or cardboard mock-up
- PowerPoint slides
- Photoshop files

Prototypes allow communication of ideas through visualisation.

Allow to acquire user feedback early on in design process, for both:
- Layout
- Missing Features

Why Use PrototypingΒΆ

To communicate and improve understanding:
- To gather requirements
- To find out what's missing
- To demonstrate business functions

To test ideas:
- To investigate user interface (usability)
- To explore program design ideas
- To check performance and capacity
- To make sure the system is reliable and resilient.

To speed up development:
- To provide a useful system early
- To train users
- Test early

To reduce risk:
- Try things out
- Find failure early

Benefits of PrototypingΒΆ

  • Improves usability
  • Closer match to business need
  • Improved design quality
  • Improved maintainability
  • Reduced overall development effort
  • Risk reduction measure

Key Prototyping PointsΒΆ

Quote

  • The differences between the languages and world view of the users and developers should not be underestimated.
  • Prototyping helps break down language and conceptual barrier as they provide a common language.
  • Helps ensure the right system is being built trapping misconceptions early.

Prototyping ProblemsΒΆ

  • User Expectations - Seeing frontend may assume complete backend system is finished
  • MUST have strong change control and configuration management.
  • Legal/Contract Issues - Solicitors like full specifications
  • Developers must be skilled in this way of working: "users keep changing their minds!"

Prototyping CycleΒΆ

  • Identify Objectives
  • What is to be done and why?
  • What is essential and what are 'extras'?
  • Define acceptance criteria
  • Agree on prioritised list of objects
  • Create on paper or digital
  • Review and evaluate whether it is acceptable

Objectives VS RequirementsΒΆ

Objectives describe the high-level goals or desired outcomes of a software project. They represent what the project aims to achieve in a broader context.
- Strategic and aspirational.
- Provide direction and justification for the project
- High-Level and often abstract

Requirements are specific detailed descriptions of the functionality, features or constraints of the software. They define how the objectives will be achieved.
- To serve as a blueprint for development and testing
- Granular and precise
- Functional Requirements - Define what the system should do
- Non-Functional Requirements - Define quality attributes or constraints
- Business Requirements - High-Level business needs that drive functional requirements.

Aspect Objectives Requirements
Focus Broad, Strategic goals Detailed, Actionable Features, or Tasks
Scope Project-wide Specific Components or Features
Level of Abstraction High-level Low-Level
Purpose Guide the overall vision Define Implementation Details
Example "Enhance user engagement" "Add a comment section to each blog post"

Increment VS IterationΒΆ

IncrementΒΆ

  • Increment means a version with New Features.
    CO3008 Lecture 8 - Incremental Diagram.png

IterationΒΆ

An iteration follows one full cycle of:
- Identify
- Agree
- Do
- Review

  • Usually to do 3 iterations.

Source ControlΒΆ

  • Use Source/Version Control recommended is github.

SummaryΒΆ

  • Finished a couple of points from the previous week CO3008 Lecture 7 - Introduction, SoA & Methodology.
  • Explored prototyping, approaches to prototyping and why prototyping is done.
  • Covered Prototyping Types:
  • Exploratory
  • Experiment
  • Exvoluntionary.
  • Reviewed the concept of object setting and how this differs from requirements
  • Broad, strategic goals VS detailed, actional features in artefact development.

CO3008 Lecture 9 - Requirements