Download presentation
Presentation is loading. Please wait.
Published byImogen Nichols Modified over 9 years ago
1
Software Development
2
Software Developers Refresher A person or organization that designs software and writes the programs. Software development is the process of developing software through successive phases in an orderly way. This process includes not only the actual writing of code but also the preparation of requirements and objectives, the design of what is to be coded, and confirmation that what is developed has met objectives. Software developers are focused on the code!
3
Software life cycle Refresher Concept - often missed Requirements - almost never done well Define exit criteria - almost never done Design/prototype - often missed Official design - often rushed Implementation - almost never planed correctly Test - first to go to meet schedule Maintenance - 80%+ the life of the software
4
Six +1 Key Programming Issues Modularity Modifiability Ease of Use Fail-Safe Programming Style Testing Debugging
5
Modularity A module is basically a component of a larger system, A module operates within that system independently from the operations of the other components. A module provide a separation between interface and implementation. A module interface defines elements that are visible to other modules. The implementation contains the working code that corresponds to the elements declared in the interface.
6
Languages that support modules Ada Fortran Pascal (some derivatives) Modula-2 Python Ruby
7
Modules vs. Classes Differences –Classes can be instantiated to create objects, modules can not be instantiated –Classes can inherit behavior and data from another class, –Polymorphism allows relationships between class instances to change at run-time, while relations between modules are static. Similarities –Both can be used to hide implementation details from public view. –Both can form a hierarchy of modules/classes.
8
JSR-277 Java Modules Consists of: –distribution format (i.e., a Java module) –metadata information about a module, resources within the module, dependencies upon other modules. export list to restrict resources from being exposed outside the module unintentionally.
9
Modifiability Modifiability is the degree to which a system or component facilitates the incorporation of changes Examples –encapsulation –abstraction –good programming techniques
10
Ease of Use Ease of use refers to the property of a product or thing that a user can operate without having to overcome a steep learning curve. Examples –prompt the user for input –echo the input –label the output –online help
11
Fail-safe Programming Fail-safe programming refers to anticipate the ways the program may fail. Examples –error checking the input data –error checking the program logic –anomaly handling and recovery
12
Style Consistent and good programming style is essential for quality software. Examples –Extensive use of methods –Encapsulation –Anomaly handling –Readability –Documentation
13
Testing (the missed issue) Software testing is the process used to measure the quality of developed computer software. Quality is usually constrained to topics like: –correctness –completeness –security But can also include –capability –reliability –efficiency –portability –maintainability –compatibility –usability
14
Debugging Debugging is the act of determining why some action occurred based on a set of inputs.
15
Things to think about … Discipline is the best tool. Design first, then code. Don't patch bugs out, rewrite them out. Don't test bugs out, design them out. If you don't understand it, you can't program it. If you didn't measure it, you didn't do it. If you've found 3 bugs in a program, best estimate is that there are 3 more.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.