Software System Engineering: A tutorial

advertisement
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
Download