Class Notes - betulnesibe/swe573-software-development-practice GitHub Wiki
This page will contain notes taken during the weekly classes. (Notes regarding to the project are excluded.)
24.09.2024
- Requirements -> what
- bullets should not be used for requirements as in such case, they will not be identifiable.
- Design & Implementation -> how
- Abstract design
- Project -> endevaour
- Specific beginning and ending point
- Organization
A plan is nothing, planning is everything.
-
Project repository should include:
- version management
- issue management -> title (descriptive), description, who is assigned, tags (labels), wiki link, discussion, and at the end it should be closed. just before show how it is closed. (In Turkish, akıbeti belli olsun.)
- wiki -> collective documentation. Uses markdown language.
-
Pay attention to consequences of your decisions. I know;
- what i am doing,
- why i am doing,
- what i need,
- why i changed this into another (track things. why i do this first and that later?)
-
Wiki: comes from quick quick -> wiki wiki. not nice but quick documentation.
01.10.2024
-
2 types of issues:
- about task
- about bug
-
wikidata is used for machine processable information. It is consumpted by machine. This is the difference between wikipedia.
- it provides semantic representation of information.
08.10.2024
-
It is good to put yourself on the user's shoes before designing.
-
Mock-up types:
- ui mock-up: what the ui gonna look like.
- conceptual mock-up
mock-up scenario and mocuk-up are different. mock-up has diagrams, etc.
- Milestones: what are the deliverables.
15.10.2024
- virtual environment: is used to isolate the conditions the app is working on. it contains which libraries & versions of the libraries are used.
05.11.2024
-
Milestone: a deliverable and a delivery date.
- it is a support tool.
- it is a point in time, not a duration.
- for tracking progress, to measure the progress. works as checkpoints (serves as an aggreement so customer may not accept)
- Milestones has:
- deadline: desired accomplishment. by this time, i should finish this work to accomplish.
- finish time: actual accomplishment
- objective
- deliverables: something that is observable and related to the objectives. they are evidence to assess milestone accomplishment or to evaluate the project milestones. therefore, deliverables are important.
-
Example milestones:
- 1st preliminary phase (requirements, initial preparation): setup environment, db, libraries, requirements, etc.
- 2nd mock up: extract design requirements, design db, pages, class diagrams
- 3rd alpha version: implementation of features. registration&login&logout, post creation, comments, etc.
19.11.2024
Managing the development process
*beginning|---------requirements(what)---------|---------design(how)---------|---------implementation---------|---------closing procedures---------|final deliverables>
-
requirements: elicitation (what is it), specification (clearly articulating so others understand)
-
design: mock-ups, how to bring a solution to these requirements.
-
closing procedures: integration testing (the features are working), acceptability criteria,
-
in management:
- issues: for complicated issues, there should be discussions.
- documentation
- version management
the good practices of version management:
- the title of the commit should describe what is changed with that commit.
- in what size we should commit?:
- issue based
- one piece of work either adds something specific or fixes something
- it should be focused
- because it hase to be critiqued/reviewed
unit testing:
- testing function (method) code vs functionality.
- boundary conditions
- if you call the function with these parameters, it will return these.
- test it with realistic scenarios
- test plan: cleare criteria coming from the expected requirements. how will i test my system? what scenarios will i use?
- expected (what you wanted to do) vs actual (what it actually does) } test
- example unit test:
- how do i know that commenting works?
- case #1 not logged in -> not able to comment
- case #2 written comment is on the db and retrieve it. they should be equal if they are not, then, there is a problem.
- a unit test should be written while developing and by the developer
- unit tests are written by the developer while other tests are written by the tester.
- verification (doing the thing right): checking to see if we implemented the functions correctly.
26.11.2024
- Milestone: date + deliverable } to evaluate
- objective: validate (doing the right thing) the requirements and everything is fine.