Friday, March 21, 2014





  • Large software is usually designed to solve 'wicked' problems.
  • Software engineering requires a great deal of coordination across disciplines.
  •      -Almost infinite possibilities for design trade-offs across components.
         -Mutual distrust and lack of understanding across engineering disciplines



  • Systems must be designed to last many years in a changing environment.
  • The process of efficiently and effectively developing requirements.
  • Tooling required to create the solutions, may change as quick as the clients mind.
  • User expectations.
  •      - User expectations increase as the technology becomes more and more sophisticated.
  • The mythical man-month factor.

  •      -Adding personnel to a project may not increase productivity.
         -Adding personnel to a late project will just make it later.


  • Communications.
  •      -Communications among the various constituencies is a difficult problem. Sometimes different constituencies speak completely different languages. For example, developers may not have the domain knowledge of clients and / or users. The larger the project, the more difficult the communications problems become.
  • Project characteristics.
  •     -size / complexity
        -novelty of the application
        -response-time characteristics
        -security requirements
        -user interface requirements
        -reliability / criticality requirements

    0 comments:

    Post a Comment

    Copyright © Software Engineering Fundamentals | Powered by Blogger
    Design by N.Design Studio | Blogger Theme by NewBloggerThemes.com