Trends in System/Software Engineering Discipline - Lorenco Damjanic Ericsson Nikola Tesla

Page created by Dennis Bradley
 
CONTINUE READING
Trends in System/Software
  Engineering Discipline
       Lorenco Damjanic
        Ericsson Nikola Tesla
               Z
               Zagrebb
Contents
•   Telecom industry trends
•   Software Engineering – an overview
•   F
    From  code
             d tto workable
                      k bl product
                              d t
•   System vs. Software Engineering
•   Further Challenges
•   Literature
Telecom industry trends
Industry transformation / Convergence
              (from 1997)
                                         mobility             3G/Wireless Internet
                                       Wireless/Cellular
                                                           MMM
              Wireline                                               New
                                ISDN              WAP
                                                                  Telecoms           Personal
   Telecom                PTN
                                                                   Industry          (Mobile)
                 PSTN
   Industry                                  Intranet/Internet
                                                               Carrier class         Multi-media
                                                                                     Multi media
                                            PC-WAN         WWW
                                                                                     services
                                         PC-LAN                  The Converged
                                      PC/Server
                                      s
                         desk top computing                      Industry
   Computer Industry
main frames
                                                                electronic
                                                           publishing and
                                                            entertainment
   Media Industry
Transformation to new
                communication architecture and
          Today’s
                      business models                  Starting                                   Converged
Single-Play service networks               Triple-Play service per network                Multi-media services network
                                                                                       Content                      Application

                                                    TV
                                              Cable T
                                                                                                   Multi-Media Services
                 Wireline

                             ata/IP

                                                         Services   Services   Services
        eless

                                                                                                  Multi-Media & Telephony
                                      TV

                                                                                                  Control (IMS with Mobility)
                            Da

                                                                      IMS
     Wire

                                                          IMS                    IMS

                                                                    xDSL/GbE    Cable                  Connectivity/
                                                          3G        WiFi/Max                     Packet Backbone Network
                                                                                                   Connectivity
                                                                                                   Multi-Access Networks
Network Topology
              p gy
                                    Service layer

                                           Value add
                              Charging      service     Business
                                           execution    Processes

                   IMS and other standardized services
                      IMS                       Mess-                Soft-
                     server                     aging               switch

                     MRFP                                           MGW
                   Multi access edge
                                                                                 Transport
                                            Policy                                network
                               MSER         control      AGW

      Wired                                                                  Wireless
     access                   Metro             aggregation                  access
                                         CESR
                     AN                                                BS
e.g. Cable, POTS                                                               e.g. GSM, LTE,
GPON, xDSL                                                                     HSPA, WCDMA
End-to-end transport Network
                                                                                             News

                                                                       Internet

                                                        Data                                            Weather

                                                                                      IP
                                                          Video                                          Gaming

                                                                      Entertainment           Voice

                    xDSL
                     DSL
                                           Gigabit/s

                             Hundreds of
                              Megabit/s

                                                   Gigabit/s            Tens of Gigabit/s
                                                                           Terabit/s
                           Hundreds of
                            Megabit/s
                                                          Gigabit/s                                   Network
                                                                                                      management

Customer   Access                Metro                                                Core
Evolution into an Multi Access
         All-IP Network
                             SERVICE
                            NETWORK

        ALL-IP
                                               Internet
     CORE NETWORK

 ACCESS
NETWORKS                         “4G”
           Broad-    WLAN
            band                          3G

                                                 2G

     PERSONAL AREA
        NETWORK
                              Bluetooth
Bandwidths
 1 Gbps    EFM-Fiber
                    2007
100 Mbps   EFM-VDSL2                                      4G
                    2006                                       2012
24 Mbps    ADSL2plus
                p          WiMax (LOS)             Super
                                                     p 3G
                    2004                  2005                 2009
                              WiMax
8 Mbps                                           3G Evolved
                            (e/mobile)
             ADSL                     ~2007                    2005
512 kbps                   WiMax (NLOS)
                    2000                                  3G
                                                               2002
64 kbps     Dial-up
            Dial up                                       2G
                    1990                  2005                 1990
               Fixed         Fixed-Wireless             Mobile
             Broadband         Broadband              Broadband
                                          Shared Access
                            Shared Core
Coverage vs Bitrate
                      Bitrate

                                14.2 Mbps
                                       p

                                   7.2 Mbps
                                                  1.8 Mbps

                                                 Coverage

Double Peak Rate does not correspond to double Capacity
Common LTE Evolution
  Alignment for WCDMA/HSPA,
                WCDMA/HSPA TD-SCDMA(China)
                            TD SCDMA(China) and
                      CDMA
GSM Track (3GPP)
                                                                DoCoMo
   GSM          WCDMA          HSPA                  LTE        Vodafone
                            TD--SCDMA
                            TD                    FDD and TDD
                                                                China Mobile
                                 Verizon
CDMA Track (3GPP2)
   CDMA One        EVDO Rev A

WiMax Track (IEEE)                           Sprint Nextel
                         (Fixed
                         (      WiMax))    Mobile WiMax

                  2001           2005      2008     2010

         LTE the Global standard for Next Generation
Bitrates and Technologies
              OFDMA d
                    does nott mean 4G
Bitrate (Mbps)

300                                LTE
                                 FDD and TDD
       ”4G”

        3G

 40
              HSPA               WiMax
                 FDD                TDD
                                               Technology
                 CDMA              OFDMA

4G relates to IMT Advanced, over 100 Mbps - not to OFDMA
Service Layer
                                                                                  Technologies

                             Research Areas
                                            Service layer

                                                   Value add
                                      Charging      service     Business
                                                   execution    Processes

                           IMS and other standardized services                                                   Multimedia
                              IMS                       Mess-                Soft-
                                                                                                                Technologies
                             server                     aging               switch
                                                          SW Research
                             MRFP                                           MGW
                                          Multi access edge                                                IP Networks
                                                                                         Transport
                                                    Policy                                network          Wireless Access
                                       MSER         control      AGW
                                                                                                              Networks
              Wired                                                                  Wireless
             access                   Metro             aggregation                  access
                                                 CESR
                             AN                                                BS
                                                                                       e.g. GSM, LTE,   Access Technologies
        e.g. Cable, POTS
        GPON, xDSL                                                                     HSPA, WCDMA       & Signal Processing

  Broadband and
Transport Networks                                        EMF Health
                                                          and Safety
Software Engineering
History and Rational of Software Engineering

   In the belief that software design, implementation and maintenance could be
   put on the same footing as traditional engineering discipline a NATO study
   group in 1967 coined the term:

                            Software Engineering

   which should use philosophies and paradigms of established engineering
   discipline to solve what was termed

                            the software crises

   namely, that the quality of software was generally unacceptably low and that
   namely
   deadlines and cost limits were not being met.
Software system
•   A software system is a system based on software forming part of a compute
    system (a combination of hardware and software)
                                          software).

•   The term software system is often used as a synonym of computer program or
    software.

•   The term software system is related to the application of systems theory
     (Systems theory is an interdisciplinary field of science and the study of the nature of complex systems
    in nature, society, and science.)
    approaches in software engineering context.
                                       context

•   This approach is often used to study large and complex software, because it
    focuses on the major components of software and their interactions.

•   The term software system is also related to the field of software architecture.
Software
•   Software is a general term for the various kinds of programs used to operate
    computers
         t    andd related
                     l t dddevices.
                              i

•   Software is often divided into
     –   application software (programs that do work users are directly interested in) and
     –    system software (which includes operating systems and any program that supports application software).
     –   The term middleware is sometimes used to describe programming that mediates between application and
         system software or between two different kinds of application software (for example, sending a remote work
         request from an application in a computer that has one kind of operating system to an application in a
         computer
             p     with a different operating
                                     p      g system).
                                               y    )

•   Software can be purchased or acquired as
     –   shareware (usually intended for sale after a trial period),
     –   liteware (shareware with some capabilities disabled),
     –   Freeware (free software but with copyright restrictions),
     –   public domain software (free with no restrictions), and
     –   open source (software where the source code is furnished and users agree not to limit the distribution of
         improvements).
Software Types

•   In computer science, real-time computing (RTC) is the study of hardware and software systems
    which are subject to a "real-time constraint"—i.e., operational deadlines from event to system
    response.

•   By contrast,
        contrast a non
                   non-real-time
                       real time system is one for which there is no deadline
                                                                     deadline, even if fast response
    or high performance is desired or even preferred.

•   The needs of real-time software are often addressed in the context of real time operating systems,
    and synchronous programming languages, which provide frameworks on which to build real-time
     pp
    application software.

•   A real time system may be one where its application can be considered (within context) to be
    mission critical

•   Fault-tolerance or graceful degradation is the property that enables a system (often computer-
                                                                                              computer
    based) to continue operating properly in the event of the failure of (or one or more faults within)
    some of its components. If its operating quality decreases at all, the decrease is proportional to
    the severity of the failure, as compared to a naively-designed system in which even a small failure
    can cause total breakdown.

•   Fault-tolerance is particularly sought-after in high-availability or life-critical systems.
Software Reliability
•   High
    Hi h availability
             il bilit is
                      i a system
                             t   design
                                 d i protocol
                                           t    l and
                                                    d associated
                                                            i t d iimplementation
                                                                      l     t ti th
                                                                                  thatt
    ensures a certain absolute degree of operational continuity during a given
    measurement period.

•   Availability
    A   il bilit refers
                   f    to
                        t the
                           th ability
                               bilit off the
                                         th user community
                                                        it to
                                                            t access the
                                                                      th system,
                                                                              t    whether
                                                                                     h th
    to submit new work, update or alter existing work, or collect the results of previous
    work. If a user cannot access the system, it is said to be unavailable.

•   Th tterm downtime
    The      d   ti   i used
                      is   d tto refer
                                   f tot periods
                                            i d when
                                                 h a system
                                                        t   iis unavailable.
                                                                     il bl

•   A life-critical system or safety-critical system is a system whose failure or
    malfunction may result in:
     –   death or serious injury to people, or
     –   loss or severe damage to equipment or
     –   environmental harm.
Software Engineering Definition
•   Software engineering is the application of a systematic, disciplined, quantifiable
    approach to the development, operation, and maintenance of software.

•   Software engineering encompasses techniques and procedures, often regulated
    by
            a software development
                               p      process
                                      p
            with the purpose of improving the reliability and maintainability
            of software systems.

•   A software development process is a structure imposed on the development of a
    software product.
Software Engineering Discipline
•    The discipline of software engineering includes knowledge, tools, and methods for

           •   Software requirements
           •   Software design
           •   Software construction
           •   Software testing
           •   Software maintenance
           •   Software configuration management
           •   Software engineering management
           •   Software engineering process
           •   Software engineering tools and methods
           •   Software quality.

•    Software engineering is related to the disciplines of

           •   Computer engineering
           •   Computer science
           •   Management
           •   Mathematics
           •   Project management
           •   Quality management
           •   Software ergonomics
           •   Systems engineering
30 year later
•   The software crises is still with us which force us to rename it to the
    software depression in view of its long duration and poor prognosis.

•   The question is does the software production process, while resembling
    t diti
    traditional
              l engineering
                   i    i iin many respectt h
                                            has it
                                                its own unique
                                                          i    properties
                                                                     ti andd
    problems.
Generic Software Life Cycle Cost
Evolution of ISO/IEC 12207 Standard
     (System and software engineering-
                            engineering
       Software life cycle processes)
Standards Relationship

• ISO 9001:2000 Quality management systems
• ISO/IEC 90003:2004; Software engineering –
  Guidelines for the application of ISO 9001:2000 to computer software”.
Structure of ISO/IEC 12207 Standard
     (System and software engineering-
                            engineering
       Software life cycle processes)
The major engineering process steps for
        d
        developing
             l i software
                      ft    .
Software Engineering Development
                M th d
                Methods
•   Some software development methods:
    –   Waterfall model
    –   Spiral model
    –   Model driven development
    –   User experience
    –   Top down and bottom
        Top-down        bottom-up
                               up design
    –   Chaos model
    –   Evolutionary prototyping
    –   Prototyping
    –   ICONIX Process (UML
                          (UML-based
                                 based object modeling with use cases)
    –   Unified Process
    –   V-model
    –   Extreme Programming
    –   Software Development Rhythms
    –   Specification and Description Language
    –   Incremental funding methodology
    –   Verification and Validation (software)
A Full Range of Software Engineering Process Trends 1

                                Demand                                          Structured
                                growth
                                growth,                                          Methods
                                diversity       Spaghetti Code

                                                                          Waterfall Process

                                                              Large Projects
                                                                    Projects,
                 Hardware                                     Weak Planning &
                Engineering                  Software Craft   Control
                 Methods                     -Code-and-fix
                  -SAGE                         -Heroic
                                Software                                 Process overhead
                -Hardware                      debugging
                                Deficiency
                 Efficiencyy

                                              Many Defects                Formal Methods

                      Skill Shortfall

                                                                             Domain
                                                                           Understanding

                Hardware Engineering              Crafting             Formality, Waterfall
                      1950’s                       1960’s                   1970’s
The
  eSSAGA
      G Software
         So t a e Development
                   e e op e t Process
                                ocess ((1956)
                                         956)
                             Operational Plan

         Machine Specification                       Operational Specification

                           Program Specification

                            Coding Specification

                                     Coding

                                 Parameter Testing
                                  (Specification)

                                 Assembly Testing
                                  (Specification)

                                   Shakedown

                            System Evaluation
A Full Range of Software Engineering Process Trends 1

                                Demand                                          Structured
                                growth
                                growth,                                          Methods
                                diversity       Spaghetti Code

                                                                          Waterfall Process

                                                              Large Projects
                                                                    Projects,
                 Hardware                                     Weak Planning &
                Engineering                  Software Craft   Control
                 Methods                     -Code-and-fix
                  -SAGE                         -Heroic
                                Software                                 Process overhead
                -Hardware                      debugging
                                Deficiency
                 Efficiencyy

                                              Many Defects                Formal Methods

                      Skill Shortfall

                                                                             Domain
                                                                           Understanding

                Hardware Engineering              Crafting             Formality, Waterfall
                      1950’s                       1960’s                   1970’s
The
                         e Royce
                            oyce Waterfall
                                  ate a Model
                                           ode ((1970)
                                                  9 0)

  System
Requirements
R   i     t

                    Software
                  Requirements
                                    Preliminary
                                     Program
                                      Design

                                                  Analysis

                                                             Program
                                                              Design

    Preliminary
      Design                                                           Coding

        Analysis
                                                                                Testing
           Program
            Design

                   Coding                                                                 Operation

                      Testing

                            Usage
A Full Range of Software Engineering Process Trends 1
                   Evolvability,
                   reusability                                           Enterprise integrity      Integrated
                                                                                                       g      Systems
                                                                                                               y
                                           Object-oriented
                                           Object oriented
                                                                                                      And Software
                                              Methods                   Human factors                  Engineering
Spaghetti Code
                                                                                                                                    Global connectivity,
                                                                                        Stovepipes                                  business practicality,
                                                               Process
              Structured                                                                                                            security threats,
                                                               bureaucracy
               M th d
               Methods                     St d d
                                           Standards,                                                                               massive systems
                                                                                   Agile Methods            Lack of scalability     of systems
                                         Maturity Models

                                   Noncompliance                                                         Hybrid Agile,
          Waterfall Process
                                                                                                         Plan-Driven
                                                                                                          Methods
Large Projects,                     HCI, COTS,                     Concurrent, risk-
Weak Planning                       emergence                       driven process                 Rapid                          Collaborative
& Control                                                                                          change                         methods,
                                                                                                                                                    Disruptors:
                                   Slow execution                                                                                 infrastructure,
                                                                                                                                                    Autonomy,
         Process overhead
                                                                                                                                  environments;
                                                                                                                                                    Bio-computing   ?
                                                                                                                                  Value-based
                                          Software Factory                       Rapid composition
                                                                                       composition,                                                 Computational
                                                                                                                                                         p
                                                                                                                                  methods’;
                                                                                     evaluation                                                     Plenty,
                                                                                                                                  Enterprise
                                                                                   environments                                                     Multicultural
                                                                                                                                  architecture;
                                                                                                                                                    mega systems
Many Defects                                                                                                                      System
                                                                                                                                   building
                                                             Rapid change
                                                                                                                                  by users
         Formal Methods               Lack of scalabilityy                                      Rapid
                                                                    Domain specific             change
                                                                                                                         Scale
                                                                   SW architecture,
Skill Shortfalls                                                   product line reuse
                                                                                                     Service-orientated
                                                                                                       Architecture,                     Model
                                         Business 4GLs
            Domain                                                Lack
                                                                  L  k off                             Model driven
                                                                                                       Model-driven                      clashes
                                                                                                                                          l h
                                         CAD/CAM, User
          Understanding                                           scalability                          development
                                          Programming

      Formality, Waterfall              Productivity            Concurrent Processes              Agility; Value                   Global Integration
           1970’s                          1980’s                      1990’s                        2000’s                             2010’s
Risk Driven Spiral Software Engineering Model
Rational Unified Process
Cleanroom Software Engineering Process
The Cleanroom Software Engineering process is a software development process intended to produce software with a
certifiable level of reliability.The
                               y     focus of the Cleanroom process
                                                            p       is on defect pprevention,, rather than defect removal.

The name Cleanroom was chosen to evoke the clenrooms used in the electronics industry to prevent the introduction of
defects during the fabrication of integrated circuits.

The Cleanroom process first saw use in the mid to late 80s.
                                                       80s Demonstration projects within the military began in the early
1990s.Recent work on the Cleanroom process has examined fusing Cleanroom with the automated verification capabilities
provided by specifications expressed in CSP (Communicating Sequential Processes is a formal language for describing
pattern of interaction in concurrent systems).

The basic principles of the Cleanroom process are:

•Software development based on formal methods
      Cleanroom development makes use of the Box Structure Method to specify and design a software product. Verification
      that the design correctly implements the specification is performed through team review
                                                                                       review.

•Incremental implementation under statistical quality control
      Cleanroom development uses an iterative approach, in which the product is developed in increments that gradually
      increase the implemented functionality. The quality of each increment is measured against pre-established standards to
      verify
         if that
             h theh development
                     d l            process is
                                             i proceeding
                                                     di acceptably.
                                                                  bl A failure
                                                                         f il   to meet quality
                                                                                           li standards
                                                                                                  d d results
                                                                                                           l in
                                                                                                              i the
                                                                                                                 h
      cessation of testing for the current increment, and a return to the design phase.

•Statistically sound testing
       Software testingg in the Cleanroom process
                                          p        is carried out as a statistical experiment.
                                                                                     p         Based on the formal specification,
                                                                                                                     p          ,
       a representative subset of software input/output trajectories is selected and tested. This sample is then statistically
       analyzed to produce an estimate of the reliability of the software, and a level of confidence in that estimate.
Agile Software Development

Agile Software Development is a conceptual framework for software development that promotes development iterations
throughout the life
               life-cycle
                    cycle of the project.
                                 project

There are many agile development methods; most minimize risk by developing software in short amounts of time.
Software developed during one unit of time is referred to as an iteration, which typically lasts from one to four weeks.
Each iteration passes through a full software development cycle: including planning, requirements analysis, design, coding,
testing, and documentation.
An iteration may not add enough functionality to warrant releasing the product to market but the goal is to have an available
release (without bugs) at the end of each iteration. At the end of each iteration, the team re-evaluates project priorities.

Agile methods emphasize face-to-face
                           face to face communication over written documents.
                                                                    documents Most agile teams are located in a single open
office sometimes referred to as a Scrum .At a minimum, this includes programmers and their "customers" (customers define
the product; they may be product managers, a business annalists, or the clients). The office may include software testers,
interaction designers, technical writers, and managers.

S
Some off the
          h principles
              i i l behind
                       b hi d the
                               h Agile
                                  A il Manifesto
                                       M if      are:

•Customer satisfaction by rapid, continuous delivery of useful software
•Working software is delivered frequently (weeks rather than months)
•Workingg software is the pprincipal
                                 p measure of progress
                                               p g
•Even late changes in requirements are welcomed
•Close, daily cooperation between business people and developers
•Face-to-face conversation is the best form of communication (Co-location)
•Projects are built around motivated individuals, who should be trusted
•Continuous attention to technical excellence and good design
•Simplicity
•Self-organizing teams
•Regular adaptation to changing circumstances
Software Intensive Systems
•   software-intensive systems —any system in which software
    development and/or integration are dominant considerations—most
    complex systems these days.

•   This includes computer-based systems ranging from
    –   individual software applications,
    –   information systems,
    –   embedded systems
                    systems,
    –   product lines and product families and
    –   systems-of-systems.
From a code to workable
        product
Vasa Testing
      •   In the inquiries after the Vasa disaster
          it was revealed that a stability test
          had been performed prior to the
          maiden voyage.
      •   Thirty men had run back and forth
          across the Vasa
                        Vasa'ss deck when she was
          moored at the quay. The men had to
          stop after three runs, well before the
          test could be completed - otherwise,
          the ship would have capsized.
                                    capsized
      •   Present was Admiral Klas Fleming,
          one of the most influential men in the
          Navy. His only comment to the failed
          stability
            t bilit ttestt was "If only
                                     l His
                                        Hi Majesty
                                           M j t
          were at home!" After that he let the
          Vasa make her maiden voyage.
What is Software Testing?
•   Testing is the process of examining the attributes of software to see if it
    meets both the defined expectations of the software developers and the
    actual needs of the users.

•   It can include direct examination of the code (a “static” test) or execution of
    the code (a “dynamic”
                 dynamic test) under circumstances that may or may not be
    predefined.

•   Testing is normally done in more than one level. Some examples of test
    levels (from ISO 12207) for new development are:

         • Each software unit and database
         • Integrated units and components
         • T t for
           Tests f each h software
                             ft     requirement
                                         i        t
         • Software qualification testing for all requirement
         • System integration: aggregates of other software configuration items,
           hardware, manual operations and other systems
         • System qualification testing for system requirements
Type of software testing
•   The term “coverage” refers to the amount of testing that is targeted and/or
    achieved.
    achieved

•   Tests are either “white box” (internal structure) or “black box” (data input
    range definitions) focused.

•   An example of a white box coverage measure is the % of decision branch
    options exercised. A common goal is to set a 100% target for a new unit
    during unit testing, but not for a full system during qualification testing (it is
    too hard to set up an environment that will make all of the options happen)
                                                                           happen).

•   A common black box coverage measure is 100% of boundary values
    (minimum value(s), maximum value(s), just below the minimum(s), just
    above the maximum(s))
              maximum(s)).
Test Planning and Tracking
•   A robust model for testing starts with early test planning to assure that the environments are
    available when needed,, the system
                                   y      is itself testable in an optimal
                                                                    p      manner,, and all resources are
    present at the time that they are required.

•   Some organizations start with a Master Test Plan that identifies how many levels of test will be
    required, as well as the attributes that distinguish them.

•   After the planning there is usually some kind of test design (documented or undocumented)
    where there is refinement of the approaches and establishment of the coverage goals.

•   Specific test cases (the input and corresponding expected output) are selected and then
    executed. Actual results are recorded.

•   Some organizations record all results, others record only the defects that are found.

•   After each test level is executed, some assessment is made as to the success or failure of it.

•   Retesting occurs as fixes are made.
The breakdown of topics for the
       S f
       Software Testing
                T i
Software Testing Approaches
•   Software Technical Reviews                       •   Proof of correctness
     –   Walk-troughs                                •   Simulation and Prototyping
     –   Inspections                                 •   Requirements tracing
     –   Audits

•   S ft
    Software Testing
             T ti
     –   Levels of Testing
           •   Module Testing
           •   Integration Testing
           •   System Testing
           •   Regression Testing
     –   Testing Techniques
           •   Functional testing and analysis
           •   Structural testing and analysis
           •   Error-oriented testing and analysis
           •   Hybrid approaches
           •   Integration strategies
           •   Transaction flow analysis
           •   Stress analysis
           •   Failure analysis
           •   Concurrency analysis
           •   Performance analysis
Some more definitions

                          Backk-end
            Programming
ISO 9001:2000 on Design Output and Validation

6.4.3 Design Output (S)

We document and present design output as requirements, measurements, calculations, analyses
and manufacturing documents.

     Design output shall:
                            conform to design input requirements
                            contain or refer to acceptance criteria
                            identify
                                   y design
                                         g characteristics that are crucial for the p
                                                                                    product's safe and
                            proper function conform to industrialization and financial requirements

                       Design output documents are reviewed before release.

6.4.4 Validation (S)

Validation is performed to ensure that the product meets customer requirements and is fit
for its intended use.

Validation is usually performed on the finished product under defined operating conditions,
but may be necessary at earlier stages.

Multiple validations may be performed if there are different intended uses.
                                                                      uses
Integration of Test related activities in the
       E t d d/M difi d V
       Extended/Modified   V-Model
                              M d l
Integration, Verification and Validation
                    Processes
•   Integration Process is to realize the system-of-interest by progressively
    combining
        bi i system
                  t   elements
                       l     t iin accordance
                                         d      with
                                                  ith the
                                                      th architectural
                                                            hit t l d  design
                                                                          i
    requirements and the integration strategy. This process is successively
    repeated in combination with the Verification and Validation Processes as
    appropriate

•   The purpose of the Verification Process is to confirm that all requirements
    are fulfilled by the system elements and eventual system-of-interest, i.e. that
    the system has been built right ( “you
                                       you built it right.”).
                                                    right. ).

•   The purpose of the Validation Process is to confirm that the realized
    system complies with the stakeholder requirements. System validation is
    subject
      bj t tto approvall b
                         by th
                            the project
                                   j t authority
                                          th it and d key
                                                      k stakeholders.
                                                             t k h ld      Thi
                                                                           This
    process is invoked during the Stakeholders Requirements Definition
    Process to confirm that the requirements properly reflect the stakeholder
    needs and to establish validation criteria (“you built the right thing.”).
Guidelines for selection of g
                            good tester

 •   Open minded (curious )
 •   Persistent (not give up)
 •   Investigative (“suspicion”)
                   ( suspicion )
 •   Dare to try
 •   Dare to ask
 •   Speak up
System v.s. Software
    Engineering
Systems Engineering
•   Systems Engineering is a broad discipline
     –   Fundamental principles
     –   Techniques
     –   Specialty engineering
     –   Domains…

•   Systems Engineering is a broadly applicable discipline
     – Product systems
          •   Hardware
          •   Software
     –   Management systems
     –   Project management
     –   Organizations
Industry Needs
•   Well-educated, well-rounded staff

•   Experience in a process-based environment

•   Managers and engineers who
    –   Understand process concepts
    –   Understand systems engineering principles
    –   Understand software principals
                             p    p
    –   Work across discipline
Industry Environment
•   Rapidly
      p y changing
                 g g technologygy
•   Higher degree of specialization
•   Global corporations
•   Multiple standards
•   Complex systems of systems
    – Software
      S ft     is
               i ubiquitous
                   bi it
    – Everything is a software-intensive system
    – Everything needs to talk to everything

•   Integrated teams and processes
•   “Fluid” business environment
System Engineering-
                Engineering Basic definitions
•   System An interacting combination of elements to accomplish a defined objective. These include
    hardware,, software,, firmware,, people,
                                     p p , information,, techniques,
                                                               q   , facilities,, services,, and other support
                                                                                                         pp
    elements.
•
•   Systems Engineering An interdisciplinary approach and means to enable the realization of
    successful systems.

•   Systems Engineer An engineer trained and experienced in the field of Systems Engineering.

•   Systems Engineering Processes A logical, systematic set of processes selectively used to
    accomplish Systems Engineering tasks.

•   System Architecture The arrangement of elements and subsystems and the allocation of functions
    to them to meet system requirements.

•   The name of the discipline is termed “Systems Engineering” in that the practice of the discipline be
    applied to
     –   many varied types systems (e.g. natural, physical, organic, people, hardware, etc.)
     –   operating with respect to its environment (open, closed, etc.)

•   The term “System Engineering” is only used with respect to the act of engineering a specific system.
Systems Engineering Process

•   The basic engine for systems engineering is an iterative process
    that expands on the common sense strategy of
       •   understanding a problem before you attempt to solve it,
       •   examining alternative solutions (do not jump to a point design), and
       •   verify that the selected solution is correct before continuing the definition
           activities or proceeding to the next problem.
•   The basic steps in the systems engineering process are:
       •   Define the System Objectives (User's
                                          (User s Needs)
       •   Establish the Functionality (Functional Analysis)
       •   Establish Performance Requirements (Requirements Analysis)
       •   Evolve Designg and Operations
                                p          Concepts
                                                 p ((Architecture Synthesis)
                                                                   y       )
       •   Select a Baseline (Through Cost/Benefit Trades)
       •   Verify the Baseline Meets Requirements (User's Needs)
       •   Iterate the Process Through Lower Level Trades (Decomposition)
The Systems Engineering Process

The linearity of the functions depicted does Not represent sequential performance
of the tasks. Functions are performed in parallel and repetitively, as better information
on the objective system becomes available in any task area.
Systems Engineering Process
         O
         Overview
              i

                Note: Acquisition & Supply process
                Requirements consist of stakeholder
                needs
                    d and d expectations,
                                  t ti    as opposed
                                                   d
                to system technical requirements that
                result from the System Design process.

                (Source: ANSI/EIA-632)
Project
Processes

Technical
Processes

Enterprise
Processes

Agreement
Processes
ISO/IEC 15288 System and Software Engineering
                     System Life Cycle Processes
                                scope

• Provides a common, comprehensive
                            p           & integrated
                                              g      framework for describing
                                                                            g and
managing the full lifecycle of systems for:

     • Small, medium and large organizations
     • Internal self-imposed
                self imposed use
                             use, as well as providing a basis for contractual
     arrangements (i.e., any agreement)

• Defines a set of processes and associated terminology
    • Can be applied at any level in the hierarchy of a system’s development

• Applies to man-made systems configured with one or more of the following:
    • Hardware,
      Hardware software
                 software, humans
                           humans, or processes

Source: Adapted from ISO/IEC JTCI/SC7/WG7 presentation on ISO/IEC 15288.
Software Intensive Systems
•   software-intensive systems —any system in which software
    development and/or integration are dominant considerations—most
    complex systems these days.

•   This includes computer-based systems ranging from
    –   individual software applications,
    –   information systems,
    –   embedded systems
                    systems,
    –   product lines and product families and
    –   systems-of-systems.
What is system
             system-of-systems?
                    of systems?
•   There is an emergent class of systems which are built from
    components which are large scale systems in their own right
                                                            right.

•   Prominent examples include
     –   integrated air defense networks
                                 networks,
     –   the Internet,
     –   intelligent transport systems, and
     –   enterprise information networks.

•   What factors set these systems-of- systems apart from large and
    complex, but monolithic, systems?

•   Does the process of architecting and/or developing these systems
    differ in important ways from other types of systems?
Network Topology
              p gy
                                    Service layer

                                           Value add
                              Charging      service     Business
                                           execution    Processes

                   IMS and other standardized services
                      IMS                       Mess-                Soft-
                     server                     aging               switch

                     MRFP                                           MGW
                   Multi access edge
                                                                                 Transport
                                            Policy                                network
                               MSER         control      AGW

      Wired                                                                  Wireless
     access                   Metro             aggregation                  access
                                         CESR
                     AN                                                BS
e.g. Cable, POTS                                                               e.g. GSM, LTE,
GPON, xDSL                                                                     HSPA, WCDMA
Monolithic systems vs. systems-of-systems
                    principles
•    Operational Independence of the Elements: If the system-of-systems is disassembled into its
         p
     component  systems
                 y       the component
                                p      systems
                                        y      must be able to usefully
                                                                      y operate
                                                                         p      independently.
                                                                                    p       y The
     system-of-systems is composed of systems which are independent and useful in their own right.

•    Managerial Independence of the Elements: The component systems not only can operate
     independently, they do operate independently. The component systems are separately acquired
     and integrated but maintain a continuing operational existence independent of the system-of-
     systems.
        t

•    Evolutionary Development: The system-of-systems does not appear fully formed. Its
     development and existence is evolutionary with functions and purposes added, removed, and
     modified with experience.

•    Emergent Behavior: The system performs functions and carries out purposes that do not reside
     in any component system. These behaviors are emergent properties of the entire system-of-
     systems and cannot be localized to any component system. The principal purposes of the
     systems-of-systems are fulfilled by these behaviors.

•    Geographic Distribution: The geographic extent of the component systems is large. Large is a
     nebulous and relative concept as communication capabilities increase, but at a minimum it means
     that the components can readily exchange only information and not substantial quantities of mass
     or energy.
Systems Interoperability
•   Interoperability is the ability of a collection of communicating entities to
         • share specified information and
         • operate on that information according to a shared operational semantics in order to
           achieve a specified purpose in a given context.

•   The essence of interoperation is that it is a relationship between systems,
    where systems are entity in the above definitions.

•   Interoperability relationships necessarily involve communication.
         • For instance, the mere fact that two software systems are both installed on a single
           machine does not imply that they are interoperable (though they might, of course, be
           interoperable by some other relationship).

•   Software interoperability relationships can be of many possible kinds and
    degree, and can be brought about by many different implementation
    mechanisms.
         • some relationships between software systems as “tightly
                                                               tightly coupled,
                                                                       coupled ” and other
           relationships as “loose.”
         • Implementation of an interoperability relationship by means of capabilities entirely within
           the communicating entities (e.g., an agreement to share a common protocol), or the
           relationship can be implemented by some other software entity (e.g., a request broker
                    y messages
           that relays        g between systems)
                                            y       )
Boundaries of Systems and Systems of
                     S t
                     Systems

•   “a system” may in fact be composed of several constituent systems, and this may recursively be true at several
    levels.

•   anything that at one level can be call a “system” may actually internally be a “system of systems,” and

•   any “system of systems” may itself be part of some larger “system of {systems of systems},” and so forth.
Properties of Evolution that Affect Interoperability
•    Relative stability of the components. It is likely that different systems will evolve at different rates. However, if individual systems are
     relatively stable, that is to say that there is some synchronization of changes among the systems, then there is an increased likelihood
     that interoperability will be maintained.

•    Existence of agreements regarding the evolution between systems affected by the changes.   changes The more that owners of systems can
     make local agreements with respect to change, the more likely local interoperability relationships will be preserved. This tends toward, but
     does not guarantee, preservation of global interoperability. Where there are few or no local agreements concerning change in any one
     system, every other system will be forced to react to change rather than harmonize with it.

•    The number of interoperability relationships in the system of systems. The greater the aggregate number of relationships, the
     harder it is for any one system to evolve without requiring evolution in many other systems. A large number of relationships requires
     greater coordination than when there are fewer relationships.

•    The number and complexity of interoperations affected by the change. Given that any system may be involved in more than one
     interoperability relationship, it follows that the greater the number of relationships affected by a change, the harder it will be to maintain
     global interoperability.

•    Coordination of communication among systems. As systems evolve there is reasonable probability that the rates at which they
     interoperate will vary. However, the more closely coordinated the communication rates in any local interoperability relationship, the more
     effective
       ff ti the
               th relationship
                    l ti    hi will
                                ill b
                                    be. Th
                                        Thus, coordinating
                                                  di ti rates
                                                           t off communication
                                                                         i ti iis an aspectt off maintaining
                                                                                                   i t i i iinteroperation.
                                                                                                              t         ti

•    Commonality of purpose among component systems. Our definition of interoperability used the notion that systems interoperate in
     order to achieve some purpose. Hence, the more closely each system is aligned with that purpose, the more willing the system’s owners
     will be to accommodate changes. For example, if a service provided by system A is peripheral to the purpose of system B, then changes
     in A that decrease local interoperability between A and B will tend to be ignored, and B will look for some other provider of the service.
     Note that this is true regardless of the diversity of these components.

•    The ability to assess trust in the face of change. A key aspect of interoperability is the need for one system to establish trust in
     another. Indeed, not only must trust be established but also must be constantly re-evaluated. Such re-evaluation is particularly necessary
     with every evolution of a trusted system.

•     Adaptability of components. Given the notion that all systems are continually evolving and that the context for those systems is also
     evolving, it follows that each system must be continually adapting to its new context. For example, if a system is adaptable with respect to
     different communication rates, then it is likely that the interoperability relationships will be preserved even though the competition for
     communication resources changes.
Further Challenges
Literature
Literature
1
1.   Barry Boehm: A View of 20th and 21th Century Software Engineering
     http://sunset.usc.edu/csse/TECHRPTS/2006/2006_main.html
2.   Guide to the Software Engineering Body of Knowledge
     http://www.swebok.org/swebokcontents.html
3.   Guide to the Systems Engineering Body of Knowledge -- G2SEBoK
     http://g2sebok.incose.org/app/mss/menu/index.cfm

1.   Wikipedia
     http://en.wikipedia.org
Current Standards & Models For Systems Engineering (Back-up)

STANDARDS                                 Capability Models
• EIA/ANSI 632 - 1998                     • EIA-IS 731 – Interim Standard –
Processes for Engineering systems         1998
• IEEE 1220 - 1998                        Systems Engineering Capability
Standard for Application and              Model
Management of the Systems                 • ISO/IEC 15504 FDIS - 2002
Engineering Process                       Systems Engineering – Process
• ISO/IEC 15288 - 2002                    Assessment
Standard for Information Technology -     • CMMIsm SE/SW/IPPD V1.1 –
System Life Cycle Processes               2002
• ISO/IEC 19760 – PDTR - 2002             Capability Maturity Model Integration
Guide for ISO/IEC 15288 - System Life     – SE/SW/IPPD
Cycle Processes
• ECCS-E-10A - 1996
Space Engineering – Systems Engineering
SOME BASIC SYSTEMS ENGINEERING DEFINITIONS

•System
    • a combination of interacting elements organized to achieve one or more stated purposes

• System-of-Interest
    • the system whose life cycle is under consideration in the context of this International
     Standard

• System Element
    • a member of a set of elements that constitutes a system
     NOTE: A system element is a discrete part of a system that can be implemented to fulfill
     specified requirements

• Enabling System
    • a system that complements a system-of-interest during its life cycle stages but does not
     necessarily contribute directly to its function during operation
     NOTE: For example, when a system-of-interest enters the production stage, an enabling
     production system is required.

Source: ISO/IEC 15288.
A Full Range of Software Engineering Trends 1
                   Evolvability,
                   reusability                                           Enterprise integrity      Integrated
                                                                                                       g      Systems
                                                                                                               y
                                           Object-oriented
                                           Object oriented
                                                                                                      And Software
                                              Methods                   Human factors                  Engineering
Spaghetti Code
                                                                                                                                    Global connectivity,
                                                                                        Stovepipes                                  business practicality,
                                                               Process
              Structured                                                                                                            security threats,
                                                               bureaucracy
               M th d
               Methods                     St d d
                                           Standards,                                                                               massive systems
                                                                                   Agile Methods            Lack of scalability     of systems
                                         Maturity Models

                                   Noncompliance                                                         Hybrid Agile,
          Waterfall Process
                                                                                                         Plan-Driven
                                                                                                          Methods
Large Projects,                     HCI, COTS,                     Concurrent, risk-
Weak Planning                       emergence                       driven process                 Rapid                          Collaborative
& Control                                                                                          change                         methods,
                                                                                                                                                    Disruptors:
                                   Slow execution                                                                                 infrastructure,
                                                                                                                                                    Autonomy,
         Process overhead
                                                                                                                                  environments;
                                                                                                                                                    Bio-computing   ?
                                                                                                                                  Value-based
                                          Software Factory                       Rapid composition
                                                                                       composition,                                                 Computational
                                                                                                                                                         p
                                                                                                                                  methods’;
                                                                                     evaluation                                                     Plenty,
                                                                                                                                  Enterprise
                                                                                   environments                                                     Multicultural
                                                                                                                                  architecture;
                                                                                                                                                    mega systems
Many Defects                                                                                                                      System
                                                                                                                                   building
                                                             Rapid change
                                                                                                                                  by users
         Formal Methods               Lack of scalabilityy                                      Rapid
                                                                    Domain specific             change
                                                                                                                         Scale
                                                                   SW architecture,
Skill Shortfalls                                                   product line reuse
                                                                                                     Service-orientated
                                                                                                       Architecture,                     Model
                                         Business 4GLs
            Domain                                                Lack
                                                                  L  k off                             Model driven
                                                                                                       Model-driven                      clashes
                                                                                                                                          l h
                                         CAD/CAM, User
          Understanding                                           scalability                          development
                                          Programming

      Formality, Waterfall              Productivity            Concurrent Processes              Agility; Value                   Global Integration
           1970’s                          1980’s                      1990’s                        2000’s                             2010’s
A Full Range of Software Engineering Trends 1
                                                                     Evolvability,
                                                                     reusability                                               Enterprise integrity
                                                                                             Object-oriented
                                                                                               j
                                                                                                 Methods                     Human factors

                                                                                                                      Process                 Stovepipes
                                                                Structured                                            bureaucracy
                Demand
                growth
                growth,                                          Methods                       Standards,,
                                                                                                                                          A il M
                                                                                                                                          Agile Methods
                                                                                                                                                  th d
                diversity       Spaghetti Code                                               Maturity Models

                                                          Waterfall Process          Noncompliance                                                    Lack of
                                                                                                                                                      scalability

                                              Large Projects
                                                    Projects,                         HCI, COTS
                                                                                      HCI  COTS,                        Concurrent,
                                                                                                                        C          t risk-
                                                                                                                                      i k             Rapid
 Hardware                                     Weak Planning &                         emergence                          driven process               change
Engineering                  Software Craft   Control
 Methods                     -Code-and-fix                                           Slow execution
  -SAGE                         -Heroic
                Software                                 Process overhead
-Hardware                      debugging
                Deficiency                                                                  Software Factory                           Rapid composition,
 Efficiency
          y
                                                                                                                                           evaluation
                                                                                                                                         environments

                                                                                                                Rapid change

                              Many Defects                Formal Methods                  Lack of scalability                                 Rapid change

                                                                                                                         Domain specific
      Skill Shortfall                                                                                                   SW architecture,
                                                                                                                        product line reuse

                                                                                           Business 4GLs
                                                             Domain                                                    Lack of
                                                                                           CAD/CAM, User
                                                                                           CAD/CAM
                                                           Understanding                                               scalability
                                                                                            Programming

Hardware Engineering              Crafting             Formality, Waterfall               Productivity               Concurrent Processes
      1950’s                       1960’s                   1970’s                           1980’s                         1990’s
A Full Range of Software Engineering Trends 1
                                                                     Evolvability,
                                                                     reusability                                               Enterprise integrity
                                                                                             Object-oriented
                                                                                               j
                                                                                                 Methods                     Human factors

                                                                                                                      Process                 Stovepipes
                                                                Structured                                            bureaucracy
                Demand
                growth
                growth,                                          Methods                       Standards,,
                                                                                                                                          A il M
                                                                                                                                          Agile Methods
                                                                                                                                                  th d
                diversity       Spaghetti Code                                               Maturity Models

                                                          Waterfall Process          Noncompliance                                                    Lack of
                                                                                                                                                      scalability

                                              Large Projects
                                                    Projects,                         HCI, COTS
                                                                                      HCI  COTS,                        Concurrent,
                                                                                                                        C          t risk-
                                                                                                                                      i k             Rapid
 Hardware                                     Weak Planning &                         emergence                          driven process               change
Engineering                  Software Craft   Control
 Methods                     -Code-and-fix                                           Slow execution
  -SAGE                         -Heroic
                Software                                 Process overhead
-Hardware                      debugging
                Deficiency                                                                  Software Factory                           Rapid composition,
 Efficiency
          y
                                                                                                                                           evaluation
                                                                                                                                         environments

                                                                                                                Rapid change

                              Many Defects                Formal Methods                  Lack of scalability                                 Rapid change

                                                                                                                         Domain specific
      Skill Shortfall                                                                                                   SW architecture,
                                                                                                                        product line reuse

                                                                                           Business 4GLs
                                                             Domain                                                    Lack of
                                                                                           CAD/CAM, User
                                                                                           CAD/CAM
                                                           Understanding                                               scalability
                                                                                            Programming

Hardware Engineering              Crafting             Formality, Waterfall               Productivity               Concurrent Processes
      1950’s                       1960’s                   1970’s                           1980’s                         1990’s
You can also read