Intro to Software Engineering

Download Report

Transcript Intro to Software Engineering

Software Engineering
Principles
Practical Advice and Steps for
Managing Your Project
Getting Started

The Process:


The Project Management Plan:


Identifies the “Big Picture” Tasks
Outlines the “road map” to go from start to
finish
The Principles:

Practical advice for guiding your work in
each major framework activity
Problem Solving Principles

Understand the Problem


Plan a Solution


Implementation
Examine the Results


Planning, Modeling, Designing
Carry Out the Plan


Communication, Requirements Gathering
Testing, Delivery, Feedback
See detailed questions pg 18 7/e or 98 6/e
Step One: Communication

Listen!!


Prepare



Customer, Advisor, End-User, Team Members, Conscience, etc.
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


Collaborate



Record the important points, constraints, or decisions
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


Define the functions


What things need to done to the information
Define the behavior


What needs to be known to accomplish the problem
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


Use good style






If your tempted to deviate from your design, the return to the
design step and re-think it from that perspective
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)