Metodologia de Software
Por: sergiofigueras • 28/2/2016 • Abstract • 276 Palavras (2 Páginas) • 498 Visualizações
Assignment 2 – AWA – Code Review[pic 1]
ARCHITECT APPLICATION
1. TECHNICAL REQUIREMENTS
- Make a code revision according with Java best practices.
2. CODE REVIEW METHODOLOGY
The objective of a code review in this assignment is to estabilish a set of pre-specified entry and exit criteria, according with Fagan Inspection methodology.
The code review must be a discussion process between the team. By this, I've only marked classes with CR comments. All comments are outside methods because we commit our team to check all the class for the pointed flaws.
3. CODE REVIEW PARAMETERS
FLAW ENTRY CRITERIA | EXIT CRITERIA |
Defects, where functional requirements are not statisfied. | Must satisfy contracts with clients and clients needs. |
Single Responsability Principle, classes or methods should have only a single responsability | Must encapsulate all the corresponding responsability. |
Open / Closed principle, classes should be open for extension but closed for modification. | Classes should be closed for modification. |
Dependency inversion principle | Classes should be dependent upon abstractions and not dependent upon concretions. |
Indirection, the capabilities must have reuse potential and be agnostics. | Public capabilities must be reused and be agnostics. |
YAGNI | Create only functionalities that are strictly necessary. |
Test Coverage | Evaluate if test coverage is in accordance with company requirements. |
Code improvement, code that could be more declarative or performatic. | Evaluate if code can be improved in any level (syntax, performance, readability). |
4. CODE REVIEW DOCUMENTATION
It's easier to the team understand the changes that must be addressed if a simple documentation of each flaw is provided. Below are some of them.
FLAW | DOCUMENTATION |
Single Responsability Principle, classes or methods should have only a single responsability | http://www.objectmentor.com/resources/articles/srp.pdf http://www.oodesign.com/single-responsibility-principle.html |
Open / Closed principle, classes should be open for extension but closed for modification. | http://www.objectmentor.com/resources/articles/ocp.pdf |
Dependency inversion principle | http://www.objectmentor.com/resources/articles/dip.pdf http://c2.com/cgi/wiki?DependencyInversionPrinciple |
Indirection, the capabilities must have reuse potential and be agnostics. | https://en.wikipedia.org/wiki/Indirection https://en.wikipedia.org/wiki/Fundamental_theorem_of_software_engineering |
YAGNI | http://code.tutsplus.com/tutorials/3-key-software-principles-you-must-understand--net-25161 |
Test Coverage | http://martinfowler.com/bliki/TestCoverage.html http://searchsoftwarequality.techtarget.com/answer/What-is-the-difference-between-code-coverage-and-test-coverage |
Code improvement, code that could be more declarative or performatic. | http://cs.lmu.edu/~ray/notes/optimization/ http://c2.com/cgi/wiki?SevenPrinciplesOfSoftwareDevelopment |
...