MBASE software engineering course textbook
- Introduction
- Projects, products, and programs
- Stakeholders
- Software Engineering
- Full lifecycle development: beyond design and code
- Software economics
- Project management
- Models for software development
- Product
- Process
- Property
- Success
- What is MBASE?
- The modeling process
- Why use models?
- “Real world” system -- representation in SW
- People-technology, general-specific
- Representation areas
- General people models: Domain Description
- Specific people models: System Analysis
- General technology models: System Design
- Specific technology models: System Implementation
- Models and audience
- Model assumptions, stakeholder assumptions and Model clashes
- kinds of model clash
- Integrated models
- Use of modeling tools
- Development practices
- Development phases
- Inception
- Elaboration
- Construction
- Transition
- Deployment
- Support
- Maintenance
- Evolution
- Iterative development
- Spiral
- Principles versus practice: using models
- Modeling versus documenting
- Collaborative engineering
- Clarity and communication are the key
- Three kinds of technical communication
- Audience
- Common definition language (CDL)
- Overview of MBASE
- Integration of Product, Process, Property, Success models
- Variants and invariants
- MBASE variants and invariants
- Critical development milestones
- LCO
- LCA
- IOC
- Architecture review boards
- MBASE process guidelines
- Activities
- Artifacts
- Agents
- Entry and exits
- Starting a project with MBASE: the OCD
- Requirements and the SSRD
- Architecture and the SSAD
- Project Management and the LCP
- Project Economics and the FRD
- Integration within MBASE
- Choosing models and methods
- Success model variants and invariants
- Product model variants and invariants
- Process model variants and invariants
- Property model variants and invariants
- Factors and dependencies
- Identifying model clashes
- Resolving model clashes
- Avoiding model clashes
- Model decision tables
- Modeling and the language of abstractions
- Concepts and representations
- data vs. information
- information vs. encapsulation
- Elegance
- Engineering abstractions
- Levels and meta-levels
- Abstraction evolution
- Domain description
- Purpose of Domain Descriptions
- Creating a Domain Description
- Organization Background
- Organization Goals
- Description of Current System
- Entity Model
- Interaction Model
- Organization Activity Model
- Current System Shortfalls
- Domain Description CDL
- System Analysis I: Operational Concept
- Purpose of System Analysis
- Integration of SA and DD
- Refinement patterns
- Performing a System Analysis for the Proposed System
- Project Goals and Constraints (SS)
- Simplifies and complicators
- Capabilities (PD)
- Iterating system capabilities (the questions)
- Initial project size metrics from capabilities
- Levels of Service (SS)
- Proposed System Description (PD)
- Statement of Purpose
- Proposed Entities
- Proposed Activities
- Proposed Interactions
- Redressing of Current System Shortfalls (SS)
- Effects of Operation
- Operational Stakeholders (PD)
- Organizational Relationships (PD)
- Operational Policies and Constraints (PY)
- Operational Impacts (SS)
- Organizational Impacts (SS)
- Prototyping
- Purpose of prototyping
- Kinds of prototypes
- Evolutionary prototyping
- Choosing what to prototype
- Managing prototype development
- Project Requirements
- What are requirements?
- Why not to use requirements to initiate a project
- Gathering requirements
- Stakeholders
- WinWin
- Win conditions and pre-requirements
- Taxonomy and requirements
- Prototypes and requirements
- Project Requirements (PY)
- Budget and Schedule
- Development Requirements
- Packaging Requirements
- Implementation Requirements
- Support Environment Requirements
- Capability Requirements
- System Definition (PD)
- System Requirements (PD)
- Nominal Requirements
- Off-Nominal Requirements
- System Interface Requirements
- User Interface Requirements (PD)
- Graphical User Interface Requirements
- Command-Line Interface Requirements
- Diagnostics Requirements
- Hardware Interface Requirements (PY)
- Communications Interface Requirements (PY)
- Other Software Interface Requirements (PY)
- Level of Service Requirements (PY)
- Evolution Requirements (PD)
- Capability Evolution Requirements
- Interface Evolution Requirements
- Technology Evolution Requirements
- Environment and Workload Evolution Requirements
- System Analysis II: Architecture
- Software architectures
- More on integrating DD and SA models
- Component models
- Component abstractions
- Component attributes
- Component relationships
- Complex relationships
- Constraints and dependencies
- Behavior models
- Identifying behaviors
- Boundaries of control
- Assigning Behavior to components
- Enterprise models
- Classification
- Component classes
- Class engineering
- Metasets, metadata, and metatypes
- Project Management I: Planning
- Milestones and Products (PS) (What? When?)
- Overall Life Cycle Strategy
- Phase Milestones and Schedules
- Engineering Stage
- Production Stage
- Support Stage
- Project Deliverables
- Engineering Stage
- Production Stage
- Responsibilities (PS) (Who? Where?)
- Stakeholder Responsibilities
- Stakeholder Representatives
- Engineering Stage
- Production Stage
- Support Stage
- Development Responsibilities
- Development Organization Charts
- Staffing
- Training
- Project Economics I: Business Case analysis and project feasibility
- Product Rationale
- Business Case Analysis (PY)
- Development Cost Analysis
- Implementation Cost Estimate
- Operational Cost Estimate
- Maintenance Cost Estimate
- Estimate of Value Added and Return on Investment
- Process Rationale (PY)
- System Priorities
- Process Match to System Priorities
- Consistency of Priorities, Process and Resources
- Project Risk Assessment (PY)
- Analysis Results (PY)
- Product Features
- Advantages
- Limitations
- Tradeoffs Considered
- Changes Not Included
- Commercial-Off-The-Shelf Solutions
- Meeting LCO
- The exit criteria: one feasible architecture
- The LCO ARB
- Expectations for LCA
- System Design (PD)
- What is software design?
- Integration of SA and SD models
- Architectural Views
- System Topology
- Component Specifications
- Framework and Protocol Specifications
- System Deployment View
- Logical Component View
- Object Model
- Design-level objects
- COTS
- Operations Model
- Critical Algorithms
- Operation Specifications
- Extending behaviors to operations
- Adding design abstractions to assign behaviors
- Relational objects
- Class and Configuration Models
- Class representation
- Class engineering
- Configuration planning
- Design Patterns
- Dependencies
- Delegated states
- Delegated roles
- Component-based subtyping
- Designing constraints
- Designing dependencies
- Designing meta-objects
- Application architecture
- Representational subsystems
- Abstraction layers
- Model-view-controller
- Validation
- Messaging
- Distribution
- Exception handling
- Services
- Parallelism
- Transaction Processing
- Mechanisms
- Notification
- Journalization
- Sessions
- Translation
- Relationalization
- Authentication
- Entry points
- Integration points
- Distribution point
- Basic GUI design
- Perception
- human - computer interaction
- control - response
- perspectives
- view areas
- Minimize controls
- Anticipation
- default behaviors
- control validation
- Project Management II: Approach (PS) (How?)
- Process Management
- Planning
- Milestones
- Schedules
- Increments
- Monitoring and Control
- Reviews
- Project Communication
- Support
- Risk
- Tools, Environment, Facilities
- Product Management
- Customer and Product Requirements
- Technical Solutions
- Configuration
- Integration
- Property Management
- Quality Assurance
- Verification
- Inspections
- Testing
- Validation
- Measurement and Analysis
- Success Management
- Shared Vision
- Transition
- Support
- Release Description
- Users Manual
- Project Economics II: Cost and Effort
- Resources (How much?)
- Work Breakdown Structure (PS)
- Budgets (PY)
- Project Management III: Completion
- Requirements Satisfaction (SS)
- Operational Concept Satisfaction
- Project Requirements Satisfaction
- Capability Requirements Satisfaction
- Interface Requirements Satisfaction
- Level of Service Requirements Satisfaction
- Evolution Requirements Satisfaction
- Stakeholder Concurrence (PD)
- LCA
- The LCA criteria
- LCA ARB
- Preparing for IOC
- System Implementation
- Overview of IOC
- Iterative development
- Iteration Plan
- Iteration Assessment Report
- Release Description
- Developer Responsibilities
- From SD to Implementation
- Direct mappings
- Implementation issues
- Use of prototypes
- Project Management IV: Monitoring and Control
- CQMA
- Project Metrics
- Quality Assurance
- Testing
- Test Plan
- Test Description and Results
- Inspections
- Inspection Plan
- Inspection Report
- Quality Management
- Quality Management Plan
- MBASE Wrap-up
- TRR, IOC demos
- Product transition and support
- Transition Plan
- User’s Manual
- Support Plan
- Project retrospective