Skip to topic | Skip to bottom
Home
Main
Main.SystemsDevelopmentr1.1 - 24 Jun 2008 - 00:30 - Main.novatopic end

Start of topic | Skip to actions

Systems development

* Systems development
  • Selecting a systems development approach ### definitely needs elaboration
  • Software life cycle models
    • Waterfall
    • Iterative
    • Phased development
    • Spiral model
  • Factors affecting the choice of the life cycle model
    • Size
    • Stability of requirements
  • Categories of development techniques
    • Data oriented
    • Process oriented
    • Behavior oriented
    • Object oriented
    • Component-based development
      • Software as a component of a system
      • Reusable components and repositories
      • Integrating software components
    • Developing using open source and open systems approaches
    • Developing with packages
      • Package acquisition and implementation
      • Systems integration
    • End-user development
  • Specific methodologies
    • Unified process
    • Agile development
      • Extreme programming
      • Scrum
    • Structured analysis and design
    • Rapid Application Design (RAD)
    • Prototyping
    • Information Engineering

Requirements Analysis and Specification

  • Requirements
    • Definition of requirements
      • Product and project constraints
      • Internal and external system boundaries
      • Functional requirements
      • Non-functional requirements
        • Safety
        • Security
        • Usability
        • Performance
    • Requirements process
    • Analysis patterns
    • Layers/levels of requirements
      • Needs and goals
      • User requirements
      • System requirements
      • Software requirements
    • Quality of requirements
      • Characteristics of requirements
        • Testability
        • Lack of ambiguity
        • Consistency
        • Correctness
        • Traceability
        • Priority
        • Completeness
        • Simplicity
        • Verifiability
        • Usefulness as basis for design
        • Failure modes/Degraded operation mode
        • Robustness
      • Analysis of quality of requirements
        • Methods for analyzing correctness
          • Static analysis
          • Simulation
          • Model checking
        • Analyzing non-functional requirements
    • Requirements management
      • Consistency management
      • Change management
      • Reuse
      • Conflicting requirements, trade-off analysis
      • Release planning
    • Interaction between requirements and architecture
    • Requirements in context
    • Wicked problems
      • Ill-structured problems
      • Problems with many solutions
    • Constraints
      • COTS
      • Existing systems
  • Eliciting requirements
    • Elicitation sources
      • Stakeholders
      • Domain experts
      • Operational and organizational environments
    • Elicitation techniques
      • Interviews
      • Questionnaires/surveys
      • Prototypes
      • Use cases
      • Observation
      • Prototypes
      • Participatory techniques
      • Ethnographic
      • Archival documents
  • Requirements specification & documentation
    • Requirements specification notations
    • Requirements documentation
      • Types
      • Audience
      • Structure
      • Quality
      • Attributes
      • Standards
    • Acceptance criteria
      • Acceptance test design
      • Independence of specification
      • Limitations
  • Requirements validation
    • Reviews and inspection
    • Prototyping to validate requirements
    • Validating quality attributes
    • Formal requirements analysis

System modeling

  • System modeling principles
    • Models as partial views providing particular perspectives
    • Decomposition
    • Abstraction
    • Generalization
    • Projection/views
    • Explicitness (make no assumptions, or state all assumptions)
  • Information modeling
  • Domain modeling
  • Enterprise modeling
    • Business processes
    • Organizations
    • Goals
  • Systems modeling tools and techniques
    • Modeling languages
      • UML
      • IDEF1
    • Group-based techniques
      • JAD
      • Structured walkthroughs
  • Software modeling
    • Modeling principles
      • Use of formal approaches
      • Pre and Post conditions
      • Invariants
      • Properties of modeling languages
      • Syntax vs. semantics (understanding model representations)
    • Specification Languages
      • Formal (mathematical) specification languages
        • Z
        • VDM
        • SCR
        • RSML
      • Structured English
    • Types of models
      • Behavioral models
        • State diagrams
        • Activity diagrams
        • Sequence diagrams
        • Failure modes and effects analysis
        • Fault tree analysis
      • Structure models
        • Class diagrams
        • Object diagrams
        • Component diagrams
      • Embedded systems models
        • Real-time schedulability analysis
        • External interface analysis

System design

  • System and subsystem division
  • High quality design elements
  • System-level strategies
    • Diagnostics
    • Hardware/software interface
  • Interactions between design and requirements
  • Design trade-offs
  • Design to achieve performance measures
    • Achieving reliability
      • Availability modeling
      • Redundancy
      • Independence of designs
      • Separation of concerns
      • Specification of subsystems
      • Impact of subcontracting
      • Fault tolerance
        • Error detecting
        • Error correction
        • Sofware approaches to tolerating hardware faults
        • Dealing with failure
    • Safety
      • Common-cause-failure
  • Concurrent hardware/software design
    • Hard real-time requirements
    • Hardware - software co-design
    • Applications areas reuiring hardware/software coordination
  • Software design
    • Design principles
      • Information hiding
      • Cohesion
      • Coupling
    • Design for quality attributes
      • Reliability
        • Software reliability models
      • Usability
      • Performance
      • Testability
      • Fault tolerance
        • Software fault-tolerance methods
          • N-version programming
          • Recovery blocks
          • Rollback and recovery
    • Reuse
      • Design patterns
    • Software design methodologies
      • Function-oriented
      • Object-oriented
      • Data-structure centered
      • Aspect oriented
      • Design for real-time and event-driven systems
    • Architectural design
      • Architectural styles
        • Pipe-and-filter
        • Layered
        • Transaction-centered
        • Peer-to-peer
        • Publish-subscribe
        • Event-based
        • Client-server
      • Architectural trade-offs
      • Hardware issues in software architecture
      • Requirements traceability in architecture
      • Domain-specific architectures and product-lines
      • Architectural notations
    • Detailed design
      • System and component interface design
      • Component design
    • Design notations
  • System design support tools and evaluation
    • Design support tools
    • Design metrics
    • Formal design analysis

Software Construction, Tools, Techniques

  • Software Construction
    • API design and use
    • Code reuse and libraries
    • Object-oriented run-time issues (e.g., dynamic binding)
    • Parameterization and generics
    • Assertions
    • Fault tolerance
      • Error handling
      • Exception handling
    • State-based and table-driven construction (e.g., Lex)
    • Parsing (e.g., yacc)
    • Run-time configuration
      • Internationalization
    • Concurrency
    • Construction techniques for distributed software
    • Middleware
    • Performance analysis
    • Platform standards
    • Test-first programming
  • Software construction tools
    • Selecting the development language
    • Development environments
    • Syntax-directed tools
    • GUI builders
    • Testing tools
    • Profiling, performance analysis and slicing tools
  • Formal methods for software construction
    • Application of abstract machines
    • Application of specification languages and methods
    • Automatic generation of code from a specification
    • Program derivation
    • Analysis of candidate implementations
    • Mapping of a specification to different implementations
    • Refinement

System verification and validation

  • V&V terminology and foundations
    • Objectives and constraints of V&V
    • Planning the V&V effort
    • Documenting V&V strategy, including tests and other artifacts
    • Metrics & measurement (e.g. reliability, usability, performance, etc.)
    • V&V involvement at different points in the lifecycle
  • Reviews
    • Desk checking
    • Walkthroughs
    • Inspections
  • Testing
    • Testing techniques
      • White box
        • Coverage-based testing
          • Branch coverage
          • Path coverage
          • Statement coverage
        • Invariant testing
      • Black box
        • Operational profile-based testing
        • Developing test cases based on use cases and/or customer stories
    • Testing "approaches"
      • Unit testing
      • Stress testing
      • Regression testing
      • Interface testing
      • Integration testing
      • System-level and acceptance testing
    • Testing across quality attributes
    • Testing tools
  • User interface testing and evaluation
    • The variety of aspects of usefulness and usability
    • Heuristic evaluation
    • Cognitive walkthroughs
    • Usability testing
      • Observation sessions
      • Logging user activity
      • Web usability; testing techniques for web sites
      • Formal experiments to test hypotheses about specific HCI controls
  • Problem analysis and reporting
    • Analyzing failure reports
    • Problem tracking
    • Debugging/fault isolation techniques
    • Defect analysis

System Quality

  • System quality concepts and culture
    • Definitions of quality
    • Society's concern for quality
    • The costs and impacts of bad quality
    • Cost of quality models
    • Quality attributes for software (e.g. dependability, usability, etc.)
    • The dimensions of quality engineering
    • Roles of people, processes, methods, tools, and technology
  • Software quality standards
    • Organizational implementation of standards
    • The ISO 9000 Quality Management Systems
    • ISO/IEEE Standard 12207 Software Life Cycle Processes
    • IEEE software quality-related standards
  • Software quality processes
    • Software quality models and metrics
    • Quality-related aspects of software process models
    • Introduction/overview of ISO 15504 and the SEI CMMs
    • Quality-related process areas of ISO 15504
    • Quality-related process areas of the SW-CMM and the CMMIs
    • The Baldridge Award criteria as applied to software engineering
    • Quality aspects of other process models
  • Process assurance
    • The nature of process assurance
    • Quality planning
    • Organizing and reporting for process assurance
    • Techniques of process assurance
  • Product assurance
    • The nature of product assurance
    • Distinctions between assurance and V&V
    • Quality product models
    • Root cause analysis and defect prevention
    • Quality product metrics and measurement
    • Assessment of product quality attributes (e.g. usability, reliability, availability, etc.)

System evolution

  • Evolution processes
    • Evolution and maintenance
    • Relationship between evolving entities
    • Models of software evolution
    • Cost models of evolution
    • Planning for evolution
  • Evolution activities
    • Working with legacy systems
    • Program comprehension and reverse engineering
    • System and process re-engineering (technical and business)
    • Impact analysis
    • Migration (technical and business)
    • Refactoring
    • Program transformation
    • Data reverse engineering
  • Types of evolution
    • Defect removal
    • Upgrade
    • Enhancements
  • Configuration management and version control

Specialized systems

  • Safety critical systems
    • Safety plan
  • Security critical systems
    • High integrity functions
    • Ensuring performance
  • Risk and hazard analysis
    • Strategies for risk reduction
    • Risk control
    • Implications for implementation
    • Preliminary hazard analysis
  • Concept of integrity level
    • Quantification
    • Impact on life cycle
  • International standards
  • Legal requirements

-- Main.nova - 24 Jun 2008
to top


You are here: Main > VillanovaWikiPages > OntologyProject > SystemsDevelopment

to top

Copyright © 1999-2008 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback