Download Classifications

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Team Foundation Server wikipedia , lookup

PRINCE2 wikipedia , lookup

Construction management wikipedia , lookup

Phase-gate process wikipedia , lookup

Software development wikipedia , lookup

Transcript
Pragmatics
4 Hours
Agenda
• Management and Planning
• Staffing
• Release Management
• Reuse
• Quality Assurance and Metrics,
• Documentation
• Tools
• Special Topics
• The Benefits and Risks of Object Oriented Development.
Management and Planning
• Risk Management
•
•
•
•
Technical risks  Project architect
Non-technical risks  Software development managers.
Choosing flexible inheritance and efficient mechanism.
Relation between customers and developers, timely targets, 3rd party
collaborators.
• Task Planning
• Team meetings, Scheduling the deliverables of macro process.
• Intermediate milestones.
• Development Reviews
• Balance between too many and very few reviews
• Use cases to check the functionality
• Architectural reviews (Classes and mechanisms)
• Informal, peer reviews.
Staffing
• Resource Allocation
• First object-oriented project  more time and more staff.
• Analysis, Developing, Testing, Maintaining
• Development Team Roles
• Central roles of OO team are Project architect,
Component Lead and Application Engineer.
For larger projects:
• Project Manager
• Analyst
• Reuse engineer
• Quality assurance
• Integration manager
• Documenter
• Toolsmith
• System administrator
Release Management
• Configuration management and version control
• Individual component  integrated  internal release
operational release
• Versions  lowest level – class.
• Along with source code, specifications, architecture documents
should be under configuration management.
• Integration
• Incremental and iterative approach.
• Release is possible when major components are stable.
• Testing
• Unit testing – testing individual classes and mechanisms.
• Component testing - Subsystem testing.
• System testing – testing the system as a whole.
Reuse
• Elements of reuse
• Any Artifact can be reused.
• Classes, components, framework.
• Any amount of reuse is good. Saves resources.
• Institutionalizing Reuse
• Opportunities of reuse should be sought out and rewarded.
• Individual for reuse activity.
• Commercial class and component libraries.
• Beneficial in long term and not only for the current project.
Quality Assurance and Metrics
• Software Quality
• Architecture plays vital role
• Development reviews and inspections
• Defect-discovery ratio.
• Defect-density: no. of defects per thousand source lines of code.
• Object-Oriented Metrics
• Process and Product metrics.
• Process
• Number of key classes (NKC)
• Classes per developer (CPD), etc.
• Product metrics
• Weighted methods per class (WMC) - Sum of the
complexities of each method of an individual class
• Depth of inheritance tree (DIT)
• Number of children (NOC), etc.
Documentation
• Documentation Legacy
• Gives insight of the progress of the project.
• Visual models helps in tracing back to requirements.
• Documentation Contents
• Apart from end-user documentation, analysis documentation,
architectural, implementation documentation.
• Worst possible documentation – documenting each class, each
method.
• Higher level structures should be documented.
Tools
• If software is big then tools will increase.
• Scalable tool.
• Kinds of Tools
• Visual Modeling tool with UML support (analysis)
• Software configuration and version control tool (development)
• Class library tool – predefined library, keeps building, reuse
• Organizational Implications
• Reuse engineer
• Toolsmith
• Managers facing shortage of resources
Special Topics
• Domain-specific Issues
•
•
•
•
Effective user interfaces
Database Component
Real-time systems
Legacy systems
• Adopting Object-Oriented Technology
• Provide formal training (UML, OO analysis and design, tools, language and
libraries)
• Low-risk project first and allow them to learn (OOAD consultants, Growing
expertise, let them act as mentors)
• Expose them to examples of well-defined OO systems.
Benefits and Risks of Object-Oriented
Development
Benefits
• Appeals to working of human
cognition
• Systems are resilient to change
• Encourages reusability
• Reduces development risks
• Exploits expressive power of OO
programming languages
Risks
• Personnel shortfalls
• Unrealistic schedules, budget.
• Shortfalls in products, external
components
• Mismatch in requirements
• Shortfalls in architecture
• Continuing stream of requirement
change
• Shortfalls in external tasks.