Software System Engineering: A tutorial

Paper Summary

By

Hatem Halaoui

Software systems have become more complex and larger than ever. The reasons for increase in size and complexity is because the software became the dominant technology in many technical systems.

The majority of software systems do not meet their projected schedule or estimated cost as well as they do not always fulfill their expectations. This phenomenon has known as the software crisis.

To reduce these problems, Software System Engineering or SwSE will be introduced in the paper.

Systems And System Engineering

A system is a collection of elements related in a way that allows a common objective to be accomplished like hardware, software, people, etc. On the other hand, system engineering is the practical application of the scientific, engineering, and management skills necessary to transform an operational need into a description of a system

System engineering involve five functions:

  • Problem definition: needs, constraints.
  • Solution analysis: set of possible ways to satisfy requirements.
  • Process planning: the tasks, the size and effort, task precedence, and risks.
  • Process control: methods controlling the project
  • Product evaluation: quality and quantity

What is Software System Engineering?

SwSE is responsible for the overall technical management of the system and the verification of the final product. The SwSE technical process is the analytical effort necessary to transform an operational need into:

  • A software system description
  • A software design of the proper size, configuration, and quality
  • Software system documentation in requirements and design specifications
  • The procedures necessary to verify, test, and accept the finished product software
  • The documentation necessary to use, operate, and maintain the product software

SwSE and Software Engineering (SwE)

Software engineering is:

  • The practical application of computer science, management, and other sciences to the analysis, design, construction, and maintenance of the software
  • An engineering science that applies the concepts of analysis, design, coding, testing documentation, and management to the successful completion of programs
  • The systematic application of methods, tools, and techniques that achieve a stated requirement

During the initial state SwSE is responsible for software requirements analysis and architectural design. SwSE also manages the final testing while Software engineering manages component engineering.

SwSE and project management

SwSE determines the technical approach, make technical decisions, interfaces with the technical acquirer, and approves and accepts the final software product

The Functions of Software System Engineering

1- Requirements analysis

  • Functional requirements: functions that system or components should perform
  • Performance requirements: performance characteristics of the system
  • External interface requirements: hardware, software, or database elements
  • Design constraints: constrains on design like language requirements, hardware requirements, or software quality assurance
  • Quality attributes: the degree of correctness, reliability, maintenance, ability, and portability

2- Software design

  • Architectural design: system design
  • Detailed design: components engineering

3- Process planning: specifies the project goals and objectives and the strategies, policies, plans, and procedures.

4-Process control: the collection of management activities used to ensure that that the project goes according to the plan.

5- Verification, validation, and testing

  • Verification: Is the product built right?
  • Validation: correctness of the program with respect to user’s needs.
  • Testing: testing the execution of the program with known input and output