GoConqr hat ein neues Design! Sag uns, wie es dir gefällt.

Mindmap

Software Engineering Web

Thomas Lindblom Computer Science Englisch

Software Engineering Web

Inhalt der Mindmap

Software Engineering Web

  1. What is software?

    • Instructions that when executed provide desired features, function, and performance
    • Data Structures that enable the programs to adequately manipulate information
    • Documentation that describes the operation and use of the programs (or sets of instructions)
    • Software Application Domains (or types of software)
      • System Software
        • operating systems, networking software, compilers etc.
      • Application Software
        • stand-alone programs for specific business need that facilitates business operations
          • something used by a business
      • Engineering/Scientific Software
        • Software used in scientific work. Characterized by number crunching and/or simulation
      • Embedded Software
        • software built into some physical device. Controls functions for end user and system. Ex) microwave, car
      • Product-line software
        • software that satisfies the needs of a particular market. Ex) word processing, databases
      • Web Applications
        • any application hosted on the internet.
          • Characterized by hypertext, graphics, interactive content, database, and business application access
      • Artificial Intelligence Software
        • characterized by non-numerical algorithms to solve complex tasks. Think robotics and pattern recognition
      • Open World Computing
        • pervasive, distributed computing that connects mobile devices, PCs, and enterprise systems via vast networks
      • Netsourcing
        • WWW as computing engine and content provider. Think search engine
      • Open Source Software
        • distribution of source code for systems applications, self descriptive with high quality change management
      • Legacy Software
        • developed a long time and continuously modified to meet changes in business requirements and computing platforms
          • can be costly to maintain an older systems but also very risky to evolve to a new one
  2. Defintion of Software engineering

    • Fritz Bauer (1969)
      • is the establishment and use of sound engineering principles in order to obtain economical software that is reliable and works efficiently on real machines
    • IEEE (1993)
      • the application pf a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software. That is the application of engineering principles to software and the study of these principles.
  3. Software Process

    • a collection of activities, actions, and tasks that are performed when a work product is to be created. AKA who is doing what and when and how to reach a certain goal.
      • an activity achieves a broader objective (a set of actions)
      • an action is a set of tasks for a work product
      • a task focuses on the completion of a small well-defined objective
    • Process Framework/Model
      • Framework activities (engineering activities) (many framework activities within one umbrella activity)
        • communication, planning, modeling, construction, deployment
        • task set within each action within one framework activity is decided by the software team based on the problem
        • Generic Process Flows
      • Umbrella Activities (management activities) many within one process framework
        • software project management, risk management, software quality assurance, formal technical reviews, measurement, software configuration management, reusability management, work product preparation and production
      • each the activities within a process resides in a framework or model that defines their relationship with the process and each other
      • Categories of Process Models
        • Prescriptive Process Models
          • defined by a prescribed set of process elements and a predictable process flow
            • highly structured and facilitate coordination and cohesion in software work
            • the rigid structure may not be well suited for a software world generally defined by change
          • Waterfall Model
            • follows a linear process flow
            • ideal when project requirements are well understood and not likely to change
            • assumes all of the skills needed to build the project are available
            • disadvantage is that no working product until the end
          • Waterfall Model with Feedback
            • same basic linear process flow except after each step there are feedback loops to all of the previous steps
          • V- Model
            • analogous linear process flow. Each testing phase (unit testing, integration testing, system testing, acceptance testing) is tied to each of the previous linear framewor activities
            • again no working product until very end
        • Incremental Process Models
          • delivers a series of releases called increments
            • each increment provides progressively more functionality for the customer as each increment is delivered. Each increment adds a feature that is observable by the customer
          • The work for each increment can follow any process flow. However subsequent increments can be started before prior ones finish
            • For example, in a linear process flow during the "Construction" phase of increment #1, the "Communication" phase can occur for increment #2
        • Evolutionary Process Models
          • releases increments similar to the incremental process model, however each increment does not necessarily add a new "feature." The system simply becomes a more complete version of the system. The customer may not notice any difference between two increments as things under the hood may have changed.
          • satisfies the need to introduce limited versions to meet competitive or business pressures
          • accounts for the fact that business and product requirements often change during development. This model explicitly accomodates that evolution
          • Prototyping
            • Rapidly produce prototype to present customer with some idea of what the system might be like
              • this helps to mitigate risks early as customer gets a better idea of requirements
            • Disadvantage is that customer thinks the product is further along than it actual is. They are unaware of shortcuts and compromises under the hood
          • Spiral Model
            • with each spiral the system grows
            • realistic model for large scale systems
            • risk driven process model (uses prototyping) that is used multi stake holder software systems
          • Concurrent Models
            • parallelizes tasks and is ideal for projects involving multiple engineering teams from different disciplines.
              • think embedded software or low level/close to hardware development
          • Drawbacks
            • project planning is hard but its difficult to project the number of cycles needed
            • The speed at which the system evolves is not defined
            • still prioritizes high/quality which sacrifices some flexibility and extrnsibility
    • Process Pattern
      • describes a consistent method for describing problem solutions within the context of a software process
    • Process Assessment
      • attempts to understand the current state of the software process with the intent of improving it
  4. General Principles

    • George Polya (1945) "How to solve it". AKA the essence of problem solving
      • Step 1: Understand the problem (communication and analysis)
      • Step 2: Plan the solution (modeling and design)
      • Step 3: Carry out the plan (generation)
      • Step 4: Examine the result for accuracy (quality assurance)
    • Hooker (1996)
      • KEEP IT SIMPLE STUPID

Bilder und Dateien der Mindmap

  • Software Engineering Web
  • Software Engineering Web
  • Software Engineering Web

Informationen

Beschreibung
Topics in the course
Erstellt von
Thomas Lindblom · Okt 2016
Aktualisiert
3 Feb 2018
Aufrufe
2
Bewertung

Feedback

Worum geht es?

Wie gefällt dir das neue Design?

Dein Eindruck