software engineering principles practical advice and steps for managing your project

11
Software Engineering Principles Practical Advice and Steps for Managing Your Project

Upload: sara-jones

Post on 14-Jan-2016

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Software Engineering Principles Practical Advice and Steps for Managing Your Project

Software Engineering Principles

Practical Advice and Steps for Managing Your Project

Page 2: 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

Page 3: Software Engineering Principles Practical Advice and Steps for Managing Your Project

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

Page 4: Software Engineering Principles Practical Advice and Steps for Managing Your Project

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

Page 5: Software Engineering Principles Practical Advice and Steps for Managing Your Project

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

Page 6: Software Engineering Principles Practical Advice and Steps for Managing Your Project

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

Page 7: Software Engineering Principles Practical Advice and Steps for Managing Your Project

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

Page 8: Software Engineering Principles Practical Advice and Steps for Managing Your Project

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

Page 9: Software Engineering Principles Practical Advice and Steps for Managing Your Project

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

Page 10: Software Engineering Principles Practical Advice and Steps for Managing Your Project

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

Page 11: Software Engineering Principles Practical Advice and Steps for Managing Your Project

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)