Files
uni/year2/semester1/logseq-stuff/pages/Software Processes.md

85 lines
3.5 KiB
Markdown

- #[[CT216 - Software Engineering I]]
- **Previous Topic:** [[Cloud Computing]]
- **Next Topic:** [[Introduction to Agile Methods]]
- **Relevant Slides:** ![Week 2 - Software Processes.pdf](../assets/Week_2_-_Software_Processes_1663178767479_0.pdf)
-
- # The Software Process
- What is the **Software Process**?
card-last-interval:: 12.36
card-repeats:: 3
card-ease-factor:: 2.7
card-next-schedule:: 2022-10-19T18:39:50.523Z
card-last-reviewed:: 2022-10-07T10:39:50.524Z
card-last-score:: 5
- The **Software Process** is a structured set of activities required to develop a software system.
- What are the 4 fundamental activities in the Software Process? #card
card-last-interval:: 3.45
card-repeats:: 2
card-ease-factor:: 2.46
card-next-schedule:: 2022-11-18T02:27:50.775Z
card-last-reviewed:: 2022-11-14T16:27:50.775Z
card-last-score:: 5
- **Specification**
- Talk to the customer
- Understand the problems
- Talk to any relevant stakeholders
- **Development**
- Map out the tasks
- Design the software
- Develop the solution
- **Validation**
- Does the software meet the requirements?
- Is it what the customer wanted?
- **Evolution** (maintenance)
- Modified to adapt
- Changes in requirements
- Customer & Market conditions
- The foundation of software engineering is the **process**.
- The **goal** of software engineering is to efficiently & predictably deliver a product that meets the requirements.
-
- # Software Engineering Practice
- ### **1) Understand the problem** (*Communication & Analysis*)
- Who are the stakeholders?
- What are the unknowns?
- ### **2) Plan the solution** (*Modelling & Software Design*)
- Have we seen this problem before?
- Has a similar problem already been solved?
- Can sub-problems be found?
- ### **3) Carry out the plan** (*Write the Code*)
- Does the solution conform to the plan?
- Has the code been reviewed for correctness?
- ### **4) Examine the result** (*Test It*)
- Is each component testable?
- Does the solution produce results as defined originally?
-
- # General Software Engineering Questions
- **What** is the problem to be solved?
- Requirements definition
- **What** are the characteristics of the software (system) used to solve the problem?
- Analysis
- **How** will the system be realised / constructed?
- Design
- **How** will the system be supported long-term?
- Maintenance
-
- # Overview of Software Engineering
- There are 3 generic phrases, regardless of paradigm:
- **Definition** - a focus on the *What*
- System Analysis, Software Project Planning, Requirements Analysis
- **Development** - a focus on the *How*
- Software Design, Coding, Software Testing
- **Maintenance** - a focus on *Change*
- Correction, Adaption, Enhancement
-
-
- # Software Engineering Should...
- Provide a clear statement of the project **mandate** & objectives
- Create effective means of **communication**
- Increase user **involvement** & **ownership**
- Provide an effective **management framework** to support **productivity** & pragmatism
- Establish **quality assurance** procedures
- Provide sound resource **estimation** & **allocation** procedures
- Ensure the **effectiveness** and **durability** of systems produced
- Encourage the **re-usability** of code and / or solutions
- Reduce the organisation's **vulnerability** to the loss of software development personnel
- Reduce & support post implementation **maintenance** of system