Escolar Documentos
Profissional Documentos
Cultura Documentos
Ging vin: PGS. TS.Hunh Quyt Thng BM Cng ngh phn mm Vin CNTT-TT, HBK HN
Assume Youre the manager of a $2M S/W project, Vendor (ATG) Proposition
Cut your test costs in half (test cost: $1M) Provide it to you the use of the tool for 30% of
your test costs (or $300K) Save 50% of your original cost (or $500K), youre ahead of 20% (or $200K)
Poor Investment
Every requirement, use case, object, test case, and defect is equally important Object oriented development is a logic exercise Earned Value Systems dont track business value Separation of concerns: SEs job is to turn requirements into verified code Ethical concerns separated from daily practices
The notion of user cannot be precisely defined, and therefore has no place in CS or SE.
- Edsger Dijkstra, ICSE 4, 1979
Analysis and allocation of the system requirements is not the responsibility of the SE group but is a prerequisite for their work
- Mark Paulk at al., SEI Software CMM* v.1.1, 1993 *Capability Maturity Model
ELEC.
G&C MFG.
PAYLOA D
Root of VBSE
Software & information system product and process technology Their interaction with human values To balance software discipline and flexibility To answer key How much is enough? questions
Lack of Resources , 10.6 Lack of Executive Support, 9.3 Unrealistic Expectations, 9.9
60 40 20 20 40 60 80 100
% of Fires
Validation: Are we building the right product Verification: Are we building the product
right
Conclusions So Far
Value considerations
Success is a function of key stake-holder values Values are vary by stakeholder role
Value for developer, value for customer, value for user??? Fairness, customer satisfaction, trust,
Non-monetary values are important VBSE: integration of ethics into software engineering practice
Self-Actualization Esteem and Autonomy Belongingness and Love Safety and Security Physiological (Food and Drink)
Satisfied needs are not motivators Unsatisfied lower-level needs dominate high-level needs Management Implication
Becoming a Better Manager Becoming a Better Technologist Helping Other Developers Helping Users Making People Happy Making People Unhappy Doing New Things Increasing Professional Stature
Do unto others
Build computer systems to serve users and operators .. Assuming users and operators like to write programs, and know computer science
Applications world
Users are pilots, doctors, tellers
Benefit Realization Analysis Stakeholder Proposition Elicitation and Reconciliation Business Case Analysis Continuous Risk and Opportunity Management Concurrent System and Software Engineering Value-Based Monitoring and Control Change as Opportunity
DMR-BRA
INITIATIVE
Contribution
OUTCOME
Contribution
OUTCOME
Increased sales Reduce time to process order Reduce time to deliver product
*DMR Consulting Groups Benefits Realization Approach
Stakeholder Value Proposition Elicitation & Reconciliation Model-Clash Spider Web: Master Net
Expectations management
Aware of resolvable conflicts to relax less-critical levels of desire Lessons-learned retrospectives, well calibrated cost models, simplifier-complicator lists Prototype, estimation models Rank-ordering of stakeholders or categorization of the relative priorities of their desired capabilities Pair-wise comparison, scale-of-10 ratings of relative importance and difficulty Collaboration-oriented support tool for brainstorming, discussion, and win-win negotiation of conflict situations Prioritization and reconciliation based on Best ROI
Present Value
Option B
Return on Investment
2 Option A 1
Time
-1
Expectations management
Aware of resolvable conflicts to relax less-critical levels of desire Lessons-learned retrospectives, well calibrated cost models, simplifier-complicator lists Prototype, estimation models Rank-ordering of stakeholders or categorization of the relative priorities of their desired capabilities Pair-wise comparison, scale-of-10 ratings of relative importance and difficulty Collaboration-oriented support tool for brainstorming, discussion, and win-win negotiation of conflict situations Prioritization and reconciliation based on Best ROI
Present Value
Option B
Return on Investment
2 Option A 1
Time
-1
Software Processes
Waterfall Model
Component-Based Development
Waterfall Model
Formal Sign-off at the end of each phase - Documentation as product of each phase
Results in solid, well-constructed systems All sub-goals within each phase must be met Testing is inherent to every phase
Therefore, Waterfall model is only appropriate when the requirements are well-understood and changes will be fairly limited during the design process Mostly used for large software system projects where a system is developed at several sites
Evolutionary Development - I
Evolutionary Development - II
Basic Idea
Exploratory development:
Throw-prototyping
Faster system development than with waterfall model Useful when requirements are less-well understood Customer inputs throughout development yields system closer to their needs Steady visible signs of progress
For small or medium-size interactive systems For parts of large systems (e.g. the user interface) For short-lifetime systems
Based on the transformation of a mathematical specification through different representations to an executable program Transformations are correctness-preserving so it is straightforward to show that the program conforms to its specification Embodied in the Cleanroom approach to software development Each transformation should be sufficiently close to avoid excessive verification efforts and reduce the possibility of transformation errors
T1
Formal transformations T2 T3
T4
Formal specification
R1
R2
R3
Executable program
P1
P2
P3
P4
Transformations are small, making verification tractable Resulting implementations are proven to meet specifications, so testing (of components) unnecessary
Need for specialised skills and training Difficult to formally specify some aspects of the system, e.g. user interfaces Development time high (usually not worth
the time/cost)
Critical systems
Component-based Development - I
Based on systematic reuse where systems are integrated from existing components or COTS (Commercial-off-the-shelf) systems Process stages
Component analysis Requirements modification System design with reuse Development and integration
This approach is becoming more important but still limited experience with it
Component-based Development - II
Requirements specification
Component analysis
Requirements modification
System validation
Process iteration
System requirements ALWAYS evolve in the course of a project so process iteration where earlier stages are reworked is always part of the process for large systems. Iteration can be applied to any of the generic process models. Two (related) approaches
Incremental Model
Rather than deliver the system as a single delivery, the development and delivery is broken down into increments with each increment delivering part of the required functionality. User requirements are prioritised and the highest priority requirements are included in early increments. Once the development of an increment is started, the requirements are frozen though requirements for later increments can continue to evolve.
Incremental development
Implement and test first build Implement, integrate and test successive build until product is complete
Maintenance
Series of incremental builds until the product is finished Value assignment to each build not yet implemented Cost estimation of developing each build Value-to-Cost ratio is the criterion used for next build selection
Customer value can be delivered with each increment so system functionality is available earlier. Early increments act as a prototype to help elicit requirements for later increments. Lower risk of overall project failure. The highest priority system services tend to receive the most testing.
Component-based Development - I
Based on systematic reuse where systems are integrated from existing components or COTS (Commercial-off-the-shelf) systems Process stages
Component analysis Requirements modification System design with reuse Development and integration
This approach is becoming more important but still limited experience with it
Component-based Development - II
Requirements specification
Component analysis
Requirements modification
System validation
Process iteration
System requirements ALWAYS evolve in the course of a project so process iteration where earlier stages are reworked is always part of the process for large systems. Iteration can be applied to any of the generic process models. Two (related) approaches
Incremental Model
Rather than deliver the system as a single delivery, the development and delivery is broken down into increments (Builds) with each increment delivering part of the required functionality. User requirements are prioritized and the highest priority requirements are included in early increments. Once the development of an increment is started, the requirements are frozen though requirements for later increments can continue to evolve.
Incremental development
Implement and test first build Implement, integrate and test successive build until product is complete
Maintenance
Series of incremental builds until the product is finished Value assignment to each build not yet implemented Cost estimation of developing each build Value-to-Cost ratio is the criterion used for next build selection
Customer value can be delivered with each increment so system functionality is available earlier. Early increments act as a prototype to help elicit requirements for later increments. Lower risk of overall project failure. The highest priority system services tend to receive the most testing.
Spiral Model - I
Combines the iterative nature of prototyping with the controlled and systematic aspects of the waterfall model
Provides the potential for rapid development of incremental versions of software Each loop in the spiral represents a phase in the process. No fixed phases such as specification or design loops in the spiral are chosen depending on what is required. Risks are explicitly assessed and resolved throughout the process.
[Boehm 1988]: A Spiral Model of Software Development and Enhancement
Spiral Model - II
Specific objectives for the phase (performance, functionality, ability to accommodate changes etc.) Alternative means of implementing this portion of the product (design A, design B, reuse, buy, etc.) Constraints imposed on the application of the alternatives (cost, schedule, interface, etc.)
Prototyping, simulation, benchmarking, reference checking, administering user questionnaires, analytic modeling, or combinations of these and other resolution techniques
Hack some prototypes Fit spiral into waterfall Incremental waterfalls Suppress risk analysis No concurrency, feedback One-size-fits-all model
. Concurrent determination of artifacts in each cycle 2. Each cycle addresses objectives, constraints, alternatives, risks, artifact elaboration, stakeholders commitment 3. Risk-driven activity level of effort 4. Risk-driven artifact degree of detail 5. Managing stakeholder commitments via anchor-point milestones 6. Emphasis on system and life-cycle issues - vs. software and development issues
An adaptation of the spiral model which emphasis is explicitly placed on the involvement of the client in a negotiation process at the genesis of the product development. Defines a set of negotiation activities at the beginning of each pass around the spiral. Rather that a single customer communication activity the following activities
Identification of the system stakeholders. Determination of the stakeholders win conditions Negotiations of the stakeholders win conditions to reconcile them into a set of win-win conditions for all concerned (including the software project team).
[Boehm 1996]: Anchoring the Software Process
Defined in concert with Government, industry affiliates Coordinated with the Rational Unified Process
Definition of System and Software Architecture Definition of LifeCycle Plan Feasibility Rationale
Assurance of consistency among elements above All major risks resolved or covered by risk management plan
Faster software production facilitated through collaborative involvement of the relevant stake holders. Cheaper software via rework and maintenance reductions
MBASE Model
MBASE (Model Based Architecting and Software Engineering)
a set of guidelines that describe software engineering techniques for the creation and integration of development models for a software project Integrated Model of
Product (development) models such as object oriented analysis and design models and traditional requirements models Process models such as lifecycle and risk models Property models such as cost and schedule Success models such as business-case analysis and stakeholder win-win.
MBASE Framework
Invariants
1. Defining and sustaining a stakeholder win-win relationship through the system's life-cycle. 2. Using the MBASE Model Integration Framework. 3. Using the MBASE Process Integration Framework.
Variants
1. Use of particular success, process, product, or property models.
2. Choice of process or product representation. 3. Degree of detail of process, product, property, or success modeling. 4. Number of spiral cycles or builds between anchor points. 5. Mapping of activities onto InceptionElaboration-Construction-Transition phases. 6. Mapping of staff levels onto activities.
4. Using the LCO, LCA, and IOC Anchor Point milestones. 5. Ensuring that the content of MBASE artifacts and activities is risk-driven.
RUP Model - I
RUP (Rational Unified Process)
A modern process model derived from the work on the UML and associated process. Normally described from 3 perspectives
RUP Model - II
RUP Phases
Inception
Construction
Develop software iteratively Manage requirements Use component based architecture Visually model software Verify software quality Control changes to software
Limitations of RUP
High Adopting RUP is often thought to be expensive. Does not cover any non-software aspects of development
Considered too practical, as the practicality has been based on current status of the Rational tool suite
MBASE
LCO
LCA
IOC
RUP
Inception
Elaboration Construction
Transition
Standard Processes
http://standards.ieee.org/catalog/olis/se.html 1074-1997IEEE Standard for Developing Software Life Cycle Processes 1517-1999 (R2004)IEEE Standard for Information Technology - Software Life Cycle Processes - Reuse Processes 12207.0-1996IEEE/EIA Standard: Industry Implementation of International Standard ISO/IEC 12207:1995 Standard for Information Technology-Software Life Cycle Processes. 15288-2004IEEE Std 15288-2004 (Adoption of ISO/IEC 15288:2002, IDT), Systems Engineering--System Life Cycle Processes