CO3008 Honours Degree Project
CO3008 Lecture 7 - Introduction, SoA & Methodology
Lecture DocumentsΒΆ
Written NotesΒΆ



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.

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.