Systems Engineering, Software Systems Engineering Software by xqo30826

VIEWS: 32 PAGES: 45

									Systems Engineering, Software Systems
  Engineering & Software Engineering

           CFICSE 2002 – SF08

            Michelle L. Crane
References
  Roger  S Pressman, Software Engineering: A
  Practitioner’s Approach, Fifth Edition, McGraw-
  Hill, 2002
   Chapter   10
  MarkJ. Christensen and Richard H. Thayer,
  The Project Manager’s Guide to Software
  Engineering’s Best Practices, IEEE, 2001
   Chapter   1




                                       CFICSE 2002 / SF01 - 2
Outline
   the problem, again
   engineering practices
   definition of system
   systems engineering
   software systems engineering
   software engineering
   project management
   what happens




                                   CFICSE 2002 / SF01 - 3
What’s the Problem Again?
     systems    have become larger and more
      complex than ever before
     hardware capacity has grown to a point where
      the size and capability of a software program
      are no longer determined by the hardware
     efficiency of implementation is no longer one
      of the primary design goals
     all this fuels the demand for larger and larger
      systems, of which software is often the most
      critical component

Reference: Christensen & Thayer, Section 1.1   CFICSE 2002 / SF01 - 4
What’s the Problem Again? (cont’d)
     majority  of large software systems are not
      delivered on time and/or within budget
     often, when they are delivered, they do not
      satisfy the customer’s requirements
     “software crisis”
     engineering practices have been increasingly
      introduced in software development effort




Reference: Christensen & Thayer, Section 1.1   CFICSE 2002 / SF01 - 5
Engineering Practices
     engineering  practices applied to software
       consist primarily of
          processes for the systematic development of the
           software elements of the system
          representation methods and tools, used to describe
           the products and their attributes




Reference: Christensen & Thayer, Section 1.1      CFICSE 2002 / SF01 - 6
Engineering Practices - Examples
     lifecycle development processes
     managing software as a distinct and separate
      element of a project
     use of intermediate products (specifications
      and descriptions)
     software-specific analysis, representation
      methods, and design tools
     reviews and audits




Reference: Christensen & Thayer, Section 1.1   CFICSE 2002 / SF01 - 7
Engineering Practices - Examples
     verification,validation, and testing
     configuration management and quality
      assurance
     prototyping
     use of off-the-shelf components




Reference: Christensen & Thayer, Section 1.1   CFICSE 2002 / SF01 - 8
Systems




          CFICSE 2002 / SF01 - 9
System (Webster’s)
     System
          set or arrangement of things so related as to form
           a unity or organic whole
          set of facts, principles, rules, etc. classified and
           arranged in an orderly form so as to show a logical
           plan linking the various parts
          method or plan of classification or arrangement
          established way of doing something; method;
           procedure




Reference: Webster’s Dictionary, as quoted in Pressman, 10.1   CFICSE 2002 / SF01 - 10
System (IEEE)
     system   = collection of related or associated
      entities that together accomplish one or
      more specific objectives
     man-made system = collection of hardware,
      software, people, facilities, procedures, etc.
      organized to accomplish a common objectives
     software system = man-made system (or
      subsystem) made up of a collection of
      programs and documents that together
      accomplish some specific requirements

Reference: Christensen & Thayer, Section 1.3.1   CFICSE 2002 / SF01 - 11
Computer-Based System
     akin to “software-system”
     set or arrangement of elements that are
      organized to accomplish some predefined goal
      by processing information
     makes use of a variety of system elements
         software                  hardware
         people                    database
         documentation             procedures




Reference: Pressman, Section 10.1                 CFICSE 2002 / SF01 - 12
System Elements

                Procedures


    Documents                Hardware




     Database                Software


                  People

                                CFICSE 2002 / SF01 - 13
Systems Engineering (SE)




                      CFICSE 2002 / SF01 - 14
Systems Engineering (Pressman)
     software engineering occurs as a consequence
      of system engineering
     system engineering focuses on a variety of
      elements, analyzing, designing, and organizing
      those elements into a system that can be a
      product, a service, or a technology…




Reference: Pressman, Chapter 10           CFICSE 2002 / SF01 - 15
Systems Engineering (INCOSE)
     an  interdisciplinary approach and means to
      enable the realization of successful systems
     focuses on defining customer needs and
      required functionality early in the development
      cycle, documenting requirements, then
      proceeding with design synthesis and system
      validation
     integrates all the disciplines and specialty
      groups into a team effort


Reference: www.incose.org/whatis.html     CFICSE 2002 / SF01 - 16
Systems Engineering (IEEE)
     SE  is the practical application of the scientific,
      engineering, and management skills required
      to transform a user’s need into a description
      of a system configuration that best satisfies
      that need in an effective and efficient way.
     products are largely documents, not physical
      artifacts
     single product that is not a document is the
      system itself


Reference: Christensen & Thayer, Section 1.3.2   CFICSE 2002 / SF01 - 17
SE Documents
     top-level  architecture of the system
     specifications
     logistical and maintenance concepts
     trade studies and analyses
     evaluations of intermediate products
     integration of the subsystems
     system-level test plans, execution, reports
     assessments and interpretation of technical
      anomalies


Reference: Christensen & Thayer, Section 1.3.2   CFICSE 2002 / SF01 - 18
What Systems Engineering Does
     generic  problem-solving process
     provides mechanisms for defining, describing,
      and evolving both the product and the
      processes needed to build the product
     process should be applied throughout the
      system life cycle
     defines the plan to be followed in managing a
      project’s technical activities



Reference: Christensen & Thayer, Section 1.3.2   CFICSE 2002 / SF01 - 19
What Systems Engineering Does (cont’d)
     identifiesthe system life cycle model for the
      project and necessary processes
     defines the environment or framework within
      which those processes will operate, together
      with interfaces between them, the products,
      and the approach used to manage risk
     produces the technical baseline for all
      development (software and hardware)



Reference: Christensen & Thayer, Section 1.3.2   CFICSE 2002 / SF01 - 20
Emphasis and Life Cycle
     emphasis    of systems engineering effort for a
       project is determined by the nature of the
       product and current phase of the life cycle




Reference: Christensen & Thayer, Section 1.3.2   CFICSE 2002 / SF01 - 21
Relative Systems Engineering Effort

                    System Req.,
                    Design, & SW
                    Requirements
  Relative Effort




                                                                 Systems integration,
                                                                 Test & Distribution




                                     SW & HW Design,
                                   Implementation & Test
                                              Life Cycle Phase



Reference: Christensen & Thayer, Figure 1.2                            CFICSE 2002 / SF01 - 22
Functions of Systems Engineering
     problem           definition
          determine  the product expectations, needs, and
           constraints by collecting an analyzing requirements
          work closely with the customer to establish the
           operational needs
     solution         analysis
          determine    what options exist to satisfy the
           requirements and constraints
          study and analyze the possible solutions
          select the optimum one, balancing immediate
           needs, implementation options, long-term
           suitability, and operational utility
Reference: Christensen & Thayer, Section 1.3.3     CFICSE 2002 / SF01 - 23
Functions (cont’d)
     process          planning
          determine   the major technical tasks to be
            accomplished, the effort required to perform those
            tasks, the priority of tasks, and the potential risks
            to the project
     process          control
          determine   the methods for controlling the technical
           activities of the project and the process
          measure progress
          review intermediate products
          take corrective action when necessary


Reference: Christensen & Thayer, Section 1.3.3       CFICSE 2002 / SF01 - 24
Functions (cont’d)
     product          evaluation
          determine    the quality and quantity of delivered
            products through evaluations consisting of (but not
            limited to) testing, demonstration, analysis,
            examination, and inspection




Reference: Christensen & Thayer, Section 1.3.3     CFICSE 2002 / SF01 - 25
Software Systems Engineering (SwSE)




                           CFICSE 2002 / SF01 - 26
Software Systems Engineering
     application  of Systems Engineering to
      Software systems
     results in the description of the software in
      terms of its essential features and how those
      features relate to the use and operation of the
      system throughout its life cycle
     both a technical and management process
     not a job description but a process and mind-
      set that should be adopted when approaching
      software engineering at the highest levels

Reference: Christensen & Thayer, Chapter 1   CFICSE 2002 / SF01 - 27
Technical Process of SwSE
     analyticaleffort necessary to transform an
      operational need into a description of the
      software system
     software design
     elaboration of design into requirements and
      design specifications
     procedures needed to verify, test, accept the
      finished product
     documentation necessary to use, operate, and
      maintain the system

Reference: Christensen & Thayer, Section 1.4   CFICSE 2002 / SF01 - 28
Software Systems Engineering Activities
     requirements                analysis (problem definition)
          determine   the needs and constraints by analyzing
            the system requirements that have been allocated
            to software
     architectural             software design (solution
       analysis)
          determine  the set of solutions to the software
           requirements and constraints
          conduct trade studies
          perform analysis of possible solutions
          select the optimum solution


Reference: Christensen & Thayer, Section 1.4.7           CFICSE 2002 / SF01 - 29
Activities (cont’d)
     process          planning
          determine the tasks to be done
          determine the scope and effort necessary to
           perform the tasks
          determine the precedence between tasks
          determine the potential risks to the project

     process          control
          determine   the methods to be used in technically
           controlling the project and processes
          measure progress
          review intermediate products
          take corrective action when necessary
Reference: Christensen & Thayer, Section 1.4.7     CFICSE 2002 / SF01 - 30
Activities (cont’d)
     verification,            validation, and testing (product
       evaluation)
          evaluate   the final product and documentation
           through testing, demonstrations, analysis, and
           inspections
          includes any necessary software system integration
           activities




Reference: Christensen & Thayer, Section 1.4.7          CFICSE 2002 / SF01 - 31
Software Engineering (SWE)




                       CFICSE 2002 / SF01 - 32
Software Engineering
     some overlap with software systems
      engineering, but there are some differences
     SWE is
          principallyconcerned with the implementation of
           software requirements
          practical application of computer science,
           management, and other sciences to the analysis,
           design, construction, and maintenance of software
           and its associated documentation




Reference: Christensen & Thayer, Section 1.4.5   CFICSE 2002 / SF01 - 33
Software Engineering (cont’d)
          an engineering discipline that applies the concepts
           of analysis, design, coding, testing, documentation,
           and management to the successful completion of
           large, custom-built computer programs under
           constraints of time and budget
          the systematic application of methods, tools, and
           techniques to achieve a stated requirement or
           objective for an effective and efficient software
           system




Reference: Christensen & Thayer, Section 1.4.5     CFICSE 2002 / SF01 - 34
Division Between SE, SwSE and SWE




                          CFICSE 2002 / SF01 - 35
  Engineering Activities & Product Flow
      System                                                                         System
      Analysis                                                                       Testing

              System
                                                  System                   System Integr
              Design                            Engineering                   Testing

                 Software Req                    Software              SW System
                   Analysis                       System                Testing
                                                Engineering
                          Architectural                       SW Integration
                           SW Design                             Testing

 Software                         Detailed SW           SW Subsystem                   Software
Engineering                         Design                 Testing                    Engineering

                                                Code & Unit
                                                   Test

  Reference: Christensen & Thayer, Figure 1.4                              CFICSE 2002 / SF01 - 36
And Project Management?




                    CFICSE 2002 / SF01 - 37
Systems Engineering vs.
Project Management
     project         management
          concerned  with process planning (e.g., scheduling)
            and control for all of the activities of the project
     systems           engineering
          concerned   with the technical activities of the
           product development and sustainment
          systems engineering is an agent of project
           management in this area of activity
          primarily concerned with the methods that will be
           applied to accomplish tasks, and so goes beyond
           the traditional scope of project management

Reference: Christensen & Thayer, Section 1.3.3      CFICSE 2002 / SF01 - 38
PM, SwSE & SWE
     Project         Management
          overall management responsibility for the project
            and the authority to commit resources
     Software           Systems Engineering
          determines   the “big picture” technical approach,
            interfaces with the technical customer, and
            approves and accepts the final software product
     Software           Engineering
          responsible for developing the software design,
            coding and testing the design, and developing the
            software configuration items (subsystems)

Reference: Christensen & Thayer, Section 1.4.6      CFICSE 2002 / SF01 - 39
Management Relationships
                                         Project Management

                                     •   planning
                                     •   organizing
                                     •   staffing
                                     •   directing
                                     •   controlling




     Software System Engineering                                  Software Engineering

       •   problem definition                                 •   software design
       •   solution analysis                                  •   coding
       •   process planning                                   •   unit testing
       •   process control                                    •   software subsystem
       •   product evaluation                                     integration



Reference: Christensen & Thayer, Figure 1.5                              CFICSE 2002 / SF01 - 40
What happens when a systems
 engineering approach is not
    applied to software?



                       CFICSE 2002 / SF01 - 41
Bad Things Happen
     complex   software systems development projects
      become unmanageable
     costs are overrun and schedules are missed
     unacceptable risks are not recognized  project
      takes the risk unknowingly
     unacceptable engineering procedures (or none
      at all) are used
     erroneous decisions are made early in the life
      cycle that are often not detected until late in the
      project, when they are very costly to correct

Reference: Christensen & Thayer, Section 1.4.3   CFICSE 2002 / SF01 - 42
Bad Things Happen (cont’d)
     subsystems   and components are developed
      without proper coordination – result is that
      they will not integrate properly
     some parts and components are never
      specified or built; requirements (even if
      captured) are ignored
     the delivered system fails to work properly
     parts of the system must be reworked after
      delivery – repeatedly


Reference: Christensen & Thayer, Section 1.4.3   CFICSE 2002 / SF01 - 43
Summary
  the problem, again
  engineering practices
  definition of system
  systems engineering
  software systems engineering
  software engineering
  project management
  what happens




                                  CFICSE 2002 / SF01 - 44
CFICSE 2002 / SF01 - 45

								
To top