1
Module 4: Software Engineering and Risk Mitigation
Prince Worthington
School of Business and Technology, Aspen University
DCS 903: System Metrics & Risk Management
Dr. Richard Wells
October 16, 2023
2
Decision Analysis and Support
The systems engineering method applies to the advanced development phase in a similar set of
four steps as it does to the preceding concept definition phase. For each step in the method,
compare the activities in the two phases with one another, stating in your own words how they
are similar and how they are different.
The methodology of systems engineering serves as a structured blueprint that navigates
engineers through the intricate maze of system creation. This blueprint is versatile, being
applicable in both the initial conceptualization phase as well as the advanced development stage.
Although the four primary steps remain constant across these stages, the tasks within each step
vary and are key to the successful completion of any project.
Step 1: Analyzing Requirements
During the initial conceptualization phase, the primary focus is on grasping the
complexity of the problem and pinpointing what the stakeholders actually need (Cronholm &
Goldkuhl, 2011). Engineers collect data to outline the system's scope and limitations. Conversely,
in the advanced development stage, the analysis of requirements becomes more nuanced.
Engineers, already equipped with a fundamental understanding of the system, now progress into
the essential details and performance indicators (Jones & Maiden, 2005).
3
Step 2: Functional Decomposition and Allocation
In the conceptualization phase, the task is to dissect high-level functions into smaller,
manageable tasks and distribute them across various system elements (Schmidt, 2013). As the
project moves into the advanced development stage, the emphasis shifts towards fine-tuning these
functions and ensuring their smooth integration. Engineers might utilize advanced algorithms and
simulations to corroborate the functional structure.
Step 3: The Art of Synthesis
In the conceptual stage, synthesis is about crafting initial designs and models. Engineers
weigh multiple design options against feasibility and stakeholder needs. However, in the
advanced development stage, the focus is on the actual construction and rigorous testing of
prototypes. The designs transition from being theoretical constructs to physical entities that are
subjected to stringent tests to confirm they meet the set criteria (OSTI, 1971).
Step 4: Verification and Validation
In the conceptual phase, verification and validation are largely theoretical exercises.
Engineers employ mathematical models and simulations to confirm the system's compliance with
the requirements (Cronholm & Goldkuhl, 2011). As the project advances into the development
stage, these processes become handled more directly. Engineers execute real-world tests and
gather empirical data to ensure the system functions as designed (Ledin, 2001)
4
In the development of a major upgrade to a terminal air traffic control system, what would you
except to be three significant risks and what systems engineering approaches would you
recommend to mitigate each of these risks?
In the sphere of air traffic control systems, the transition to a major new software version
is fraught with complexities and high stakes, where even a minor glitch could culminate in
disastrous consequences. This discourse aims to elucidate three salient risks and the systems
engineering methodologies employed to mitigate them.
The first risk of paramount importance is software incompatibility, which holds the
potential to induce system crashes or erroneous data representation. To mitigate this risk, systems
engineering methodologies advocate for rigorous compatibility testing and phased
implementations. Utilization of virtual environments for simulating real-world conditions is
instrumental in identifying compatibility issues prior to full-scale deployment (Bougaa et el,
2016)
The second risk factor is human error, often magnified by unfamiliarity with the newly
implemented system. Comprehensive training programs are the cornerstone for mitigating this
risk. These programs should amalgamate theoretical instruction with practical exercises,
potentially leveraging Virtual Reality simulations to replicate real-world scenarios (Button,
Seifert, O’Donovan, & Davids, 2013).
The third and equally critical risk is the introduction of new security vulnerabilities.
Given the critical nature of air traffic control systems, they are susceptible to cyber-attacks.
Systems engineering methodologies to counteract this involve rigorous penetration testing and
5
the institution of multi-faceted security protocols. The deployment of intrusion detection systems
and regular security audits are non-negotiable components of this strategy (Yunis, Hughes, &
Roge, 2008).
6
Graphical user interface software is generally difficult to design and test. Explain why this is
true, giving at least three situations to illustrate your points. What types of development tests
would you propose for each situation?
The design and testing of Graphical User Interface (GUI) software are fraught with
complexities that are often underestimated, yet pivotal to the development process (Singhera et
al., 2011). One of the most formidable challenges lies in the heterogeneity of user expectations
and cognitive models. This variability in User Experience (UX) necessitates the utilization of A/B
testing paradigms to evaluate different interface layouts and elements (Anon, 2022). By
implementing heatmaps to capture user interaction patterns, data-driven design adjustments can
be facilitated, thereby aiming to create a universally intuitive interface (Singhera et al., 2011).
Adding another layer of complexity is the issue of platform inconsistency. The
multiplicity of operating systems, each with its unique design guidelines and idiosyncrasies,
complicates the task of achieving a consistent user interface across platforms (Unadkat, 2023). To
navigate this labyrinthine challenge, cross-platform testing strategies are employed (Singhera et
al., 2011). Virtual machines or containerization technologies are utilized to simulate diverse
operating environments, ensuring that the GUI remains consistent and functional across multiple
platforms. It is worth noting that Linux, in particular, has demonstrated superior computational
capabilities, making it an essential inclusion in the testing matrix (Singhera et al., 2011).
Yet another intricate challenge is that of dynamic content and scalability. The interface
must be designed to adapt to a range of screen sizes, resolutions, and dynamically loaded content.
To address this, stress tests are conducted to evaluate the GUI's adaptability to varying screen
sizes and resolutions (Ganguly, 2023). Load tests are also performed to assess how the interface
7
copes with dynamically loaded content, thereby ensuring that the system remains robust under
different conditions (Singhera et al., 2011).
In conclusion, the complexities inherent in GUI design and testing necessitate a multi-
pronged approach for effective problem-solving (Ganguly, 2023). By implementing rigorous
testing methodologies tailored to each identified situation, the risks can be significantly mitigated
(Singhera et al., 2011). This, in turn, enhances the reliability and performance of the GUI
software, thereby contributing to optimal user satisfaction and system functionality.
8
Look up the principle subcomponents of the data processor (CPU) of a personal computer. Draw
a block diagram of the subcomponents and their interconnections. Describe in your own words
the functions of each subcomponent.
Arithmetiс Logiс Unit (ALU): The ALU serves аs the сomрutаtionаl nexus within the CPU
аrсhiteсture, tаskeԁ with exeсuting а рlethorа of аrithmetiс аnԁ logiсаl oрerаtions. The рrimаry
objeсtive of this unit is to fасilitаte ԁаtа mаniрulаtion аnԁ decision-making algorithms, thereby
contributing to the CPU's overall сomрutаtionаl effiсienсy.
Control Unit: Acting аs the orсhestrаtor of the CPU's operations, the Control Unit is responsible
for the interpretation аnԁ subsequent transformation of instructions extrасteԁ from the memory. It
generates а series of signals thаt асtivаte vаrious components within the CPU аnԁ рeriрherаl
ԁeviсes, thereby ensuring the effiсient exeсution of tаsks аnԁ oрtimizing the CPU's рerformаnсe.
9
Cасhe Memory: This high-sрeeԁ volаtile storаge сomрonent within the CPU serves аs а
reрository for frequently ассesseԁ ԁаtа from the mаin memory. By reԁuсing ԁаtа ассess time, the
Cасhe Memory enhаnсes the sрeeԁ аnԁ effiсienсy of the CPU, thereby сontributing to its overаll
рerformаnсe metriсs.
Registers: These аre smаll, rарiԁ-ассess storаge loсаtions situаteԁ within the CPU. Registers holԁ
ԁаtа аnԁ instruсtions temрorаrily ԁuring the exeсution рhаse, thereby fасilitаting immeԁiаte ԁаtа
ассess аnԁ mаniрulаtion, whiсh is сruсiаl for the CPU's oрerаtionаl effiсienсy.
Floаting-Point Unit (FPU): Sрeсiаlizing in floаting-рoint аrithmetiс oрerаtions, the FPU is
раrtiсulаrly instrumentаl in аррliсаtions thаt neсessitаte high-рreсision саlсulаtions. Whether it's
sсientifiс сomрuting, imаge рroсessing, or finаnсiаl moԁeling, the FPU's сараbilities аre integrаl
to the CPU's versаtility in hаnԁling а wiԁe rаnge of сomрutаtionаl tаsks.
Eасh of these subсomрonents рlаys а рivotаl role in the CPU's funсtionаlity аnԁ сontributes to its
сomрutаtionаl рrowess. Their synergistiс oрerаtion ensures thаt the CPU is сараble of exeсuting
а wiԁe аrrаy of tаsks, rаnging from ruԁimentаry аrithmetiс саlсulаtions to сomрlex аlgorithms,
thereby soliԁifying its role аs the сomрutаtionаl engine of а рersonаl сomрuter.
10
Extend the examples of the three types of software-dominated systems shown in Table 11.1 by
listing two more examples of each type. Briefly indicate why you placed each example into the
selected category.
As we have it, the three major categories are system software, embedded software, and
application software. To discuss further two examples of each category, I have provided the
following:
System Software
Operating System (e.g., Linux)
Rаtionаle: The oрerаting system serves аs the аrсhetyраl system softwаre, funсtioning аs the
intermeԁiаry between сomрuter hаrԁwаre аnԁ the enԁ-user. It is resрonsible for the аlloсаtion of
hаrԁwаre resourсes аnԁ the рrovision of аn аrrаy of serviсes to fасilitаte the exeсution of
сomрuter рrogrаms. Linux, given its oрen-sourсe nаture аnԁ extensive сustomizаbility, stаnԁs аs
аn exemрlаry instance.
Device Drivers (e.g., Graphics Card Drivers)
Rationale: Device drivers constitute specialized software engineered to govern specific hardware
components interfaced with a computer system. These drivers facilitate the communication
between the operating system and the hardware, obviating the need for the OS to comprehend
intricate hardware specifications.
11
Embedded Software
Firmware in Routers
Rationale: This category of software is intrinsically integrated into the hardware architecture of
network routers. It is tasked with the regulation of data packet routing and network traffic
management, among other functionalities. The software is highly specialized for the device in
question and lacks the capability to operate independently.
Automotive Control Systems (e.g., Anti-lock Braking System)
Rationale: This embedded software is intricately woven into the electronic framework of
automobiles to govern functionalities such as braking and fuel injection. The software is not only
specialized but also operates in real-time, making it indispensable for the device's functionality.
Application Software
Microsoft Word
Rationale: Microsoft Word is a quintessential text processing application that operates atop an
operating system. It is engineered to cater to end-users with the primary objective of facilitating
tasks such as document editing.
12
Adobe Photoshop
Rationale: Adobe Photoshop serves as another paradigmatic instance of application software,
offering a comprehensive suite of features for image manipulation. Similar to Microsoft Word, it
functions atop an operating system and is tailored for a specific set of tasks.
13
Using the example of an automated supermarket grocery inventory and management system
draw the system context diagram.
(Please see attached file—my systems design software I have was not particularly designed to be
displayed on word processing software via screenshots)
14
References
6 Common UI Problems & Mistakes (And How to Solve Them). (2022, October). Retrieved from
[Link] website: [Link]
Bougaa, M., Bornhofen, S., Kadima, H., & Rivière, A. (2016). 3D Interaction in Virtual
Environments for Systems Engineering. International Journal of Computer Theory and
Engineering, 8(6), 458–464. [Link]
Button, C., Seifert, L., O’Donovan, D., & Davids, K. (2013). Variability in neurobiological
systems. Complex Systems in Sports, (1st ed.). [Link]
Cronholm, S., & Göran Guldkuhl. (2011). Communication Analysis as Perspective and Method
for Requirements Engineering. Requirements Engineering for Sociotechnical Systems,
340–358. [Link]
Ganguly, S. (2023, February 15). What is GUI Testing? (Types & Best Practices). Retrieved
October 16, 2023, from BrowserStack website: [Link]
testing
Jones, S., & Maiden, N. (2005). RESCUE. Requirements Engineering for Sociotechnical
Systems, 245–265. [Link]
Ledin, J. (2001). Verification, Validation, and Accreditation. NCSU Libraries Repository (North
Carolina State University Libraries).
Nuclear shuttle systems definition study. Phase III. Volume II. Concept and feasibility analysis.
Part B. Baseline system definition. Final report. (1971). OSTI OAI (U.S. Department of
Energy Office of Scientific and Technical Information). [Link]
Schmidt, R. F. (2013). Functional Analysis and Allocation Practice. Elsevier EBooks, 185–201.
[Link]
15
Unadkat, J. (2023, January 12). 5 Common Bugs Faced in UI Testing. Retrieved from
BrowserStack website: [Link]
Yunis, M., Hughes, J., & Roge, J. (2008). Real Security in Virtual Systems: A proposed Model
For A Comprehensive Approach to Securing Virtualized Environments. Issues in
Information Systems. [Link]
Zafar Singhera, Horowitz, E., & Shah, A. (2009). A Graphical User Interface (GUI) Testing
Methodology. Software Applications: Concepts, Methodologies, Tools, and Applications,
3037–3054. [Link]