/* Advanced Software Engineering Practices
#
Author: Er. K. Manigandan, Arcot.
#
Created: 31/3/2010
#
Version: 1.0
#
*/
#
Software Development Guidelines
#
#
1. When your mind is fresh and young will
easily solve any software problems.
#
2. Visualize the given problem in hand
before writing software.
#
3. Only those who understand the problem
will give solution to the problem.
#
4. Abstraction plays a energetic role in
software design.
#
5. Testing should be possible for your
abstraction.
#
6. Anything and everything requires manual
interpretations which is filled by Verification
and Validation.
#
7. Designing and Testing should go
hand-in-hand that is along with design
document test document is also be produced.
#
8. For the design already available design
templates should be prefered than designing
from scratch.
#
9. Testing should be automated by preparing
test script.
#
10. First design should trade-off time and
space complexity.
#
11. Design should be verified with long-run
in mind say small memory-leak in long-run
produces big damage.
#
12. Hardware undergoes aging as software
undergoes obsolescence.
#
13. In the design reusability at the binary
level, language level, libraries level should
deeply be considered.
#
14. Producing clear design document at this
stage is essential.
#
15. During implementation functional
knowledge of each and every components
is essential for producing bug free coding.
In case of embedded systems coding
understanding from bare metal PCB,
all peripheral components is needed.
In case of application programming
knowledge of Operating system internals,
administration tasks and programming
interface details for database, graphics
and networks is required.
#
16. Knowledge of simulators/debuggers are
significant at this stage.
#
17. Coding standards should be followed.
#
18. Look for portability across different
microprocessors.
#
19. Look for portability across different
compilers.
#
20. Scalability in vertical domain and in the
horizontal domain is important performance
attribute.
#
21. In portability across compilers normally
identifiers name should not clash with
keywords of language as well as defaults.
#
22. Go thoroughly language extension methods.
#
23. Compiler errors are well documented
and should take care programming errors
which are hard to find.
#
24. Linking errors indicates incompatibility
in the usage and missing libraries.
#
25. Run time error are due to improperly using
operating system services.
#
26. Abend is known operating system error.
#
27. When using third-party libraries give
attention to passing of parameters and
invoking sequence of function/subroutine/
procedure call.
#
28. Remembering name of service is essential.
#
29. Equaly important is knowing including or
configuring third-party solution to development
environment.
#
30. For example using MFC libraries/OpenGL
libraries in Visual Studio
#
31. Scripting enables integration of multiple
applications as well as from maintenance
part it plays important role.
#
32. Job Control Language for Mainframes,
Shell scripts for Unix Batch files for DOS,
XML/XSLT are few scripts scenario.
#
#
#
Comments