Monday, 31 March 2014

ONLINE EDUCATION EASY WAY ENGINEEING


Introduction

Software Engineering is the subdiscipline of Computer Science that attempts to apply engineering principles to the creation, operation, modification and maintenance of the software components of various systems. As with much of Computer Science, the subject of Software Engineering is at an very early stage in its development. It is much more of an art than a science, and at present has little in common which classical engineering.
  • What is engineering? Engineering is the application of well-understood scientific methods to the construction, operation, modification and maintenance of useful devices and systems.
  • What is software? Software is comprises the aspects of a system not reduced to tangible devices, e.g. computer programs and documentation. It is distinguished from hardware, which consists of tangible devices, and often exists as collections of states of hardware devices. The boundary between hardware and software can be blurry, as with firmware and microcode.
  • What is Software Engineering? Someday, Software Engneering may well be concerned with the application of well-understood scientific methods to the construction, operation, modification and maintenance of software. Today, however, Sofware Engineering is concerned with finding ways in which to produce working software for predictable costs in predictable time. When the problems involved are very simple or when only one person is involved, implementing software to meet their own needs, there isn't much to be said, and we are a long way from having any scientific principles for the production of software. Therefore, the major focus of software engineering today is on well-tested heuristics for the production of software to solve complex problems when many people are involved in the process, as users, as analysts, as programmers, as managers, etc. Therefore most of the issues in Software Engineering are concenred with interactions among people, rather than with the production of software.
  • People
  • Systems
    • A system is an assemblage of components that interact in some manner among themselves and, possibly, with the world outside the system boundary.
    • We understand systems by decomposing them into
      • subsystems
      • system components
    • We may decompose by focusing on the "nouns" (the subsystems and system components), the "verbs" (the actions), the data flows, the flows of control, ...
    • Systems engineering and Operations Research predate Software Engineering
    • Software Engineering has had more impact upon Systems Engineering than upon the creation of software
    • It is very difficult to separate the software components of a system from the other components of a system.
    • Understanding a system
      • Understand the interactions between the system and the outside world
      • Understand the internal actions of the system
    • Define the institutional context
      • Defining the business -- business models
        • Commercial
          • Blue collar industries -- manufacturing, construction
          • White collar industries -- banking, insurance, media
          • Service firms -- accounting, advertising, consulting
        • Academic
        • Government
        • Health care
        • Charitable
      • What are you producing?
        • Goods -- hardware, software, commodities
      • What do you want
          money, applause
      • What are you consuming?
      • Writing a business plan
        • Master plan for operation of the business
        • Explains why this business is worth investing time and money in
        • Contents
          • Purpose of this business
          • Type of business, industry and or sector(s) of operations
          • Target market(s)
          • Analysis of competition
          • Response to competition
          • Conceptual outline of business structure and operation
          • What goods or services the business will provide
          • Staffing and key personnel
          • Marketing
          • Sales
          • Operations
          • Financial plan
        • See Wayne R. Parker's http://www.action-links.com/businesspages/businessplan.htm
      • Other institutional contexts require other approaches
  • Basics of creating software
    • Define the problem (needs analysis)
      • Overall systems analysis (e.g. business analysis)
      • Define the overall system or business (see above)
        • By common terminology
        • By industry, industry sector(s), function(s)
        • Identify business environment and boundary
      • Decompositions
        • Top-down
        • Object-oriented
        • Apply both to the system and to the environment
      • Identify the flows
        • Control, information, goods
        • Follow the money
      • Identify software needs
      • What does the system use to function AS-IS
        • Follow the money or other rewards
        • Look for commonly used software functions
        • Accounting system
        • Inventory control
        • Payroll
        • Taxes
      • What will the proposed new software contribute in terms of new useful functions?
      • Consideration of Alternatives
        • Compare to software as used by competition
        • Consider commercial and open source offerings
        • Look for bottle-necks in information flows
        • Manual systems amenable to automation
        • Mismatched loads vs. service capacity
        • Mismatched skills for systems in use
        • Incremental change vs. big-bang
        • Build vs. buy
        • Multiply all build estimates by 3
        • Have alternatives if build fails
        • Have second sources for buys
        • Evaluation of risks
        • Minimize maximal losses
  • One possible view of software life cycle
    • Create a preliminary design
    • Review the design
    • Create a final design
    • Implement
    • Test
    • Release
    • Evaluate
    • Maintain
    • Revise
    • May view these as discrete steps or deal with multiple steps in parallel
    • May have to recycle
  • Understanding Systems
    • Systems are made of components
    • Unless a system is closed it has a system boundary
    • Properties of a system are:
      • Derived from properties of its components; or
      • Derived from the interactions among its components; or
      • Derived from the interactions of system components with the world beyond the system boundary
    • Some properties of a system (or its components) are observable only from within the system
    • Some of the properties of a system are observable from outside the boundary of the system.
    • Externally observable properties which arise from the operation of the system as a whole are called emergent properties.
      • Reliability, MTTF
      • Availability, MTTF and MTTR
      • Usability
      • Marketability
      • Security
    • System Interactions with its environment
      • Accept input
      • Produce output
      • Controls
      • Consumption of resources
      • Production of waste
      • Unintended consequences (you cannot do just one thing).
    • System Models
    • Making decisions about systems

No comments:

Post a Comment