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)