1.7 Software Engineering

Cards (23)

  • Computer Aided Software Engineering (CASE)
    A CASE tool is a software tool which provides a number of functions which assist with the design and testing of a computer system or program
  • Functions of a CASE tool
    • Provides a data dictionary
    • Includes a graphics / diagram production feature
    • A code generator
    • May provide repositories of reusable code
    • May provide project management tool(s)
    • May incorporate version control
    • May carry out report generation
    • A prototyping tool
  • Upper CASE tools
    • Used to support during analysis
  • Lower CASE tools
    • Used during development
  • Analysis and planning tools

    • Flow chart creators, such as Gliffy
    • Microsoft Visio
  • Integrated Development Environment (IDE)

    Has tools for developing and debugging programs
  • Debugger
    A software tool used to detect, locate and correct faults in a program
  • Debugging Tool Features (pt1)

    • Program trace/step-through/step-into
    • Break point
  • Debugging Tool Features (pt2)
    • Variable watch
    • Store dump
    • Error diagnostics
  • Application Generator
    A software tool which is used to assist and speed-up the creation of a complete system
  • Application Generator Features
    • Provides a complete environment to support the programmer
    • May include source code generator, compiler, etc
    • Usually creates code automatically
    • May include an interface generator
    • May include a debugger
  • Editor
    Allows the programmer to enter and edit the high level language source code
  • Editor Features
    • May have features unique to the language being edited (eg: indenting, keyword colours, search/replace)
  • Version Management
    An approach used to track and save source code throughout the software development process
  • Version Management Tools
    • Git
    • Mercurial
  • Version Management Types
    • Local version control
    • Centralised version control
    • Distributed (cloud-based) version control
  • Version management tools create different versions (or commits) of source code to track changes and development
  • Version management tools can be used to roll-back to a previous version if a program becomes corrupt or an bug is found during the development process
  • Version management tools allow code to be reviewed and checked before they committed to a master version
  • Using cloud-based distributed version control will ensure developers always have access to the most up-to-date versions of the source code
  • Distributed version control is useful when a software development team are working on different aspects of a single project
  • Version control is an essential for maintaining quality control and assurance in software development
  • Version control is essential for tracking bugs and issues in source code