Software Engineering Design Principles
Software Engineering Design Principles
By
Dr. MK Jayanthi Kannan, B.E.,M.E.,MS.,MBA.,M.Phil., Ph.D.,
Professor School of Computing Science and Engineering,
AB 104, 8.30am- 5.pm
VIT Bhopal University, Bhopal-Indore Highway,
Kothrikalan, Madhya Pradesh - 466114.
email: jayanthi.m@vitbhopal.ac.in, Emp Id : 100600
Ph: +91 6379397594
SOFTWARE ENGINEERING
Analysis, Design Concepts and Principles
1
07-12-2023
SYSTEMS ENGINEERING
What is a system?
• A purposeful collection of inter-related components working together
towards some common objective.
2
07-12-2023
– Little scope for iteration between phases because hardware changes are
very expensive. Software may have to compensate for hardware
problems
System System
design evolution
Sub-system System
development installation
System
integration
3
07-12-2023
System objectives
• Functional objectives
– To provide a fire and intruder alarm system for the building which will
provide internal and external warning of fire or unauthorized intrusion
• Organisational objectives
4
07-12-2023
5
07-12-2023
Assignrequirements
tosub-systems
6
07-12-2023
Sub-system development
• Typically parallel projects developing the
hardware, software and communications
System integration
• The process of putting hardware, software and
people together to make a system
7
07-12-2023
System installation
• Environmental assumptions may be incorrect
System operation
• Will bring unforeseen requirements to light
other systems
8
07-12-2023
System evolution
• Large systems have a long lifetime. They must evolve to meet changing
requirements
• Evolution is inherently costly
– Changes must be analysed from a technical and business perspective
– Sub-systems interact so unanticipated problems can arise
– There is rarely a rationale for original design decisions
– System structure is corrupted as changes are made to it
• Existing systems which must be maintained are sometimes called legacy
systems
System decommissioning
• Taking the system out of service after its useful lifetime
9
07-12-2023
System procurement
• Acquiring a system for an organization to meet some need
before procurement
from scratch
10
07-12-2023
Procurement issues
• Requirements may have to be modified to match the capabilities of off-the-
shelf components
• Customer liases with the principal contractor and does not deal directly
with sub-contractors
11
07-12-2023
Contractor/Sub-contractor model
System
customer
Principal
contractor
Key points
• System engineering involves input from a range of disciplines
12
07-12-2023
Key points
• System component types are sensor, actuator, computation, co-ordination,
Conclusion
• Systems engineering is hard! There will never be an easy answer to the
problems of complex system development
• Software engineers do not have all the answers
but may be better at taking a systems
viewpoint
• Disciplines need to recognise each others
strengths and actively rather than reluctantly
cooperate in the systems engineering process
13
07-12-2023
Analysis Concept
REQUIREMENTS ANALYSIS
Requirements analysis provides the software designer with a representation of
information, function, and behavior that can be translated to data, architectural,
interface, and component-level designs.
Finally, the requirements specification provides the developer and the
customer with the means to assess quality once software is built. Software
requirements analysis may be divided into five areas of effort:
1. Problem recognition,
2. Evaluation and synthesis,
3. Modeling,
4. Specification, and
5. Review.
14
07-12-2023
Analysis Principles
Investigators have identified analysis problems and their causes and have
developed a variety of modeling notations and corresponding sets
of heuristics to overcome them.
Each analysis method has a unique point of view.
All analysis methods are related by a set of operational principles.
Analysis Principles
The models that depict information function and behavior must be
partitioned in a manner that uncovers detail in a layered (or hierarchical)
fashion.
The analysis process should move from essential information toward
implementation detail.
The various analysis principles are
o The Information Domain
o Modeling
o Partitioning
o Implementation Views
15
07-12-2023
16
07-12-2023
17
07-12-2023
Design Principles
The design process should not suffer from “tunnel vision.”
18
07-12-2023
Design Principles
The design should be structured to accommodate change.
The design should be structured to degrade gently, even when
aberrant data, events, or operating conditions are encountered.
MODULAR DESIGN
19
07-12-2023
Function decomposition approach- Software is partitioned into independent modules so that each
module is small enough to be manageable.
Objectives of modular software design :
– Functional partitioning into discrete scalable , reusable modules.
– Rigorous use of well-defined modular interface.
– Ease of change to achieve technology transparency and to the extent possible make use of industry standards
for key interfaces.
• Modularity is the principle of keeping separate the various unrelated aspects of a system, so that each
aspect can be studied in isolation (also called separation of concerns).
• If the principle is applied well, each resulting module will have a single purpose and will be
relatively independent of the others.
• Each module will be easy to understand and develop easier to locate faults (because there are fewer
suspect modules per fault).
• Easier to change the system (because a change to one module affects relatively few other modules)
MODULAR DESIGN
• Modular design unintentionally follows the rules of ‘divide and conquer’ problem-
solving strategy this is because there are many other benefits attached with the
modular design of a software.
• Advantage of modularization:
– Smaller components are easier to maintain
– Program can be divided based on functional aspects
– Desired level of abstraction can be brought in the program
– Components with high cohesion can be re-used again.
– Concurrent execution can be made possible
– Desired from security aspect
20
07-12-2023
DESIGN HEURISTIC
• Heuristics are a valuable tools for identifying design forces and evaluating design
quality.
• The main goal of heuristic evaluations is to identify any problems associated with
the design of user interfaces.
• Heuristic evaluations are one of the most informal methods of usability inspection
in the field of human-computer interaction.
• There are many sets of usability design heuristics; they are not mutually exclusive
and cover many of the same aspects of user interface design.
ARCHITECTURAL DESIGN
21
07-12-2023
Architectural Design
• Architectural context diagrams model shows how software interacts with
external entities
43
Why Architecture?
• “The architecture of a system is a comprehensive framework that describes its form
and structure—its components and how they fit together.”
44
22
07-12-2023
Architectural Styles
• Each style describes a system category that encompasses:
1. a set of components (e.g., a database, computational modules)
that perform a function required by a system,
45
Specific Styles
• Data-centered architecture
• Object-oriented architecture
• Layered architecture
46
23
07-12-2023
Data-Centered Architecture
A data store (e.g., a file or database) resides at the center of this architecture and is
accessed frequently by other components that update, add, delete, or otherwise
modify data within the store.
47
Data-Flow Architecture
48
24
07-12-2023
Data-Flow Architecture
•This architecture is applied when input data are to be transformed through a
series of computational or manipulative components into output data.
•A pipe-and-filter pattern has a set of components, called filters, connected by
pipes that transmit data from one component to the next.
•Each filter works independently of those components upstream and
downstream, is designed to expect data input of a certain form, and produces
data output (to the next filter) of a specified form.
50
25
07-12-2023
Object-Oriented Architecture
52
26
07-12-2023
Layered Architecture
53
Architectural Patterns
• Concurrency
– operating system process management
– task scheduler
• Persistence
– database management system
– application level persistence
• Distribution
– broker
54
27
07-12-2023
Interface Design
Easy to learn?
Easy to use?
Easy to understand?
Interface Design
Typical Design Errors
•Lack of consistency
•Poor response
•Arcane/unfriendly
28
07-12-2023
Golden Rules
•Design for direct interaction with objects that appear on the screen.
29
07-12-2023
30
07-12-2023
31
07-12-2023
Interface Analysis
(1) the people (end-users) who will interact with the system through the
interface;
User Analysis
• Are users trained professionals, technician, clerical, or manufacturing
workers?
• What level of formal education does the average user have?
• Are the users capable of learning from written materials or have they
expressed a desire for classroom training?
• Are users expert typists or keyboard phobic?
• What is the age range of the user community?
• Will the users be represented predominately by one gender?
• How are users compensated for the work they perform?
• Do users work normal office hours or do they work until the job is done?
• Is the software to be an integral part of the work users do or will it be used
only occasionally?
• What is the primary spoken language among users?
• What are the consequences if a user makes a mistake using the system?
• Are users experts in the subject matter that is addressed by the system?
• Do users want to know about the technology the sits behind the interface?
These slides are designed to accompany Software Engineering:
A Practitioner’s Approach, 7/e (McGraw-Hill, 2009) Slides
64
copyright 2009 by Roger Pressman.
32
07-12-2023
33
07-12-2023
• Define events (user actions) that will cause the state of the user interface to
change. Model this behavior.
• Indicate how the user interprets the state of the system from information
provided through the interface.
Design Issues
• Response time
• Help facilities
• Error handling
• Application accessibility
• Internationalization
34
07-12-2023
2. Aperiodic stimuli :These occur irregularly. They are usually signalled using
the computer's interrupt mechanism. An example of such a stimulus would
be an interrupt indicating that an VO transfer was complete and that data
was available in a buffer.
35
07-12-2023
System Design
36
07-12-2023
37
07-12-2023
Identify global resources and the control mechanisms required to access them.
Design an appropriate control mechanism for the system, including task
management.
Design both the hardware and the software associated with system.
Design decisions should be made on the basis on non-functional system
requirements.
Hardware delivers better performance but potentially longer development and less
scope for change.
Real-time Executives
• Real-time executives are specialized operating systems which
manage the processes in the RTS
38
07-12-2023
39
07-12-2023
Components of RTOS
• Monitoring systems take action when some exceptional sensor value is detected.
40
07-12-2023
Example
• Sensors
– Movement detectors, window sensors, door sensors.
– 50 window sensors, 30 door sensors and 200 movement
detectors
– Voltage drop sensor
• Actions
– When an intruder is detected, police are called
automatically.
– Lights are switched on in rooms with active sensors.
– An audible alarm is switched on.
– The system switches automatically to backup power when
a voltage drop is detected.
41
07-12-2023
• These systems are used in circumstances where the sensors are collecting
lots of data from the system's environment and it isn't possible or
necessary to process the data collected in real-time.
42
07-12-2023
43