Coconote
AI notes
AI voice & video notes
Export note
Try for free
Fundamentals of Project Planning
Oct 6, 2024
🃏
Review flashcards
Lecture Notes on Project Planning Principles and Software Engineering
Key Planning Principles
Principle 1: Understand the Scope of the Project
Importance of knowing the project's scope.
Involve the customer in planning activities.
Principle 2: Involve the Customer
Engage the customer for feedback, especially during prototyping.
Principle 3: Recognize that Planning is Iterative
Planning should be revisited and revised as needed.
Principle 4: Estimate Based on What You Know
Make realistic estimations to avoid missing deadlines due to unforeseen circumstances.
Principle 5: Consider Risk in Planning
Create a risk management plan.
List potential risks and solutions.
Principle 6: Be Realistic
Acknowledge that people cannot work 100% efficiency every day.
Consider team members' physical and emotional conditions.
Principle 7: Adjust Granularity in Planning
Modify the level of detail in planning based on team dynamics.
Principle 8: Define How to Ensure Quality
Establish quality assurance processes.
Principle 9: Describe How to Accommodate Change
Develop a strategy for managing changes in project scope or requirements.
Principle 10: Track the Plan Frequently
Monitor project progress and adjust plans as necessary to stay on track.
Modeling Principles
Requirements Model
Represents customer requirements in three domains:
Information Domain
Functional Domain
Behavioral Domain
Design Models
Present software characteristics that assist in construction, including:
Architecture
User interface
Component-level details
Modeling Principles
Information domain must be presented and understood clearly.
Define the functions of software clearly.
The behavior of software must be represented based on external events.
Models must uncover details in a layered fashion.
Move from essential information towards implementation details.
Design Modeling Principles
Design must be traceable to requirement models.
Consider system architecture in designs.
Data design is as crucial as processing functions.
User interface design should focus on ease of use.
Component-level design should be independent and loosely coupled.
Design representations should be easily understandable.
Develop designs iteratively, striving for simplicity.
Construction Principles
Construction involves coding and testing tasks for operational software delivery.
Testing principles help systematically uncover errors efficiently.
Preparation Principles
Understand the problem before coding.
Choose appropriate programming languages and environments.
Create unit tests to apply post-component completion.
Coding Principles
Constrain algorithms, utilize pair programming, and ensure meaningful variable names.
Code should be self-documenting and logically structured.
Validation Principles
Conduct code walkthroughs and unit tests to identify and correct errors.
Testing Principles
Tests must trace back to customer requirements.
Plan testing early and start from small to large.
Exhaustive testing may not be practical.
Deployment Principles
Manage customer expectations regarding software capabilities.
Assemble and test a complete delivery package.
Establish a support regime before delivery.
Provide appropriate instructional materials for end users.
Address critical software bugs before deployment.
Conclusion
The importance of feedback and adaptability in software engineering was emphasized.
Best of luck with upcoming exams!
📄
Full transcript