mnp1163 (software construction). sdlc and construction models construction planning construction...
TRANSCRIPT
Managing ConstructionMNP1163 (Software Construction)
This Module
SDLC and Construction Models Construction Planning Construction Measurement
SDLC and Construction Models
Waterfall
V-ModelNeed, wish,
policy, law
User Requirements
Systems Requirements
Global Design
Detail Design
Implementation
Component Test Execution
Integration Test Execution
System Test Execution
Acceptance Test Execution
Operational systems
PreparationAcceptance Test
PreparationSystems Test
PreparationIntegration Test
Iterative Life Cycle
Phase 1
Def
ine
Dev
elop
Bui
ld
Test
Impl
emen
tPhase 2
Def
ine
Dev
elop
Bui
ld
Test
Impl
emen
t
Phase 3
Def
ine
Dev
elop
Bui
ld
Test
Impl
emen
t
Construction Planning
What is Construction Planning? Laying out the work plan (i.e.
schedule) to design, implement, debug, and unit test the software
Construction planning
Construction planning major concerns: Coders are typically not planners Schedules will be difficult to maintain unless a good
architecture design is in place Many organizations to not collect project data on
which to plan future projects Many managers consider planning to be a waste of
time and therefore don’t encourage it Project plans may be limited to the construction
plans Many organizations and projects do not use
systematic cost estimating methods such as models
Construction Planning
Consider reducing development costs by planning to: Reduce the size and/or complexity Improve the development process Use more highly skilled people and build
better teams Use better tools Reduce quality thresholds
Construction Planning
Some actions include Use an object-oriented approach Use COTS components Use an iterative approach Provide training to development team Automate tedious tasks with tools
Construction Planning
As with building construction, much of the success or failure of the project already determined before construction begins
Upstream activities such as project planning, requirements, architecture, and design are crucial to success
Typical high-risk areas Project planning Requirements Architecture
Preparation is a way to reduce these risks
Construction Planning
The problem being solved via the application must be well defined
Common names for the document containing the problem statement: Product Vision Vision Statement Product Definition
Defines the problem without reference to potential solutions
Helps avoid solving the wrong problem!
Construction Planning
Requirements describe in detail what a system is supposed to do, therefore are invaluable for construction
Explicit requirements: Help ensure the user drives system functionality▪ Rather than the programmer
Reduce the number of construction debates Help minimize changes after development begins
Specifying requirements adequately is a key to project success
Construction Planning
Quality of the architecture determines the conceptual integrity of the system
A proper architecture: Gives structure to maintain conceptual integrity Provides guidance to programmers Partitions work
Architecture-level problems are much more costly to fix than are coding errors
Good architecture can make construction easy Bad architecture makes construction difficult
Construction Planning
Time budgeted for requirements and architecture work 10 to 20 percent of manpower 20 to 30 percent of schedule
If requirements are unstable Do not ignore, spend time to fix The analyst should fix if a formal project Can be fixed by the programmer for informal
projects Use same heuristics for problems with the
architecture
Construction Planning
Many software development approaches have been tried over the years
Some examples: Functional Object-Oriented Iterative Waterfall Agile Data-centric
The construction team must follow some approach Chosen approach must be appropriate for the task
at hand
Construction Planning
Programming language choices affect Productivity Code quality
Programmers more productive using a familiar language
High-level languages provided higher quality and better productivity
Some languages better at expressing programming concepts than others
The ways in which a programmers express themselves are affected by the chosen language
Construction Planning
Questions to answer regarding practices: How detailed will the design be? What are the coding conventions for names,
comments, layout, etc.? How will the architecture be enforced? Is the project’s use of technology ahead of or behind
the power curve, and is this appropriate given the circumstances?
What is the integration procedure, how often is it done, and who participates?
Will developers program individually, in pairs, or some combination of this?
Where and when will builds occur?
Construction Planning
Modern programming tools Are essential to maintain programmer productivity Reduce tedious and redundant tasks Must be appropriate for the task at hand
Tools preparation checklist: Are all product licenses current? Are all products at current, supported revision level? Have all programmers received proper training on the
tools? Does the project have a configuration management tool? Does the project have a tool to track change requests? Do project team members have sufficient workstations? Does the project have sufficient test environments? Does the project have sufficient build environments?
Construction Planning
For small development efforts Self managed Everyone is a peer
For mid-size development efforts Single team
For large development efforts Multiple teams
References
[IE04] IEEE Computer Society, Guide to the Software Engineering Body of Knowledge (SWEBOK), IEEE Computer Society Press, Los Alamitos, CA 20001, June 2004
[RS04] IBM Rational Software, The Rational Unified Process v2003.06.13, 2004
[RT03] [SM04] S. McConnell, Code Complete: A Practical
Handbook of Software Construction, Second Edition, Microsoft Press, 2004.
[WR01] Walker Royce, Software Project Management, A Unified Framework, Addison-Wesley, Boston, MA, 2001