software engineering principles practical advice and steps for managing your project
TRANSCRIPT
Software Engineering Principles
Practical Advice and Steps for Managing Your Project
Getting Started
The Process: Identifies the “Big Picture” Tasks
The Project Management Plan: Outlines the “road map” to go from start to
finishThe Principles:
Practical advice for guiding your work in each major framework activity
Problem Solving Principles
Understand the Problem Communication, Requirements Gathering
Plan a Solution Planning, Modeling, Designing
Carry Out the Plan Implementation
Examine the Results Testing, Delivery, Feedback
See detailed questions pg 18 7/e or 98 6/e
Step One: Communication
Listen!! Customer, Advisor, End-User, Team Members, Conscience, etc.
Prepare Get to know the customer’s context for more effective communication Prepare questions to guide the discussion and to avoid missing ideas
Facilitate Assign a facilitator to keep the agenda moving
Face-to-Face Document
Record the important points, constraints, or decisions Collaborate
Keep all stakeholders involved in defining the system Stay Focus Draw a Picture Keep Moving Negotiate a Winning Position for Everyone See task set online here or pg 103 6/e
Step Two: Planning
Understand the Project Scope Get Customer Concurrence on Plan Prepare to Iterate Over the Plan Estimate
You must estimate to plan, if you can’t give a good estimate, then you’ll need to decompose the problem (or learn more about it) until you can
Consider Risk Be Realistic Refine/Adjust Details as Milestones Approach Prepare to Measure Quality Prepare to Control Change Track Your Plan See task set online here or pg 107 6/e
Should be actively working tasks 1-8, beginning task 9
Step Three (a): Analysis Modeling
Model the information What needs to be known to accomplish the problem
Define the functions What things need to done to the information
Define the behavior How will the software operate (external appearance)
Modeling is best accomplished hierarchically Model beginning with concept (what) and proceed
later to form (how) See task set online here or pg 109 6/e
Step Three (b): Design Modeling
Design should result from analysis Design should consider s/w architecture Give thought to your data structures Give extra care to communicate across interfaces Keep the end-user in mind when create the UI Keep components cohesive Keep components loosely coupled Keep your designs simple and easily understood Develop the design iteratively See task set online here or on pg 112 6/e
Step Four (a): Construction-Coding
Prepare to write code Follow structured programming techniques Follow your design
If your tempted to deviate from your design, the return to the design step and re-think it from that perspective
Use good style Meaningful names, comments, indentation
Consider testing before coding Review what you’ve written with others Test your code Refactor your code to keep it clear See task set online here or pg 114 6/e
Step Four (b): Construction-Testing
Test requirements Plan test before you code Focus your test efforts
Bugs tend to lurk in the same places: interfaces, boundaries, special conditions, cases, memory management, and complex code
Test beginning small and proceeding to large Exhaustive testing is not possible (or
desirable) See task set online here or pg 115 6/e
Step Five: Deployment
Manage customer expectations Keep them informed Keep your promises
Delivery package should be tested in the deployed setting
Plan for support after delivery Give real attention to providing end-user
instructions on using the s/w Do not deliver buggy software—fix it first See task set online here or pg 115 6/e
Additional Points of Emphasis
General Principles for any Project (pgs 99-100) Provide value – Reason for effort Keep it Simple Maintain Vision Understandable Products – Communicate Downstream Open to Future Plan for Reuse
Why we model (pg 105 7/e,107 6/e) Types of Tests (unit, integration, validation and user,
pg 111 7/e, 113 6/e)