Computer Science Notes

Notes From CS Undergrad Courses FSU

This project is maintained by awa03

Software Development process model

- Waterfall - Spiral - Agile More info is found in [[Lecture_2]] & [[Lecture_3]]

Process Model - Waterfall

- Sequential model - 6 methods 1) Feasibility Planning 2) Requirements Definition 3) System and software design 4) implementation and unit testing 5) System testing and integration testing 6) Operation Maintenance - Not good for change

Process Model - Spiral

- 4 Stages 1) Plan Objectives 2) Risk Analysis and Resolution 3) Develop next version 4) Plan the next Phase - Risk management is crucial - Built off the previous version of the software system

Process Model - Agile

> Most Popular Model - Program specification and design are light and interleaved - The system is developed as a series of increments - Rapid development and delivery - Emerged in 1990s - 4 Values - Individuals and Interactions - Working Software - Customer Collaboration - Responding to Change

Extreme Programming

- Start with the simplest solution and evolve it as necessary - Pair programming - Collective ownership - Continuous integration - Sustainable pace - On-site customer
Practice Description
Incremental planning Plan in small parts and continue the cycle
Small releases Release small portions at a time
Simple Design Make each design a simplistic component that builds to a large complex one
Test-first development Requirements being converted to test cases before software is fully developed
Refactoring Make Changes Based on these

Scrum Programming

- Product Owner- Represents the stakeholder, voice of customer - Development Team- Self-organizing, and delivering the product. - Scrum Master- Facilitator who organizes meetings, tracks work and communicates with customers and management. - The starting point for planning is the Product Backlog - The selection phase involves the product team working with the customer to select the features and functionality developed during the sprint. - Meetings are short, describe progress since the last meeting and problems that have arisen, and plan to remedy this.

Version Control System

- Software tools to visualize changes over time - Track changes - Track errors - Etc - Centralized - Distributed

How Git Works - DCVS

- Working Directory - Local copy - Staging Index - Where the commit is prepared - Repository - Where the commit is stored - Atomic commits are small changes related to specific aspects of the projects - Example - Commit 1- Player Movement & Tile Map Wrong - Commit 1- Player Movement | Commit 2- Tile Map Right

What the Client Needs

- High-level requirements - give a general description of what the system should do - Low-level specifications - more specific and how they will operate - Functional requirements - specifies an action that the product must perform - Non-Functional requirements - Constraints, and things that are measurable

UML Diagram

- Actor - user is symbolized by a stick figure - The type of user needs to be identified - Could be an external system, database - Use case - represents functionality - One functional requirement - Linked to at least one actor, most of the time - (Not when triggered by another case) - Association - The participating actor is linked by this - Links elements together - Include - between two use cases - Extend - between two use cases

#incremental #development_models #cen4020 #software #engineering