Friday, March 21, 2014

undefined undefined




  • 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

    Related Posts:

    • Rational Unified Process (RUP)The Unified Process or Rational Unified Process (RUP) is a framework for object oriented software engineering using UML. This is a use-case driven, architecture centric, iterative and incremental software development model. … Read More
    • Incremental Development The Incremental development model involves developing the system in an incremental fashion. The most important part of the system is fist delivered and the other parts of the system are then delivered according to their im… Read More
    • The Spiral Model This model is an evolutionary software process model that couples the iterative nature of prototyping with the controlled and systematic aspects of the linear sequential model. Using the spiral model software is developed… Read More
    • Agile Process       Agile software engineering combines a philosophy and a set of development guidelines. The philosophy encourages the customer satisfaction and early incremental delivery of software; small and highly moti… Read More
    • Component Based Software EngineeringEmphasizes the design and construction of computer based systems using software “components”. The process relies on reusable software components. Similar to the characteristics of the spiral model. Requirement specificati… Read More

    0 comments:

    Post a Comment

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